symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/osa/_OSAmodule.c
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/osa/_OSAmodule.c	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,899 @@
+
+/* ========================== Module _OSA =========================== */
+
+#include "Python.h"
+
+
+
+#include "pymactoolbox.h"
+
+/* Macro to test whether a weak-loaded CFM function exists */
+#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
+        PyErr_SetString(PyExc_NotImplementedError, \
+        "Not available in this shared library/OS version"); \
+        return NULL; \
+    }} while(0)
+
+
+#if PY_VERSION_HEX < 0x02040000
+PyObject *PyMac_GetOSErrException(void);
+#endif
+#include <Carbon/Carbon.h>
+
+#ifdef USE_TOOLBOX_OBJECT_GLUE
+extern PyObject *_OSAObj_New(ComponentInstance);
+extern int _OSAObj_Convert(PyObject *, ComponentInstance *);
+
+#define OSAObj_New _OSAObj_New
+#define OSAObj_Convert _OSAObj_Convert
+#endif
+
+static PyObject *OSA_Error;
+
+/* ---------------- Object type OSAComponentInstance ---------------- */
+
+PyTypeObject OSAComponentInstance_Type;
+
+#define OSAObj_Check(x) ((x)->ob_type == &OSAComponentInstance_Type || PyObject_TypeCheck((x), &OSAComponentInstance_Type))
+
+typedef struct OSAComponentInstanceObject {
+	PyObject_HEAD
+	ComponentInstance ob_itself;
+} OSAComponentInstanceObject;
+
+PyObject *OSAObj_New(ComponentInstance itself)
+{
+	OSAComponentInstanceObject *it;
+	if (itself == NULL) {
+	                                PyErr_SetString(OSA_Error,"NULL ComponentInstance");
+	                                return NULL;
+	                        }
+	it = PyObject_NEW(OSAComponentInstanceObject, &OSAComponentInstance_Type);
+	if (it == NULL) return NULL;
+	it->ob_itself = itself;
+	return (PyObject *)it;
+}
+
+int OSAObj_Convert(PyObject *v, ComponentInstance *p_itself)
+{
+
+	                if (CmpInstObj_Convert(v, p_itself))
+	                        return 1;
+	                PyErr_Clear();
+	                
+	if (!OSAObj_Check(v))
+	{
+		PyErr_SetString(PyExc_TypeError, "OSAComponentInstance required");
+		return 0;
+	}
+	*p_itself = ((OSAComponentInstanceObject *)v)->ob_itself;
+	return 1;
+}
+
+static void OSAObj_dealloc(OSAComponentInstanceObject *self)
+{
+	/* Cleanup of self->ob_itself goes here */
+	self->ob_type->tp_free((PyObject *)self);
+}
+
+static PyObject *OSAObj_OSALoad(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc scriptData;
+	long modeFlags;
+	OSAID resultingScriptID;
+#ifndef OSALoad
+	PyMac_PRECHECK(OSALoad);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&l",
+	                      AEDesc_Convert, &scriptData,
+	                      &modeFlags))
+		return NULL;
+	_err = OSALoad(_self->ob_itself,
+	               &scriptData,
+	               modeFlags,
+	               &resultingScriptID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingScriptID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAStore(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+	DescType desiredType;
+	long modeFlags;
+	AEDesc resultingScriptData;
+#ifndef OSAStore
+	PyMac_PRECHECK(OSAStore);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&l",
+	                      &scriptID,
+	                      PyMac_GetOSType, &desiredType,
+	                      &modeFlags))
+		return NULL;
+	_err = OSAStore(_self->ob_itself,
+	                scriptID,
+	                desiredType,
+	                modeFlags,
+	                &resultingScriptData);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingScriptData);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAExecute(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID compiledScriptID;
+	OSAID contextID;
+	long modeFlags;
+	OSAID resultingScriptValueID;
+#ifndef OSAExecute
+	PyMac_PRECHECK(OSAExecute);
+#endif
+	if (!PyArg_ParseTuple(_args, "lll",
+	                      &compiledScriptID,
+	                      &contextID,
+	                      &modeFlags))
+		return NULL;
+	_err = OSAExecute(_self->ob_itself,
+	                  compiledScriptID,
+	                  contextID,
+	                  modeFlags,
+	                  &resultingScriptValueID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingScriptValueID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSADisplay(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptValueID;
+	DescType desiredType;
+	long modeFlags;
+	AEDesc resultingText;
+#ifndef OSADisplay
+	PyMac_PRECHECK(OSADisplay);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&l",
+	                      &scriptValueID,
+	                      PyMac_GetOSType, &desiredType,
+	                      &modeFlags))
+		return NULL;
+	_err = OSADisplay(_self->ob_itself,
+	                  scriptValueID,
+	                  desiredType,
+	                  modeFlags,
+	                  &resultingText);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingText);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAScriptError(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSType selector;
+	DescType desiredType;
+	AEDesc resultingErrorDescription;
+#ifndef OSAScriptError
+	PyMac_PRECHECK(OSAScriptError);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&O&",
+	                      PyMac_GetOSType, &selector,
+	                      PyMac_GetOSType, &desiredType))
+		return NULL;
+	_err = OSAScriptError(_self->ob_itself,
+	                      selector,
+	                      desiredType,
+	                      &resultingErrorDescription);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingErrorDescription);
+	return _res;
+}
+
+static PyObject *OSAObj_OSADispose(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+#ifndef OSADispose
+	PyMac_PRECHECK(OSADispose);
+#endif
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &scriptID))
+		return NULL;
+	_err = OSADispose(_self->ob_itself,
+	                  scriptID);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *OSAObj_OSASetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+	OSType selector;
+	long value;
+#ifndef OSASetScriptInfo
+	PyMac_PRECHECK(OSASetScriptInfo);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&l",
+	                      &scriptID,
+	                      PyMac_GetOSType, &selector,
+	                      &value))
+		return NULL;
+	_err = OSASetScriptInfo(_self->ob_itself,
+	                        scriptID,
+	                        selector,
+	                        value);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *OSAObj_OSAGetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+	OSType selector;
+	long result;
+#ifndef OSAGetScriptInfo
+	PyMac_PRECHECK(OSAGetScriptInfo);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&",
+	                      &scriptID,
+	                      PyMac_GetOSType, &selector))
+		return NULL;
+	_err = OSAGetScriptInfo(_self->ob_itself,
+	                        scriptID,
+	                        selector,
+	                        &result);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     result);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAScriptingComponentName(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc resultingScriptingComponentName;
+#ifndef OSAScriptingComponentName
+	PyMac_PRECHECK(OSAScriptingComponentName);
+#endif
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = OSAScriptingComponentName(_self->ob_itself,
+	                                 &resultingScriptingComponentName);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingScriptingComponentName);
+	return _res;
+}
+
+static PyObject *OSAObj_OSACompile(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc sourceData;
+	long modeFlags;
+	OSAID previousAndResultingScriptID;
+#ifndef OSACompile
+	PyMac_PRECHECK(OSACompile);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&l",
+	                      AEDesc_Convert, &sourceData,
+	                      &modeFlags))
+		return NULL;
+	_err = OSACompile(_self->ob_itself,
+	                  &sourceData,
+	                  modeFlags,
+	                  &previousAndResultingScriptID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     previousAndResultingScriptID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSACopyID(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID fromID;
+	OSAID toID;
+#ifndef OSACopyID
+	PyMac_PRECHECK(OSACopyID);
+#endif
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &fromID))
+		return NULL;
+	_err = OSACopyID(_self->ob_itself,
+	                 fromID,
+	                 &toID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     toID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAGetSource(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+	DescType desiredType;
+	AEDesc resultingSourceData;
+#ifndef OSAGetSource
+	PyMac_PRECHECK(OSAGetSource);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&",
+	                      &scriptID,
+	                      PyMac_GetOSType, &desiredType))
+		return NULL;
+	_err = OSAGetSource(_self->ob_itself,
+	                    scriptID,
+	                    desiredType,
+	                    &resultingSourceData);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingSourceData);
+	return _res;
+}
+
+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;
+}
+
+static PyObject *OSAObj_OSACoerceToDesc(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID scriptID;
+	DescType desiredType;
+	long modeFlags;
+	AEDesc result;
+#ifndef OSACoerceToDesc
+	PyMac_PRECHECK(OSACoerceToDesc);
+#endif
+	if (!PyArg_ParseTuple(_args, "lO&l",
+	                      &scriptID,
+	                      PyMac_GetOSType, &desiredType,
+	                      &modeFlags))
+		return NULL;
+	_err = OSACoerceToDesc(_self->ob_itself,
+	                       scriptID,
+	                       desiredType,
+	                       modeFlags,
+	                       &result);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &result);
+	return _res;
+}
+
+static PyObject *OSAObj_OSASetDefaultTarget(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEAddressDesc target;
+#ifndef OSASetDefaultTarget
+	PyMac_PRECHECK(OSASetDefaultTarget);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&",
+	                      AEDesc_Convert, &target))
+		return NULL;
+	_err = OSASetDefaultTarget(_self->ob_itself,
+	                           &target);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *OSAObj_OSAStartRecording(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID compiledScriptToModifyID;
+#ifndef OSAStartRecording
+	PyMac_PRECHECK(OSAStartRecording);
+#endif
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = OSAStartRecording(_self->ob_itself,
+	                         &compiledScriptToModifyID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     compiledScriptToModifyID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAStopRecording(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	OSAID compiledScriptID;
+#ifndef OSAStopRecording
+	PyMac_PRECHECK(OSAStopRecording);
+#endif
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &compiledScriptID))
+		return NULL;
+	_err = OSAStopRecording(_self->ob_itself,
+	                        compiledScriptID);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *OSAObj_OSALoadExecute(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc scriptData;
+	OSAID contextID;
+	long modeFlags;
+	OSAID resultingScriptValueID;
+#ifndef OSALoadExecute
+	PyMac_PRECHECK(OSALoadExecute);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&ll",
+	                      AEDesc_Convert, &scriptData,
+	                      &contextID,
+	                      &modeFlags))
+		return NULL;
+	_err = OSALoadExecute(_self->ob_itself,
+	                      &scriptData,
+	                      contextID,
+	                      modeFlags,
+	                      &resultingScriptValueID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingScriptValueID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSACompileExecute(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc sourceData;
+	OSAID contextID;
+	long modeFlags;
+	OSAID resultingScriptValueID;
+#ifndef OSACompileExecute
+	PyMac_PRECHECK(OSACompileExecute);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&ll",
+	                      AEDesc_Convert, &sourceData,
+	                      &contextID,
+	                      &modeFlags))
+		return NULL;
+	_err = OSACompileExecute(_self->ob_itself,
+	                         &sourceData,
+	                         contextID,
+	                         modeFlags,
+	                         &resultingScriptValueID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingScriptValueID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSADoScript(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc sourceData;
+	OSAID contextID;
+	DescType desiredType;
+	long modeFlags;
+	AEDesc resultingText;
+#ifndef OSADoScript
+	PyMac_PRECHECK(OSADoScript);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&lO&l",
+	                      AEDesc_Convert, &sourceData,
+	                      &contextID,
+	                      PyMac_GetOSType, &desiredType,
+	                      &modeFlags))
+		return NULL;
+	_err = OSADoScript(_self->ob_itself,
+	                   &sourceData,
+	                   contextID,
+	                   desiredType,
+	                   modeFlags,
+	                   &resultingText);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingText);
+	return _res;
+}
+
+static PyObject *OSAObj_OSASetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	short dialectCode;
+#ifndef OSASetCurrentDialect
+	PyMac_PRECHECK(OSASetCurrentDialect);
+#endif
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &dialectCode))
+		return NULL;
+	_err = OSASetCurrentDialect(_self->ob_itself,
+	                            dialectCode);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *OSAObj_OSAGetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	short resultingDialectCode;
+#ifndef OSAGetCurrentDialect
+	PyMac_PRECHECK(OSAGetCurrentDialect);
+#endif
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = OSAGetCurrentDialect(_self->ob_itself,
+	                            &resultingDialectCode);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("h",
+	                     resultingDialectCode);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAAvailableDialects(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc resultingDialectInfoList;
+#ifndef OSAAvailableDialects
+	PyMac_PRECHECK(OSAAvailableDialects);
+#endif
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = OSAAvailableDialects(_self->ob_itself,
+	                            &resultingDialectInfoList);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingDialectInfoList);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAGetDialectInfo(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	short dialectCode;
+	OSType selector;
+	AEDesc resultingDialectInfo;
+#ifndef OSAGetDialectInfo
+	PyMac_PRECHECK(OSAGetDialectInfo);
+#endif
+	if (!PyArg_ParseTuple(_args, "hO&",
+	                      &dialectCode,
+	                      PyMac_GetOSType, &selector))
+		return NULL;
+	_err = OSAGetDialectInfo(_self->ob_itself,
+	                         dialectCode,
+	                         selector,
+	                         &resultingDialectInfo);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingDialectInfo);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAAvailableDialectCodeList(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc resultingDialectCodeList;
+#ifndef OSAAvailableDialectCodeList
+	PyMac_PRECHECK(OSAAvailableDialectCodeList);
+#endif
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = OSAAvailableDialectCodeList(_self->ob_itself,
+	                                   &resultingDialectCodeList);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &resultingDialectCodeList);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAExecuteEvent(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AppleEvent theAppleEvent;
+	OSAID contextID;
+	long modeFlags;
+	OSAID resultingScriptValueID;
+#ifndef OSAExecuteEvent
+	PyMac_PRECHECK(OSAExecuteEvent);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&ll",
+	                      AEDesc_Convert, &theAppleEvent,
+	                      &contextID,
+	                      &modeFlags))
+		return NULL;
+	_err = OSAExecuteEvent(_self->ob_itself,
+	                       &theAppleEvent,
+	                       contextID,
+	                       modeFlags,
+	                       &resultingScriptValueID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingScriptValueID);
+	return _res;
+}
+
+static PyObject *OSAObj_OSADoEvent(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AppleEvent theAppleEvent;
+	OSAID contextID;
+	long modeFlags;
+	AppleEvent reply;
+#ifndef OSADoEvent
+	PyMac_PRECHECK(OSADoEvent);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&ll",
+	                      AEDesc_Convert, &theAppleEvent,
+	                      &contextID,
+	                      &modeFlags))
+		return NULL;
+	_err = OSADoEvent(_self->ob_itself,
+	                  &theAppleEvent,
+	                  contextID,
+	                  modeFlags,
+	                  &reply);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("O&",
+	                     AEDesc_New, &reply);
+	return _res;
+}
+
+static PyObject *OSAObj_OSAMakeContext(OSAComponentInstanceObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+	OSAError _err;
+	AEDesc contextName;
+	OSAID parentContext;
+	OSAID resultingContextID;
+#ifndef OSAMakeContext
+	PyMac_PRECHECK(OSAMakeContext);
+#endif
+	if (!PyArg_ParseTuple(_args, "O&l",
+	                      AEDesc_Convert, &contextName,
+	                      &parentContext))
+		return NULL;
+	_err = OSAMakeContext(_self->ob_itself,
+	                      &contextName,
+	                      parentContext,
+	                      &resultingContextID);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     resultingContextID);
+	return _res;
+}
+
+static PyMethodDef OSAObj_methods[] = {
+	{"OSALoad", (PyCFunction)OSAObj_OSALoad, 1,
+	 PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")},
+	{"OSAStore", (PyCFunction)OSAObj_OSAStore, 1,
+	 PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc resultingScriptData)")},
+	{"OSAExecute", (PyCFunction)OSAObj_OSAExecute, 1,
+	 PyDoc_STR("(OSAID compiledScriptID, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
+	{"OSADisplay", (PyCFunction)OSAObj_OSADisplay, 1,
+	 PyDoc_STR("(OSAID scriptValueID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")},
+	{"OSAScriptError", (PyCFunction)OSAObj_OSAScriptError, 1,
+	 PyDoc_STR("(OSType selector, DescType desiredType) -> (AEDesc resultingErrorDescription)")},
+	{"OSADispose", (PyCFunction)OSAObj_OSADispose, 1,
+	 PyDoc_STR("(OSAID scriptID) -> None")},
+	{"OSASetScriptInfo", (PyCFunction)OSAObj_OSASetScriptInfo, 1,
+	 PyDoc_STR("(OSAID scriptID, OSType selector, long value) -> None")},
+	{"OSAGetScriptInfo", (PyCFunction)OSAObj_OSAGetScriptInfo, 1,
+	 PyDoc_STR("(OSAID scriptID, OSType selector) -> (long result)")},
+	{"OSAScriptingComponentName", (PyCFunction)OSAObj_OSAScriptingComponentName, 1,
+	 PyDoc_STR("() -> (AEDesc resultingScriptingComponentName)")},
+	{"OSACompile", (PyCFunction)OSAObj_OSACompile, 1,
+	 PyDoc_STR("(AEDesc sourceData, long modeFlags) -> (OSAID previousAndResultingScriptID)")},
+	{"OSACopyID", (PyCFunction)OSAObj_OSACopyID, 1,
+	 PyDoc_STR("(OSAID fromID) -> (OSAID toID)")},
+	{"OSAGetSource", (PyCFunction)OSAObj_OSAGetSource, 1,
+	 PyDoc_STR("(OSAID scriptID, DescType desiredType) -> (AEDesc resultingSourceData)")},
+	{"OSACoerceFromDesc", (PyCFunction)OSAObj_OSACoerceFromDesc, 1,
+	 PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")},
+	{"OSACoerceToDesc", (PyCFunction)OSAObj_OSACoerceToDesc, 1,
+	 PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc result)")},
+	{"OSASetDefaultTarget", (PyCFunction)OSAObj_OSASetDefaultTarget, 1,
+	 PyDoc_STR("(AEAddressDesc target) -> None")},
+	{"OSAStartRecording", (PyCFunction)OSAObj_OSAStartRecording, 1,
+	 PyDoc_STR("() -> (OSAID compiledScriptToModifyID)")},
+	{"OSAStopRecording", (PyCFunction)OSAObj_OSAStopRecording, 1,
+	 PyDoc_STR("(OSAID compiledScriptID) -> None")},
+	{"OSALoadExecute", (PyCFunction)OSAObj_OSALoadExecute, 1,
+	 PyDoc_STR("(AEDesc scriptData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
+	{"OSACompileExecute", (PyCFunction)OSAObj_OSACompileExecute, 1,
+	 PyDoc_STR("(AEDesc sourceData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
+	{"OSADoScript", (PyCFunction)OSAObj_OSADoScript, 1,
+	 PyDoc_STR("(AEDesc sourceData, OSAID contextID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")},
+	{"OSASetCurrentDialect", (PyCFunction)OSAObj_OSASetCurrentDialect, 1,
+	 PyDoc_STR("(short dialectCode) -> None")},
+	{"OSAGetCurrentDialect", (PyCFunction)OSAObj_OSAGetCurrentDialect, 1,
+	 PyDoc_STR("() -> (short resultingDialectCode)")},
+	{"OSAAvailableDialects", (PyCFunction)OSAObj_OSAAvailableDialects, 1,
+	 PyDoc_STR("() -> (AEDesc resultingDialectInfoList)")},
+	{"OSAGetDialectInfo", (PyCFunction)OSAObj_OSAGetDialectInfo, 1,
+	 PyDoc_STR("(short dialectCode, OSType selector) -> (AEDesc resultingDialectInfo)")},
+	{"OSAAvailableDialectCodeList", (PyCFunction)OSAObj_OSAAvailableDialectCodeList, 1,
+	 PyDoc_STR("() -> (AEDesc resultingDialectCodeList)")},
+	{"OSAExecuteEvent", (PyCFunction)OSAObj_OSAExecuteEvent, 1,
+	 PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
+	{"OSADoEvent", (PyCFunction)OSAObj_OSADoEvent, 1,
+	 PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (AppleEvent reply)")},
+	{"OSAMakeContext", (PyCFunction)OSAObj_OSAMakeContext, 1,
+	 PyDoc_STR("(AEDesc contextName, OSAID parentContext) -> (OSAID resultingContextID)")},
+	{NULL, NULL, 0}
+};
+
+#define OSAObj_getsetlist NULL
+
+
+#define OSAObj_compare NULL
+
+#define OSAObj_repr NULL
+
+#define OSAObj_hash NULL
+#define OSAObj_tp_init 0
+
+#define OSAObj_tp_alloc PyType_GenericAlloc
+
+static PyObject *OSAObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
+{
+	PyObject *_self;
+	ComponentInstance itself;
+	char *kw[] = {"itself", 0};
+
+	if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, OSAObj_Convert, &itself)) return NULL;
+	if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
+	((OSAComponentInstanceObject *)_self)->ob_itself = itself;
+	return _self;
+}
+
+#define OSAObj_tp_free PyObject_Del
+
+
+PyTypeObject OSAComponentInstance_Type = {
+	PyObject_HEAD_INIT(NULL)
+	0, /*ob_size*/
+	"_OSA.OSAComponentInstance", /*tp_name*/
+	sizeof(OSAComponentInstanceObject), /*tp_basicsize*/
+	0, /*tp_itemsize*/
+	/* methods */
+	(destructor) OSAObj_dealloc, /*tp_dealloc*/
+	0, /*tp_print*/
+	(getattrfunc)0, /*tp_getattr*/
+	(setattrfunc)0, /*tp_setattr*/
+	(cmpfunc) OSAObj_compare, /*tp_compare*/
+	(reprfunc) OSAObj_repr, /*tp_repr*/
+	(PyNumberMethods *)0, /* tp_as_number */
+	(PySequenceMethods *)0, /* tp_as_sequence */
+	(PyMappingMethods *)0, /* tp_as_mapping */
+	(hashfunc) OSAObj_hash, /*tp_hash*/
+	0, /*tp_call*/
+	0, /*tp_str*/
+	PyObject_GenericGetAttr, /*tp_getattro*/
+	PyObject_GenericSetAttr, /*tp_setattro */
+	0, /*tp_as_buffer*/
+	Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
+	0, /*tp_doc*/
+	0, /*tp_traverse*/
+	0, /*tp_clear*/
+	0, /*tp_richcompare*/
+	0, /*tp_weaklistoffset*/
+	0, /*tp_iter*/
+	0, /*tp_iternext*/
+	OSAObj_methods, /* tp_methods */
+	0, /*tp_members*/
+	OSAObj_getsetlist, /*tp_getset*/
+	0, /*tp_base*/
+	0, /*tp_dict*/
+	0, /*tp_descr_get*/
+	0, /*tp_descr_set*/
+	0, /*tp_dictoffset*/
+	OSAObj_tp_init, /* tp_init */
+	OSAObj_tp_alloc, /* tp_alloc */
+	OSAObj_tp_new, /* tp_new */
+	OSAObj_tp_free, /* tp_free */
+};
+
+/* -------------- End object type OSAComponentInstance -------------- */
+
+
+static PyMethodDef OSA_methods[] = {
+	{NULL, NULL, 0}
+};
+
+
+
+
+void init_OSA(void)
+{
+	PyObject *m;
+	PyObject *d;
+
+
+
+	/*
+	        PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, OSAObj_New);
+	        PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, OSAObj_Convert);
+	*/
+
+
+	m = Py_InitModule("_OSA", OSA_methods);
+	d = PyModule_GetDict(m);
+	OSA_Error = PyMac_GetOSErrException();
+	if (OSA_Error == NULL ||
+	    PyDict_SetItemString(d, "Error", OSA_Error) != 0)
+		return;
+	OSAComponentInstance_Type.ob_type = &PyType_Type;
+	if (PyType_Ready(&OSAComponentInstance_Type) < 0) return;
+	Py_INCREF(&OSAComponentInstance_Type);
+	PyModule_AddObject(m, "OSAComponentInstance", (PyObject *)&OSAComponentInstance_Type);
+	/* Backward-compatible name */
+	Py_INCREF(&OSAComponentInstance_Type);
+	PyModule_AddObject(m, "OSAComponentInstanceType", (PyObject *)&OSAComponentInstance_Type);
+}
+
+/* ======================== End module _OSA ========================= */
+