Beispiel #1
0
// @pymethod int|PyIShellView|TranslateAccelerator|Description of TranslateAccelerator.
PyObject *PyIShellView::TranslateAccelerator(PyObject *self, PyObject *args)
{
	IShellView *pISV = GetI(self);
	if ( pISV == NULL )
		return NULL;
	MSG msg;
	PyObject *obpmsg;
	// @pyparm tuple|pmsg||Description for pmsg
	if ( !PyArg_ParseTuple(args, "O:TranslateAccelerator", &obpmsg) )
		return NULL;
	BOOL bPythonIsHappy = TRUE;
	if (bPythonIsHappy && !PyObject_AsMSG( obpmsg, &msg )) bPythonIsHappy = FALSE;
	if (!bPythonIsHappy) return NULL;
	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pISV->TranslateAccelerator( &msg );
	PY_INTERFACE_POSTCALL;
	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pISV, IID_IShellView );
	// @rdesc The result is the HRESULT from the underlying TranslateAccelerator call
	return PyInt_FromLong(hr);
}
Beispiel #2
0
// @pymethod |PyIShellBrowser|TranslateAcceleratorSB|Translates keystrokes used as menu item activators
PyObject *PyIShellBrowser::TranslateAcceleratorSB(PyObject *self, PyObject *args)
{
	IShellBrowser *pISB = GetI(self);
	if ( pISB == NULL )
		return NULL;
	MSG msg;
	PyObject *obpmsg;
	WORD wID;
	if (!PyArg_ParseTuple(args, "OH:TranslateAcceleratorSB",
		&obpmsg,	// @pyparm <o PyMSG>|pmsg||Keystroke message to be translated
		&wID))		// @pyparm int|wID||Menu command id for the keystroke
		return NULL;
	if (!PyObject_AsMSG(obpmsg, &msg))
		return NULL;

	HRESULT hr;
	PY_INTERFACE_PRECALL;
	hr = pISB->TranslateAcceleratorSB( &msg, wID );
	PY_INTERFACE_POSTCALL;
	if ( FAILED(hr) )
		return PyCom_BuildPyException(hr, pISB, IID_IShellBrowser );
	Py_INCREF(Py_None);
	return Py_None;
}