OSErr sourceStringOfAEDesc(ComponentInstance component, AEDesc* inDesc, AEDesc *outDesc) { OSErr err = noErr; OSAID script_id = kOSANullScript; CFAttributedStringRef source_text = NULL; err = OSACoerceFromDesc(component, inDesc, kOSAModeNull, &script_id); if (noErr != err) goto bail; err = OSACopySourceString(component, script_id, kOSAModeNull, &source_text); if (noErr != err) goto bail; CFStringRef plain_text = CFAttributedStringGetString(source_text); #if useLog CFShow(plain_text); #endif err = AEDescCreateWithCFString(plain_text, kCFStringEncodingUTF8, outDesc); bail: OSADispose(component, script_id); safeRelease(source_text); return err; }
static PyObject *OSAObj_OSACoerceFromDesc(OSAComponentInstanceObject *_self, PyObject *_args) { PyObject *_res = NULL; OSAError _err; AEDesc scriptData; long modeFlags; OSAID resultingScriptID; #ifndef OSACoerceFromDesc PyMac_PRECHECK(OSACoerceFromDesc); #endif if (!PyArg_ParseTuple(_args, "O&l", AEDesc_Convert, &scriptData, &modeFlags)) return NULL; _err = OSACoerceFromDesc(_self->ob_itself, &scriptData, modeFlags, &resultingScriptID); if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("l", resultingScriptID); return _res; }