nsIComponentManager *pI = GetI(self);
nsIComponentManagerObsolete *pI = GetI(self);
static PyObject *PyCreateInstanceByContractID(PyObject *self, PyObject *args){	char *pid, *notyet = NULL;	PyObject *obIID = NULL;	if (!PyArg_ParseTuple(args, "s|zO", &pid, &notyet, &obIID))		return NULL;	if (notyet != NULL) {		PyErr_SetString(PyExc_ValueError, "2nd arg must be none");		return NULL;	}	nsIComponentManager *pI = GetI(self);	if (pI==NULL)		return NULL;	nsIID	iid;	if (obIID==NULL)		iid = NS_GET_IID(nsISupports);	else		if (!Py_nsIID::IIDFromPyObject(obIID, &iid))			return NULL;	nsISupports *pis;	nsresult r;	Py_BEGIN_ALLOW_THREADS;	r = pI->CreateInstanceByContractID(pid, NULL, iid, (void **)&pis);	Py_END_ALLOW_THREADS;	if ( NS_FAILED(r) )		return PyXPCOM_BuildPyException(r);	/* Return a type based on the IID (with no extra ref) */	return Py_nsISupports::PyObjectFromInterface(pis, iid, PR_FALSE, PR_FALSE);}