CFBundle.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:7k
- /*
- File: CFBundle.h
-
- Contains: CoreFoundation bundle
-
- Version: Technology: Mac OS X
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1999-2001 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __CFBUNDLE__
- #define __CFBUNDLE__
- #ifndef __CFBASE__
- #include "CFBase.h"
- #endif
- #ifndef __CFARRAY__
- #include "CFArray.h"
- #endif
- #ifndef __CFSTRING__
- #include "CFString.h"
- #endif
- #ifndef __CFURL__
- #include "CFURL.h"
- #endif
- #ifndef __CFDICTIONARY__
- #include "CFDictionary.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- typedef struct __CFBundle * CFBundleRef;
- typedef struct __CFBundle * CFPlugInRef;
- extern const CFStringRef kCFBundleInfoDictionaryVersionKey;
- extern const CFStringRef kCFBundleExecutableKey;
- extern const CFStringRef kCFBundleIdentifierKey;
- extern const CFStringRef kCFBundleVersionKey;
- extern const CFStringRef kCFBundleDevelopmentRegionKey;
- extern const CFStringRef kCFBundleNameKey;
- /* ===================== Finding Bundles ===================== */
- EXTERN_API_C( CFBundleRef )
- CFBundleGetMainBundle (void);
- EXTERN_API_C( CFBundleRef )
- CFBundleGetBundleWithIdentifier (CFStringRef bundleID);
- /* A bundle can name itself by providing a key in the info dictionary. */
- /* This facility is meant to allow bundle-writers to get hold of their */
- /* bundle from their code without having to know where it was on the disk. */
- /* This is meant to be a replacement mechanism for +bundleForClass: users. */
- /* ===================== Creating Bundles ===================== */
- EXTERN_API_C( UInt32 )
- CFBundleGetTypeID (void);
- EXTERN_API_C( CFBundleRef )
- CFBundleCreate (CFAllocatorRef allocator,
- CFURLRef bundleURL);
- /* Might return an existing instance with the ref-count bumped. */
- EXTERN_API_C( CFArrayRef )
- CFBundleCreateBundlesFromDirectory (CFAllocatorRef allocator,
- CFURLRef directoryURL,
- CFStringRef bundleType);
- /* Create instances for all bundles in the given directory matching the given */
- /* type (or all of them if bundleType is NULL) */
- /* ==================== Basic Bundle Info ==================== */
- EXTERN_API_C( CFURLRef )
- CFBundleCopyBundleURL (CFBundleRef bundle);
- EXTERN_API_C( CFDictionaryRef )
- CFBundleGetInfoDictionary (CFBundleRef bundle);
- EXTERN_API_C( CFStringRef )
- CFBundleGetIdentifier (CFBundleRef bundle);
- EXTERN_API_C( CFStringRef )
- CFBundleGetDevelopmentRegion (CFBundleRef bundle);
- EXTERN_API_C( CFURLRef )
- CFBundleCopySupportFilesDirectoryURL (CFBundleRef bundle);
- EXTERN_API_C( CFURLRef )
- CFBundleCopyResourcesDirectoryURL (CFBundleRef bundle);
- /* ------------- Basic Bundle Info without a CFBundle instance ------------- */
- /* This API is provided to enable developers to use access a bundle Info */
- /* dictionary without having to create an instance of CFBundle. */
- EXTERN_API_C( CFDictionaryRef )
- CFBundleCopyInfoDictionaryInDirectory (CFURLRef bundleURL);
- /* ==================== Resource Handling API ==================== */
- EXTERN_API_C( CFURLRef )
- CFBundleCopyResourceURL (CFBundleRef bundle,
- CFStringRef resourceName,
- CFStringRef resourceType,
- CFStringRef subDirName);
- EXTERN_API_C( CFArrayRef )
- CFBundleCopyResourceURLsOfType (CFBundleRef bundle,
- CFStringRef resourceType,
- CFStringRef subDirName);
- EXTERN_API_C( CFStringRef )
- CFBundleCopyLocalizedString (CFBundleRef bundle,
- CFStringRef key,
- CFStringRef value,
- CFStringRef tableName);
- #define CFCopyLocalizedString(key, comment) CFBundleCopyLocalizedString(CFBundleGetMainBundle(), (key), (key), NULL)
- #define CFCopyLocalizedStringFromTable(key, tbl, comment) CFBundleCopyLocalizedString(CFBundleGetMainBundle(), (key), (key), (tbl))
- #define CFCopyLocalizedStringFromTableInBundle(key, tbl, bundle, comment) CFBundleCopyLocalizedString((bundle), (key), (key), (tbl))
- /* ------------- Resource Handling without a CFBundle instance ------------- */
- /* This API is provided to enable developers to use the CFBundle resource */
- /* searching policy without having to create an instance of CFBundle. */
- /* Because of caching behavior when a CFBundle instance exists, it will be faster */
- /* to actually create a CFBundle if you need to access several resources. */
- EXTERN_API_C( CFURLRef )
- CFBundleCopyResourceURLInDirectory (CFURLRef bundleURL,
- CFStringRef resourceName,
- CFStringRef resourceType,
- CFStringRef subDirName);
- EXTERN_API_C( CFArrayRef )
- CFBundleCopyResourceURLsOfTypeInDirectory (CFURLRef bundleURL,
- CFStringRef resourceType,
- CFStringRef subDirName);
- /* ==================== Primitive Code Loading API ==================== */
- /* This API abstracts the variosu different executable formats supported on various platforms. */
- /* It can load DYLD, CFM, or DLL shared libraries (on their appropriate platforms) and gives a */
- /* uniform API for looking up functions. */
- EXTERN_API_C( CFURLRef )
- CFBundleCopyExecutableURL (CFBundleRef bundle);
- EXTERN_API_C( Boolean )
- CFBundleIsExecutableLoaded (CFBundleRef bundle);
- EXTERN_API_C( Boolean )
- CFBundleLoadExecutable (CFBundleRef bundle);
- EXTERN_API_C( void )
- CFBundleUnloadExecutable (CFBundleRef bundle);
- EXTERN_API_C( void *)
- CFBundleGetFunctionPointerForName (CFBundleRef bundle,
- CFStringRef functionName);
- EXTERN_API_C( void )
- CFBundleGetFunctionPointersForNames (CFBundleRef bundle,
- CFArrayRef functionNames,
- void * ftbl[]);
- /* ==================== Getting a bundles plugIn ==================== */
- EXTERN_API_C( CFPlugInRef )
- CFBundleGetPlugIn (CFBundleRef bundle);
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __CFBUNDLE__ */