#if !defined(__COREFOUNDATION_CFBASE__)
#define __COREFOUNDATION_CFBASE__ 1
#if (defined(__CYGWIN32__) || defined(_WIN32)) && !defined (__WIN32__)
#define __WIN32__ 1
#endif
#if defined(_MSC_VER) && defined(_M_IX86)
#define __i386__ 1
#endif
#if defined(__WIN32__)
#include <windows.h>
#endif
#if defined(__GNUC__)
#include <stdint.h>
#include <stdbool.h>
#elif defined(__WIN32__)
#include <GNUCompatibility/stdint.h>
#include <GNUCompatibility/stdbool.h>
#endif
#include <AvailabilityMacros.h>
#if defined(__MACH__)
#include <CarbonCore/MacTypes.h>
#endif
#if !defined(__MACTYPES__)
typedef unsigned char Boolean;
typedef unsigned char UInt8;
typedef signed char SInt8;
typedef unsigned short UInt16;
typedef signed short SInt16;
typedef unsigned long UInt32;
typedef signed long SInt32;
typedef uint64_t UInt64;
typedef int64_t SInt64;
typedef float Float32;
typedef double Float64;
typedef unsigned short UniChar;
typedef unsigned char * StringPtr;
typedef const unsigned char * ConstStringPtr;
typedef unsigned char Str255[256];
typedef const unsigned char * ConstStr255Param;
typedef SInt16 OSErr;
typedef SInt32 OSStatus;
#endif
#if !defined(__MACTYPES__) || (defined(UNIVERSAL_INTERFACES_VERSION) && UNIVERSAL_INTERFACES_VERSION < 0x0340)
typedef UInt32 UTF32Char;
typedef UInt16 UTF16Char;
typedef UInt8 UTF8Char;
#endif
#if defined(__cplusplus)
extern "C" {
#endif
#ifndef NULL
#ifdef __GNUG__
#define NULL __null
#else
#ifndef __cplusplus
#define NULL ((void *)0)
#else
#define NULL 0
#endif
#endif
#endif
#if !defined(TRUE)
#define TRUE 1
#endif
#if !defined(FALSE)
#define FALSE 0
#endif
#if defined(__WIN32__)
#undef CF_EXPORT
#if defined(CF_BUILDING_CF)
#define CF_EXPORT __declspec(dllexport) extern
#else
#define CF_EXPORT __declspec(dllimport) extern
#endif
#elif defined(macintosh)
#if defined(__MWERKS__)
#define CF_EXPORT __declspec(export) extern
#endif
#endif
#if !defined(CF_EXPORT)
#define CF_EXPORT extern
#endif
#if !defined(CF_INLINE)
#if defined(__GNUC__) && (__GNUC__ == 4) && !defined(DEBUG)
#define CF_INLINE static __inline__ __attribute__((always_inline))
#elif defined(__GNUC__)
#define CF_INLINE static __inline__
#elif defined(__MWERKS__) || defined(__cplusplus)
#define CF_INLINE static inline
#elif defined(_MSC_VER)
#define CF_INLINE static __inline
#elif defined(__WIN32__)
#define CF_INLINE static __inline__
#endif
#endif
CF_EXPORT double kCFCoreFoundationVersionNumber;
#define kCFCoreFoundationVersionNumber10_0 196.4
#define kCFCoreFoundationVersionNumber10_0_3 196.5
#define kCFCoreFoundationVersionNumber10_1 226.0
#define kCFCoreFoundationVersionNumber10_1_2 227.2
#define kCFCoreFoundationVersionNumber10_1_4 227.3
#define kCFCoreFoundationVersionNumber10_2 263.0
#define kCFCoreFoundationVersionNumber10_3 299.0
#define kCFCoreFoundationVersionNumber10_3_3 299.3
#define kCFCoreFoundationVersionNumber10_3_4 299.31
#if defined(__ppc64__)
typedef UInt32 CFTypeID;
typedef UInt64 CFOptionFlags;
typedef UInt32 CFHashCode;
typedef SInt64 CFIndex;
#else
typedef UInt32 CFTypeID;
typedef UInt32 CFOptionFlags;
typedef UInt32 CFHashCode;
typedef SInt32 CFIndex;
#endif
typedef const void * CFTypeRef;
typedef const struct __CFString * CFStringRef;
typedef struct __CFString * CFMutableStringRef;
typedef CFTypeRef CFPropertyListRef;
typedef enum {
kCFCompareLessThan = -1,
kCFCompareEqualTo = 0,
kCFCompareGreaterThan = 1
} CFComparisonResult;
typedef CFComparisonResult (*CFComparatorFunction)(const void *val1, const void *val2, void *context);
enum {
kCFNotFound = -1
};
typedef struct {
CFIndex location;
CFIndex length;
} CFRange;
#if defined(CF_INLINE)
CF_INLINE CFRange CFRangeMake(CFIndex loc, CFIndex len) {
CFRange range;
range.location = loc;
range.length = len;
return range;
}
#else
#define CFRangeMake(LOC, LEN) __CFRangeMake(LOC, LEN)
#endif
CF_EXPORT
CFRange __CFRangeMake(CFIndex loc, CFIndex len);
#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED
typedef const struct __CFNull * CFNullRef;
CF_EXPORT
CFTypeID CFNullGetTypeID(void);
CF_EXPORT
const CFNullRef kCFNull;
#endif
typedef const struct __CFAllocator * CFAllocatorRef;
CF_EXPORT
const CFAllocatorRef kCFAllocatorDefault;
CF_EXPORT
const CFAllocatorRef kCFAllocatorSystemDefault;
CF_EXPORT
const CFAllocatorRef kCFAllocatorMalloc;
CF_EXPORT
const CFAllocatorRef kCFAllocatorMallocZone AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
CF_EXPORT
const CFAllocatorRef kCFAllocatorNull;
CF_EXPORT
const CFAllocatorRef kCFAllocatorUseContext;
typedef const void * (*CFAllocatorRetainCallBack)(const void *info);
typedef void (*CFAllocatorReleaseCallBack)(const void *info);
typedef CFStringRef (*CFAllocatorCopyDescriptionCallBack)(const void *info);
typedef void * (*CFAllocatorAllocateCallBack)(CFIndex allocSize, CFOptionFlags hint, void *info);
typedef void * (*CFAllocatorReallocateCallBack)(void *ptr, CFIndex newsize, CFOptionFlags hint, void *info);
typedef void (*CFAllocatorDeallocateCallBack)(void *ptr, void *info);
typedef CFIndex (*CFAllocatorPreferredSizeCallBack)(CFIndex size, CFOptionFlags hint, void *info);
typedef struct {
CFIndex version;
void * info;
CFAllocatorRetainCallBack retain;
CFAllocatorReleaseCallBack release;
CFAllocatorCopyDescriptionCallBack copyDescription;
CFAllocatorAllocateCallBack allocate;
CFAllocatorReallocateCallBack reallocate;
CFAllocatorDeallocateCallBack deallocate;
CFAllocatorPreferredSizeCallBack preferredSize;
} CFAllocatorContext;
CF_EXPORT
CFTypeID CFAllocatorGetTypeID(void);
CF_EXPORT
void CFAllocatorSetDefault(CFAllocatorRef allocator);
CF_EXPORT
CFAllocatorRef CFAllocatorGetDefault(void);
CF_EXPORT
CFAllocatorRef CFAllocatorCreate(CFAllocatorRef allocator, CFAllocatorContext *context);
CF_EXPORT
void *CFAllocatorAllocate(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint);
CF_EXPORT
void *CFAllocatorReallocate(CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint);
CF_EXPORT
void CFAllocatorDeallocate(CFAllocatorRef allocator, void *ptr);
CF_EXPORT
CFIndex CFAllocatorGetPreferredSizeForSize(CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint);
CF_EXPORT
void CFAllocatorGetContext(CFAllocatorRef allocator, CFAllocatorContext *context);
CF_EXPORT
CFTypeID CFGetTypeID(CFTypeRef cf);
CF_EXPORT
CFStringRef CFCopyTypeIDDescription(CFTypeID type_id);
CF_EXPORT
CFTypeRef CFRetain(CFTypeRef cf);
CF_EXPORT
void CFRelease(CFTypeRef cf);
CF_EXPORT
CFIndex CFGetRetainCount(CFTypeRef cf);
CF_EXPORT
CFTypeRef CFMakeCollectable(CFTypeRef cf) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
CF_EXPORT
Boolean CFEqual(CFTypeRef cf1, CFTypeRef cf2);
CF_EXPORT
CFHashCode CFHash(CFTypeRef cf);
CF_EXPORT
CFStringRef CFCopyDescription(CFTypeRef cf);
CF_EXPORT
CFAllocatorRef CFGetAllocator(CFTypeRef cf);
#if defined(__cplusplus)
}
#endif
#endif