2 * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
21 * @APPLE_LICENSE_HEADER_END@
24 Copyright (c) 1999-2005, Apple, Inc. All rights reserved.
27 #if !defined(__COREFOUNDATION_CFBUNDLEPRIV__)
28 #define __COREFOUNDATION_CFBUNDLEPRIV__ 1
30 #include <CoreFoundation/CFBase.h>
31 #include <CoreFoundation/CFArray.h>
32 #include <CoreFoundation/CFBundle.h>
33 #include <CoreFoundation/CFDictionary.h>
34 #include <CoreFoundation/CFString.h>
35 #include <CoreFoundation/CFURL.h>
37 #if defined(__cplusplus)
43 const CFStringRef _kCFBundlePackageTypeKey
;
45 const CFStringRef _kCFBundleSignatureKey
;
47 const CFStringRef _kCFBundleIconFileKey
;
49 const CFStringRef _kCFBundleDocumentTypesKey
;
51 const CFStringRef _kCFBundleURLTypesKey
;
53 /* Localizable Finder stuff */
55 const CFStringRef _kCFBundleDisplayNameKey
;
57 const CFStringRef _kCFBundleShortVersionStringKey
;
59 const CFStringRef _kCFBundleGetInfoStringKey
;
61 const CFStringRef _kCFBundleGetInfoHTMLKey
;
63 /* Sub-keys for CFBundleDocumentTypes dictionaries */
65 const CFStringRef _kCFBundleTypeNameKey
;
67 const CFStringRef _kCFBundleTypeRoleKey
;
69 const CFStringRef _kCFBundleTypeIconFileKey
;
71 const CFStringRef _kCFBundleTypeOSTypesKey
;
73 const CFStringRef _kCFBundleTypeExtensionsKey
;
75 const CFStringRef _kCFBundleTypeMIMETypesKey
;
77 /* Sub-keys for CFBundleURLTypes dictionaries */
79 const CFStringRef _kCFBundleURLNameKey
;
81 const CFStringRef _kCFBundleURLIconFileKey
;
83 const CFStringRef _kCFBundleURLSchemesKey
;
85 /* Compatibility key names */
87 const CFStringRef _kCFBundleOldExecutableKey
;
89 const CFStringRef _kCFBundleOldInfoDictionaryVersionKey
;
91 const CFStringRef _kCFBundleOldNameKey
;
93 const CFStringRef _kCFBundleOldIconFileKey
;
95 const CFStringRef _kCFBundleOldDocumentTypesKey
;
97 const CFStringRef _kCFBundleOldShortVersionStringKey
;
99 /* Compatibility CFBundleDocumentTypes key names */
101 const CFStringRef _kCFBundleOldTypeNameKey
;
103 const CFStringRef _kCFBundleOldTypeRoleKey
;
105 const CFStringRef _kCFBundleOldTypeIconFileKey
;
107 const CFStringRef _kCFBundleOldTypeExtensions1Key
;
109 const CFStringRef _kCFBundleOldTypeExtensions2Key
;
111 const CFStringRef _kCFBundleOldTypeOSTypesKey
;
114 /* Functions for examining directories that may "look like" bundles */
117 CFURLRef
_CFBundleCopyBundleURLForExecutableURL(CFURLRef url
);
120 Boolean
_CFBundleURLLooksLikeBundle(CFURLRef url
);
123 CFBundleRef
_CFBundleCreateIfLooksLikeBundle(CFAllocatorRef allocator
, CFURLRef url
);
126 CFBundleRef
_CFBundleGetMainBundleIfLooksLikeBundle(void);
129 CFBundleRef
_CFBundleCreateWithExecutableURLIfLooksLikeBundle(CFAllocatorRef allocator
, CFURLRef url
);
132 CFURLRef
_CFBundleCopyMainBundleExecutableURL(Boolean
*looksLikeBundle
);
134 /* Functions for examining the structure of a bundle */
137 CFURLRef
_CFBundleCopyResourceForkURL(CFBundleRef bundle
);
140 CFURLRef
_CFBundleCopyInfoPlistURL(CFBundleRef bundle
);
143 /* Functions for working without a bundle instance */
146 CFURLRef
_CFBundleCopyExecutableURLInDirectory(CFURLRef url
);
149 CFURLRef
_CFBundleCopyOtherExecutableURLInDirectory(CFURLRef url
);
152 /* Functions for dealing with localizations */
155 void _CFBundleGetLanguageAndRegionCodes(SInt32
*languageCode
, SInt32
*regionCode
);
156 // may return -1 for either one if no code can be found
159 Boolean
CFBundleGetLocalizationInfoForLocalization(CFStringRef localizationName
, SInt32
*languageCode
, SInt32
*regionCode
, SInt32
*scriptCode
, CFStringEncoding
*stringEncoding
);
160 /* Gets the appropriate language and region codes, and the default */
161 /* script code and encoding, for the localization specified. */
162 /* Pass NULL for the localizationName to get these values for the */
163 /* single most preferred localization in the current context. */
164 /* May give -1 if there is no language or region code for a particular */
165 /* localization. Returns false if CFBundle has no information about */
166 /* the given localization. */
169 CFStringRef
CFBundleCopyLocalizationForLocalizationInfo(SInt32 languageCode
, SInt32 regionCode
, SInt32 scriptCode
, CFStringEncoding stringEncoding
);
170 /* Returns the default localization for the combination of codes */
171 /* specified. Pass in -1 for language, region code, or script code, or */
172 /* 0xFFFF for stringEncoding, if you do not wish to specify one of these. */
175 void _CFBundleSetDefaultLocalization(CFStringRef localizationName
);
178 /* Functions for dealing specifically with CFM executables */
181 void *_CFBundleGetCFMFunctionPointerForName(CFBundleRef bundle
, CFStringRef funcName
);
184 void _CFBundleGetCFMFunctionPointersForNames(CFBundleRef bundle
, CFArrayRef functionNames
, void *ftbl
[]);
187 void _CFBundleSetCFMConnectionID(CFBundleRef bundle
, void *connectionID
);
190 /* Miscellaneous functions */
193 CFStringRef
_CFBundleCopyFileTypeForFileURL(CFURLRef url
);
196 CFStringRef
_CFBundleCopyFileTypeForFileData(CFDataRef data
);
199 Boolean
_CFBundleGetHasChanged(CFBundleRef bundle
);
202 void _CFBundleFlushCaches(void);
205 void _CFBundleFlushCachesForURL(CFURLRef url
);
208 void _CFBundleSetStringsFilesShared(CFBundleRef bundle
, Boolean flag
);
211 Boolean
_CFBundleGetStringsFilesShared(CFBundleRef bundle
);
214 /* Functions deprecated as SPI */
217 CFDictionaryRef
_CFBundleGetLocalInfoDictionary(CFBundleRef bundle
); // deprecated in favor of CFBundleGetLocalInfoDictionary
220 CFPropertyListRef
_CFBundleGetValueForInfoKey(CFBundleRef bundle
, CFStringRef key
); // deprecated in favor of CFBundleGetValueForInfoDictionaryKey
223 Boolean
_CFBundleGetPackageInfoInDirectory(CFAllocatorRef alloc
, CFURLRef url
, UInt32
*packageType
, UInt32
*packageCreator
); // deprecated in favor of CFBundleGetPackageInfoInDirectory
226 CFDictionaryRef
_CFBundleCopyInfoDictionaryInResourceFork(CFURLRef url
); // CFBundleCopyInfoDictionaryForURL is usually preferred; for the main bundle, however, no special call is necessary, since the info dictionary will automatically be available whether the app is bundled or not
229 CFURLRef
_CFBundleCopyPrivateFrameworksURL(CFBundleRef bundle
); // deprecated in favor of CFBundleCopyPrivateFrameworksURL
232 CFURLRef
_CFBundleCopySharedFrameworksURL(CFBundleRef bundle
); // deprecated in favor of CFBundleCopySharedFrameworksURL
235 CFURLRef
_CFBundleCopySharedSupportURL(CFBundleRef bundle
); // deprecated in favor of CFBundleCopySharedSupportURL
238 CFURLRef
_CFBundleCopyBuiltInPlugInsURL(CFBundleRef bundle
); // deprecated in favor of CFBundleCopyBuiltInPlugInsURL
241 CFArrayRef
_CFBundleCopyBundleRegionsArray(CFBundleRef bundle
); // deprecated in favor of CFBundleCopyBundleLocalizations
244 CFURLRef
_CFBundleCopyResourceURLForLanguage(CFBundleRef bundle
, CFStringRef resourceName
, CFStringRef resourceType
, CFStringRef subDirName
, CFStringRef language
); // deprecated in favor of CFBundleCopyResourceURLForLocalization
247 CFArrayRef
_CFBundleCopyResourceURLsOfTypeForLanguage(CFBundleRef bundle
, CFStringRef resourceType
, CFStringRef subDirName
, CFStringRef language
); // deprecated in favor of CFBundleCopyResourceURLsOfTypeForLocalization
250 SInt16
_CFBundleOpenBundleResourceFork(CFBundleRef bundle
); // deprecated in favor of CFBundleOpenBundleResourceMap
253 void _CFBundleCloseBundleResourceFork(CFBundleRef bundle
); // deprecated in favor of CFBundleCloseBundleResourceMap
255 #if defined(__cplusplus)
259 #endif /* ! __COREFOUNDATION_CFBUNDLEPRIV__ */