CGImageMetadataTag(NSString xmlns, NSString prefix, NSString name, CGImageMetadataType type, IntPtr value) { if (xmlns == null) throw new ArgumentNullException ("xmlns"); if (name == null) throw new ArgumentNullException ("name"); // it won't crash - but the instance is invalid (null handle) if (value == IntPtr.Zero) throw new ArgumentNullException ("value"); var p = (prefix == null) ? IntPtr.Zero : prefix.Handle; Handle = CGImageMetadataTagCreate (xmlns.Handle, p, name.Handle, type, value); }
CGImageMetadataTag(NSString xmlns, NSString?prefix, NSString name, CGImageMetadataType type, IntPtr value) { if (xmlns is null) { throw new ArgumentNullException(nameof(xmlns)); } if (name is null) { throw new ArgumentNullException(nameof(name)); } // it won't crash - but the instance is invalid (null handle) if (value == IntPtr.Zero) { throw new ArgumentNullException(nameof(value)); } InitializeHandle(CGImageMetadataTagCreate(xmlns.Handle, prefix.GetHandle(), name.Handle, type, value)); }
CGImageMetadataTag(NSString xmlns, NSString prefix, NSString name, CGImageMetadataType type, IntPtr value) { if (xmlns == null) { throw new ArgumentNullException("xmlns"); } if (name == null) { throw new ArgumentNullException("name"); } // it won't crash - but the instance is invalid (null handle) if (value == IntPtr.Zero) { throw new ArgumentNullException("value"); } var p = (prefix == null) ? IntPtr.Zero : prefix.Handle; Handle = CGImageMetadataTagCreate(xmlns.Handle, p, name.Handle, type, value); }
// CFBoolean support public CGImageMetadataTag(NSString xmlns, NSString prefix, NSString name, CGImageMetadataType type, bool value) : this(xmlns, prefix, name, type, value ? CFBoolean.TrueHandle : CFBoolean.FalseHandle) { }
// According to header file the CFType value can be: // CFStringRef -> NSString (NSObject) // CFNumberRef -> NSNumber (NSObject) // CFBooleanRef -> no direct mapping // CFArrayRef -> NSArray (NSObject) // CFDictionary -> NSDictionary (NSObject) public CGImageMetadataTag(NSString xmlns, NSString prefix, NSString name, CGImageMetadataType type, NSObject value) : this(xmlns, prefix, name, type, value == null ? IntPtr.Zero : value.Handle) { }
extern static /* CGImageMetadataTagRef __nullable */ IntPtr CGImageMetadataTagCreate( /* CFStringRef __nonnull */ IntPtr xmlns, /* CFStringRef __nullable */ IntPtr prefix, /* CFStringRef __nonnull */ IntPtr name, CGImageMetadataType type, /* CFTypeRef __nonnull */ IntPtr value);
public CGImageMetadataTag(NSString xmlns, NSString?prefix, NSString name, CGImageMetadataType type, NSObject?value) : this(xmlns, prefix, name, type, value.GetHandle()) { }
// CFBoolean support public CGImageMetadataTag(NSString xmlns, NSString prefix, NSString name, CGImageMetadataType type, bool value) : this(xmlns, prefix, name, type, value ? CFBoolean.True.Handle : CFBoolean.False.Handle) { }
static extern IntPtr CGImageMetadataTagCreate( /* CFStringRef __nonnull */ IntPtr xmlns, /* CFStringRef __nullable */ IntPtr prefix, /* CFStringRef __nonnull */ IntPtr name, CGImageMetadataType type, /* CFTypeRef __nonnull */ IntPtr value);