MCPcopy Create free account
hub / github.com/mhammond/pywin32 / PyCom_InterfaceFromPyInstanceOrObject

Function PyCom_InterfaceFromPyInstanceOrObject

com/win32com/src/PyComHelpers.cpp:167–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

165
166
167BOOL PyCom_InterfaceFromPyInstanceOrObject(PyObject *ob, REFIID iid, LPVOID *ppv, BOOL bNoneOK /* = TRUE */)
168{
169 if (ob == Py_None){
170 *ppv = NULL;
171 if (bNoneOK)
172 return TRUE;
173 PyErr_SetString(PyExc_TypeError, "None is not a valid interface object in this context");
174 return FALSE;
175 }
176
177 if (PyObject_IsInstance(ob, (PyObject *)&PyIUnknown::type))
178 return PyCom_InterfaceFromPyObject(ob, iid, ppv, bNoneOK );
179
180 ob = PyObject_GetAttrString(ob, "_oleobj_");
181 if (ob==NULL) {
182 PyErr_Clear();
183 PyErr_SetString(PyExc_TypeError, "The Python instance can not be converted to a COM object");
184 return FALSE;
185 }
186 BOOL rc = PyCom_InterfaceFromPyObject(ob, iid, ppv, bNoneOK );
187 Py_DECREF(ob);
188 return rc;
189}
190
191BOOL PyCom_InterfaceFromPyObject(PyObject *ob, REFIID iid, LPVOID *ppv, BOOL bNoneOK /* = TRUE */)
192{

Calls 1

Tested by

no test coverage detected