// ---------------------------------------------------
//
// Gateway Implementation
STDMETHODIMP PyGPropertyStoreCapabilities::IsPropertyWritable(REFPROPERTYKEY key)
{
	PY_GATEWAY_METHOD;
	PyObject *obkey = PyWinObject_FromPROPERTYKEY(key);
	if (obkey==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE("IsPropertyWritable");
	HRESULT hr=InvokeViaPolicy("IsPropertyWritable", NULL, "(O)", obkey);
	Py_DECREF(obkey);
	return hr;
}
// @pymethod <o PyPROPERTYKEY>|PyIObjectWithPropertyKey|GetPropertyKey|Returns the property id
PyObject *PyIObjectWithPropertyKey::GetPropertyKey(PyObject *self, PyObject *args)
{
	IObjectWithPropertyKey *pIOWPK = GetI(self);
	if ( pIOWPK == NULL )
		return NULL;
	PROPERTYKEY key;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pIOWPK->GetPropertyKey(&key);
	PY_INTERFACE_POSTCALL;

	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pIOWPK, IID_IObjectWithPropertyKey );
	return PyWinObject_FromPROPERTYKEY(key);
}
예제 #3
0
// @pymethod <o PyPROPERTYKEY>|propsys|PSGetPropertyKeyFromName|Retrieves the property key by canonical name
PyObject *PyPSGetPropertyKeyFromName(PyObject *self, PyObject *args)
{
	PROPERTYKEY key;
	TmpWCHAR name;
	PyObject *obname;
	// @pyparm str|Name||The canonical name of a property (eg System.Author)
	if (!PyArg_ParseTuple(args, "O:PSGetPropertyKeyFromName", &obname))
		return NULL;
	if (!PyWinObject_AsWCHAR(obname, &name, FALSE))
		return NULL;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = PSGetPropertyKeyFromName(name, &key);
	PY_INTERFACE_POSTCALL;

	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr);
	return PyWinObject_FromPROPERTYKEY(key);
}