Changeset 391 for python/trunk/Mac/Modules/ae
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (12 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Mac/Modules/ae/_AEmodule.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Mac/Modules/ae/_AEmodule.c
r2 r391 14 14 /* Macro to test whether a weak-loaded CFM function exists */ 15 15 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ 16 PyErr_SetString(PyExc_NotImplementedError, \17 "Not available in this shared library/OS version"); \18 return NULL; \16 PyErr_SetString(PyExc_NotImplementedError, \ 17 "Not available in this shared library/OS version"); \ 18 return NULL; \ 19 19 }} while(0) 20 20 … … 39 39 static pascal Boolean AEIdleProc(EventRecord *theEvent, long *sleepTime, RgnHandle *mouseRgn) 40 40 { 41 if ( PyOS_InterruptOccurred() ) 42 return 1; 41 if ( PyOS_InterruptOccurred() ) 42 return 1; 43 return 0; 44 } 45 46 AEIdleUPP upp_AEIdleProc; 47 48 static PyObject *AE_Error; 49 50 /* ----------------------- Object type AEDesc ----------------------- */ 51 52 PyTypeObject AEDesc_Type; 53 54 #define AEDesc_Check(x) ((x)->ob_type == &AEDesc_Type || PyObject_TypeCheck((x), &AEDesc_Type)) 55 56 typedef struct AEDescObject { 57 PyObject_HEAD 58 AEDesc ob_itself; 59 int ob_owned; 60 } AEDescObject; 61 62 PyObject *AEDesc_New(AEDesc *itself) 63 { 64 AEDescObject *it; 65 it = PyObject_NEW(AEDescObject, &AEDesc_Type); 66 if (it == NULL) return NULL; 67 it->ob_itself = *itself; 68 it->ob_owned = 1; 69 return (PyObject *)it; 70 } 71 72 int AEDesc_Convert(PyObject *v, AEDesc *p_itself) 73 { 74 if (!AEDesc_Check(v)) 75 { 76 PyErr_SetString(PyExc_TypeError, "AEDesc required"); 43 77 return 0; 44 } 45 46 AEIdleUPP upp_AEIdleProc; 47 48 static PyObject *AE_Error; 49 50 /* ----------------------- Object type AEDesc ----------------------- */ 51 52 PyTypeObject AEDesc_Type; 53 54 #define AEDesc_Check(x) ((x)->ob_type == &AEDesc_Type || PyObject_TypeCheck((x), &AEDesc_Type)) 55 56 typedef struct AEDescObject { 57 PyObject_HEAD 58 AEDesc ob_itself; 59 int ob_owned; 60 } AEDescObject; 61 62 PyObject *AEDesc_New(AEDesc *itself) 63 { 64 AEDescObject *it; 65 it = PyObject_NEW(AEDescObject, &AEDesc_Type); 66 if (it == NULL) return NULL; 67 it->ob_itself = *itself; 68 it->ob_owned = 1; 69 return (PyObject *)it; 70 } 71 72 int AEDesc_Convert(PyObject *v, AEDesc *p_itself) 73 { 74 if (!AEDesc_Check(v)) 75 { 76 PyErr_SetString(PyExc_TypeError, "AEDesc required"); 77 return 0; 78 } 79 *p_itself = ((AEDescObject *)v)->ob_itself; 80 return 1; 78 } 79 *p_itself = ((AEDescObject *)v)->ob_itself; 80 return 1; 81 81 } 82 82 83 83 static void AEDesc_dealloc(AEDescObject *self) 84 84 { 85 if (self->ob_owned) AEDisposeDesc(&self->ob_itself);86 self->ob_type->tp_free((PyObject *)self);85 if (self->ob_owned) AEDisposeDesc(&self->ob_itself); 86 self->ob_type->tp_free((PyObject *)self); 87 87 } 88 88 89 89 static PyObject *AEDesc_AECoerceDesc(AEDescObject *_self, PyObject *_args) 90 90 { 91 PyObject *_res = NULL;92 OSErr _err;93 DescType toType;94 AEDesc result;91 PyObject *_res = NULL; 92 OSErr _err; 93 DescType toType; 94 AEDesc result; 95 95 #ifndef AECoerceDesc 96 PyMac_PRECHECK(AECoerceDesc);97 #endif 98 if (!PyArg_ParseTuple(_args, "O&",99 PyMac_GetOSType, &toType))100 return NULL;101 _err = AECoerceDesc(&_self->ob_itself,102 toType,103 &result);104 if (_err != noErr) return PyMac_Error(_err);105 _res = Py_BuildValue("O&",106 AEDesc_New, &result);107 return _res;96 PyMac_PRECHECK(AECoerceDesc); 97 #endif 98 if (!PyArg_ParseTuple(_args, "O&", 99 PyMac_GetOSType, &toType)) 100 return NULL; 101 _err = AECoerceDesc(&_self->ob_itself, 102 toType, 103 &result); 104 if (_err != noErr) return PyMac_Error(_err); 105 _res = Py_BuildValue("O&", 106 AEDesc_New, &result); 107 return _res; 108 108 } 109 109 110 110 static PyObject *AEDesc_AEDuplicateDesc(AEDescObject *_self, PyObject *_args) 111 111 { 112 PyObject *_res = NULL;113 OSErr _err;114 AEDesc result;112 PyObject *_res = NULL; 113 OSErr _err; 114 AEDesc result; 115 115 #ifndef AEDuplicateDesc 116 PyMac_PRECHECK(AEDuplicateDesc);117 #endif 118 if (!PyArg_ParseTuple(_args, ""))119 return NULL;120 _err = AEDuplicateDesc(&_self->ob_itself,121 &result);122 if (_err != noErr) return PyMac_Error(_err);123 _res = Py_BuildValue("O&",124 AEDesc_New, &result);125 return _res;116 PyMac_PRECHECK(AEDuplicateDesc); 117 #endif 118 if (!PyArg_ParseTuple(_args, "")) 119 return NULL; 120 _err = AEDuplicateDesc(&_self->ob_itself, 121 &result); 122 if (_err != noErr) return PyMac_Error(_err); 123 _res = Py_BuildValue("O&", 124 AEDesc_New, &result); 125 return _res; 126 126 } 127 127 128 128 static PyObject *AEDesc_AECountItems(AEDescObject *_self, PyObject *_args) 129 129 { 130 PyObject *_res = NULL;131 OSErr _err;132 long theCount;130 PyObject *_res = NULL; 131 OSErr _err; 132 long theCount; 133 133 #ifndef AECountItems 134 PyMac_PRECHECK(AECountItems);135 #endif 136 if (!PyArg_ParseTuple(_args, ""))137 return NULL;138 _err = AECountItems(&_self->ob_itself,139 &theCount);140 if (_err != noErr) return PyMac_Error(_err);141 _res = Py_BuildValue("l",142 theCount);143 return _res;134 PyMac_PRECHECK(AECountItems); 135 #endif 136 if (!PyArg_ParseTuple(_args, "")) 137 return NULL; 138 _err = AECountItems(&_self->ob_itself, 139 &theCount); 140 if (_err != noErr) return PyMac_Error(_err); 141 _res = Py_BuildValue("l", 142 theCount); 143 return _res; 144 144 } 145 145 146 146 static PyObject *AEDesc_AEPutPtr(AEDescObject *_self, PyObject *_args) 147 147 { 148 PyObject *_res = NULL;149 OSErr _err;150 long index;151 DescType typeCode;152 char *dataPtr__in__;153 long dataPtr__len__;154 int dataPtr__in_len__;148 PyObject *_res = NULL; 149 OSErr _err; 150 long index; 151 DescType typeCode; 152 char *dataPtr__in__; 153 long dataPtr__len__; 154 int dataPtr__in_len__; 155 155 #ifndef AEPutPtr 156 PyMac_PRECHECK(AEPutPtr);157 #endif 158 if (!PyArg_ParseTuple(_args, "lO&s#",159 &index,160 PyMac_GetOSType, &typeCode,161 &dataPtr__in__, &dataPtr__in_len__))162 return NULL;163 dataPtr__len__ = dataPtr__in_len__;164 _err = AEPutPtr(&_self->ob_itself,165 index,166 typeCode,167 dataPtr__in__, dataPtr__len__);168 if (_err != noErr) return PyMac_Error(_err);169 Py_INCREF(Py_None);170 _res = Py_None;171 return _res;156 PyMac_PRECHECK(AEPutPtr); 157 #endif 158 if (!PyArg_ParseTuple(_args, "lO&s#", 159 &index, 160 PyMac_GetOSType, &typeCode, 161 &dataPtr__in__, &dataPtr__in_len__)) 162 return NULL; 163 dataPtr__len__ = dataPtr__in_len__; 164 _err = AEPutPtr(&_self->ob_itself, 165 index, 166 typeCode, 167 dataPtr__in__, dataPtr__len__); 168 if (_err != noErr) return PyMac_Error(_err); 169 Py_INCREF(Py_None); 170 _res = Py_None; 171 return _res; 172 172 } 173 173 174 174 static PyObject *AEDesc_AEPutDesc(AEDescObject *_self, PyObject *_args) 175 175 { 176 PyObject *_res = NULL;177 OSErr _err;178 long index;179 AEDesc theAEDesc;176 PyObject *_res = NULL; 177 OSErr _err; 178 long index; 179 AEDesc theAEDesc; 180 180 #ifndef AEPutDesc 181 PyMac_PRECHECK(AEPutDesc);182 #endif 183 if (!PyArg_ParseTuple(_args, "lO&",184 &index,185 AEDesc_Convert, &theAEDesc))186 return NULL;187 _err = AEPutDesc(&_self->ob_itself,188 index,189 &theAEDesc);190 if (_err != noErr) return PyMac_Error(_err);191 Py_INCREF(Py_None);192 _res = Py_None;193 return _res;181 PyMac_PRECHECK(AEPutDesc); 182 #endif 183 if (!PyArg_ParseTuple(_args, "lO&", 184 &index, 185 AEDesc_Convert, &theAEDesc)) 186 return NULL; 187 _err = AEPutDesc(&_self->ob_itself, 188 index, 189 &theAEDesc); 190 if (_err != noErr) return PyMac_Error(_err); 191 Py_INCREF(Py_None); 192 _res = Py_None; 193 return _res; 194 194 } 195 195 196 196 static PyObject *AEDesc_AEGetNthPtr(AEDescObject *_self, PyObject *_args) 197 197 { 198 PyObject *_res = NULL;199 OSErr _err;200 long index;201 DescType desiredType;202 AEKeyword theAEKeyword;203 DescType typeCode;204 char *dataPtr__out__;205 long dataPtr__len__;206 int dataPtr__in_len__;198 PyObject *_res = NULL; 199 OSErr _err; 200 long index; 201 DescType desiredType; 202 AEKeyword theAEKeyword; 203 DescType typeCode; 204 char *dataPtr__out__; 205 long dataPtr__len__; 206 int dataPtr__in_len__; 207 207 #ifndef AEGetNthPtr 208 PyMac_PRECHECK(AEGetNthPtr);209 #endif 210 if (!PyArg_ParseTuple(_args, "lO&i",211 &index,212 PyMac_GetOSType, &desiredType,213 &dataPtr__in_len__))214 return NULL;215 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)216 {217 PyErr_NoMemory();218 goto dataPtr__error__;219 }220 dataPtr__len__ = dataPtr__in_len__;221 _err = AEGetNthPtr(&_self->ob_itself,222 index,223 desiredType,224 &theAEKeyword,225 &typeCode,226 dataPtr__out__, dataPtr__len__, &dataPtr__len__);227 if (_err != noErr) return PyMac_Error(_err);228 _res = Py_BuildValue("O&O&s#",229 PyMac_BuildOSType, theAEKeyword,230 PyMac_BuildOSType, typeCode,231 dataPtr__out__, (int)dataPtr__len__);232 free(dataPtr__out__);208 PyMac_PRECHECK(AEGetNthPtr); 209 #endif 210 if (!PyArg_ParseTuple(_args, "lO&i", 211 &index, 212 PyMac_GetOSType, &desiredType, 213 &dataPtr__in_len__)) 214 return NULL; 215 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL) 216 { 217 PyErr_NoMemory(); 218 goto dataPtr__error__; 219 } 220 dataPtr__len__ = dataPtr__in_len__; 221 _err = AEGetNthPtr(&_self->ob_itself, 222 index, 223 desiredType, 224 &theAEKeyword, 225 &typeCode, 226 dataPtr__out__, dataPtr__len__, &dataPtr__len__); 227 if (_err != noErr) return PyMac_Error(_err); 228 _res = Py_BuildValue("O&O&s#", 229 PyMac_BuildOSType, theAEKeyword, 230 PyMac_BuildOSType, typeCode, 231 dataPtr__out__, (int)dataPtr__len__); 232 free(dataPtr__out__); 233 233 dataPtr__error__: ; 234 return _res;234 return _res; 235 235 } 236 236 237 237 static PyObject *AEDesc_AEGetNthDesc(AEDescObject *_self, PyObject *_args) 238 238 { 239 PyObject *_res = NULL;240 OSErr _err;241 long index;242 DescType desiredType;243 AEKeyword theAEKeyword;244 AEDesc result;239 PyObject *_res = NULL; 240 OSErr _err; 241 long index; 242 DescType desiredType; 243 AEKeyword theAEKeyword; 244 AEDesc result; 245 245 #ifndef AEGetNthDesc 246 PyMac_PRECHECK(AEGetNthDesc);247 #endif 248 if (!PyArg_ParseTuple(_args, "lO&",249 &index,250 PyMac_GetOSType, &desiredType))251 return NULL;252 _err = AEGetNthDesc(&_self->ob_itself,253 index,254 desiredType,255 &theAEKeyword,256 &result);257 if (_err != noErr) return PyMac_Error(_err);258 _res = Py_BuildValue("O&O&",259 PyMac_BuildOSType, theAEKeyword,260 AEDesc_New, &result);261 return _res;246 PyMac_PRECHECK(AEGetNthDesc); 247 #endif 248 if (!PyArg_ParseTuple(_args, "lO&", 249 &index, 250 PyMac_GetOSType, &desiredType)) 251 return NULL; 252 _err = AEGetNthDesc(&_self->ob_itself, 253 index, 254 desiredType, 255 &theAEKeyword, 256 &result); 257 if (_err != noErr) return PyMac_Error(_err); 258 _res = Py_BuildValue("O&O&", 259 PyMac_BuildOSType, theAEKeyword, 260 AEDesc_New, &result); 261 return _res; 262 262 } 263 263 264 264 static PyObject *AEDesc_AESizeOfNthItem(AEDescObject *_self, PyObject *_args) 265 265 { 266 PyObject *_res = NULL;267 OSErr _err;268 long index;269 DescType typeCode;270 Size dataSize;266 PyObject *_res = NULL; 267 OSErr _err; 268 long index; 269 DescType typeCode; 270 Size dataSize; 271 271 #ifndef AESizeOfNthItem 272 PyMac_PRECHECK(AESizeOfNthItem);273 #endif 274 if (!PyArg_ParseTuple(_args, "l",275 &index))276 return NULL;277 _err = AESizeOfNthItem(&_self->ob_itself,278 index,279 &typeCode,280 &dataSize);281 if (_err != noErr) return PyMac_Error(_err);282 _res = Py_BuildValue("O&l",283 PyMac_BuildOSType, typeCode,284 dataSize);285 return _res;272 PyMac_PRECHECK(AESizeOfNthItem); 273 #endif 274 if (!PyArg_ParseTuple(_args, "l", 275 &index)) 276 return NULL; 277 _err = AESizeOfNthItem(&_self->ob_itself, 278 index, 279 &typeCode, 280 &dataSize); 281 if (_err != noErr) return PyMac_Error(_err); 282 _res = Py_BuildValue("O&l", 283 PyMac_BuildOSType, typeCode, 284 dataSize); 285 return _res; 286 286 } 287 287 288 288 static PyObject *AEDesc_AEDeleteItem(AEDescObject *_self, PyObject *_args) 289 289 { 290 PyObject *_res = NULL;291 OSErr _err;292 long index;290 PyObject *_res = NULL; 291 OSErr _err; 292 long index; 293 293 #ifndef AEDeleteItem 294 PyMac_PRECHECK(AEDeleteItem);295 #endif 296 if (!PyArg_ParseTuple(_args, "l",297 &index))298 return NULL;299 _err = AEDeleteItem(&_self->ob_itself,300 index);301 if (_err != noErr) return PyMac_Error(_err);302 Py_INCREF(Py_None);303 _res = Py_None;304 return _res;294 PyMac_PRECHECK(AEDeleteItem); 295 #endif 296 if (!PyArg_ParseTuple(_args, "l", 297 &index)) 298 return NULL; 299 _err = AEDeleteItem(&_self->ob_itself, 300 index); 301 if (_err != noErr) return PyMac_Error(_err); 302 Py_INCREF(Py_None); 303 _res = Py_None; 304 return _res; 305 305 } 306 306 307 307 static PyObject *AEDesc_AEPutParamPtr(AEDescObject *_self, PyObject *_args) 308 308 { 309 PyObject *_res = NULL;310 OSErr _err;311 AEKeyword theAEKeyword;312 DescType typeCode;313 char *dataPtr__in__;314 long dataPtr__len__;315 int dataPtr__in_len__;309 PyObject *_res = NULL; 310 OSErr _err; 311 AEKeyword theAEKeyword; 312 DescType typeCode; 313 char *dataPtr__in__; 314 long dataPtr__len__; 315 int dataPtr__in_len__; 316 316 #ifndef AEPutParamPtr 317 PyMac_PRECHECK(AEPutParamPtr);318 #endif 319 if (!PyArg_ParseTuple(_args, "O&O&s#",320 PyMac_GetOSType, &theAEKeyword,321 PyMac_GetOSType, &typeCode,322 &dataPtr__in__, &dataPtr__in_len__))323 return NULL;324 dataPtr__len__ = dataPtr__in_len__;325 _err = AEPutParamPtr(&_self->ob_itself,326 theAEKeyword,327 typeCode,328 dataPtr__in__, dataPtr__len__);329 if (_err != noErr) return PyMac_Error(_err);330 Py_INCREF(Py_None);331 _res = Py_None;332 return _res;317 PyMac_PRECHECK(AEPutParamPtr); 318 #endif 319 if (!PyArg_ParseTuple(_args, "O&O&s#", 320 PyMac_GetOSType, &theAEKeyword, 321 PyMac_GetOSType, &typeCode, 322 &dataPtr__in__, &dataPtr__in_len__)) 323 return NULL; 324 dataPtr__len__ = dataPtr__in_len__; 325 _err = AEPutParamPtr(&_self->ob_itself, 326 theAEKeyword, 327 typeCode, 328 dataPtr__in__, dataPtr__len__); 329 if (_err != noErr) return PyMac_Error(_err); 330 Py_INCREF(Py_None); 331 _res = Py_None; 332 return _res; 333 333 } 334 334 335 335 static PyObject *AEDesc_AEPutParamDesc(AEDescObject *_self, PyObject *_args) 336 336 { 337 PyObject *_res = NULL;338 OSErr _err;339 AEKeyword theAEKeyword;340 AEDesc theAEDesc;337 PyObject *_res = NULL; 338 OSErr _err; 339 AEKeyword theAEKeyword; 340 AEDesc theAEDesc; 341 341 #ifndef AEPutParamDesc 342 PyMac_PRECHECK(AEPutParamDesc);343 #endif 344 if (!PyArg_ParseTuple(_args, "O&O&",345 PyMac_GetOSType, &theAEKeyword,346 AEDesc_Convert, &theAEDesc))347 return NULL;348 _err = AEPutParamDesc(&_self->ob_itself,349 theAEKeyword,350 &theAEDesc);351 if (_err != noErr) return PyMac_Error(_err);352 Py_INCREF(Py_None);353 _res = Py_None;354 return _res;342 PyMac_PRECHECK(AEPutParamDesc); 343 #endif 344 if (!PyArg_ParseTuple(_args, "O&O&", 345 PyMac_GetOSType, &theAEKeyword, 346 AEDesc_Convert, &theAEDesc)) 347 return NULL; 348 _err = AEPutParamDesc(&_self->ob_itself, 349 theAEKeyword, 350 &theAEDesc); 351 if (_err != noErr) return PyMac_Error(_err); 352 Py_INCREF(Py_None); 353 _res = Py_None; 354 return _res; 355 355 } 356 356 357 357 static PyObject *AEDesc_AEGetParamPtr(AEDescObject *_self, PyObject *_args) 358 358 { 359 PyObject *_res = NULL;360 OSErr _err;361 AEKeyword theAEKeyword;362 DescType desiredType;363 DescType typeCode;364 char *dataPtr__out__;365 long dataPtr__len__;366 int dataPtr__in_len__;359 PyObject *_res = NULL; 360 OSErr _err; 361 AEKeyword theAEKeyword; 362 DescType desiredType; 363 DescType typeCode; 364 char *dataPtr__out__; 365 long dataPtr__len__; 366 int dataPtr__in_len__; 367 367 #ifndef AEGetParamPtr 368 PyMac_PRECHECK(AEGetParamPtr);369 #endif 370 if (!PyArg_ParseTuple(_args, "O&O&i",371 PyMac_GetOSType, &theAEKeyword,372 PyMac_GetOSType, &desiredType,373 &dataPtr__in_len__))374 return NULL;375 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)376 {377 PyErr_NoMemory();378 goto dataPtr__error__;379 }380 dataPtr__len__ = dataPtr__in_len__;381 _err = AEGetParamPtr(&_self->ob_itself,382 theAEKeyword,383 desiredType,384 &typeCode,385 dataPtr__out__, dataPtr__len__, &dataPtr__len__);386 if (_err != noErr) return PyMac_Error(_err);387 _res = Py_BuildValue("O&s#",388 PyMac_BuildOSType, typeCode,389 dataPtr__out__, (int)dataPtr__len__);390 free(dataPtr__out__);368 PyMac_PRECHECK(AEGetParamPtr); 369 #endif 370 if (!PyArg_ParseTuple(_args, "O&O&i", 371 PyMac_GetOSType, &theAEKeyword, 372 PyMac_GetOSType, &desiredType, 373 &dataPtr__in_len__)) 374 return NULL; 375 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL) 376 { 377 PyErr_NoMemory(); 378 goto dataPtr__error__; 379 } 380 dataPtr__len__ = dataPtr__in_len__; 381 _err = AEGetParamPtr(&_self->ob_itself, 382 theAEKeyword, 383 desiredType, 384 &typeCode, 385 dataPtr__out__, dataPtr__len__, &dataPtr__len__); 386 if (_err != noErr) return PyMac_Error(_err); 387 _res = Py_BuildValue("O&s#", 388 PyMac_BuildOSType, typeCode, 389 dataPtr__out__, (int)dataPtr__len__); 390 free(dataPtr__out__); 391 391 dataPtr__error__: ; 392 return _res;392 return _res; 393 393 } 394 394 395 395 static PyObject *AEDesc_AEGetParamDesc(AEDescObject *_self, PyObject *_args) 396 396 { 397 PyObject *_res = NULL;398 OSErr _err;399 AEKeyword theAEKeyword;400 DescType desiredType;401 AEDesc result;397 PyObject *_res = NULL; 398 OSErr _err; 399 AEKeyword theAEKeyword; 400 DescType desiredType; 401 AEDesc result; 402 402 #ifndef AEGetParamDesc 403 PyMac_PRECHECK(AEGetParamDesc);404 #endif 405 if (!PyArg_ParseTuple(_args, "O&O&",406 PyMac_GetOSType, &theAEKeyword,407 PyMac_GetOSType, &desiredType))408 return NULL;409 _err = AEGetParamDesc(&_self->ob_itself,410 theAEKeyword,411 desiredType,412 &result);413 if (_err != noErr) return PyMac_Error(_err);414 _res = Py_BuildValue("O&",415 AEDesc_New, &result);416 return _res;403 PyMac_PRECHECK(AEGetParamDesc); 404 #endif 405 if (!PyArg_ParseTuple(_args, "O&O&", 406 PyMac_GetOSType, &theAEKeyword, 407 PyMac_GetOSType, &desiredType)) 408 return NULL; 409 _err = AEGetParamDesc(&_self->ob_itself, 410 theAEKeyword, 411 desiredType, 412 &result); 413 if (_err != noErr) return PyMac_Error(_err); 414 _res = Py_BuildValue("O&", 415 AEDesc_New, &result); 416 return _res; 417 417 } 418 418 419 419 static PyObject *AEDesc_AESizeOfParam(AEDescObject *_self, PyObject *_args) 420 420 { 421 PyObject *_res = NULL;422 OSErr _err;423 AEKeyword theAEKeyword;424 DescType typeCode;425 Size dataSize;421 PyObject *_res = NULL; 422 OSErr _err; 423 AEKeyword theAEKeyword; 424 DescType typeCode; 425 Size dataSize; 426 426 #ifndef AESizeOfParam 427 PyMac_PRECHECK(AESizeOfParam);428 #endif 429 if (!PyArg_ParseTuple(_args, "O&",430 PyMac_GetOSType, &theAEKeyword))431 return NULL;432 _err = AESizeOfParam(&_self->ob_itself,433 theAEKeyword,434 &typeCode,435 &dataSize);436 if (_err != noErr) return PyMac_Error(_err);437 _res = Py_BuildValue("O&l",438 PyMac_BuildOSType, typeCode,439 dataSize);440 return _res;427 PyMac_PRECHECK(AESizeOfParam); 428 #endif 429 if (!PyArg_ParseTuple(_args, "O&", 430 PyMac_GetOSType, &theAEKeyword)) 431 return NULL; 432 _err = AESizeOfParam(&_self->ob_itself, 433 theAEKeyword, 434 &typeCode, 435 &dataSize); 436 if (_err != noErr) return PyMac_Error(_err); 437 _res = Py_BuildValue("O&l", 438 PyMac_BuildOSType, typeCode, 439 dataSize); 440 return _res; 441 441 } 442 442 443 443 static PyObject *AEDesc_AEDeleteParam(AEDescObject *_self, PyObject *_args) 444 444 { 445 PyObject *_res = NULL;446 OSErr _err;447 AEKeyword theAEKeyword;445 PyObject *_res = NULL; 446 OSErr _err; 447 AEKeyword theAEKeyword; 448 448 #ifndef AEDeleteParam 449 PyMac_PRECHECK(AEDeleteParam);450 #endif 451 if (!PyArg_ParseTuple(_args, "O&",452 PyMac_GetOSType, &theAEKeyword))453 return NULL;454 _err = AEDeleteParam(&_self->ob_itself,455 theAEKeyword);456 if (_err != noErr) return PyMac_Error(_err);457 Py_INCREF(Py_None);458 _res = Py_None;459 return _res;449 PyMac_PRECHECK(AEDeleteParam); 450 #endif 451 if (!PyArg_ParseTuple(_args, "O&", 452 PyMac_GetOSType, &theAEKeyword)) 453 return NULL; 454 _err = AEDeleteParam(&_self->ob_itself, 455 theAEKeyword); 456 if (_err != noErr) return PyMac_Error(_err); 457 Py_INCREF(Py_None); 458 _res = Py_None; 459 return _res; 460 460 } 461 461 462 462 static PyObject *AEDesc_AEGetAttributePtr(AEDescObject *_self, PyObject *_args) 463 463 { 464 PyObject *_res = NULL;465 OSErr _err;466 AEKeyword theAEKeyword;467 DescType desiredType;468 DescType typeCode;469 char *dataPtr__out__;470 long dataPtr__len__;471 int dataPtr__in_len__;464 PyObject *_res = NULL; 465 OSErr _err; 466 AEKeyword theAEKeyword; 467 DescType desiredType; 468 DescType typeCode; 469 char *dataPtr__out__; 470 long dataPtr__len__; 471 int dataPtr__in_len__; 472 472 #ifndef AEGetAttributePtr 473 PyMac_PRECHECK(AEGetAttributePtr);474 #endif 475 if (!PyArg_ParseTuple(_args, "O&O&i",476 PyMac_GetOSType, &theAEKeyword,477 PyMac_GetOSType, &desiredType,478 &dataPtr__in_len__))479 return NULL;480 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)481 {482 PyErr_NoMemory();483 goto dataPtr__error__;484 }485 dataPtr__len__ = dataPtr__in_len__;486 _err = AEGetAttributePtr(&_self->ob_itself,487 theAEKeyword,488 desiredType,489 &typeCode,490 dataPtr__out__, dataPtr__len__, &dataPtr__len__);491 if (_err != noErr) return PyMac_Error(_err);492 _res = Py_BuildValue("O&s#",493 PyMac_BuildOSType, typeCode,494 dataPtr__out__, (int)dataPtr__len__);495 free(dataPtr__out__);473 PyMac_PRECHECK(AEGetAttributePtr); 474 #endif 475 if (!PyArg_ParseTuple(_args, "O&O&i", 476 PyMac_GetOSType, &theAEKeyword, 477 PyMac_GetOSType, &desiredType, 478 &dataPtr__in_len__)) 479 return NULL; 480 if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL) 481 { 482 PyErr_NoMemory(); 483 goto dataPtr__error__; 484 } 485 dataPtr__len__ = dataPtr__in_len__; 486 _err = AEGetAttributePtr(&_self->ob_itself, 487 theAEKeyword, 488 desiredType, 489 &typeCode, 490 dataPtr__out__, dataPtr__len__, &dataPtr__len__); 491 if (_err != noErr) return PyMac_Error(_err); 492 _res = Py_BuildValue("O&s#", 493 PyMac_BuildOSType, typeCode, 494 dataPtr__out__, (int)dataPtr__len__); 495 free(dataPtr__out__); 496 496 dataPtr__error__: ; 497 return _res;497 return _res; 498 498 } 499 499 500 500 static PyObject *AEDesc_AEGetAttributeDesc(AEDescObject *_self, PyObject *_args) 501 501 { 502 PyObject *_res = NULL;503 OSErr _err;504 AEKeyword theAEKeyword;505 DescType desiredType;506 AEDesc result;502 PyObject *_res = NULL; 503 OSErr _err; 504 AEKeyword theAEKeyword; 505 DescType desiredType; 506 AEDesc result; 507 507 #ifndef AEGetAttributeDesc 508 PyMac_PRECHECK(AEGetAttributeDesc);509 #endif 510 if (!PyArg_ParseTuple(_args, "O&O&",511 PyMac_GetOSType, &theAEKeyword,512 PyMac_GetOSType, &desiredType))513 return NULL;514 _err = AEGetAttributeDesc(&_self->ob_itself,515 theAEKeyword,516 desiredType,517 &result);518 if (_err != noErr) return PyMac_Error(_err);519 _res = Py_BuildValue("O&",520 AEDesc_New, &result);521 return _res;508 PyMac_PRECHECK(AEGetAttributeDesc); 509 #endif 510 if (!PyArg_ParseTuple(_args, "O&O&", 511 PyMac_GetOSType, &theAEKeyword, 512 PyMac_GetOSType, &desiredType)) 513 return NULL; 514 _err = AEGetAttributeDesc(&_self->ob_itself, 515 theAEKeyword, 516 desiredType, 517 &result); 518 if (_err != noErr) return PyMac_Error(_err); 519 _res = Py_BuildValue("O&", 520 AEDesc_New, &result); 521 return _res; 522 522 } 523 523 524 524 static PyObject *AEDesc_AESizeOfAttribute(AEDescObject *_self, PyObject *_args) 525 525 { 526 PyObject *_res = NULL;527 OSErr _err;528 AEKeyword theAEKeyword;529 DescType typeCode;530 Size dataSize;526 PyObject *_res = NULL; 527 OSErr _err; 528 AEKeyword theAEKeyword; 529 DescType typeCode; 530 Size dataSize; 531 531 #ifndef AESizeOfAttribute 532 PyMac_PRECHECK(AESizeOfAttribute);533 #endif 534 if (!PyArg_ParseTuple(_args, "O&",535 PyMac_GetOSType, &theAEKeyword))536 return NULL;537 _err = AESizeOfAttribute(&_self->ob_itself,538 theAEKeyword,539 &typeCode,540 &dataSize);541 if (_err != noErr) return PyMac_Error(_err);542 _res = Py_BuildValue("O&l",543 PyMac_BuildOSType, typeCode,544 dataSize);545 return _res;532 PyMac_PRECHECK(AESizeOfAttribute); 533 #endif 534 if (!PyArg_ParseTuple(_args, "O&", 535 PyMac_GetOSType, &theAEKeyword)) 536 return NULL; 537 _err = AESizeOfAttribute(&_self->ob_itself, 538 theAEKeyword, 539 &typeCode, 540 &dataSize); 541 if (_err != noErr) return PyMac_Error(_err); 542 _res = Py_BuildValue("O&l", 543 PyMac_BuildOSType, typeCode, 544 dataSize); 545 return _res; 546 546 } 547 547 548 548 static PyObject *AEDesc_AEPutAttributePtr(AEDescObject *_self, PyObject *_args) 549 549 { 550 PyObject *_res = NULL;551 OSErr _err;552 AEKeyword theAEKeyword;553 DescType typeCode;554 char *dataPtr__in__;555 long dataPtr__len__;556 int dataPtr__in_len__;550 PyObject *_res = NULL; 551 OSErr _err; 552 AEKeyword theAEKeyword; 553 DescType typeCode; 554 char *dataPtr__in__; 555 long dataPtr__len__; 556 int dataPtr__in_len__; 557 557 #ifndef AEPutAttributePtr 558 PyMac_PRECHECK(AEPutAttributePtr);559 #endif 560 if (!PyArg_ParseTuple(_args, "O&O&s#",561 PyMac_GetOSType, &theAEKeyword,562 PyMac_GetOSType, &typeCode,563 &dataPtr__in__, &dataPtr__in_len__))564 return NULL;565 dataPtr__len__ = dataPtr__in_len__;566 _err = AEPutAttributePtr(&_self->ob_itself,567 theAEKeyword,568 typeCode,569 dataPtr__in__, dataPtr__len__);570 if (_err != noErr) return PyMac_Error(_err);571 Py_INCREF(Py_None);572 _res = Py_None;573 return _res;558 PyMac_PRECHECK(AEPutAttributePtr); 559 #endif 560 if (!PyArg_ParseTuple(_args, "O&O&s#", 561 PyMac_GetOSType, &theAEKeyword, 562 PyMac_GetOSType, &typeCode, 563 &dataPtr__in__, &dataPtr__in_len__)) 564 return NULL; 565 dataPtr__len__ = dataPtr__in_len__; 566 _err = AEPutAttributePtr(&_self->ob_itself, 567 theAEKeyword, 568 typeCode, 569 dataPtr__in__, dataPtr__len__); 570 if (_err != noErr) return PyMac_Error(_err); 571 Py_INCREF(Py_None); 572 _res = Py_None; 573 return _res; 574 574 } 575 575 576 576 static PyObject *AEDesc_AEPutAttributeDesc(AEDescObject *_self, PyObject *_args) 577 577 { 578 PyObject *_res = NULL;579 OSErr _err;580 AEKeyword theAEKeyword;581 AEDesc theAEDesc;578 PyObject *_res = NULL; 579 OSErr _err; 580 AEKeyword theAEKeyword; 581 AEDesc theAEDesc; 582 582 #ifndef AEPutAttributeDesc 583 PyMac_PRECHECK(AEPutAttributeDesc);584 #endif 585 if (!PyArg_ParseTuple(_args, "O&O&",586 PyMac_GetOSType, &theAEKeyword,587 AEDesc_Convert, &theAEDesc))588 return NULL;589 _err = AEPutAttributeDesc(&_self->ob_itself,590 theAEKeyword,591 &theAEDesc);592 if (_err != noErr) return PyMac_Error(_err);593 Py_INCREF(Py_None);594 _res = Py_None;595 return _res;583 PyMac_PRECHECK(AEPutAttributeDesc); 584 #endif 585 if (!PyArg_ParseTuple(_args, "O&O&", 586 PyMac_GetOSType, &theAEKeyword, 587 AEDesc_Convert, &theAEDesc)) 588 return NULL; 589 _err = AEPutAttributeDesc(&_self->ob_itself, 590 theAEKeyword, 591 &theAEDesc); 592 if (_err != noErr) return PyMac_Error(_err); 593 Py_INCREF(Py_None); 594 _res = Py_None; 595 return _res; 596 596 } 597 597 598 598 static PyObject *AEDesc_AEGetDescDataSize(AEDescObject *_self, PyObject *_args) 599 599 { 600 PyObject *_res = NULL;601 Size _rv;600 PyObject *_res = NULL; 601 Size _rv; 602 602 #ifndef AEGetDescDataSize 603 PyMac_PRECHECK(AEGetDescDataSize);604 #endif 605 if (!PyArg_ParseTuple(_args, ""))606 return NULL;607 _rv = AEGetDescDataSize(&_self->ob_itself);608 _res = Py_BuildValue("l",609 _rv);610 return _res;603 PyMac_PRECHECK(AEGetDescDataSize); 604 #endif 605 if (!PyArg_ParseTuple(_args, "")) 606 return NULL; 607 _rv = AEGetDescDataSize(&_self->ob_itself); 608 _res = Py_BuildValue("l", 609 _rv); 610 return _res; 611 611 } 612 612 613 613 static PyObject *AEDesc_AESend(AEDescObject *_self, PyObject *_args) 614 614 { 615 PyObject *_res = NULL;616 OSErr _err;617 AppleEvent reply;618 AESendMode sendMode;619 AESendPriority sendPriority;620 long timeOutInTicks;615 PyObject *_res = NULL; 616 OSErr _err; 617 AppleEvent reply; 618 AESendMode sendMode; 619 AESendPriority sendPriority; 620 long timeOutInTicks; 621 621 #ifndef AESend 622 PyMac_PRECHECK(AESend);623 #endif 624 if (!PyArg_ParseTuple(_args, "lhl",625 &sendMode,626 &sendPriority,627 &timeOutInTicks))628 return NULL;629 _err = AESend(&_self->ob_itself,630 &reply,631 sendMode,632 sendPriority,633 timeOutInTicks,634 upp_AEIdleProc,635 (AEFilterUPP)0);636 if (_err != noErr) return PyMac_Error(_err);637 _res = Py_BuildValue("O&",638 AEDesc_New, &reply);639 return _res;622 PyMac_PRECHECK(AESend); 623 #endif 624 if (!PyArg_ParseTuple(_args, "lhl", 625 &sendMode, 626 &sendPriority, 627 &timeOutInTicks)) 628 return NULL; 629 _err = AESend(&_self->ob_itself, 630 &reply, 631 sendMode, 632 sendPriority, 633 timeOutInTicks, 634 upp_AEIdleProc, 635 (AEFilterUPP)0); 636 if (_err != noErr) return PyMac_Error(_err); 637 _res = Py_BuildValue("O&", 638 AEDesc_New, &reply); 639 return _res; 640 640 } 641 641 642 642 static PyObject *AEDesc_AEResetTimer(AEDescObject *_self, PyObject *_args) 643 643 { 644 PyObject *_res = NULL;645 OSErr _err;644 PyObject *_res = NULL; 645 OSErr _err; 646 646 #ifndef AEResetTimer 647 PyMac_PRECHECK(AEResetTimer);648 #endif 649 if (!PyArg_ParseTuple(_args, ""))650 return NULL;651 _err = AEResetTimer(&_self->ob_itself);652 if (_err != noErr) return PyMac_Error(_err);653 Py_INCREF(Py_None);654 _res = Py_None;655 return _res;647 PyMac_PRECHECK(AEResetTimer); 648 #endif 649 if (!PyArg_ParseTuple(_args, "")) 650 return NULL; 651 _err = AEResetTimer(&_self->ob_itself); 652 if (_err != noErr) return PyMac_Error(_err); 653 Py_INCREF(Py_None); 654 _res = Py_None; 655 return _res; 656 656 } 657 657 658 658 static PyObject *AEDesc_AESuspendTheCurrentEvent(AEDescObject *_self, PyObject *_args) 659 659 { 660 PyObject *_res = NULL;661 OSErr _err;660 PyObject *_res = NULL; 661 OSErr _err; 662 662 #ifndef AESuspendTheCurrentEvent 663 PyMac_PRECHECK(AESuspendTheCurrentEvent);664 #endif 665 if (!PyArg_ParseTuple(_args, ""))666 return NULL;667 _err = AESuspendTheCurrentEvent(&_self->ob_itself);668 if (_err != noErr) return PyMac_Error(_err);669 Py_INCREF(Py_None);670 _res = Py_None;671 return _res;663 PyMac_PRECHECK(AESuspendTheCurrentEvent); 664 #endif 665 if (!PyArg_ParseTuple(_args, "")) 666 return NULL; 667 _err = AESuspendTheCurrentEvent(&_self->ob_itself); 668 if (_err != noErr) return PyMac_Error(_err); 669 Py_INCREF(Py_None); 670 _res = Py_None; 671 return _res; 672 672 } 673 673 674 674 static PyObject *AEDesc_AEResumeTheCurrentEvent(AEDescObject *_self, PyObject *_args) 675 675 { 676 PyObject *_res = NULL;677 OSErr _err;678 AppleEvent reply;679 AEEventHandlerUPP dispatcher__proc__ = upp_GenericEventHandler;680 PyObject *dispatcher;676 PyObject *_res = NULL; 677 OSErr _err; 678 AppleEvent reply; 679 AEEventHandlerUPP dispatcher__proc__ = upp_GenericEventHandler; 680 PyObject *dispatcher; 681 681 #ifndef AEResumeTheCurrentEvent 682 PyMac_PRECHECK(AEResumeTheCurrentEvent);683 #endif 684 if (!PyArg_ParseTuple(_args, "O&O",685 AEDesc_Convert, &reply,686 &dispatcher))687 return NULL;688 _err = AEResumeTheCurrentEvent(&_self->ob_itself,689 &reply,690 dispatcher__proc__, 691 (SRefCon)dispatcher);692 if (_err != noErr) return PyMac_Error(_err);693 Py_INCREF(Py_None);694 _res = Py_None;695 Py_INCREF(dispatcher); /* XXX leak, but needed */696 return _res;682 PyMac_PRECHECK(AEResumeTheCurrentEvent); 683 #endif 684 if (!PyArg_ParseTuple(_args, "O&O", 685 AEDesc_Convert, &reply, 686 &dispatcher)) 687 return NULL; 688 _err = AEResumeTheCurrentEvent(&_self->ob_itself, 689 &reply, 690 dispatcher__proc__, 691 (SRefCon)dispatcher); 692 if (_err != noErr) return PyMac_Error(_err); 693 Py_INCREF(Py_None); 694 _res = Py_None; 695 Py_INCREF(dispatcher); /* XXX leak, but needed */ 696 return _res; 697 697 } 698 698 699 699 static PyObject *AEDesc_AEGetTheCurrentEvent(AEDescObject *_self, PyObject *_args) 700 700 { 701 PyObject *_res = NULL;702 OSErr _err;701 PyObject *_res = NULL; 702 OSErr _err; 703 703 #ifndef AEGetTheCurrentEvent 704 PyMac_PRECHECK(AEGetTheCurrentEvent);705 #endif 706 if (!PyArg_ParseTuple(_args, ""))707 return NULL;708 _err = AEGetTheCurrentEvent(&_self->ob_itself);709 if (_err != noErr) return PyMac_Error(_err);710 Py_INCREF(Py_None);711 _res = Py_None;712 return _res;704 PyMac_PRECHECK(AEGetTheCurrentEvent); 705 #endif 706 if (!PyArg_ParseTuple(_args, "")) 707 return NULL; 708 _err = AEGetTheCurrentEvent(&_self->ob_itself); 709 if (_err != noErr) return PyMac_Error(_err); 710 Py_INCREF(Py_None); 711 _res = Py_None; 712 return _res; 713 713 } 714 714 715 715 static PyObject *AEDesc_AESetTheCurrentEvent(AEDescObject *_self, PyObject *_args) 716 716 { 717 PyObject *_res = NULL;718 OSErr _err;717 PyObject *_res = NULL; 718 OSErr _err; 719 719 #ifndef AESetTheCurrentEvent 720 PyMac_PRECHECK(AESetTheCurrentEvent);721 #endif 722 if (!PyArg_ParseTuple(_args, ""))723 return NULL;724 _err = AESetTheCurrentEvent(&_self->ob_itself);725 if (_err != noErr) return PyMac_Error(_err);726 Py_INCREF(Py_None);727 _res = Py_None;728 return _res;720 PyMac_PRECHECK(AESetTheCurrentEvent); 721 #endif 722 if (!PyArg_ParseTuple(_args, "")) 723 return NULL; 724 _err = AESetTheCurrentEvent(&_self->ob_itself); 725 if (_err != noErr) return PyMac_Error(_err); 726 Py_INCREF(Py_None); 727 _res = Py_None; 728 return _res; 729 729 } 730 730 731 731 static PyObject *AEDesc_AEResolve(AEDescObject *_self, PyObject *_args) 732 732 { 733 PyObject *_res = NULL;734 OSErr _err;735 short callbackFlags;736 AEDesc theToken;733 PyObject *_res = NULL; 734 OSErr _err; 735 short callbackFlags; 736 AEDesc theToken; 737 737 #ifndef AEResolve 738 PyMac_PRECHECK(AEResolve);739 #endif 740 if (!PyArg_ParseTuple(_args, "h",741 &callbackFlags))742 return NULL;743 _err = AEResolve(&_self->ob_itself,744 callbackFlags,745 &theToken);746 if (_err != noErr) return PyMac_Error(_err);747 _res = Py_BuildValue("O&",748 AEDesc_New, &theToken);749 return _res;738 PyMac_PRECHECK(AEResolve); 739 #endif 740 if (!PyArg_ParseTuple(_args, "h", 741 &callbackFlags)) 742 return NULL; 743 _err = AEResolve(&_self->ob_itself, 744 callbackFlags, 745 &theToken); 746 if (_err != noErr) return PyMac_Error(_err); 747 _res = Py_BuildValue("O&", 748 AEDesc_New, &theToken); 749 return _res; 750 750 } 751 751 752 752 static PyObject *AEDesc_AutoDispose(AEDescObject *_self, PyObject *_args) 753 753 { 754 PyObject *_res = NULL;755 756 int onoff, old;757 if (!PyArg_ParseTuple(_args, "i", &onoff))758 return NULL;759 old = _self->ob_owned;760 _self->ob_owned = onoff;761 _res = Py_BuildValue("i", old);762 return _res;754 PyObject *_res = NULL; 755 756 int onoff, old; 757 if (!PyArg_ParseTuple(_args, "i", &onoff)) 758 return NULL; 759 old = _self->ob_owned; 760 _self->ob_owned = onoff; 761 _res = Py_BuildValue("i", old); 762 return _res; 763 763 764 764 } 765 765 766 766 static PyMethodDef AEDesc_methods[] = { 767 {"AECoerceDesc", (PyCFunction)AEDesc_AECoerceDesc, 1,768 PyDoc_STR("(DescType toType) -> (AEDesc result)")},769 {"AEDuplicateDesc", (PyCFunction)AEDesc_AEDuplicateDesc, 1,770 PyDoc_STR("() -> (AEDesc result)")},771 {"AECountItems", (PyCFunction)AEDesc_AECountItems, 1,772 PyDoc_STR("() -> (long theCount)")},773 {"AEPutPtr", (PyCFunction)AEDesc_AEPutPtr, 1,774 PyDoc_STR("(long index, DescType typeCode, Buffer dataPtr) -> None")},775 {"AEPutDesc", (PyCFunction)AEDesc_AEPutDesc, 1,776 PyDoc_STR("(long index, AEDesc theAEDesc) -> None")},777 {"AEGetNthPtr", (PyCFunction)AEDesc_AEGetNthPtr, 1,778 PyDoc_STR("(long index, DescType desiredType, Buffer dataPtr) -> (AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr)")},779 {"AEGetNthDesc", (PyCFunction)AEDesc_AEGetNthDesc, 1,780 PyDoc_STR("(long index, DescType desiredType) -> (AEKeyword theAEKeyword, AEDesc result)")},781 {"AESizeOfNthItem", (PyCFunction)AEDesc_AESizeOfNthItem, 1,782 PyDoc_STR("(long index) -> (DescType typeCode, Size dataSize)")},783 {"AEDeleteItem", (PyCFunction)AEDesc_AEDeleteItem, 1,784 PyDoc_STR("(long index) -> None")},785 {"AEPutParamPtr", (PyCFunction)AEDesc_AEPutParamPtr, 1,786 PyDoc_STR("(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None")},787 {"AEPutParamDesc", (PyCFunction)AEDesc_AEPutParamDesc, 1,788 PyDoc_STR("(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None")},789 {"AEGetParamPtr", (PyCFunction)AEDesc_AEGetParamPtr, 1,790 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)")},791 {"AEGetParamDesc", (PyCFunction)AEDesc_AEGetParamDesc, 1,792 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)")},793 {"AESizeOfParam", (PyCFunction)AEDesc_AESizeOfParam, 1,794 PyDoc_STR("(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)")},795 {"AEDeleteParam", (PyCFunction)AEDesc_AEDeleteParam, 1,796 PyDoc_STR("(AEKeyword theAEKeyword) -> None")},797 {"AEGetAttributePtr", (PyCFunction)AEDesc_AEGetAttributePtr, 1,798 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)")},799 {"AEGetAttributeDesc", (PyCFunction)AEDesc_AEGetAttributeDesc, 1,800 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)")},801 {"AESizeOfAttribute", (PyCFunction)AEDesc_AESizeOfAttribute, 1,802 PyDoc_STR("(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)")},803 {"AEPutAttributePtr", (PyCFunction)AEDesc_AEPutAttributePtr, 1,804 PyDoc_STR("(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None")},805 {"AEPutAttributeDesc", (PyCFunction)AEDesc_AEPutAttributeDesc, 1,806 PyDoc_STR("(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None")},807 {"AEGetDescDataSize", (PyCFunction)AEDesc_AEGetDescDataSize, 1,808 PyDoc_STR("() -> (Size _rv)")},809 {"AESend", (PyCFunction)AEDesc_AESend, 1,810 PyDoc_STR("(AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks) -> (AppleEvent reply)")},811 {"AEResetTimer", (PyCFunction)AEDesc_AEResetTimer, 1,812 PyDoc_STR("() -> None")},813 {"AESuspendTheCurrentEvent", (PyCFunction)AEDesc_AESuspendTheCurrentEvent, 1,814 PyDoc_STR("() -> None")},815 {"AEResumeTheCurrentEvent", (PyCFunction)AEDesc_AEResumeTheCurrentEvent, 1,816 PyDoc_STR("(AppleEvent reply, EventHandler dispatcher) -> None")},817 {"AEGetTheCurrentEvent", (PyCFunction)AEDesc_AEGetTheCurrentEvent, 1,818 PyDoc_STR("() -> None")},819 {"AESetTheCurrentEvent", (PyCFunction)AEDesc_AESetTheCurrentEvent, 1,820 PyDoc_STR("() -> None")},821 {"AEResolve", (PyCFunction)AEDesc_AEResolve, 1,822 PyDoc_STR("(short callbackFlags) -> (AEDesc theToken)")},823 {"AutoDispose", (PyCFunction)AEDesc_AutoDispose, 1,824 PyDoc_STR("(int)->int. Automatically AEDisposeDesc the object on Python object cleanup")},825 {NULL, NULL, 0}767 {"AECoerceDesc", (PyCFunction)AEDesc_AECoerceDesc, 1, 768 PyDoc_STR("(DescType toType) -> (AEDesc result)")}, 769 {"AEDuplicateDesc", (PyCFunction)AEDesc_AEDuplicateDesc, 1, 770 PyDoc_STR("() -> (AEDesc result)")}, 771 {"AECountItems", (PyCFunction)AEDesc_AECountItems, 1, 772 PyDoc_STR("() -> (long theCount)")}, 773 {"AEPutPtr", (PyCFunction)AEDesc_AEPutPtr, 1, 774 PyDoc_STR("(long index, DescType typeCode, Buffer dataPtr) -> None")}, 775 {"AEPutDesc", (PyCFunction)AEDesc_AEPutDesc, 1, 776 PyDoc_STR("(long index, AEDesc theAEDesc) -> None")}, 777 {"AEGetNthPtr", (PyCFunction)AEDesc_AEGetNthPtr, 1, 778 PyDoc_STR("(long index, DescType desiredType, Buffer dataPtr) -> (AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr)")}, 779 {"AEGetNthDesc", (PyCFunction)AEDesc_AEGetNthDesc, 1, 780 PyDoc_STR("(long index, DescType desiredType) -> (AEKeyword theAEKeyword, AEDesc result)")}, 781 {"AESizeOfNthItem", (PyCFunction)AEDesc_AESizeOfNthItem, 1, 782 PyDoc_STR("(long index) -> (DescType typeCode, Size dataSize)")}, 783 {"AEDeleteItem", (PyCFunction)AEDesc_AEDeleteItem, 1, 784 PyDoc_STR("(long index) -> None")}, 785 {"AEPutParamPtr", (PyCFunction)AEDesc_AEPutParamPtr, 1, 786 PyDoc_STR("(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None")}, 787 {"AEPutParamDesc", (PyCFunction)AEDesc_AEPutParamDesc, 1, 788 PyDoc_STR("(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None")}, 789 {"AEGetParamPtr", (PyCFunction)AEDesc_AEGetParamPtr, 1, 790 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)")}, 791 {"AEGetParamDesc", (PyCFunction)AEDesc_AEGetParamDesc, 1, 792 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)")}, 793 {"AESizeOfParam", (PyCFunction)AEDesc_AESizeOfParam, 1, 794 PyDoc_STR("(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)")}, 795 {"AEDeleteParam", (PyCFunction)AEDesc_AEDeleteParam, 1, 796 PyDoc_STR("(AEKeyword theAEKeyword) -> None")}, 797 {"AEGetAttributePtr", (PyCFunction)AEDesc_AEGetAttributePtr, 1, 798 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)")}, 799 {"AEGetAttributeDesc", (PyCFunction)AEDesc_AEGetAttributeDesc, 1, 800 PyDoc_STR("(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)")}, 801 {"AESizeOfAttribute", (PyCFunction)AEDesc_AESizeOfAttribute, 1, 802 PyDoc_STR("(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)")}, 803 {"AEPutAttributePtr", (PyCFunction)AEDesc_AEPutAttributePtr, 1, 804 PyDoc_STR("(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None")}, 805 {"AEPutAttributeDesc", (PyCFunction)AEDesc_AEPutAttributeDesc, 1, 806 PyDoc_STR("(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None")}, 807 {"AEGetDescDataSize", (PyCFunction)AEDesc_AEGetDescDataSize, 1, 808 PyDoc_STR("() -> (Size _rv)")}, 809 {"AESend", (PyCFunction)AEDesc_AESend, 1, 810 PyDoc_STR("(AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks) -> (AppleEvent reply)")}, 811 {"AEResetTimer", (PyCFunction)AEDesc_AEResetTimer, 1, 812 PyDoc_STR("() -> None")}, 813 {"AESuspendTheCurrentEvent", (PyCFunction)AEDesc_AESuspendTheCurrentEvent, 1, 814 PyDoc_STR("() -> None")}, 815 {"AEResumeTheCurrentEvent", (PyCFunction)AEDesc_AEResumeTheCurrentEvent, 1, 816 PyDoc_STR("(AppleEvent reply, EventHandler dispatcher) -> None")}, 817 {"AEGetTheCurrentEvent", (PyCFunction)AEDesc_AEGetTheCurrentEvent, 1, 818 PyDoc_STR("() -> None")}, 819 {"AESetTheCurrentEvent", (PyCFunction)AEDesc_AESetTheCurrentEvent, 1, 820 PyDoc_STR("() -> None")}, 821 {"AEResolve", (PyCFunction)AEDesc_AEResolve, 1, 822 PyDoc_STR("(short callbackFlags) -> (AEDesc theToken)")}, 823 {"AutoDispose", (PyCFunction)AEDesc_AutoDispose, 1, 824 PyDoc_STR("(int)->int. Automatically AEDisposeDesc the object on Python object cleanup")}, 825 {NULL, NULL, 0} 826 826 }; 827 827 828 828 static PyObject *AEDesc_get_type(AEDescObject *self, void *closure) 829 829 { 830 return PyMac_BuildOSType(self->ob_itself.descriptorType);830 return PyMac_BuildOSType(self->ob_itself.descriptorType); 831 831 } 832 832 … … 835 835 static PyObject *AEDesc_get_data(AEDescObject *self, void *closure) 836 836 { 837 PyObject *res;838 Size size;839 char *ptr;840 OSErr err;841 842 size = AEGetDescDataSize(&self->ob_itself);843 if ( (res = PyString_FromStringAndSize(NULL, size)) == NULL )844 return NULL;845 if ( (ptr = PyString_AsString(res)) == NULL )846 return NULL;847 if ( (err=AEGetDescData(&self->ob_itself, ptr, size)) < 0 )848 return PyMac_Error(err);849 return res;837 PyObject *res; 838 Size size; 839 char *ptr; 840 OSErr err; 841 842 size = AEGetDescDataSize(&self->ob_itself); 843 if ( (res = PyString_FromStringAndSize(NULL, size)) == NULL ) 844 return NULL; 845 if ( (ptr = PyString_AsString(res)) == NULL ) 846 return NULL; 847 if ( (err=AEGetDescData(&self->ob_itself, ptr, size)) < 0 ) 848 return PyMac_Error(err); 849 return res; 850 850 } 851 851 … … 853 853 854 854 static PyGetSetDef AEDesc_getsetlist[] = { 855 {"type", (getter)AEDesc_get_type, (setter)AEDesc_set_type, "Type of this AEDesc"},856 {"data", (getter)AEDesc_get_data, (setter)AEDesc_set_data, "The raw data in this AEDesc"},857 {NULL, NULL, NULL, NULL},855 {"type", (getter)AEDesc_get_type, (setter)AEDesc_set_type, "Type of this AEDesc"}, 856 {"data", (getter)AEDesc_get_data, (setter)AEDesc_set_data, "The raw data in this AEDesc"}, 857 {NULL, NULL, NULL, NULL}, 858 858 }; 859 859 … … 870 870 static PyObject *AEDesc_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) 871 871 { 872 PyObject *_self;873 AEDesc itself;874 char *kw[] = {"itself", 0};875 876 if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, AEDesc_Convert, &itself)) return NULL;877 if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;878 ((AEDescObject *)_self)->ob_itself = itself;879 return _self;872 PyObject *_self; 873 AEDesc itself; 874 char *kw[] = {"itself", 0}; 875 876 if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, AEDesc_Convert, &itself)) return NULL; 877 if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; 878 ((AEDescObject *)_self)->ob_itself = itself; 879 return _self; 880 880 } 881 881 … … 884 884 885 885 PyTypeObject AEDesc_Type = { 886 PyObject_HEAD_INIT(NULL)887 0, /*ob_size*/888 "_AE.AEDesc", /*tp_name*/889 sizeof(AEDescObject), /*tp_basicsize*/890 0, /*tp_itemsize*/891 /* methods */892 (destructor) AEDesc_dealloc, /*tp_dealloc*/893 0, /*tp_print*/894 (getattrfunc)0, /*tp_getattr*/895 (setattrfunc)0, /*tp_setattr*/896 (cmpfunc) AEDesc_compare, /*tp_compare*/897 (reprfunc) AEDesc_repr, /*tp_repr*/898 (PyNumberMethods *)0, /* tp_as_number */899 (PySequenceMethods *)0, /* tp_as_sequence */900 (PyMappingMethods *)0, /* tp_as_mapping */901 (hashfunc) AEDesc_hash, /*tp_hash*/902 0, /*tp_call*/903 0, /*tp_str*/904 PyObject_GenericGetAttr, /*tp_getattro*/905 PyObject_GenericSetAttr, /*tp_setattro */906 0, /*tp_as_buffer*/907 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */908 0, /*tp_doc*/909 0, /*tp_traverse*/910 0, /*tp_clear*/911 0, /*tp_richcompare*/912 0, /*tp_weaklistoffset*/913 0, /*tp_iter*/914 0, /*tp_iternext*/915 AEDesc_methods, /* tp_methods */916 0, /*tp_members*/917 AEDesc_getsetlist, /*tp_getset*/918 0, /*tp_base*/919 0, /*tp_dict*/920 0, /*tp_descr_get*/921 0, /*tp_descr_set*/922 0, /*tp_dictoffset*/923 AEDesc_tp_init, /* tp_init */924 AEDesc_tp_alloc, /* tp_alloc */925 AEDesc_tp_new, /* tp_new */926 AEDesc_tp_free, /* tp_free */886 PyObject_HEAD_INIT(NULL) 887 0, /*ob_size*/ 888 "_AE.AEDesc", /*tp_name*/ 889 sizeof(AEDescObject), /*tp_basicsize*/ 890 0, /*tp_itemsize*/ 891 /* methods */ 892 (destructor) AEDesc_dealloc, /*tp_dealloc*/ 893 0, /*tp_print*/ 894 (getattrfunc)0, /*tp_getattr*/ 895 (setattrfunc)0, /*tp_setattr*/ 896 (cmpfunc) AEDesc_compare, /*tp_compare*/ 897 (reprfunc) AEDesc_repr, /*tp_repr*/ 898 (PyNumberMethods *)0, /* tp_as_number */ 899 (PySequenceMethods *)0, /* tp_as_sequence */ 900 (PyMappingMethods *)0, /* tp_as_mapping */ 901 (hashfunc) AEDesc_hash, /*tp_hash*/ 902 0, /*tp_call*/ 903 0, /*tp_str*/ 904 PyObject_GenericGetAttr, /*tp_getattro*/ 905 PyObject_GenericSetAttr, /*tp_setattro */ 906 0, /*tp_as_buffer*/ 907 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ 908 0, /*tp_doc*/ 909 0, /*tp_traverse*/ 910 0, /*tp_clear*/ 911 0, /*tp_richcompare*/ 912 0, /*tp_weaklistoffset*/ 913 0, /*tp_iter*/ 914 0, /*tp_iternext*/ 915 AEDesc_methods, /* tp_methods */ 916 0, /*tp_members*/ 917 AEDesc_getsetlist, /*tp_getset*/ 918 0, /*tp_base*/ 919 0, /*tp_dict*/ 920 0, /*tp_descr_get*/ 921 0, /*tp_descr_set*/ 922 0, /*tp_dictoffset*/ 923 AEDesc_tp_init, /* tp_init */ 924 AEDesc_tp_alloc, /* tp_alloc */ 925 AEDesc_tp_new, /* tp_new */ 926 AEDesc_tp_free, /* tp_free */ 927 927 }; 928 928 … … 932 932 static PyObject *AE_AECoercePtr(PyObject *_self, PyObject *_args) 933 933 { 934 PyObject *_res = NULL;935 OSErr _err;936 DescType typeCode;937 char *dataPtr__in__;938 long dataPtr__len__;939 int dataPtr__in_len__;940 DescType toType;941 AEDesc result;934 PyObject *_res = NULL; 935 OSErr _err; 936 DescType typeCode; 937 char *dataPtr__in__; 938 long dataPtr__len__; 939 int dataPtr__in_len__; 940 DescType toType; 941 AEDesc result; 942 942 #ifndef AECoercePtr 943 PyMac_PRECHECK(AECoercePtr);944 #endif 945 if (!PyArg_ParseTuple(_args, "O&s#O&",946 PyMac_GetOSType, &typeCode,947 &dataPtr__in__, &dataPtr__in_len__,948 PyMac_GetOSType, &toType))949 return NULL;950 dataPtr__len__ = dataPtr__in_len__;951 _err = AECoercePtr(typeCode,952 dataPtr__in__, dataPtr__len__,953 toType,954 &result);955 if (_err != noErr) return PyMac_Error(_err);956 _res = Py_BuildValue("O&",957 AEDesc_New, &result);958 return _res;943 PyMac_PRECHECK(AECoercePtr); 944 #endif 945 if (!PyArg_ParseTuple(_args, "O&s#O&", 946 PyMac_GetOSType, &typeCode, 947 &dataPtr__in__, &dataPtr__in_len__, 948 PyMac_GetOSType, &toType)) 949 return NULL; 950 dataPtr__len__ = dataPtr__in_len__; 951 _err = AECoercePtr(typeCode, 952 dataPtr__in__, dataPtr__len__, 953 toType, 954 &result); 955 if (_err != noErr) return PyMac_Error(_err); 956 _res = Py_BuildValue("O&", 957 AEDesc_New, &result); 958 return _res; 959 959 } 960 960 961 961 static PyObject *AE_AECreateDesc(PyObject *_self, PyObject *_args) 962 962 { 963 PyObject *_res = NULL;964 OSErr _err;965 DescType typeCode;966 char *dataPtr__in__;967 long dataPtr__len__;968 int dataPtr__in_len__;969 AEDesc result;963 PyObject *_res = NULL; 964 OSErr _err; 965 DescType typeCode; 966 char *dataPtr__in__; 967 long dataPtr__len__; 968 int dataPtr__in_len__; 969 AEDesc result; 970 970 #ifndef AECreateDesc 971 PyMac_PRECHECK(AECreateDesc);972 #endif 973 if (!PyArg_ParseTuple(_args, "O&s#",974 PyMac_GetOSType, &typeCode,975 &dataPtr__in__, &dataPtr__in_len__))976 return NULL;977 dataPtr__len__ = dataPtr__in_len__;978 _err = AECreateDesc(typeCode,979 dataPtr__in__, dataPtr__len__,980 &result);981 if (_err != noErr) return PyMac_Error(_err);982 _res = Py_BuildValue("O&",983 AEDesc_New, &result);984 return _res;971 PyMac_PRECHECK(AECreateDesc); 972 #endif 973 if (!PyArg_ParseTuple(_args, "O&s#", 974 PyMac_GetOSType, &typeCode, 975 &dataPtr__in__, &dataPtr__in_len__)) 976 return NULL; 977 dataPtr__len__ = dataPtr__in_len__; 978 _err = AECreateDesc(typeCode, 979 dataPtr__in__, dataPtr__len__, 980 &result); 981 if (_err != noErr) return PyMac_Error(_err); 982 _res = Py_BuildValue("O&", 983 AEDesc_New, &result); 984 return _res; 985 985 } 986 986 987 987 static PyObject *AE_AECreateList(PyObject *_self, PyObject *_args) 988 988 { 989 PyObject *_res = NULL;990 OSErr _err;991 char *factoringPtr__in__;992 long factoringPtr__len__;993 int factoringPtr__in_len__;994 Boolean isRecord;995 AEDescList resultList;989 PyObject *_res = NULL; 990 OSErr _err; 991 char *factoringPtr__in__; 992 long factoringPtr__len__; 993 int factoringPtr__in_len__; 994 Boolean isRecord; 995 AEDescList resultList; 996 996 #ifndef AECreateList 997 PyMac_PRECHECK(AECreateList);998 #endif 999 if (!PyArg_ParseTuple(_args, "s#b",1000 &factoringPtr__in__, &factoringPtr__in_len__,1001 &isRecord))1002 return NULL;1003 factoringPtr__len__ = factoringPtr__in_len__;1004 _err = AECreateList(factoringPtr__in__, factoringPtr__len__,1005 isRecord,1006 &resultList);1007 if (_err != noErr) return PyMac_Error(_err);1008 _res = Py_BuildValue("O&",1009 AEDesc_New, &resultList);1010 return _res;997 PyMac_PRECHECK(AECreateList); 998 #endif 999 if (!PyArg_ParseTuple(_args, "s#b", 1000 &factoringPtr__in__, &factoringPtr__in_len__, 1001 &isRecord)) 1002 return NULL; 1003 factoringPtr__len__ = factoringPtr__in_len__; 1004 _err = AECreateList(factoringPtr__in__, factoringPtr__len__, 1005 isRecord, 1006 &resultList); 1007 if (_err != noErr) return PyMac_Error(_err); 1008 _res = Py_BuildValue("O&", 1009 AEDesc_New, &resultList); 1010 return _res; 1011 1011 } 1012 1012 1013 1013 static PyObject *AE_AECreateAppleEvent(PyObject *_self, PyObject *_args) 1014 1014 { 1015 PyObject *_res = NULL;1016 OSErr _err;1017 AEEventClass theAEEventClass;1018 AEEventID theAEEventID;1019 AEAddressDesc target;1020 AEReturnID returnID;1021 AETransactionID transactionID;1022 AppleEvent result;1015 PyObject *_res = NULL; 1016 OSErr _err; 1017 AEEventClass theAEEventClass; 1018 AEEventID theAEEventID; 1019 AEAddressDesc target; 1020 AEReturnID returnID; 1021 AETransactionID transactionID; 1022 AppleEvent result; 1023 1023 #ifndef AECreateAppleEvent 1024 PyMac_PRECHECK(AECreateAppleEvent);1025 #endif 1026 if (!PyArg_ParseTuple(_args, "O&O&O&hl",1027 PyMac_GetOSType, &theAEEventClass,1028 PyMac_GetOSType, &theAEEventID,1029 AEDesc_Convert, &target,1030 &returnID,1031 &transactionID))1032 return NULL;1033 _err = AECreateAppleEvent(theAEEventClass,1034 theAEEventID,1035 &target,1036 returnID,1037 transactionID,1038 &result);1039 if (_err != noErr) return PyMac_Error(_err);1040 _res = Py_BuildValue("O&",1041 AEDesc_New, &result);1042 return _res;1024 PyMac_PRECHECK(AECreateAppleEvent); 1025 #endif 1026 if (!PyArg_ParseTuple(_args, "O&O&O&hl", 1027 PyMac_GetOSType, &theAEEventClass, 1028 PyMac_GetOSType, &theAEEventID, 1029 AEDesc_Convert, &target, 1030 &returnID, 1031 &transactionID)) 1032 return NULL; 1033 _err = AECreateAppleEvent(theAEEventClass, 1034 theAEEventID, 1035 &target, 1036 returnID, 1037 transactionID, 1038 &result); 1039 if (_err != noErr) return PyMac_Error(_err); 1040 _res = Py_BuildValue("O&", 1041 AEDesc_New, &result); 1042 return _res; 1043 1043 } 1044 1044 1045 1045 static PyObject *AE_AEReplaceDescData(PyObject *_self, PyObject *_args) 1046 1046 { 1047 PyObject *_res = NULL;1048 OSErr _err;1049 DescType typeCode;1050 char *dataPtr__in__;1051 long dataPtr__len__;1052 int dataPtr__in_len__;1053 AEDesc theAEDesc;1047 PyObject *_res = NULL; 1048 OSErr _err; 1049 DescType typeCode; 1050 char *dataPtr__in__; 1051 long dataPtr__len__; 1052 int dataPtr__in_len__; 1053 AEDesc theAEDesc; 1054 1054 #ifndef AEReplaceDescData 1055 PyMac_PRECHECK(AEReplaceDescData);1056 #endif 1057 if (!PyArg_ParseTuple(_args, "O&s#",1058 PyMac_GetOSType, &typeCode,1059 &dataPtr__in__, &dataPtr__in_len__))1060 return NULL;1061 dataPtr__len__ = dataPtr__in_len__;1062 _err = AEReplaceDescData(typeCode,1063 dataPtr__in__, dataPtr__len__,1064 &theAEDesc);1065 if (_err != noErr) return PyMac_Error(_err);1066 _res = Py_BuildValue("O&",1067 AEDesc_New, &theAEDesc);1068 return _res;1055 PyMac_PRECHECK(AEReplaceDescData); 1056 #endif 1057 if (!PyArg_ParseTuple(_args, "O&s#", 1058 PyMac_GetOSType, &typeCode, 1059 &dataPtr__in__, &dataPtr__in_len__)) 1060 return NULL; 1061 dataPtr__len__ = dataPtr__in_len__; 1062 _err = AEReplaceDescData(typeCode, 1063 dataPtr__in__, dataPtr__len__, 1064 &theAEDesc); 1065 if (_err != noErr) return PyMac_Error(_err); 1066 _res = Py_BuildValue("O&", 1067 AEDesc_New, &theAEDesc); 1068 return _res; 1069 1069 } 1070 1070 1071 1071 static PyObject *AE_AEProcessAppleEvent(PyObject *_self, PyObject *_args) 1072 1072 { 1073 PyObject *_res = NULL;1074 OSErr _err;1075 EventRecord theEventRecord;1073 PyObject *_res = NULL; 1074 OSErr _err; 1075 EventRecord theEventRecord; 1076 1076 #ifndef AEProcessAppleEvent 1077 PyMac_PRECHECK(AEProcessAppleEvent);1078 #endif 1079 if (!PyArg_ParseTuple(_args, "O&",1080 PyMac_GetEventRecord, &theEventRecord))1081 return NULL;1082 _err = AEProcessAppleEvent(&theEventRecord);1083 if (_err != noErr) return PyMac_Error(_err);1084 Py_INCREF(Py_None);1085 _res = Py_None;1086 return _res;1077 PyMac_PRECHECK(AEProcessAppleEvent); 1078 #endif 1079 if (!PyArg_ParseTuple(_args, "O&", 1080 PyMac_GetEventRecord, &theEventRecord)) 1081 return NULL; 1082 _err = AEProcessAppleEvent(&theEventRecord); 1083 if (_err != noErr) return PyMac_Error(_err); 1084 Py_INCREF(Py_None); 1085 _res = Py_None; 1086 return _res; 1087 1087 } 1088 1088 1089 1089 static PyObject *AE_AEGetInteractionAllowed(PyObject *_self, PyObject *_args) 1090 1090 { 1091 PyObject *_res = NULL;1092 OSErr _err;1093 AEInteractAllowed level;1091 PyObject *_res = NULL; 1092 OSErr _err; 1093 AEInteractAllowed level; 1094 1094 #ifndef AEGetInteractionAllowed 1095 PyMac_PRECHECK(AEGetInteractionAllowed);1096 #endif 1097 if (!PyArg_ParseTuple(_args, ""))1098 return NULL;1099 _err = AEGetInteractionAllowed(&level);1100 if (_err != noErr) return PyMac_Error(_err);1101 _res = Py_BuildValue("b",1102 level);1103 return _res;1095 PyMac_PRECHECK(AEGetInteractionAllowed); 1096 #endif 1097 if (!PyArg_ParseTuple(_args, "")) 1098 return NULL; 1099 _err = AEGetInteractionAllowed(&level); 1100 if (_err != noErr) return PyMac_Error(_err); 1101 _res = Py_BuildValue("b", 1102 level); 1103 return _res; 1104 1104 } 1105 1105 1106 1106 static PyObject *AE_AESetInteractionAllowed(PyObject *_self, PyObject *_args) 1107 1107 { 1108 PyObject *_res = NULL;1109 OSErr _err;1110 AEInteractAllowed level;1108 PyObject *_res = NULL; 1109 OSErr _err; 1110 AEInteractAllowed level; 1111 1111 #ifndef AESetInteractionAllowed 1112 PyMac_PRECHECK(AESetInteractionAllowed);1113 #endif 1114 if (!PyArg_ParseTuple(_args, "b",1115 &level))1116 return NULL;1117 _err = AESetInteractionAllowed(level);1118 if (_err != noErr) return PyMac_Error(_err);1119 Py_INCREF(Py_None);1120 _res = Py_None;1121 return _res;1112 PyMac_PRECHECK(AESetInteractionAllowed); 1113 #endif 1114 if (!PyArg_ParseTuple(_args, "b", 1115 &level)) 1116 return NULL; 1117 _err = AESetInteractionAllowed(level); 1118 if (_err != noErr) return PyMac_Error(_err); 1119 Py_INCREF(Py_None); 1120 _res = Py_None; 1121 return _res; 1122 1122 } 1123 1123 1124 1124 static PyObject *AE_AEInteractWithUser(PyObject *_self, PyObject *_args) 1125 1125 { 1126 PyObject *_res = NULL;1127 OSErr _err;1128 long timeOutInTicks;1126 PyObject *_res = NULL; 1127 OSErr _err; 1128 long timeOutInTicks; 1129 1129 #ifndef AEInteractWithUser 1130 PyMac_PRECHECK(AEInteractWithUser);1131 #endif 1132 if (!PyArg_ParseTuple(_args, "l",1133 &timeOutInTicks))1134 return NULL;1135 _err = AEInteractWithUser(timeOutInTicks,1136 (NMRecPtr)0,1137 upp_AEIdleProc);1138 if (_err != noErr) return PyMac_Error(_err);1139 Py_INCREF(Py_None);1140 _res = Py_None;1141 return _res;1130 PyMac_PRECHECK(AEInteractWithUser); 1131 #endif 1132 if (!PyArg_ParseTuple(_args, "l", 1133 &timeOutInTicks)) 1134 return NULL; 1135 _err = AEInteractWithUser(timeOutInTicks, 1136 (NMRecPtr)0, 1137 upp_AEIdleProc); 1138 if (_err != noErr) return PyMac_Error(_err); 1139 Py_INCREF(Py_None); 1140 _res = Py_None; 1141 return _res; 1142 1142 } 1143 1143 1144 1144 static PyObject *AE_AEInstallEventHandler(PyObject *_self, PyObject *_args) 1145 1145 { 1146 PyObject *_res = NULL;1147 OSErr _err;1148 AEEventClass theAEEventClass;1149 AEEventID theAEEventID;1150 AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;1151 PyObject *handler;1146 PyObject *_res = NULL; 1147 OSErr _err; 1148 AEEventClass theAEEventClass; 1149 AEEventID theAEEventID; 1150 AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler; 1151 PyObject *handler; 1152 1152 #ifndef AEInstallEventHandler 1153 PyMac_PRECHECK(AEInstallEventHandler);1154 #endif 1155 if (!PyArg_ParseTuple(_args, "O&O&O",1156 PyMac_GetOSType, &theAEEventClass,1157 PyMac_GetOSType, &theAEEventID,1158 &handler))1159 return NULL;1160 _err = AEInstallEventHandler(theAEEventClass,1161 theAEEventID,1162 handler__proc__, (SRefCon)handler,1163 0);1164 if (_err != noErr) return PyMac_Error(_err);1165 Py_INCREF(Py_None);1166 _res = Py_None;1167 Py_INCREF(handler); /* XXX leak, but needed */1168 return _res;1153 PyMac_PRECHECK(AEInstallEventHandler); 1154 #endif 1155 if (!PyArg_ParseTuple(_args, "O&O&O", 1156 PyMac_GetOSType, &theAEEventClass, 1157 PyMac_GetOSType, &theAEEventID, 1158 &handler)) 1159 return NULL; 1160 _err = AEInstallEventHandler(theAEEventClass, 1161 theAEEventID, 1162 handler__proc__, (SRefCon)handler, 1163 0); 1164 if (_err != noErr) return PyMac_Error(_err); 1165 Py_INCREF(Py_None); 1166 _res = Py_None; 1167 Py_INCREF(handler); /* XXX leak, but needed */ 1168 return _res; 1169 1169 } 1170 1170 1171 1171 static PyObject *AE_AERemoveEventHandler(PyObject *_self, PyObject *_args) 1172 1172 { 1173 PyObject *_res = NULL;1174 OSErr _err;1175 AEEventClass theAEEventClass;1176 AEEventID theAEEventID;1173 PyObject *_res = NULL; 1174 OSErr _err; 1175 AEEventClass theAEEventClass; 1176 AEEventID theAEEventID; 1177 1177 #ifndef AERemoveEventHandler 1178 PyMac_PRECHECK(AERemoveEventHandler);1179 #endif 1180 if (!PyArg_ParseTuple(_args, "O&O&",1181 PyMac_GetOSType, &theAEEventClass,1182 PyMac_GetOSType, &theAEEventID))1183 return NULL;1184 _err = AERemoveEventHandler(theAEEventClass,1185 theAEEventID,1186 upp_GenericEventHandler,1187 0);1188 if (_err != noErr) return PyMac_Error(_err);1189 Py_INCREF(Py_None);1190 _res = Py_None;1191 return _res;1178 PyMac_PRECHECK(AERemoveEventHandler); 1179 #endif 1180 if (!PyArg_ParseTuple(_args, "O&O&", 1181 PyMac_GetOSType, &theAEEventClass, 1182 PyMac_GetOSType, &theAEEventID)) 1183 return NULL; 1184 _err = AERemoveEventHandler(theAEEventClass, 1185 theAEEventID, 1186 upp_GenericEventHandler, 1187 0); 1188 if (_err != noErr) return PyMac_Error(_err); 1189 Py_INCREF(Py_None); 1190 _res = Py_None; 1191 return _res; 1192 1192 } 1193 1193 1194 1194 static PyObject *AE_AEGetEventHandler(PyObject *_self, PyObject *_args) 1195 1195 { 1196 PyObject *_res = NULL;1197 OSErr _err;1198 AEEventClass theAEEventClass;1199 AEEventID theAEEventID;1200 AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;1201 PyObject *handler;1196 PyObject *_res = NULL; 1197 OSErr _err; 1198 AEEventClass theAEEventClass; 1199 AEEventID theAEEventID; 1200 AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler; 1201 PyObject *handler; 1202 1202 #ifndef AEGetEventHandler 1203 PyMac_PRECHECK(AEGetEventHandler);1204 #endif 1205 if (!PyArg_ParseTuple(_args, "O&O&",1206 PyMac_GetOSType, &theAEEventClass,1207 PyMac_GetOSType, &theAEEventID))1208 return NULL;1209 _err = AEGetEventHandler(theAEEventClass,1210 theAEEventID,1211 &handler__proc__, (SRefCon *)&handler,1212 0);1213 if (_err != noErr) return PyMac_Error(_err);1214 _res = Py_BuildValue("O",1215 handler);1216 Py_INCREF(handler); /* XXX leak, but needed */1217 return _res;1203 PyMac_PRECHECK(AEGetEventHandler); 1204 #endif 1205 if (!PyArg_ParseTuple(_args, "O&O&", 1206 PyMac_GetOSType, &theAEEventClass, 1207 PyMac_GetOSType, &theAEEventID)) 1208 return NULL; 1209 _err = AEGetEventHandler(theAEEventClass, 1210 theAEEventID, 1211 &handler__proc__, (SRefCon *)&handler, 1212 0); 1213 if (_err != noErr) return PyMac_Error(_err); 1214 _res = Py_BuildValue("O", 1215 handler); 1216 Py_INCREF(handler); /* XXX leak, but needed */ 1217 return _res; 1218 1218 } 1219 1219 1220 1220 static PyObject *AE_AEInstallSpecialHandler(PyObject *_self, PyObject *_args) 1221 1221 { 1222 PyObject *_res = NULL;1223 OSErr _err;1224 AEKeyword functionClass;1222 PyObject *_res = NULL; 1223 OSErr _err; 1224 AEKeyword functionClass; 1225 1225 #ifndef AEInstallSpecialHandler 1226 PyMac_PRECHECK(AEInstallSpecialHandler);1227 #endif 1228 if (!PyArg_ParseTuple(_args, "O&",1229 PyMac_GetOSType, &functionClass))1230 return NULL;1231 _err = AEInstallSpecialHandler(functionClass,1232 upp_GenericEventHandler,1233 0);1234 if (_err != noErr) return PyMac_Error(_err);1235 Py_INCREF(Py_None);1236 _res = Py_None;1237 return _res;1226 PyMac_PRECHECK(AEInstallSpecialHandler); 1227 #endif 1228 if (!PyArg_ParseTuple(_args, "O&", 1229 PyMac_GetOSType, &functionClass)) 1230 return NULL; 1231 _err = AEInstallSpecialHandler(functionClass, 1232 upp_GenericEventHandler, 1233 0); 1234 if (_err != noErr) return PyMac_Error(_err); 1235 Py_INCREF(Py_None); 1236 _res = Py_None; 1237 return _res; 1238 1238 } 1239 1239 1240 1240 static PyObject *AE_AERemoveSpecialHandler(PyObject *_self, PyObject *_args) 1241 1241 { 1242 PyObject *_res = NULL;1243 OSErr _err;1244 AEKeyword functionClass;1242 PyObject *_res = NULL; 1243 OSErr _err; 1244 AEKeyword functionClass; 1245 1245 #ifndef AERemoveSpecialHandler 1246 PyMac_PRECHECK(AERemoveSpecialHandler);1247 #endif 1248 if (!PyArg_ParseTuple(_args, "O&",1249 PyMac_GetOSType, &functionClass))1250 return NULL;1251 _err = AERemoveSpecialHandler(functionClass,1252 upp_GenericEventHandler,1253 0);1254 if (_err != noErr) return PyMac_Error(_err);1255 Py_INCREF(Py_None);1256 _res = Py_None;1257 return _res;1246 PyMac_PRECHECK(AERemoveSpecialHandler); 1247 #endif 1248 if (!PyArg_ParseTuple(_args, "O&", 1249 PyMac_GetOSType, &functionClass)) 1250 return NULL; 1251 _err = AERemoveSpecialHandler(functionClass, 1252 upp_GenericEventHandler, 1253 0); 1254 if (_err != noErr) return PyMac_Error(_err); 1255 Py_INCREF(Py_None); 1256 _res = Py_None; 1257 return _res; 1258 1258 } 1259 1259 1260 1260 static PyObject *AE_AEManagerInfo(PyObject *_self, PyObject *_args) 1261 1261 { 1262 PyObject *_res = NULL;1263 OSErr _err;1264 AEKeyword keyWord;1265 long result;1262 PyObject *_res = NULL; 1263 OSErr _err; 1264 AEKeyword keyWord; 1265 long result; 1266 1266 #ifndef AEManagerInfo 1267 PyMac_PRECHECK(AEManagerInfo);1268 #endif 1269 if (!PyArg_ParseTuple(_args, "O&",1270 PyMac_GetOSType, &keyWord))1271 return NULL;1272 _err = AEManagerInfo(keyWord,1273 &result);1274 if (_err != noErr) return PyMac_Error(_err);1275 _res = Py_BuildValue("l",1276 result);1277 return _res;1267 PyMac_PRECHECK(AEManagerInfo); 1268 #endif 1269 if (!PyArg_ParseTuple(_args, "O&", 1270 PyMac_GetOSType, &keyWord)) 1271 return NULL; 1272 _err = AEManagerInfo(keyWord, 1273 &result); 1274 if (_err != noErr) return PyMac_Error(_err); 1275 _res = Py_BuildValue("l", 1276 result); 1277 return _res; 1278 1278 } 1279 1279 1280 1280 static PyObject *AE_AEObjectInit(PyObject *_self, PyObject *_args) 1281 1281 { 1282 PyObject *_res = NULL;1283 OSErr _err;1282 PyObject *_res = NULL; 1283 OSErr _err; 1284 1284 #ifndef AEObjectInit 1285 PyMac_PRECHECK(AEObjectInit);1286 #endif 1287 if (!PyArg_ParseTuple(_args, ""))1288 return NULL;1289 _err = AEObjectInit();1290 if (_err != noErr) return PyMac_Error(_err);1291 Py_INCREF(Py_None);1292 _res = Py_None;1293 return _res;1285 PyMac_PRECHECK(AEObjectInit); 1286 #endif 1287 if (!PyArg_ParseTuple(_args, "")) 1288 return NULL; 1289 _err = AEObjectInit(); 1290 if (_err != noErr) return PyMac_Error(_err); 1291 Py_INCREF(Py_None); 1292 _res = Py_None; 1293 return _res; 1294 1294 } 1295 1295 1296 1296 static PyObject *AE_AEDisposeToken(PyObject *_self, PyObject *_args) 1297 1297 { 1298 PyObject *_res = NULL;1299 OSErr _err;1300 AEDesc theToken;1298 PyObject *_res = NULL; 1299 OSErr _err; 1300 AEDesc theToken; 1301 1301 #ifndef AEDisposeToken 1302 PyMac_PRECHECK(AEDisposeToken);1303 #endif 1304 if (!PyArg_ParseTuple(_args, ""))1305 return NULL;1306 _err = AEDisposeToken(&theToken);1307 if (_err != noErr) return PyMac_Error(_err);1308 _res = Py_BuildValue("O&",1309 AEDesc_New, &theToken);1310 return _res;1302 PyMac_PRECHECK(AEDisposeToken); 1303 #endif 1304 if (!PyArg_ParseTuple(_args, "")) 1305 return NULL; 1306 _err = AEDisposeToken(&theToken); 1307 if (_err != noErr) return PyMac_Error(_err); 1308 _res = Py_BuildValue("O&", 1309 AEDesc_New, &theToken); 1310 return _res; 1311 1311 } 1312 1312 1313 1313 static PyObject *AE_AECallObjectAccessor(PyObject *_self, PyObject *_args) 1314 1314 { 1315 PyObject *_res = NULL;1316 OSErr _err;1317 DescType desiredClass;1318 AEDesc containerToken;1319 DescType containerClass;1320 DescType keyForm;1321 AEDesc keyData;1322 AEDesc token;1315 PyObject *_res = NULL; 1316 OSErr _err; 1317 DescType desiredClass; 1318 AEDesc containerToken; 1319 DescType containerClass; 1320 DescType keyForm; 1321 AEDesc keyData; 1322 AEDesc token; 1323 1323 #ifndef AECallObjectAccessor 1324 PyMac_PRECHECK(AECallObjectAccessor);1325 #endif 1326 if (!PyArg_ParseTuple(_args, "O&O&O&O&O&",1327 PyMac_GetOSType, &desiredClass,1328 AEDesc_Convert, &containerToken,1329 PyMac_GetOSType, &containerClass,1330 PyMac_GetOSType, &keyForm,1331 AEDesc_Convert, &keyData))1332 return NULL;1333 _err = AECallObjectAccessor(desiredClass,1334 &containerToken,1335 containerClass,1336 keyForm,1337 &keyData,1338 &token);1339 if (_err != noErr) return PyMac_Error(_err);1340 _res = Py_BuildValue("O&",1341 AEDesc_New, &token);1342 return _res;1324 PyMac_PRECHECK(AECallObjectAccessor); 1325 #endif 1326 if (!PyArg_ParseTuple(_args, "O&O&O&O&O&", 1327 PyMac_GetOSType, &desiredClass, 1328 AEDesc_Convert, &containerToken, 1329 PyMac_GetOSType, &containerClass, 1330 PyMac_GetOSType, &keyForm, 1331 AEDesc_Convert, &keyData)) 1332 return NULL; 1333 _err = AECallObjectAccessor(desiredClass, 1334 &containerToken, 1335 containerClass, 1336 keyForm, 1337 &keyData, 1338 &token); 1339 if (_err != noErr) return PyMac_Error(_err); 1340 _res = Py_BuildValue("O&", 1341 AEDesc_New, &token); 1342 return _res; 1343 1343 } 1344 1344 1345 1345 static PyMethodDef AE_methods[] = { 1346 {"AECoercePtr", (PyCFunction)AE_AECoercePtr, 1,1347 PyDoc_STR("(DescType typeCode, Buffer dataPtr, DescType toType) -> (AEDesc result)")},1348 {"AECreateDesc", (PyCFunction)AE_AECreateDesc, 1,1349 PyDoc_STR("(DescType typeCode, Buffer dataPtr) -> (AEDesc result)")},1350 {"AECreateList", (PyCFunction)AE_AECreateList, 1,1351 PyDoc_STR("(Buffer factoringPtr, Boolean isRecord) -> (AEDescList resultList)")},1352 {"AECreateAppleEvent", (PyCFunction)AE_AECreateAppleEvent, 1,1353 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID, AEAddressDesc target, AEReturnID returnID, AETransactionID transactionID) -> (AppleEvent result)")},1354 {"AEReplaceDescData", (PyCFunction)AE_AEReplaceDescData, 1,1355 PyDoc_STR("(DescType typeCode, Buffer dataPtr) -> (AEDesc theAEDesc)")},1356 {"AEProcessAppleEvent", (PyCFunction)AE_AEProcessAppleEvent, 1,1357 PyDoc_STR("(EventRecord theEventRecord) -> None")},1358 {"AEGetInteractionAllowed", (PyCFunction)AE_AEGetInteractionAllowed, 1,1359 PyDoc_STR("() -> (AEInteractAllowed level)")},1360 {"AESetInteractionAllowed", (PyCFunction)AE_AESetInteractionAllowed, 1,1361 PyDoc_STR("(AEInteractAllowed level) -> None")},1362 {"AEInteractWithUser", (PyCFunction)AE_AEInteractWithUser, 1,1363 PyDoc_STR("(long timeOutInTicks) -> None")},1364 {"AEInstallEventHandler", (PyCFunction)AE_AEInstallEventHandler, 1,1365 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID, EventHandler handler) -> None")},1366 {"AERemoveEventHandler", (PyCFunction)AE_AERemoveEventHandler, 1,1367 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID) -> None")},1368 {"AEGetEventHandler", (PyCFunction)AE_AEGetEventHandler, 1,1369 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID) -> (EventHandler handler)")},1370 {"AEInstallSpecialHandler", (PyCFunction)AE_AEInstallSpecialHandler, 1,1371 PyDoc_STR("(AEKeyword functionClass) -> None")},1372 {"AERemoveSpecialHandler", (PyCFunction)AE_AERemoveSpecialHandler, 1,1373 PyDoc_STR("(AEKeyword functionClass) -> None")},1374 {"AEManagerInfo", (PyCFunction)AE_AEManagerInfo, 1,1375 PyDoc_STR("(AEKeyword keyWord) -> (long result)")},1376 {"AEObjectInit", (PyCFunction)AE_AEObjectInit, 1,1377 PyDoc_STR("() -> None")},1378 {"AEDisposeToken", (PyCFunction)AE_AEDisposeToken, 1,1379 PyDoc_STR("() -> (AEDesc theToken)")},1380 {"AECallObjectAccessor", (PyCFunction)AE_AECallObjectAccessor, 1,1381 PyDoc_STR("(DescType desiredClass, AEDesc containerToken, DescType containerClass, DescType keyForm, AEDesc keyData) -> (AEDesc token)")},1382 {NULL, NULL, 0}1346 {"AECoercePtr", (PyCFunction)AE_AECoercePtr, 1, 1347 PyDoc_STR("(DescType typeCode, Buffer dataPtr, DescType toType) -> (AEDesc result)")}, 1348 {"AECreateDesc", (PyCFunction)AE_AECreateDesc, 1, 1349 PyDoc_STR("(DescType typeCode, Buffer dataPtr) -> (AEDesc result)")}, 1350 {"AECreateList", (PyCFunction)AE_AECreateList, 1, 1351 PyDoc_STR("(Buffer factoringPtr, Boolean isRecord) -> (AEDescList resultList)")}, 1352 {"AECreateAppleEvent", (PyCFunction)AE_AECreateAppleEvent, 1, 1353 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID, AEAddressDesc target, AEReturnID returnID, AETransactionID transactionID) -> (AppleEvent result)")}, 1354 {"AEReplaceDescData", (PyCFunction)AE_AEReplaceDescData, 1, 1355 PyDoc_STR("(DescType typeCode, Buffer dataPtr) -> (AEDesc theAEDesc)")}, 1356 {"AEProcessAppleEvent", (PyCFunction)AE_AEProcessAppleEvent, 1, 1357 PyDoc_STR("(EventRecord theEventRecord) -> None")}, 1358 {"AEGetInteractionAllowed", (PyCFunction)AE_AEGetInteractionAllowed, 1, 1359 PyDoc_STR("() -> (AEInteractAllowed level)")}, 1360 {"AESetInteractionAllowed", (PyCFunction)AE_AESetInteractionAllowed, 1, 1361 PyDoc_STR("(AEInteractAllowed level) -> None")}, 1362 {"AEInteractWithUser", (PyCFunction)AE_AEInteractWithUser, 1, 1363 PyDoc_STR("(long timeOutInTicks) -> None")}, 1364 {"AEInstallEventHandler", (PyCFunction)AE_AEInstallEventHandler, 1, 1365 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID, EventHandler handler) -> None")}, 1366 {"AERemoveEventHandler", (PyCFunction)AE_AERemoveEventHandler, 1, 1367 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID) -> None")}, 1368 {"AEGetEventHandler", (PyCFunction)AE_AEGetEventHandler, 1, 1369 PyDoc_STR("(AEEventClass theAEEventClass, AEEventID theAEEventID) -> (EventHandler handler)")}, 1370 {"AEInstallSpecialHandler", (PyCFunction)AE_AEInstallSpecialHandler, 1, 1371 PyDoc_STR("(AEKeyword functionClass) -> None")}, 1372 {"AERemoveSpecialHandler", (PyCFunction)AE_AERemoveSpecialHandler, 1, 1373 PyDoc_STR("(AEKeyword functionClass) -> None")}, 1374 {"AEManagerInfo", (PyCFunction)AE_AEManagerInfo, 1, 1375 PyDoc_STR("(AEKeyword keyWord) -> (long result)")}, 1376 {"AEObjectInit", (PyCFunction)AE_AEObjectInit, 1, 1377 PyDoc_STR("() -> None")}, 1378 {"AEDisposeToken", (PyCFunction)AE_AEDisposeToken, 1, 1379 PyDoc_STR("() -> (AEDesc theToken)")}, 1380 {"AECallObjectAccessor", (PyCFunction)AE_AECallObjectAccessor, 1, 1381 PyDoc_STR("(DescType desiredClass, AEDesc containerToken, DescType containerClass, DescType keyForm, AEDesc keyData) -> (AEDesc token)")}, 1382 {NULL, NULL, 0} 1383 1383 }; 1384 1384 … … 1388 1388 GenericEventHandler(const AppleEvent *request, AppleEvent *reply, refcontype refcon) 1389 1389 { 1390 PyObject *handler = (PyObject *)refcon;1391 AEDescObject *requestObject, *replyObject;1392 PyObject *args, *res;1393 if ((requestObject = (AEDescObject *)AEDesc_New((AppleEvent *)request)) == NULL) {1394 return -1;1395 }1396 if ((replyObject = (AEDescObject *)AEDesc_New(reply)) == NULL) {1397 Py_DECREF(requestObject);1398 return -1;1399 }1400 if ((args = Py_BuildValue("OO", requestObject, replyObject)) == NULL) {1401 Py_DECREF(requestObject);1402 Py_DECREF(replyObject);1403 return -1;1404 }1405 res = PyEval_CallObject(handler, args);1406 requestObject->ob_itself.descriptorType = 'null';1407 requestObject->ob_itself.dataHandle = NULL;1408 replyObject->ob_itself.descriptorType = 'null';1409 replyObject->ob_itself.dataHandle = NULL;1410 Py_DECREF(args);1411 if (res == NULL) {1412 PySys_WriteStderr("Exception in AE event handler function\n");1413 PyErr_Print();1414 return -1;1415 }1416 Py_DECREF(res);1417 return noErr;1390 PyObject *handler = (PyObject *)refcon; 1391 AEDescObject *requestObject, *replyObject; 1392 PyObject *args, *res; 1393 if ((requestObject = (AEDescObject *)AEDesc_New((AppleEvent *)request)) == NULL) { 1394 return -1; 1395 } 1396 if ((replyObject = (AEDescObject *)AEDesc_New(reply)) == NULL) { 1397 Py_DECREF(requestObject); 1398 return -1; 1399 } 1400 if ((args = Py_BuildValue("OO", requestObject, replyObject)) == NULL) { 1401 Py_DECREF(requestObject); 1402 Py_DECREF(replyObject); 1403 return -1; 1404 } 1405 res = PyEval_CallObject(handler, args); 1406 requestObject->ob_itself.descriptorType = 'null'; 1407 requestObject->ob_itself.dataHandle = NULL; 1408 replyObject->ob_itself.descriptorType = 'null'; 1409 replyObject->ob_itself.dataHandle = NULL; 1410 Py_DECREF(args); 1411 if (res == NULL) { 1412 PySys_WriteStderr("Exception in AE event handler function\n"); 1413 PyErr_Print(); 1414 return -1; 1415 } 1416 Py_DECREF(res); 1417 return noErr; 1418 1418 } 1419 1419 1420 1420 PyObject *AEDesc_NewBorrowed(AEDesc *itself) 1421 1421 { 1422 PyObject *it;1423 1424 it = AEDesc_New(itself);1425 if (it)1426 ((AEDescObject *)it)->ob_owned = 0;1427 return (PyObject *)it;1422 PyObject *it; 1423 1424 it = AEDesc_New(itself); 1425 if (it) 1426 ((AEDescObject *)it)->ob_owned = 0; 1427 return (PyObject *)it; 1428 1428 } 1429 1429 … … 1432 1432 void init_AE(void) 1433 1433 { 1434 PyObject *m;1435 PyObject *d;1436 1437 upp_AEIdleProc = NewAEIdleUPP(AEIdleProc);1438 upp_GenericEventHandler = NewAEEventHandlerUPP(GenericEventHandler);1439 PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_New);1440 PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_NewBorrowed);1441 PyMac_INIT_TOOLBOX_OBJECT_CONVERT(AEDesc, AEDesc_Convert);1442 1443 m = Py_InitModule("_AE", AE_methods);1444 d = PyModule_GetDict(m);1445 AE_Error = PyMac_GetOSErrException();1446 if (AE_Error == NULL ||1447 PyDict_SetItemString(d, "Error", AE_Error) != 0)1448 return;1449 AEDesc_Type.ob_type = &PyType_Type;1450 if (PyType_Ready(&AEDesc_Type) < 0) return;1451 Py_INCREF(&AEDesc_Type);1452 PyModule_AddObject(m, "AEDesc", (PyObject *)&AEDesc_Type);1453 /* Backward-compatible name */1454 Py_INCREF(&AEDesc_Type);1455 PyModule_AddObject(m, "AEDescType", (PyObject *)&AEDesc_Type);1434 PyObject *m; 1435 PyObject *d; 1436 1437 upp_AEIdleProc = NewAEIdleUPP(AEIdleProc); 1438 upp_GenericEventHandler = NewAEEventHandlerUPP(GenericEventHandler); 1439 PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_New); 1440 PyMac_INIT_TOOLBOX_OBJECT_NEW(AEDesc *, AEDesc_NewBorrowed); 1441 PyMac_INIT_TOOLBOX_OBJECT_CONVERT(AEDesc, AEDesc_Convert); 1442 1443 m = Py_InitModule("_AE", AE_methods); 1444 d = PyModule_GetDict(m); 1445 AE_Error = PyMac_GetOSErrException(); 1446 if (AE_Error == NULL || 1447 PyDict_SetItemString(d, "Error", AE_Error) != 0) 1448 return; 1449 AEDesc_Type.ob_type = &PyType_Type; 1450 if (PyType_Ready(&AEDesc_Type) < 0) return; 1451 Py_INCREF(&AEDesc_Type); 1452 PyModule_AddObject(m, "AEDesc", (PyObject *)&AEDesc_Type); 1453 /* Backward-compatible name */ 1454 Py_INCREF(&AEDesc_Type); 1455 PyModule_AddObject(m, "AEDescType", (PyObject *)&AEDesc_Type); 1456 1456 } 1457 1457
Note:
See TracChangeset
for help on using the changeset viewer.
