1ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 2ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** pymactoolbox.h - globals defined in mactoolboxglue.c 3ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 4ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef Py_PYMACTOOLBOX_H 5ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#define Py_PYMACTOOLBOX_H 6ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifdef __cplusplus 7ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh extern "C" { 8ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif 9ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 10ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#include <Carbon/Carbon.h> 11ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 12ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 13ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#include <QuickTime/QuickTime.h> 14ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 15ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 16ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 17ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** Helper routines for error codes and such. 18ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 19ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehchar *PyMac_StrError(int); /* strerror with mac errors */ 20ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *PyMac_OSErrException; /* Exception for OSErr */ 21ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_GetOSErrException(void); /* Initialize & return it */ 22ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */ 23ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */ 24ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 25ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert 26ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh fsspec->path */ 27ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* __LP64__ */ 28ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 29ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 30ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** These conversion routines are defined in mactoolboxglue.c itself. 31ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 32ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetOSType(PyObject *, OSType *); /* argument parser for OSType */ 33ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildOSType(OSType); /* Convert OSType to PyObject */ 34ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 35ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildNumVersion(NumVersion);/* Convert NumVersion to PyObject */ 36ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 37ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetStr255(PyObject *, Str255); /* argument parser for Str255 */ 38ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildStr255(Str255); /* Convert Str255 to PyObject */ 39ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildOptStr255(Str255); /* Convert Str255 to PyObject, 40ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh NULL to None */ 41ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 42ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetRect(PyObject *, Rect *); /* argument parser for Rect */ 43ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildRect(Rect *); /* Convert Rect to PyObject */ 44ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 45ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetPoint(PyObject *, Point *); /* argument parser for Point */ 46ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildPoint(Point); /* Convert Point to PyObject */ 47ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 48ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetEventRecord(PyObject *, EventRecord *); /* argument parser for 49ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh EventRecord */ 50ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildEventRecord(EventRecord *); /* Convert EventRecord to 51ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh PyObject */ 52ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 53ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetFixed(PyObject *, Fixed *); /* argument parser for Fixed */ 54ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildFixed(Fixed); /* Convert Fixed to PyObject */ 55ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_Getwide(PyObject *, wide *); /* argument parser for wide */ 56ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_Buildwide(wide *); /* Convert wide to PyObject */ 57ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 58ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 59ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** The rest of the routines are implemented by extension modules. If they are 60ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** dynamically loaded mactoolboxglue will contain a stub implementation of the 61ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** routine, which imports the module, whereupon the module's init routine will 62ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** communicate the routine pointer back to the stub. 63ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** If USE_TOOLBOX_OBJECT_GLUE is not defined there is no glue code, and the 64ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** extension modules simply declare the routine. This is the case for static 65ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** builds (and could be the case for MacPython CFM builds, because CFM extension 66ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** modules can reference each other without problems). 67ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 68ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 69ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifdef USE_TOOLBOX_OBJECT_GLUE 70ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 71ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** These macros are used in the module init code. If we use toolbox object glue 72ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** it sets the function pointer to point to the real function. 73ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 74ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn) { \ 75ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh extern PyObject *(*PyMacGluePtr_##rtn)(object); \ 76ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh PyMacGluePtr_##rtn = _##rtn; \ 77ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh} 78ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn) { \ 79ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh extern int (*PyMacGluePtr_##rtn)(PyObject *, object *); \ 80ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh PyMacGluePtr_##rtn = _##rtn; \ 81ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh} 82ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#else 83ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* 84ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** If we don't use toolbox object glue the init macros are empty. Moreover, we define 85ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh** _xxx_New to be the same as xxx_New, and the code in mactoolboxglue isn't included. 86ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh*/ 87ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn) 88ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn) 89ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* USE_TOOLBOX_OBJECT_GLUE */ 90ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 91ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* macfs exports */ 92ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 93ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetFSSpec(PyObject *, FSSpec *); /* argument parser for FSSpec */ 94ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildFSSpec(FSSpec *); /* Convert FSSpec to PyObject */ 95ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 96ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 97ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehint PyMac_GetFSRef(PyObject *, FSRef *); /* argument parser for FSRef */ 98ffab958fd8d42ed7227d83007350e61555a1fa36Andrew HsiehPyObject *PyMac_BuildFSRef(FSRef *); /* Convert FSRef to PyObject */ 99ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 100ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* AE exports */ 101ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *AEDesc_New(AppleEvent *); /* XXXX Why passed by address?? */ 102ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *AEDesc_NewBorrowed(AppleEvent *); 103ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int AEDesc_Convert(PyObject *, AppleEvent *); 104ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 105ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Cm exports */ 106ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CmpObj_New(Component); 107ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CmpObj_Convert(PyObject *, Component *); 108ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CmpInstObj_New(ComponentInstance); 109ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CmpInstObj_Convert(PyObject *, ComponentInstance *); 110ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 111ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Ctl exports */ 112ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 113ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CtlObj_New(ControlHandle); 114ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CtlObj_Convert(PyObject *, ControlHandle *); 115ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 116ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 117ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Dlg exports */ 118ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 119ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *DlgObj_New(DialogPtr); 120ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int DlgObj_Convert(PyObject *, DialogPtr *); 121ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *DlgObj_WhichDialog(DialogPtr); 122ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 123ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 124ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Drag exports */ 125ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 126ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *DragObj_New(DragReference); 127ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int DragObj_Convert(PyObject *, DragReference *); 128ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 129ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 130ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* List exports */ 131ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 132ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *ListObj_New(ListHandle); 133ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int ListObj_Convert(PyObject *, ListHandle *); 134ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 135ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 136ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Menu exports */ 137ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 138ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *MenuObj_New(MenuHandle); 139ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int MenuObj_Convert(PyObject *, MenuHandle *); 140ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 141ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 142ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Qd exports */ 143ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 144ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *GrafObj_New(GrafPtr); 145ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int GrafObj_Convert(PyObject *, GrafPtr *); 146ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *BMObj_New(BitMapPtr); 147ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int BMObj_Convert(PyObject *, BitMapPtr *); 148ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *QdRGB_New(RGBColor *); 149ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int QdRGB_Convert(PyObject *, RGBColor *); 150ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 151ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 152ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Qdoffs exports */ 153ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 154ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *GWorldObj_New(GWorldPtr); 155ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int GWorldObj_Convert(PyObject *, GWorldPtr *); 156ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 157ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 158ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Qt exports */ 159ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 160ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *TrackObj_New(Track); 161ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int TrackObj_Convert(PyObject *, Track *); 162ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *MovieObj_New(Movie); 163ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int MovieObj_Convert(PyObject *, Movie *); 164ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *MovieCtlObj_New(MovieController); 165ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int MovieCtlObj_Convert(PyObject *, MovieController *); 166ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *TimeBaseObj_New(TimeBase); 167ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int TimeBaseObj_Convert(PyObject *, TimeBase *); 168ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *UserDataObj_New(UserData); 169ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int UserDataObj_Convert(PyObject *, UserData *); 170ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *MediaObj_New(Media); 171ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int MediaObj_Convert(PyObject *, Media *); 172ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 173ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 174ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Res exports */ 175ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *ResObj_New(Handle); 176ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int ResObj_Convert(PyObject *, Handle *); 177ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *OptResObj_New(Handle); 178ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int OptResObj_Convert(PyObject *, Handle *); 179ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 180ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* TE exports */ 181ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 182ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *TEObj_New(TEHandle); 183ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int TEObj_Convert(PyObject *, TEHandle *); 184ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 185ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 186ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* Win exports */ 187ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifndef __LP64__ 188ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *WinObj_New(WindowPtr); 189ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int WinObj_Convert(PyObject *, WindowPtr *); 190ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *WinObj_WhichWindow(WindowPtr); 191ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif /* !__LP64__ */ 192ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 193ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh/* CF exports */ 194ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFObj_New(CFTypeRef); 195ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFObj_Convert(PyObject *, CFTypeRef *); 196ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFTypeRefObj_New(CFTypeRef); 197ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFTypeRefObj_Convert(PyObject *, CFTypeRef *); 198ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFStringRefObj_New(CFStringRef); 199ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFStringRefObj_Convert(PyObject *, CFStringRef *); 200ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFMutableStringRefObj_New(CFMutableStringRef); 201ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFMutableStringRefObj_Convert(PyObject *, CFMutableStringRef *); 202ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFArrayRefObj_New(CFArrayRef); 203ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFArrayRefObj_Convert(PyObject *, CFArrayRef *); 204ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFMutableArrayRefObj_New(CFMutableArrayRef); 205ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFMutableArrayRefObj_Convert(PyObject *, CFMutableArrayRef *); 206ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFDictionaryRefObj_New(CFDictionaryRef); 207ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFDictionaryRefObj_Convert(PyObject *, CFDictionaryRef *); 208ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFMutableDictionaryRefObj_New(CFMutableDictionaryRef); 209ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFMutableDictionaryRefObj_Convert(PyObject *, CFMutableDictionaryRef *); 210ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern PyObject *CFURLRefObj_New(CFURLRef); 211ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int CFURLRefObj_Convert(PyObject *, CFURLRef *); 212ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsiehextern int OptionalCFURLRefObj_Convert(PyObject *, CFURLRef *); 213ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh 214ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#ifdef __cplusplus 215ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh } 216ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif 217ffab958fd8d42ed7227d83007350e61555a1fa36Andrew Hsieh#endif 218