static CTStringAttributeKey() { var handle = Dlfcn.dlopen(Constants.CoreTextLibrary, 0); if (handle == IntPtr.Zero) { return; } try { Font = Dlfcn.GetStringConstant(handle, "kCTFontAttributeName"); ForegroundColorFromContext = Dlfcn.GetStringConstant(handle, "kCTForegroundColorFromContextAttributeName"); KerningAdjustment = Dlfcn.GetStringConstant(handle, "kCTKernAttributeName"); LigatureFormation = Dlfcn.GetStringConstant(handle, "kCTLigatureAttributeName"); ForegroundColor = Dlfcn.GetStringConstant(handle, "kCTForegroundColorAttributeName"); ParagraphStyle = Dlfcn.GetStringConstant(handle, "kCTParagraphStyleAttributeName"); StrokeWidth = Dlfcn.GetStringConstant(handle, "kCTStrokeWidthAttributeName"); StrokeColor = Dlfcn.GetStringConstant(handle, "kCTStrokeColorAttributeName"); UnderlineStyle = Dlfcn.GetStringConstant(handle, "kCTUnderlineStyleAttributeName"); Superscript = Dlfcn.GetStringConstant(handle, "kCTSuperscriptAttributeName"); UnderlineColor = Dlfcn.GetStringConstant(handle, "kCTUnderlineColorAttributeName"); VerticalForms = Dlfcn.GetStringConstant(handle, "kCTVerticalFormsAttributeName"); GlyphInfo = Dlfcn.GetStringConstant(handle, "kCTGlyphInfoAttributeName"); CharacterShape = Dlfcn.GetStringConstant(handle, "kCTCharacterShapeAttributeName"); RunDelegate = Dlfcn.GetStringConstant(handle, "kCTRunDelegateAttributeName"); } finally { Dlfcn.dlclose(handle); } }
static CTFontDescriptorAttributeKey () { var handle = Dlfcn.dlopen (Constants.CoreTextLibrary, 0); if (handle == IntPtr.Zero) return; try { Url = Dlfcn.GetStringConstant (handle, "kCTFontURLAttribute"); Name = Dlfcn.GetStringConstant (handle, "kCTFontNameAttribute"); DisplayName = Dlfcn.GetStringConstant (handle, "kCTFontDisplayNameAttribute"); FamilyName = Dlfcn.GetStringConstant (handle, "kCTFontFamilyNameAttribute"); StyleName = Dlfcn.GetStringConstant (handle, "kCTFontStyleNameAttribute"); Traits = Dlfcn.GetStringConstant (handle, "kCTFontTraitsAttribute"); Variation = Dlfcn.GetStringConstant (handle, "kCTFontVariationAttribute"); Size = Dlfcn.GetStringConstant (handle, "kCTFontSizeAttribute"); Matrix = Dlfcn.GetStringConstant (handle, "kCTFontMatrixAttribute"); CascadeList = Dlfcn.GetStringConstant (handle, "kCTFontCascadeListAttribute"); CharacterSet = Dlfcn.GetStringConstant (handle, "kCTFontCharacterSetAttribute"); Languages = Dlfcn.GetStringConstant (handle, "kCTFontLanguagesAttribute"); BaselineAdjust = Dlfcn.GetStringConstant (handle, "kCTFontBaselineAdjustAttribute"); MacintoshEncodings = Dlfcn.GetStringConstant (handle, "kCTFontMacintoshEncodingsAttribute"); Features = Dlfcn.GetStringConstant (handle, "kCTFontFeaturesAttribute"); FeatureSettings = Dlfcn.GetStringConstant (handle, "kCTFontFeatureSettingsAttribute"); FixedAdvance = Dlfcn.GetStringConstant (handle, "kCTFontFixedAdvanceAttribute"); FontOrientation = Dlfcn.GetStringConstant (handle, "kCTFontOrientationAttribute"); FontFormat = Dlfcn.GetStringConstant (handle, "kCTFontFormatAttribute"); RegistrationScope = Dlfcn.GetStringConstant (handle, "kCTFontRegistrationScopeAttribute"); Priority = Dlfcn.GetStringConstant (handle, "kCTFontPriorityAttribute"); Enabled = Dlfcn.GetStringConstant (handle, "kCTFontEnabledAttribute"); } finally { Dlfcn.dlclose (handle); } }
internal static void Init() { var handle = Dlfcn.dlopen(Constants.AddressBookLibrary, 0); if (handle == IntPtr.Zero) { return; } try { Assistant = Dlfcn.GetStringConstant(handle, "kABPersonAssistantLabel"); Brother = Dlfcn.GetStringConstant(handle, "kABPersonBrotherLabel"); Child = Dlfcn.GetStringConstant(handle, "kABPersonChildLabel"); Father = Dlfcn.GetStringConstant(handle, "kABPersonFatherLabel"); Friend = Dlfcn.GetStringConstant(handle, "kABPersonFriendLabel"); Manager = Dlfcn.GetStringConstant(handle, "kABPersonManagerLabel"); Mother = Dlfcn.GetStringConstant(handle, "kABPersonMotherLabel"); Parent = Dlfcn.GetStringConstant(handle, "kABPersonParentLabel"); Partner = Dlfcn.GetStringConstant(handle, "kABPersonPartnerLabel"); Sister = Dlfcn.GetStringConstant(handle, "kABPersonSisterLabel"); Spouse = Dlfcn.GetStringConstant(handle, "kABPersonSpouseLabel"); } finally { Dlfcn.dlclose(handle); } }
static NSHttpCookie() { var handle = Dlfcn.dlopen(Constants.FoundationLibrary, 0); if (handle == IntPtr.Zero) { return; } try { KeyName = Dlfcn.GetStringConstant(handle, "NSHTTPCookieName"); KeyValue = Dlfcn.GetStringConstant(handle, "NSHTTPCookieValue"); KeyOriginURL = Dlfcn.GetStringConstant(handle, "NSHTTPCookieOriginURL"); KeyVersion = Dlfcn.GetStringConstant(handle, "NSHTTPCookieVersion"); KeyDomain = Dlfcn.GetStringConstant(handle, "NSHTTPCookieDomain"); KeyPath = Dlfcn.GetStringConstant(handle, "NSHTTPCookiePath"); KeySecure = Dlfcn.GetStringConstant(handle, "NSHTTPCookieSecure"); KeyExpires = Dlfcn.GetStringConstant(handle, "NSHTTPCookieExpires"); KeyComment = Dlfcn.GetStringConstant(handle, "NSHTTPCookieComment"); KeyCommentURL = Dlfcn.GetStringConstant(handle, "NSHTTPCookieCommentURL"); KeyDiscard = Dlfcn.GetStringConstant(handle, "NSHTTPCookieDiscard"); KeyMaximumAge = Dlfcn.GetStringConstant(handle, "NSHTTPCookieMaximumAge"); KeyPort = Dlfcn.GetStringConstant(handle, "NSHTTPCookiePort"); } finally { Dlfcn.dlclose(handle); } }
/// <summary> /// Initializes static members of the <see cref="KSec"/> class. /// </summary> static KSec() { IntPtr handle = Dlfcn.dlopen(Constants.SecurityLibrary, 0); Assumes.False(handle == IntPtr.Zero); try { AttrApplicationTag = Dlfcn.GetStringConstant(handle, "kSecAttrApplicationTag"); AttrKeyType = Dlfcn.GetStringConstant(handle, "kSecAttrKeyType"); AttrKeySizeInBits = Dlfcn.GetStringConstant(handle, "kSecAttrKeySizeInBits"); AttrKeyTypeRSA = Dlfcn.GetStringConstant(handle, "kSecAttrKeyTypeRSA"); AttrIsPermanent = Dlfcn.GetStringConstant(handle, "kSecAttrIsPermanent"); PublicKeyAttrs = Dlfcn.GetStringConstant(handle, "kSecPublicKeyAttrs"); PrivateKeyAttrs = Dlfcn.GetStringConstant(handle, "kSecPrivateKeyAttrs"); ClassKey = Dlfcn.GetStringConstant(handle, "kSecClassKey"); Class = Dlfcn.GetStringConstant(handle, "kSecClass"); AttrKeyClass = Dlfcn.GetStringConstant(handle, "kSecAttrKeyClass"); AttrKeyClassPublic = Dlfcn.GetStringConstant(handle, "kSecAttrKeyClassPublic"); AttrKeyClassPrivate = Dlfcn.GetStringConstant(handle, "kSecAttrKeyClassPrivate"); ReturnData = Dlfcn.GetStringConstant(handle, "kSecReturnData"); ReturnPersistentRef = Dlfcn.GetStringConstant(handle, "kSecReturnPersistentRef"); AttrAccessibleWhenUnlocked = Dlfcn.GetStringConstant(handle, "kSecAttrAccessibleWhenUnlocked"); AttrAccessible = Dlfcn.GetStringConstant(handle, "kSecAttrAccessible"); ReturnRef = Dlfcn.GetStringConstant(handle, "kSecReturnRef"); ValueData = Dlfcn.GetStringConstant(handle, "kSecValueData"); } finally { Dlfcn.dlclose(handle); } }
public void FieldExists() { var failed_fields = new List <string> (); Errors = 0; int n = 0; foreach (var p in AllProperties()) { var f = p.GetCustomAttribute <FieldAttribute> (); if (f == null) { continue; } string name = f.SymbolName; if (Skip(name)) { continue; } string path = FindLibrary(f.LibraryName); IntPtr lib = Dlfcn.dlopen(path, 0); if (Dlfcn.GetIndirect(lib, name) == IntPtr.Zero) { ReportError("Could not find the field '{0}' in {1}", name, path); failed_fields.Add(name); } Dlfcn.dlclose(lib); n++; } Assert.AreEqual(0, Errors, "{0} errors found in {1} fields validated: {2}", Errors, n, string.Join(", ", failed_fields)); }
static CFAllocator() { var handle = Dlfcn.dlopen(Constants.CoreFoundationLibrary, 0); null_ptr = Dlfcn.GetIntPtr(handle, "kCFAllocatorNull"); Dlfcn.dlclose(handle); }
public void Exif43Fields() { // documented as new in iOS 4.3 - https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGImageProperties_Reference/Reference/reference.html IntPtr lib = Dlfcn.dlopen(Constants.ImageIOLibrary, 0); try { if (TestRuntime.CheckSystemAndSDKVersion(6, 0)) { // symbols are available in iOS 6.0 beta 1 Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifCameraOwnerName"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifCameraOwnerName"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifBodySerialNumber"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifBodySerialNumber"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensSpecification"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensSpecification"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensMake"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensMake"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensModel"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensModel"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensSerialNumber"), Is.Not.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensSerialNumber"); } else { // but symbols are not available in iOS 5.1.1 Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifCameraOwnerName"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifCameraOwnerName"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifBodySerialNumber"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifBodySerialNumber"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensSpecification"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensSpecification"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensMake"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensMake"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensModel"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensModel"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyExifLensSerialNumber"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyExifLensSerialNumber"); } } finally { Dlfcn.dlclose(lib); } }
public void CameraMaker() { // since only Canon and Nikon have dictionary key values I assume the others are "placeholder" at the moment !?! Assert.NotNull(CGImageProperties.MakerCanonDictionary, "MakerCanonDictionary"); Assert.NotNull(CGImageProperties.MakerNikonDictionary, "MakerNikonDictionary"); // iOS 8.3 finally fixed them :) if (TestRuntime.CheckiOSSystemVersion(8, 3)) { Assert.NotNull(CGImageProperties.MakerMinoltaDictionary, "MakerMinoltaDictionary"); Assert.NotNull(CGImageProperties.MakerFujiDictionary, "MakerFujiDictionary"); Assert.NotNull(CGImageProperties.MakerOlympusDictionary, "MakerOlympusDictionary"); Assert.NotNull(CGImageProperties.MakerPentaxDictionary, "MakerPentaxDictionary"); return; } // documented as new in iOS 4.0 - https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGImageProperties_Reference/Reference/reference.html // but symbols are not available in iOS 5.1.1 // this test will fail if Apple decide to include them in the future IntPtr lib = Dlfcn.dlopen(Constants.ImageIOLibrary, 0); try { Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyMakerMinoltaDictionary"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyMakerMinoltaDictionary"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyMakerFujiDictionary"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyMakerFujiDictionary"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyMakerOlympusDictionary"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyMakerOlympusDictionary"); Assert.That(Dlfcn.dlsym(lib, "kCGImagePropertyMakerPentaxDictionary"), Is.EqualTo(IntPtr.Zero), "kCGImagePropertyMakerPentaxDictionary"); } finally { Dlfcn.dlclose(lib); } }
static CVImageBuffer() { var handle = Dlfcn.dlopen(Constants.CoreVideoLibrary, 0); if (handle == IntPtr.Zero) { return; } try { CGColorSpaceKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCGColorSpaceKey"); GammaLevelKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferGammaLevelKey"); CleanApertureKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCleanApertureKey"); PreferredCleanApertureKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferPreferredCleanApertureKey"); CleanApertureWidthKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCleanApertureWidthKey"); CleanApertureHeightKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCleanApertureHeightKey"); CleanApertureHorizontalOffsetKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCleanApertureHorizontalOffsetKey"); CleanApertureVerticalOffsetKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferCleanApertureVerticalOffsetKey"); FieldCountKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldCountKey"); FieldDetailKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldDetailKey"); FieldDetailTemporalTopFirst = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldDetailTemporalTopFirst"); FieldDetailTemporalBottomFirst = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldDetailTemporalBottomFirst"); FieldDetailSpatialFirstLineEarly = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldDetailSpatialFirstLineEarly"); FieldDetailSpatialFirstLineLate = Dlfcn.GetStringConstant(handle, "kCVImageBufferFieldDetailSpatialFirstLineLate"); PixelAspectRatioKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferPixelAspectRatioKey"); PixelAspectRatioHorizontalSpacingKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferPixelAspectRatioHorizontalSpacingKey"); PixelAspectRatioVerticalSpacingKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferPixelAspectRatioVerticalSpacingKey"); DisplayDimensionsKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferDisplayDimensionsKey"); DisplayWidthKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferDisplayWidthKey"); DisplayHeightKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferDisplayHeightKey"); YCbCrMatrixKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferYCbCrMatrixKey"); YCbCrMatrix_ITU_R_709_2 = Dlfcn.GetStringConstant(handle, "kCVImageBufferYCbCrMatrix_ITU_R_709_2"); YCbCrMatrix_ITU_R_601_4 = Dlfcn.GetStringConstant(handle, "kCVImageBufferYCbCrMatrix_ITU_R_601_4"); YCbCrMatrix_SMPTE_240M_1995 = Dlfcn.GetStringConstant(handle, "kCVImageBufferYCbCrMatrix_SMPTE_240M_1995"); ChromaSubsamplingKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaSubsamplingKey"); ChromaSubsampling_420 = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaSubsampling_420"); ChromaSubsampling_422 = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaSubsampling_422"); ChromaSubsampling_411 = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaSubsampling_411"); TransferFunctionKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferTransferFunctionKey"); TransferFunction_ITU_R_709_2 = Dlfcn.GetStringConstant(handle, "kCVImageBufferTransferFunction_ITU_R_709_2"); TransferFunction_SMPTE_240M_1995 = Dlfcn.GetStringConstant(handle, "kCVImageBufferTransferFunction_SMPTE_240M_1995"); TransferFunction_UseGamma = Dlfcn.GetStringConstant(handle, "kCVImageBufferTransferFunction_UseGamma"); ChromaLocationTopFieldKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocationTopFieldKey"); ChromaLocationBottomFieldKey = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocationBottomFieldKey"); ChromaLocation_Left = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_Left"); ChromaLocation_Center = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_Center"); ChromaLocation_TopLeft = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_TopLeft"); ChromaLocation_Top = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_Top"); ChromaLocation_BottomLeft = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_BottomLeft"); ChromaLocation_Bottom = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_Bottom"); ChromaLocation_DV420 = Dlfcn.GetStringConstant(handle, "kCVImageBufferChromaLocation_DV420"); } finally { Dlfcn.dlclose(handle); } }
static CGPDFInfo() { IntPtr h = Dlfcn.dlopen(Constants.CoreGraphicsLibrary, 0); try { kCGPDFContextTitle = Dlfcn.GetIndirect(h, "kCGPDFContextTitle"); kCGPDFContextAuthor = Dlfcn.GetIndirect(h, "kCGPDFContextAuthor"); kCGPDFContextSubject = Dlfcn.GetIndirect(h, "kCGPDFContextSubject"); kCGPDFContextKeywords = Dlfcn.GetIndirect(h, "kCGPDFContextKeywords"); kCGPDFContextCreator = Dlfcn.GetIndirect(h, "kCGPDFContextCreator"); kCGPDFContextOwnerPassword = Dlfcn.GetIndirect(h, "kCGPDFContextOwnerPassword"); kCGPDFContextUserPassword = Dlfcn.GetIndirect(h, "kCGPDFContextUserPassword"); kCGPDFContextEncryptionKeyLength = Dlfcn.GetIndirect(h, "kCGPDFContextEncryptionKeyLength"); kCGPDFContextAllowsPrinting = Dlfcn.GetIndirect(h, "kCGPDFContextAllowsPrinting"); kCGPDFContextAllowsCopying = Dlfcn.GetIndirect(h, "kCGPDFContextAllowsCopying"); #if false kCGPDFContextOutputIntent = Dlfcn.GetIndirect(h, "kCGPDFContextOutputIntent"); kCGPDFXOutputIntentSubtype = Dlfcn.GetIndirect(h, "kCGPDFXOutputIntentSubtype"); kCGPDFXOutputConditionIdentifier = Dlfcn.GetIndirect(h, "kCGPDFXOutputConditionIdentifier"); kCGPDFXOutputCondition = Dlfcn.GetIndirect(h, "kCGPDFXOutputCondition"); kCGPDFXRegistryName = Dlfcn.GetIndirect(h, "kCGPDFXRegistryName"); kCGPDFXInfo = Dlfcn.GetIndirect(h, "kCGPDFXInfo"); kCGPDFXDestinationOutputProfile = Dlfcn.GetIndirect(h, "kCGPDFXDestinationOutputProfile"); kCGPDFContextOutputIntents = Dlfcn.GetIndirect(h, "kCGPDFContextOutputIntents"); #endif } finally { Dlfcn.dlclose(h); } }
static ABPersonSocialProfile() { var handle = Dlfcn.dlopen(Constants.AddressBookLibrary, 0); if (handle == IntPtr.Zero) { return; } try { URLKey = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileURLKey"); ServiceKey = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceKey"); UsernameKey = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileUsernameKey"); UserIdentifierKey = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileUserIdentifierKey"); ServiceTwitter = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceTwitter"); ServiceGameCenter = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceGameCenter"); ServiceFacebook = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceFacebook"); ServiceMyspace = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceMyspace"); ServiceLinkedIn = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceLinkedIn"); ServiceFlickr = Dlfcn.GetStringConstant(handle, "kABPersonSocialProfileServiceFlickr"); } finally { Dlfcn.dlclose(handle); } }
private PlatformPerformance() { var handle = Dlfcn.dlopen("/usr/lib/libSystem.dylib", 0); self = Dlfcn.GetIntPtr(handle, "mach_task_self_"); Dlfcn.dlclose(handle); }
static CFHTTPMessage() { var handle = Dlfcn.dlopen(Constants.CFNetworkLibrary, 0); if (handle == IntPtr.Zero) { throw new InvalidOperationException(); } try { _HTTPVersion1_0 = GetStringConstant(handle, "kCFHTTPVersion1_0"); _HTTPVersion1_1 = GetStringConstant(handle, "kCFHTTPVersion1_1"); _AuthenticationSchemeBasic = GetStringConstant( handle, "kCFHTTPAuthenticationSchemeBasic"); _AuthenticationSchemeNegotiate = GetStringConstant( handle, "kCFHTTPAuthenticationSchemeNegotiate"); _AuthenticationSchemeNTLM = GetStringConstant( handle, "kCFHTTPAuthenticationSchemeNTLM"); _AuthenticationSchemeDigest = GetStringConstant( handle, "kCFHTTPAuthenticationSchemeDigest"); _AuthenticationUsername = GetStringConstant( handle, "kCFHTTPAuthenticationUsername"); _AuthenticationPassword = GetStringConstant( handle, "kCFHTTPAuthenticationPassword"); _AuthenticationAccountDomain = GetStringConstant( handle, "kCFHTTPAuthenticationAccountDomain"); } finally { Dlfcn.dlclose(handle); } }
public void Sqlite3() { var lib = Dlfcn.dlopen("/usr/lib/libsqlite3.dylib", 0); Assert.That(lib, Is.Not.EqualTo(IntPtr.Zero), "/usr/lib/libsqlite3.dylib"); try { Assert.That(Dlfcn.dlsym(lib, "sqlite3_bind_int"), Is.Not.EqualTo(IntPtr.Zero), "sqlite3_bind_int"); // iOS does not have some symbols defined - if that change/fail in the future we'll need to update Mono.Data.Sqlite // note: Apple devices (at least iOS and AppleTV) running 10.x have a more recent version of libsqlite which includes _key and _rekey var version = TestRuntime.CheckXcodeVersion(8, 0); if (version && (Runtime.Arch == Arch.DEVICE)) { Assert.That(Dlfcn.dlsym(lib, "sqlite3_key"), Is.Not.EqualTo(IntPtr.Zero), "sqlite3_key"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_rekey"), Is.Not.EqualTo(IntPtr.Zero), "sqlite3_rekey"); } else { Assert.That(Dlfcn.dlsym(lib, "sqlite3_key"), Is.EqualTo(IntPtr.Zero), "sqlite3_key"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_rekey"), Is.EqualTo(IntPtr.Zero), "sqlite3_rekey"); } Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_database_name"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_database_name"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_database_name16"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_database_name16"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_origin_name"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_origin_name"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_origin_name16"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_origin_name16"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_table_name"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_table_name"); Assert.That(Dlfcn.dlsym(lib, "sqlite3_column_table_name16"), Is.EqualTo(IntPtr.Zero), "sqlite3_column_table_name16"); } finally { Dlfcn.dlclose(lib); } }
public void CopyProperties() { // what we had to answer with 5.2 for http://stackoverflow.com/q/10753108/220643 IntPtr lib = Dlfcn.dlopen(Constants.ImageIOLibrary, 0); try { NSString kCGImageSourceShouldCache = Dlfcn.GetStringConstant(lib, "kCGImageSourceShouldCache"); NSString kCGImagePropertyPixelWidth = Dlfcn.GetStringConstant(lib, "kCGImagePropertyPixelWidth"); NSString kCGImagePropertyPixelHeight = Dlfcn.GetStringConstant(lib, "kCGImagePropertyPixelHeight"); #if MONOMAC using (var imageSource = CGImageSource.FromUrl(fileUrl)) { #else using (var imageSource = CGImageSource.FromUrl(NSUrl.FromFilename(filename))) { #endif using (var dict = new NSMutableDictionary()) { dict [kCGImageSourceShouldCache] = NSNumber.FromBoolean(false); using (var props = imageSource.CopyProperties(dict)) { Assert.Null(props.ValueForKey(kCGImagePropertyPixelWidth), "kCGImagePropertyPixelWidth"); Assert.Null(props.ValueForKey(kCGImagePropertyPixelHeight), "kCGImagePropertyPixelHeight"); NSNumber n = (NSNumber)props ["FileSize"]; // image is "optimized" for devices (and a lot bigger at 10351 bytes ;-) Assert.That((int)n, Is.AtLeast(7318), "FileSize"); } } } } finally { Dlfcn.dlclose(lib); } }
static CVPixelBuffer() { var handle = Dlfcn.dlopen(Constants.CoreVideoLibrary, 0); if (handle == IntPtr.Zero) { return; } try { PixelFormatTypeKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferPixelFormatTypeKey"); MemoryAllocatorKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferMemoryAllocatorKey"); WidthKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferWidthKey"); HeightKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferHeightKey"); ExtendedPixelsLeftKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferExtendedPixelsLeftKey"); ExtendedPixelsTopKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferExtendedPixelsTopKey"); ExtendedPixelsRightKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferExtendedPixelsRightKey"); ExtendedPixelsBottomKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferExtendedPixelsBottomKey"); BytesPerRowAlignmentKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferBytesPerRowAlignmentKey"); CGBitmapContextCompatibilityKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferCGBitmapContextCompatibilityKey"); CGImageCompatibilityKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferCGImageCompatibilityKey"); OpenGLCompatibilityKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferOpenGLCompatibilityKey"); IOSurfacePropertiesKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferIOSurfacePropertiesKey"); PlaneAlignmentKey = Dlfcn.GetStringConstant(handle, "kCVPixelBufferPlaneAlignmentKey"); CVImageBufferType = CVPixelBufferGetTypeID(); } finally { Dlfcn.dlclose(handle); } }
static CMTimeRange() { var lib = Dlfcn.dlopen(Constants.CoreMediaLibrary, 0); if (lib != IntPtr.Zero) { try { var retZero = Dlfcn.dlsym(lib, "kCMTimeRangeZero"); Zero = (CMTimeRange)Marshal.PtrToStructure(retZero, typeof(CMTimeRange)); var retInvalid = Dlfcn.dlsym(lib, "kCMTimeRangeInvalid"); #if !XAMCORE_3_0 Invalid = (CMTimeRange)Marshal.PtrToStructure(retInvalid, typeof(CMTimeRange)); #endif InvalidRange = (CMTimeRange)Marshal.PtrToStructure(retInvalid, typeof(CMTimeRange)); var retMappingInvalid = Dlfcn.dlsym(lib, "kCMTimeMappingInvalid"); if (retMappingInvalid != IntPtr.Zero) { InvalidMapping = (CMTimeRange)Marshal.PtrToStructure(retMappingInvalid, typeof(CMTimeRange)); } TimeMappingSourceKey = Dlfcn.GetStringConstant(lib, "kCMTimeMappingSourceKey"); TimeMappingTargetKey = Dlfcn.GetStringConstant(lib, "kCMTimeMappingTargetKey"); } finally { Dlfcn.dlclose(lib); } } }
static CTFontNameKeyId() { var handle = Dlfcn.dlopen(Constants.CoreTextLibrary, 0); if (handle == IntPtr.Zero) { return; } try { Copyright = Dlfcn.GetStringConstant(handle, "kCTFontCopyrightNameKey"); Family = Dlfcn.GetStringConstant(handle, "kCTFontFamilyNameKey"); SubFamily = Dlfcn.GetStringConstant(handle, "kCTFontSubFamilyNameKey"); Style = Dlfcn.GetStringConstant(handle, "kCTFontStyleNameKey"); Unique = Dlfcn.GetStringConstant(handle, "kCTFontUniqueNameKey"); Full = Dlfcn.GetStringConstant(handle, "kCTFontFullNameKey"); Version = Dlfcn.GetStringConstant(handle, "kCTFontVersionNameKey"); PostScript = Dlfcn.GetStringConstant(handle, "kCTFontPostScriptNameKey"); Trademark = Dlfcn.GetStringConstant(handle, "kCTFontTrademarkNameKey"); Manufacturer = Dlfcn.GetStringConstant(handle, "kCTFontManufacturerNameKey"); Designer = Dlfcn.GetStringConstant(handle, "kCTFontDesignerNameKey"); Description = Dlfcn.GetStringConstant(handle, "kCTFontDescriptionNameKey"); VendorUrl = Dlfcn.GetStringConstant(handle, "kCTFontVendorURLNameKey"); DesignerUrl = Dlfcn.GetStringConstant(handle, "kCTFontDesignerURLNameKey"); License = Dlfcn.GetStringConstant(handle, "kCTFontLicenseNameKey"); LicenseUrl = Dlfcn.GetStringConstant(handle, "kCTFontLicenseURLNameKey"); SampleText = Dlfcn.GetStringConstant(handle, "kCTFontSampleTextNameKey"); PostscriptCid = Dlfcn.GetStringConstant(handle, "kCTFontPostScriptCIDNameKey"); } finally { Dlfcn.dlclose(handle); } }
static CFHTTPStream() { var handle = Dlfcn.dlopen(Constants.CFNetworkLibrary, 0); if (handle == IntPtr.Zero) { throw new InvalidOperationException(); } try { _AttemptPersistentConnection = GetStringConstant( handle, "kCFStreamPropertyHTTPAttemptPersistentConnection"); _FinalURL = GetStringConstant( handle, "kCFStreamPropertyHTTPFinalURL"); _FinalRequest = GetStringConstant( handle, "kCFStreamPropertyHTTPFinalRequest"); _Proxy = GetStringConstant( handle, "kCFStreamPropertyHTTPProxy"); _RequestBytesWrittenCount = GetStringConstant( handle, "kCFStreamPropertyHTTPRequestBytesWrittenCount"); _ResponseHeader = GetStringConstant( handle, "kCFStreamPropertyHTTPResponseHeader"); _ShouldAutoredirect = GetStringConstant( handle, "kCFStreamPropertyHTTPShouldAutoredirect"); } finally { Dlfcn.dlclose(handle); } }
static void Main(string[] args) { IntPtr h = Dlfcn.dlopen(Constants.CoreGraphicsLibrary, 0); NSApplication.Init(); NSApplication.Main(args); Dlfcn.dlclose(h); }
static AudioSessionRouteChangeEventArgs () { var lib = Dlfcn.dlopen (Constants.AudioToolboxLibrary, 0); route_change_key = Dlfcn.GetIntPtr (lib, "kAudioSession_RouteChangeKey_Reason"); previous_route_key = Dlfcn.GetIntPtr (lib, "kAudioSession_AudioRouteChangeKey_PreviousRouteDescription"); current_route_key = Dlfcn.GetIntPtr (lib, "kAudioSession_AudioRouteChangeKey_CurrentRouteDescription"); Dlfcn.dlclose (lib); }
public void FieldExists() { var failed_fields = new List <string> (); Errors = 0; int c = 0, n = 0; foreach (Type t in Assembly.GetTypes()) { if (Skip(t) || SkipDueToAttribute(t)) { continue; } if (LogProgress) { Console.WriteLine("{0}. {1}", c++, t.FullName); } foreach (var p in t.GetProperties(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) { // looking for properties with getters only if (p.CanWrite || !p.CanRead) { continue; } if (SkipDueToAttribute(p)) { continue; } var f = p.GetCustomAttribute <FieldAttribute> (); if (f == null) { continue; } string name = f.SymbolName; if (Skip(name)) { continue; } string path = FindLibrary(f.LibraryName); IntPtr lib = Dlfcn.dlopen(path, 0); if (Dlfcn.GetIndirect(lib, name) == IntPtr.Zero) { ReportError("Could not find the field '{0}' in {1}", name, path); failed_fields.Add(name); } Dlfcn.dlclose(lib); n++; } } Assert.AreEqual(0, Errors, "{0} errors found in {1} fields validated: {2}", Errors, n, string.Join(", ", failed_fields)); }
static double GetConstant(string constantName) { var handle = Dlfcn.dlopen(Constants.CoreLocationLibrary, 0); try { return(Dlfcn.GetDouble(handle, constantName)); } finally { Dlfcn.dlclose(handle); } }
static CMMemoryPool() { var handle = Dlfcn.dlopen(Constants.CoreMediaLibrary, 0); try { AgeOutPeriodSelector = Dlfcn.GetIntPtr(handle, "kCMMemoryPoolOption_AgeOutPeriod"); } finally { Dlfcn.dlclose(handle); } }
static CFDictionary() { var lib = Dlfcn.dlopen(Constants.CoreFoundationLibrary, 0); try { KeyCallbacks = Dlfcn.GetIndirect(lib, "kCFTypeDictionaryKeyCallBacks"); ValueCallbacks = Dlfcn.GetIndirect(lib, "kCFTypeDictionaryValueCallBacks"); } finally { Dlfcn.dlclose(lib); } }
public void TerminateForInvalidReceipt() { TestRuntime.AssertSystemVersion(PlatformName.iOS, 7, 1, throwIfOtherPlatform: false); // not yet documented - seems to kill the app on purpose ?!? on both sim and devices //SKReceiptRefreshRequest.TerminateForInvalidReceipt (); IntPtr sk = Dlfcn.dlopen("/System/Library/Frameworks/StoreKit.framework/StoreKit", 1); IntPtr fp = Dlfcn.dlsym(sk, "SKTerminateForInvalidReceipt"); Assert.That(fp, Is.Not.EqualTo(IntPtr.Zero), "pointer"); Dlfcn.dlclose(sk); }
// we just want to confirm the symbol exists so `dlsym` can be disabled protected void Check(Assembly a) { Errors = 0; ErrorData.Clear(); int n = 0; foreach (var t in a.GetTypes()) { foreach (var m in t.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static)) { if ((m.Attributes & MethodAttributes.PinvokeImpl) == 0) { continue; } var dllimport = m.GetCustomAttribute <DllImportAttribute> (); string name = dllimport.EntryPoint ?? m.Name; switch (name) { // known not to be present in ARM64 case "objc_msgSend_stret": case "objc_msgSendSuper_stret": // the linker normally removes them (IntPtr.Size optimization) continue; } string path = dllimport.Value; switch (path) { case "__Internal": // load from executable path = null; break; case "libc": // we still have some rogue/not-fully-qualified DllImport path = "/usr/lib/libSystem.dylib"; break; } var lib = Dlfcn.dlopen(path, 0); var h = Dlfcn.dlsym(lib, name); if (h == IntPtr.Zero) { ReportError("Could not find the symbol '{0}' in {1}", name, path); } Dlfcn.dlclose(lib); n++; } } Assert.AreEqual(0, Errors, "{0} errors found in {1} symbol lookups{2}", Errors, n, Errors == 0 ? string.Empty : ":\n" + ErrorData.ToString() + "\n"); }
static CFSet() { var handle = Dlfcn.dlopen(Constants.CoreFoundationLibrary, 0); try { var kCFTypeSetCallBacksPtr = Dlfcn.GetIndirect(handle, "kCFTypeSetCallBacks"); kCFTypeSetCallBacks = (CFSetCallBacks)Marshal.PtrToStructure(kCFTypeSetCallBacksPtr, typeof(CFSetCallBacks)); var kCFCopyStringSetCallBacksPtr = Dlfcn.GetIndirect(handle, "kCFCopyStringSetCallBacks"); kCFCopyStringSetCallBacks = (CFSetCallBacks)Marshal.PtrToStructure(kCFCopyStringSetCallBacksPtr, typeof(CFSetCallBacks)); } finally { Dlfcn.dlclose(handle); } }
static void Init() { if (kLossyCompressionQuality != IntPtr.Zero) { return; } IntPtr lib = Dlfcn.dlopen(Constants.ImageIOLibrary, 0); kLossyCompressionQuality = Dlfcn.GetIntPtr(lib, "kCGImageDestinationLossyCompressionQuality"); kBackgroundColor = Dlfcn.GetIntPtr(lib, "kCGImageDestinationBackgroundColor"); Dlfcn.dlclose(lib); }