示例#1
0
// @pymethod |PyICreateTypeInfo|AddVarDesc|Description of AddVarDesc.
PyObject *PyICreateTypeInfo::AddVarDesc(PyObject *self, PyObject *args)
{
	ICreateTypeInfo *pICTI = GetI(self);
	if ( pICTI == NULL )
		return NULL;
	// @pyparm int|index||Description for index
	VARDESC *pVarDesc;
	PyObject *obpVarDesc;
	UINT index;
	if ( !PyArg_ParseTuple(args, "iO:AddVarDesc", &index, &obpVarDesc) )
		return NULL;
	BOOL bPythonIsHappy = TRUE;
	if (bPythonIsHappy && !PyObject_AsVARDESC( obpVarDesc, &pVarDesc )) bPythonIsHappy = FALSE;
	if (!bPythonIsHappy) return NULL;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pICTI->AddVarDesc( index, pVarDesc );
	PY_INTERFACE_POSTCALL;

	PyObject_FreeVARDESC(pVarDesc);
	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pICTI, IID_ICreateTypeInfo);
	Py_INCREF(Py_None);
	return Py_None;

}
示例#2
0
BOOL PyObject_AsVARDESC(PyObject *ob, VARDESC **pp)
{
	*pp = (VARDESC *)AllocateMoreBuffer(sizeof(VARDESC));
	if (*pp==NULL) return FALSE;
	BOOL rc = PyObject_AsVARDESC(ob, *pp, *pp);
	if (!rc)
		FreeMoreBuffer(*pp);
	return rc;
}