symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/launch/_Launchmodule.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 /* ========================= Module _Launch ========================= */
       
     3 
       
     4 #include "Python.h"
       
     5 
       
     6 
       
     7 
       
     8 #include "pymactoolbox.h"
       
     9 
       
    10 /* Macro to test whether a weak-loaded CFM function exists */
       
    11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
       
    12         PyErr_SetString(PyExc_NotImplementedError, \
       
    13         "Not available in this shared library/OS version"); \
       
    14         return NULL; \
       
    15     }} while(0)
       
    16 
       
    17 
       
    18 #if PY_VERSION_HEX < 0x02040000
       
    19 PyObject *PyMac_GetOSErrException(void);
       
    20 #endif
       
    21 
       
    22 #include <ApplicationServices/ApplicationServices.h>
       
    23 
       
    24 /*
       
    25 ** Optional CFStringRef. None will pass NULL
       
    26 */
       
    27 static int
       
    28 OptCFStringRefObj_Convert(PyObject *v, CFStringRef *spec)
       
    29 {
       
    30         if (v == Py_None) {
       
    31                 *spec = NULL;
       
    32                 return 1;
       
    33         }
       
    34         return CFStringRefObj_Convert(v, spec);
       
    35 }
       
    36 
       
    37 PyObject *
       
    38 OptCFStringRefObj_New(CFStringRef it)
       
    39 {
       
    40         if (it == NULL) {
       
    41                 Py_INCREF(Py_None);
       
    42                 return Py_None;
       
    43         }
       
    44         return CFStringRefObj_New(it);
       
    45 }
       
    46 
       
    47 /*
       
    48 ** Convert LSItemInfoRecord to Python.
       
    49 */
       
    50 PyObject *
       
    51 LSItemInfoRecord_New(LSItemInfoRecord *it)
       
    52 {
       
    53 #ifndef __LP64__
       
    54         return Py_BuildValue("{s:is:O&s:O&s:O&s:O&s:i}",
       
    55                 "flags", it->flags,
       
    56                 "filetype", PyMac_BuildOSType, it->filetype,
       
    57                 "creator", PyMac_BuildOSType, it->creator,
       
    58                 "extension", OptCFStringRefObj_New, it->extension,
       
    59                 "iconFileName", OptCFStringRefObj_New, it->iconFileName,
       
    60                 "kindID", it->kindID);
       
    61 #else
       
    62         return Py_BuildValue("{s:is:O&s:O&s:O&}",
       
    63                 "flags", it->flags,
       
    64                 "filetype", PyMac_BuildOSType, it->filetype,
       
    65                 "creator", PyMac_BuildOSType, it->creator,
       
    66                 "extension", OptCFStringRefObj_New, it->extension);
       
    67 #endif
       
    68 }
       
    69 
       
    70 static PyObject *Launch_Error;
       
    71 
       
    72 static PyObject *Launch_LSCopyItemInfoForRef(PyObject *_self, PyObject *_args)
       
    73 {
       
    74 	PyObject *_res = NULL;
       
    75 	OSStatus _err;
       
    76 	FSRef inItemRef;
       
    77 	LSRequestedInfo inWhichInfo;
       
    78 	LSItemInfoRecord outItemInfo;
       
    79 	if (!PyArg_ParseTuple(_args, "O&l",
       
    80 	                      PyMac_GetFSRef, &inItemRef,
       
    81 	                      &inWhichInfo))
       
    82 		return NULL;
       
    83 	_err = LSCopyItemInfoForRef(&inItemRef,
       
    84 	                            inWhichInfo,
       
    85 	                            &outItemInfo);
       
    86 	if (_err != noErr) return PyMac_Error(_err);
       
    87 	_res = Py_BuildValue("O&",
       
    88 	                     LSItemInfoRecord_New, &outItemInfo);
       
    89 	return _res;
       
    90 }
       
    91 
       
    92 static PyObject *Launch_LSCopyItemInfoForURL(PyObject *_self, PyObject *_args)
       
    93 {
       
    94 	PyObject *_res = NULL;
       
    95 	OSStatus _err;
       
    96 	CFURLRef inURL;
       
    97 	LSRequestedInfo inWhichInfo;
       
    98 	LSItemInfoRecord outItemInfo;
       
    99 	if (!PyArg_ParseTuple(_args, "O&l",
       
   100 	                      CFURLRefObj_Convert, &inURL,
       
   101 	                      &inWhichInfo))
       
   102 		return NULL;
       
   103 	_err = LSCopyItemInfoForURL(inURL,
       
   104 	                            inWhichInfo,
       
   105 	                            &outItemInfo);
       
   106 	if (_err != noErr) return PyMac_Error(_err);
       
   107 	_res = Py_BuildValue("O&",
       
   108 	                     LSItemInfoRecord_New, &outItemInfo);
       
   109 	return _res;
       
   110 }
       
   111 
       
   112 static PyObject *Launch_LSGetExtensionInfo(PyObject *_self, PyObject *_args)
       
   113 {
       
   114 	PyObject *_res = NULL;
       
   115 	OSStatus _err;
       
   116 	UniChar *inNameLen__in__;
       
   117 	UniCharCount inNameLen__len__;
       
   118 	int inNameLen__in_len__;
       
   119 	UniCharCount outExtStartIndex;
       
   120 	if (!PyArg_ParseTuple(_args, "u#",
       
   121 	                      &inNameLen__in__, &inNameLen__in_len__))
       
   122 		return NULL;
       
   123 	inNameLen__len__ = inNameLen__in_len__;
       
   124 	_err = LSGetExtensionInfo(inNameLen__len__, inNameLen__in__,
       
   125 	                          &outExtStartIndex);
       
   126 	if (_err != noErr) return PyMac_Error(_err);
       
   127 	_res = Py_BuildValue("l",
       
   128 	                     outExtStartIndex);
       
   129 	return _res;
       
   130 }
       
   131 
       
   132 static PyObject *Launch_LSCopyDisplayNameForRef(PyObject *_self, PyObject *_args)
       
   133 {
       
   134 	PyObject *_res = NULL;
       
   135 	OSStatus _err;
       
   136 	FSRef inRef;
       
   137 	CFStringRef outDisplayName;
       
   138 	if (!PyArg_ParseTuple(_args, "O&",
       
   139 	                      PyMac_GetFSRef, &inRef))
       
   140 		return NULL;
       
   141 	_err = LSCopyDisplayNameForRef(&inRef,
       
   142 	                               &outDisplayName);
       
   143 	if (_err != noErr) return PyMac_Error(_err);
       
   144 	_res = Py_BuildValue("O&",
       
   145 	                     CFStringRefObj_New, outDisplayName);
       
   146 	return _res;
       
   147 }
       
   148 
       
   149 static PyObject *Launch_LSCopyDisplayNameForURL(PyObject *_self, PyObject *_args)
       
   150 {
       
   151 	PyObject *_res = NULL;
       
   152 	OSStatus _err;
       
   153 	CFURLRef inURL;
       
   154 	CFStringRef outDisplayName;
       
   155 	if (!PyArg_ParseTuple(_args, "O&",
       
   156 	                      CFURLRefObj_Convert, &inURL))
       
   157 		return NULL;
       
   158 	_err = LSCopyDisplayNameForURL(inURL,
       
   159 	                               &outDisplayName);
       
   160 	if (_err != noErr) return PyMac_Error(_err);
       
   161 	_res = Py_BuildValue("O&",
       
   162 	                     CFStringRefObj_New, outDisplayName);
       
   163 	return _res;
       
   164 }
       
   165 
       
   166 static PyObject *Launch_LSSetExtensionHiddenForRef(PyObject *_self, PyObject *_args)
       
   167 {
       
   168 	PyObject *_res = NULL;
       
   169 	OSStatus _err;
       
   170 	FSRef inRef;
       
   171 	Boolean inHide;
       
   172 	if (!PyArg_ParseTuple(_args, "O&b",
       
   173 	                      PyMac_GetFSRef, &inRef,
       
   174 	                      &inHide))
       
   175 		return NULL;
       
   176 	_err = LSSetExtensionHiddenForRef(&inRef,
       
   177 	                                  inHide);
       
   178 	if (_err != noErr) return PyMac_Error(_err);
       
   179 	Py_INCREF(Py_None);
       
   180 	_res = Py_None;
       
   181 	return _res;
       
   182 }
       
   183 
       
   184 static PyObject *Launch_LSSetExtensionHiddenForURL(PyObject *_self, PyObject *_args)
       
   185 {
       
   186 	PyObject *_res = NULL;
       
   187 	OSStatus _err;
       
   188 	CFURLRef inURL;
       
   189 	Boolean inHide;
       
   190 	if (!PyArg_ParseTuple(_args, "O&b",
       
   191 	                      CFURLRefObj_Convert, &inURL,
       
   192 	                      &inHide))
       
   193 		return NULL;
       
   194 	_err = LSSetExtensionHiddenForURL(inURL,
       
   195 	                                  inHide);
       
   196 	if (_err != noErr) return PyMac_Error(_err);
       
   197 	Py_INCREF(Py_None);
       
   198 	_res = Py_None;
       
   199 	return _res;
       
   200 }
       
   201 
       
   202 static PyObject *Launch_LSCopyKindStringForRef(PyObject *_self, PyObject *_args)
       
   203 {
       
   204 	PyObject *_res = NULL;
       
   205 	OSStatus _err;
       
   206 	FSRef inFSRef;
       
   207 	CFStringRef outKindString;
       
   208 	if (!PyArg_ParseTuple(_args, "O&",
       
   209 	                      PyMac_GetFSRef, &inFSRef))
       
   210 		return NULL;
       
   211 	_err = LSCopyKindStringForRef(&inFSRef,
       
   212 	                              &outKindString);
       
   213 	if (_err != noErr) return PyMac_Error(_err);
       
   214 	_res = Py_BuildValue("O&",
       
   215 	                     CFStringRefObj_New, outKindString);
       
   216 	return _res;
       
   217 }
       
   218 
       
   219 static PyObject *Launch_LSCopyKindStringForURL(PyObject *_self, PyObject *_args)
       
   220 {
       
   221 	PyObject *_res = NULL;
       
   222 	OSStatus _err;
       
   223 	CFURLRef inURL;
       
   224 	CFStringRef outKindString;
       
   225 	if (!PyArg_ParseTuple(_args, "O&",
       
   226 	                      CFURLRefObj_Convert, &inURL))
       
   227 		return NULL;
       
   228 	_err = LSCopyKindStringForURL(inURL,
       
   229 	                              &outKindString);
       
   230 	if (_err != noErr) return PyMac_Error(_err);
       
   231 	_res = Py_BuildValue("O&",
       
   232 	                     CFStringRefObj_New, outKindString);
       
   233 	return _res;
       
   234 }
       
   235 
       
   236 static PyObject *Launch_LSGetApplicationForItem(PyObject *_self, PyObject *_args)
       
   237 {
       
   238 	PyObject *_res = NULL;
       
   239 	OSStatus _err;
       
   240 	FSRef inItemRef;
       
   241 	LSRolesMask inRoleMask;
       
   242 	FSRef outAppRef;
       
   243 	CFURLRef outAppURL;
       
   244 	if (!PyArg_ParseTuple(_args, "O&l",
       
   245 	                      PyMac_GetFSRef, &inItemRef,
       
   246 	                      &inRoleMask))
       
   247 		return NULL;
       
   248 	_err = LSGetApplicationForItem(&inItemRef,
       
   249 	                               inRoleMask,
       
   250 	                               &outAppRef,
       
   251 	                               &outAppURL);
       
   252 	if (_err != noErr) return PyMac_Error(_err);
       
   253 	_res = Py_BuildValue("O&O&",
       
   254 	                     PyMac_BuildFSRef, &outAppRef,
       
   255 	                     CFURLRefObj_New, outAppURL);
       
   256 	return _res;
       
   257 }
       
   258 
       
   259 static PyObject *Launch_LSGetApplicationForInfo(PyObject *_self, PyObject *_args)
       
   260 {
       
   261 	PyObject *_res = NULL;
       
   262 	OSStatus _err;
       
   263 	OSType inType;
       
   264 	OSType inCreator;
       
   265 	CFStringRef inExtension;
       
   266 	LSRolesMask inRoleMask;
       
   267 	FSRef outAppRef;
       
   268 	CFURLRef outAppURL;
       
   269 	if (!PyArg_ParseTuple(_args, "O&O&O&l",
       
   270 	                      PyMac_GetOSType, &inType,
       
   271 	                      PyMac_GetOSType, &inCreator,
       
   272 	                      OptCFStringRefObj_Convert, &inExtension,
       
   273 	                      &inRoleMask))
       
   274 		return NULL;
       
   275 	_err = LSGetApplicationForInfo(inType,
       
   276 	                               inCreator,
       
   277 	                               inExtension,
       
   278 	                               inRoleMask,
       
   279 	                               &outAppRef,
       
   280 	                               &outAppURL);
       
   281 	if (_err != noErr) return PyMac_Error(_err);
       
   282 	_res = Py_BuildValue("O&O&",
       
   283 	                     PyMac_BuildFSRef, &outAppRef,
       
   284 	                     CFURLRefObj_New, outAppURL);
       
   285 	return _res;
       
   286 }
       
   287 
       
   288 static PyObject *Launch_LSGetApplicationForURL(PyObject *_self, PyObject *_args)
       
   289 {
       
   290 	PyObject *_res = NULL;
       
   291 	OSStatus _err;
       
   292 	CFURLRef inURL;
       
   293 	LSRolesMask inRoleMask;
       
   294 	FSRef outAppRef;
       
   295 	CFURLRef outAppURL;
       
   296 	if (!PyArg_ParseTuple(_args, "O&l",
       
   297 	                      CFURLRefObj_Convert, &inURL,
       
   298 	                      &inRoleMask))
       
   299 		return NULL;
       
   300 	_err = LSGetApplicationForURL(inURL,
       
   301 	                              inRoleMask,
       
   302 	                              &outAppRef,
       
   303 	                              &outAppURL);
       
   304 	if (_err != noErr) return PyMac_Error(_err);
       
   305 	_res = Py_BuildValue("O&O&",
       
   306 	                     PyMac_BuildFSRef, &outAppRef,
       
   307 	                     CFURLRefObj_New, outAppURL);
       
   308 	return _res;
       
   309 }
       
   310 
       
   311 static PyObject *Launch_LSFindApplicationForInfo(PyObject *_self, PyObject *_args)
       
   312 {
       
   313 	PyObject *_res = NULL;
       
   314 	OSStatus _err;
       
   315 	OSType inCreator;
       
   316 	CFStringRef inBundleID;
       
   317 	CFStringRef inName;
       
   318 	FSRef outAppRef;
       
   319 	CFURLRef outAppURL;
       
   320 	if (!PyArg_ParseTuple(_args, "O&O&O&",
       
   321 	                      PyMac_GetOSType, &inCreator,
       
   322 	                      OptCFStringRefObj_Convert, &inBundleID,
       
   323 	                      OptCFStringRefObj_Convert, &inName))
       
   324 		return NULL;
       
   325 	_err = LSFindApplicationForInfo(inCreator,
       
   326 	                                inBundleID,
       
   327 	                                inName,
       
   328 	                                &outAppRef,
       
   329 	                                &outAppURL);
       
   330 	if (_err != noErr) return PyMac_Error(_err);
       
   331 	_res = Py_BuildValue("O&O&",
       
   332 	                     PyMac_BuildFSRef, &outAppRef,
       
   333 	                     CFURLRefObj_New, outAppURL);
       
   334 	return _res;
       
   335 }
       
   336 
       
   337 static PyObject *Launch_LSCanRefAcceptItem(PyObject *_self, PyObject *_args)
       
   338 {
       
   339 	PyObject *_res = NULL;
       
   340 	OSStatus _err;
       
   341 	FSRef inItemFSRef;
       
   342 	FSRef inTargetRef;
       
   343 	LSRolesMask inRoleMask;
       
   344 	LSAcceptanceFlags inFlags;
       
   345 	Boolean outAcceptsItem;
       
   346 	if (!PyArg_ParseTuple(_args, "O&O&ll",
       
   347 	                      PyMac_GetFSRef, &inItemFSRef,
       
   348 	                      PyMac_GetFSRef, &inTargetRef,
       
   349 	                      &inRoleMask,
       
   350 	                      &inFlags))
       
   351 		return NULL;
       
   352 	_err = LSCanRefAcceptItem(&inItemFSRef,
       
   353 	                          &inTargetRef,
       
   354 	                          inRoleMask,
       
   355 	                          inFlags,
       
   356 	                          &outAcceptsItem);
       
   357 	if (_err != noErr) return PyMac_Error(_err);
       
   358 	_res = Py_BuildValue("b",
       
   359 	                     outAcceptsItem);
       
   360 	return _res;
       
   361 }
       
   362 
       
   363 static PyObject *Launch_LSCanURLAcceptURL(PyObject *_self, PyObject *_args)
       
   364 {
       
   365 	PyObject *_res = NULL;
       
   366 	OSStatus _err;
       
   367 	CFURLRef inItemURL;
       
   368 	CFURLRef inTargetURL;
       
   369 	LSRolesMask inRoleMask;
       
   370 	LSAcceptanceFlags inFlags;
       
   371 	Boolean outAcceptsItem;
       
   372 	if (!PyArg_ParseTuple(_args, "O&O&ll",
       
   373 	                      CFURLRefObj_Convert, &inItemURL,
       
   374 	                      CFURLRefObj_Convert, &inTargetURL,
       
   375 	                      &inRoleMask,
       
   376 	                      &inFlags))
       
   377 		return NULL;
       
   378 	_err = LSCanURLAcceptURL(inItemURL,
       
   379 	                         inTargetURL,
       
   380 	                         inRoleMask,
       
   381 	                         inFlags,
       
   382 	                         &outAcceptsItem);
       
   383 	if (_err != noErr) return PyMac_Error(_err);
       
   384 	_res = Py_BuildValue("b",
       
   385 	                     outAcceptsItem);
       
   386 	return _res;
       
   387 }
       
   388 
       
   389 static PyObject *Launch_LSOpenFSRef(PyObject *_self, PyObject *_args)
       
   390 {
       
   391 	PyObject *_res = NULL;
       
   392 	OSStatus _err;
       
   393 	FSRef inRef;
       
   394 	FSRef outLaunchedRef;
       
   395 	if (!PyArg_ParseTuple(_args, "O&",
       
   396 	                      PyMac_GetFSRef, &inRef))
       
   397 		return NULL;
       
   398 	_err = LSOpenFSRef(&inRef,
       
   399 	                   &outLaunchedRef);
       
   400 	if (_err != noErr) return PyMac_Error(_err);
       
   401 	_res = Py_BuildValue("O&",
       
   402 	                     PyMac_BuildFSRef, &outLaunchedRef);
       
   403 	return _res;
       
   404 }
       
   405 
       
   406 static PyObject *Launch_LSOpenCFURLRef(PyObject *_self, PyObject *_args)
       
   407 {
       
   408 	PyObject *_res = NULL;
       
   409 	OSStatus _err;
       
   410 	CFURLRef inURL;
       
   411 	CFURLRef outLaunchedURL;
       
   412 	if (!PyArg_ParseTuple(_args, "O&",
       
   413 	                      CFURLRefObj_Convert, &inURL))
       
   414 		return NULL;
       
   415 	_err = LSOpenCFURLRef(inURL,
       
   416 	                      &outLaunchedURL);
       
   417 	if (_err != noErr) return PyMac_Error(_err);
       
   418 	_res = Py_BuildValue("O&",
       
   419 	                     CFURLRefObj_New, outLaunchedURL);
       
   420 	return _res;
       
   421 }
       
   422 
       
   423 static PyMethodDef Launch_methods[] = {
       
   424 	{"LSCopyItemInfoForRef", (PyCFunction)Launch_LSCopyItemInfoForRef, 1,
       
   425 	 PyDoc_STR("(FSRef inItemRef, LSRequestedInfo inWhichInfo) -> (LSItemInfoRecord outItemInfo)")},
       
   426 	{"LSCopyItemInfoForURL", (PyCFunction)Launch_LSCopyItemInfoForURL, 1,
       
   427 	 PyDoc_STR("(CFURLRef inURL, LSRequestedInfo inWhichInfo) -> (LSItemInfoRecord outItemInfo)")},
       
   428 	{"LSGetExtensionInfo", (PyCFunction)Launch_LSGetExtensionInfo, 1,
       
   429 	 PyDoc_STR("(Buffer inNameLen) -> (UniCharCount outExtStartIndex)")},
       
   430 	{"LSCopyDisplayNameForRef", (PyCFunction)Launch_LSCopyDisplayNameForRef, 1,
       
   431 	 PyDoc_STR("(FSRef inRef) -> (CFStringRef outDisplayName)")},
       
   432 	{"LSCopyDisplayNameForURL", (PyCFunction)Launch_LSCopyDisplayNameForURL, 1,
       
   433 	 PyDoc_STR("(CFURLRef inURL) -> (CFStringRef outDisplayName)")},
       
   434 	{"LSSetExtensionHiddenForRef", (PyCFunction)Launch_LSSetExtensionHiddenForRef, 1,
       
   435 	 PyDoc_STR("(FSRef inRef, Boolean inHide) -> None")},
       
   436 	{"LSSetExtensionHiddenForURL", (PyCFunction)Launch_LSSetExtensionHiddenForURL, 1,
       
   437 	 PyDoc_STR("(CFURLRef inURL, Boolean inHide) -> None")},
       
   438 	{"LSCopyKindStringForRef", (PyCFunction)Launch_LSCopyKindStringForRef, 1,
       
   439 	 PyDoc_STR("(FSRef inFSRef) -> (CFStringRef outKindString)")},
       
   440 	{"LSCopyKindStringForURL", (PyCFunction)Launch_LSCopyKindStringForURL, 1,
       
   441 	 PyDoc_STR("(CFURLRef inURL) -> (CFStringRef outKindString)")},
       
   442 	{"LSGetApplicationForItem", (PyCFunction)Launch_LSGetApplicationForItem, 1,
       
   443 	 PyDoc_STR("(FSRef inItemRef, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")},
       
   444 	{"LSGetApplicationForInfo", (PyCFunction)Launch_LSGetApplicationForInfo, 1,
       
   445 	 PyDoc_STR("(OSType inType, OSType inCreator, CFStringRef inExtension, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")},
       
   446 	{"LSGetApplicationForURL", (PyCFunction)Launch_LSGetApplicationForURL, 1,
       
   447 	 PyDoc_STR("(CFURLRef inURL, LSRolesMask inRoleMask) -> (FSRef outAppRef, CFURLRef outAppURL)")},
       
   448 	{"LSFindApplicationForInfo", (PyCFunction)Launch_LSFindApplicationForInfo, 1,
       
   449 	 PyDoc_STR("(OSType inCreator, CFStringRef inBundleID, CFStringRef inName) -> (FSRef outAppRef, CFURLRef outAppURL)")},
       
   450 	{"LSCanRefAcceptItem", (PyCFunction)Launch_LSCanRefAcceptItem, 1,
       
   451 	 PyDoc_STR("(FSRef inItemFSRef, FSRef inTargetRef, LSRolesMask inRoleMask, LSAcceptanceFlags inFlags) -> (Boolean outAcceptsItem)")},
       
   452 	{"LSCanURLAcceptURL", (PyCFunction)Launch_LSCanURLAcceptURL, 1,
       
   453 	 PyDoc_STR("(CFURLRef inItemURL, CFURLRef inTargetURL, LSRolesMask inRoleMask, LSAcceptanceFlags inFlags) -> (Boolean outAcceptsItem)")},
       
   454 	{"LSOpenFSRef", (PyCFunction)Launch_LSOpenFSRef, 1,
       
   455 	 PyDoc_STR("(FSRef inRef) -> (FSRef outLaunchedRef)")},
       
   456 	{"LSOpenCFURLRef", (PyCFunction)Launch_LSOpenCFURLRef, 1,
       
   457 	 PyDoc_STR("(CFURLRef inURL) -> (CFURLRef outLaunchedURL)")},
       
   458 	{NULL, NULL, 0}
       
   459 };
       
   460 
       
   461 
       
   462 
       
   463 
       
   464 void init_Launch(void)
       
   465 {
       
   466 	PyObject *m;
       
   467 	PyObject *d;
       
   468 
       
   469 
       
   470 
       
   471 
       
   472 	m = Py_InitModule("_Launch", Launch_methods);
       
   473 	d = PyModule_GetDict(m);
       
   474 	Launch_Error = PyMac_GetOSErrException();
       
   475 	if (Launch_Error == NULL ||
       
   476 	    PyDict_SetItemString(d, "Error", Launch_Error) != 0)
       
   477 		return;
       
   478 }
       
   479 
       
   480 /* ======================= End module _Launch ======================= */
       
   481