コード例 #1
0
ファイル: ae.c プロジェクト: AdminCNP/appscript
static PyObject *AE_GetAppTerminology(PyObject* self, PyObject* args)
{
#if defined(__LP64__)
	PyErr_SetString(PyExc_NotImplementedError,
					"aem.ae.getappterminology isn't available in 64-bit processes.");
	return NULL;
#else
	static ComponentInstance defaultComponent;
	FSRef fsRef;
	FSSpec fss;
	AEDesc theDesc;
	Boolean didLaunch;
	OSAError err;
	
	if (!PyArg_ParseTuple(args, "O&", AE_GetFSRef, &fsRef))
		return NULL;
	err = FSGetCatalogInfo(&fsRef, kFSCatInfoNone, NULL, NULL, &fss, NULL);
    if (err != noErr) return AE_MacOSError(err);
	if (!defaultComponent) {
		defaultComponent = OpenDefaultComponent(kOSAComponentType, 'ascr');
		err = GetComponentInstanceError(defaultComponent);
		if (err) return AE_MacOSError(err);
	}
	err = OSAGetAppTerminology(defaultComponent, 
							   kOSAModeNull,
							   &fss, 
							   0, 
							   &didLaunch, 
							   &theDesc);
	if (err) return AE_MacOSError(err);
	return BuildTerminologyList(&theDesc, typeAETE);
#endif
}
コード例 #2
0
ファイル: OSATerminology.c プロジェクト: xen0n/cpython64-64
static PyObject *
PyOSA_GetAppTerminology(PyObject* self, PyObject* args)
{
    AEDesc theDesc = {0,0};
    FSSpec fss;
    ComponentInstance defaultComponent = NULL;
    SInt16 defaultTerminology = 0;
    Boolean didLaunch = 0;
    OSAError err;
    REALLYLONG modeFlags = 0;

    if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &modeFlags))
             return NULL;

    /*
    ** Note that we have to use the AppleScript component here. Who knows why
    ** OSAGetAppTerminology should require a scripting component in the
    ** first place, but it does. Note: doesn't work with the generic scripting
    ** component, which is unfortunate as the AS component is currently very
    ** slow (~1 sec?) to load, but we just have to live with this.
    */
    defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
    err = GetComponentInstanceError (defaultComponent);
    if (err) return PyMac_Error(err);
    err = OSAGetAppTerminology (
    defaultComponent,
    kOSAModeNull,
    &fss,
    defaultTerminology,
    &didLaunch,
    &theDesc
    );
    if (err) return PyMac_Error(err);
    return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch);
}
コード例 #3
0
static PyObject *
PyOSA_GetSysTerminology(PyObject* self, PyObject* args)
{
    AEDesc theDesc = {0,0};
    FSSpec fss;
    ComponentInstance defaultComponent = NULL;
    SInt16 defaultTerminology = 0;
    Boolean didLaunch = 0;
    OSAError err;
    long modeFlags = 0;

    if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &modeFlags))
             return NULL;

    defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
    err = GetComponentInstanceError (defaultComponent);
    if (err) return PyMac_Error(err);
    err = OSAGetAppTerminology (
    defaultComponent,
    modeFlags,
    &fss,
    defaultTerminology,
    &didLaunch,
    &theDesc
    );
    if (err) return PyMac_Error(err);
    return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch);
}
コード例 #4
0
ファイル: qtcheck.c プロジェクト: colonelqubit/halyard
int __stdcall QuickTimeComponentVersion(char *type, char *subtype) {
    OSType real_type, real_subtype;
    ComponentInstance ci;
    long version;

    // If we don't have QuickTime, we can't have any components, either.
    if (QuickTimeVersion() == 0)
        return 0;

    // If our type or subtype is invalid, return 0.
    if (strlen(type) != 4 || strlen(subtype) != 4)
        return 0;

    // Convert our type strings to Macintosh OSType codes.
    real_type = (type[0] << 24 | type[1] << 16 | type[2] << 8 | type[3]);
    real_subtype =
        (subtype[0] << 24 | subtype[1] << 16 | subtype[2] << 8 | subtype[3]);

    // Open up an instance of our component.
    ci = OpenDefaultComponent(real_type, real_subtype);
    if (!ci)
        return 0;

    // Get the version of our component.
    version = GetComponentVersion(ci);
    if (GetComponentInstanceError(ci) != noErr)
        return 0;

    // Close our component instance.
    if (CloseComponent(ci) != noErr)
        return 0;
    
    return version;
}
コード例 #5
0
ファイル: _Cmmodule.c プロジェクト: JupiterSmalltalk/openqwaq
static PyObject *CmpInstObj_GetComponentInstanceError(ComponentInstanceObject *_self, PyObject *_args)
{
	PyObject *_res = NULL;
	OSErr _err;
#ifndef GetComponentInstanceError
	PyMac_PRECHECK(GetComponentInstanceError);
#endif
	if (!PyArg_ParseTuple(_args, ""))
		return NULL;
	_err = GetComponentInstanceError(_self->ob_itself);
	if (_err != noErr) return PyMac_Error(_err);
	Py_INCREF(Py_None);
	_res = Py_None;
	return _res;
}
コード例 #6
0
ファイル: ae.c プロジェクト: AdminCNP/appscript
static PyObject *AE_GetSysTerminology(PyObject* self, PyObject* args)
{
	OSType componentSubType;
	ComponentInstance component;
	AEDesc theDesc;
	OSAError err;
	
	if (!PyArg_ParseTuple(args, "O&", AE_GetOSType, &componentSubType))
		return NULL;
	component = OpenDefaultComponent(kOSAComponentType, componentSubType);
	err = GetComponentInstanceError(component);
	if (err) return AE_MacOSError(err);
	err = OSAGetSysTerminology(component, 
							   kOSAModeNull,
							   0, 
							   &theDesc);
	CloseComponent(component);
	if (err) return AE_MacOSError(err);
	return BuildTerminologyList(&theDesc, typeAEUT);
}
コード例 #7
0
ファイル: OSATerminology.c プロジェクト: xen0n/cpython64-64
static PyObject *
PyOSA_GetSysTerminology(PyObject* self, PyObject* args)
{
    AEDesc theDesc = {0,0};
    ComponentInstance defaultComponent = NULL;
    SInt16 defaultTerminology = 0;
    OSAError err;

    /* Accept any args for sake of backwards compatibility, then ignore them. */

    defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
    err = GetComponentInstanceError (defaultComponent);
    if (err) return PyMac_Error(err);
    err = OSAGetSysTerminology (
    defaultComponent,
    kOSAModeNull,
    defaultTerminology,
    &theDesc
    );
    if (err) return PyMac_Error(err);
    return Py_BuildValue("O&", AEDesc_New, &theDesc);
}