Update of /cvsroot/pywin32/pywin32/com/win32com/src/extensions
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13809/win32com/src/extensions
Modified Files:
PyIDataObject.cpp PyIDropTarget.cpp PyIOleWindow.cpp
Log Message:
s/PyCom_HandlePythonFailureToCOM/MAKE_PYCOM_GATEWAY_FAILURE_CODE/ in some
gateways for better error reporting.
Index: PyIDropTarget.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/extensions/PyIDropTarget.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PyIDropTarget.cpp 25 Apr 2008 09:54:39 -0000 1.2
--- PyIDropTarget.cpp 18 Aug 2008 13:04:10 -0000 1.3
***************
*** 183,193 ****
/* [out][in] */ DWORD * pdwEffect)
{
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *obpDataObj;
obpDataObj = PyCom_PyObjectFromIUnknown(pDataObj, IID_IDataObject, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy("DragEnter", &result, "OlOl", obpDataObj, grfKeyState, obpt, *pdwEffect);
Py_XDECREF(obpDataObj);
Py_DECREF(obpt);
--- 183,194 ----
/* [out][in] */ DWORD * pdwEffect)
{
+ static const char *method_name = "DragEnter";
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *obpDataObj;
obpDataObj = PyCom_PyObjectFromIUnknown(pDataObj, IID_IDataObject, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "OlOl", obpDataObj, grfKeyState, obpt, *pdwEffect);
Py_XDECREF(obpDataObj);
Py_DECREF(obpt);
***************
*** 204,212 ****
/* [out][in] */ DWORD * pdwEffect)
{
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *result;
! HRESULT hr=InvokeViaPolicy("DragOver", &result, "lOl", grfKeyState, obpt, *pdwEffect);
Py_DECREF(obpt);
if (FAILED(hr)) return hr;
--- 205,214 ----
/* [out][in] */ DWORD * pdwEffect)
{
+ static const char *method_name = "DragOver";
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "lOl", grfKeyState, obpt, *pdwEffect);
Py_DECREF(obpt);
if (FAILED(hr)) return hr;
***************
*** 231,241 ****
/* [out][in] */ DWORD * pdwEffect)
{
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *obpDataObj;
obpDataObj = PyCom_PyObjectFromIUnknown(pDataObj, IID_IDataObject, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy("Drop", &result, "OlOl", obpDataObj, grfKeyState, obpt, *pdwEffect);
Py_XDECREF(obpDataObj);
Py_DECREF(obpt);
--- 233,244 ----
/* [out][in] */ DWORD * pdwEffect)
{
+ static const char *method_name = "Drop";
PY_GATEWAY_METHOD;
PyObject *obpt = PyObject_FromPOINTL(pt);
! if (obpt==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *obpDataObj;
obpDataObj = PyCom_PyObjectFromIUnknown(pDataObj, IID_IDataObject, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "OlOl", obpDataObj, grfKeyState, obpt, *pdwEffect);
Py_XDECREF(obpDataObj);
Py_DECREF(obpt);
Index: PyIDataObject.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/extensions/PyIDataObject.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** PyIDataObject.cpp 26 Apr 2008 22:17:49 -0000 1.7
--- PyIDataObject.cpp 18 Aug 2008 13:04:10 -0000 1.8
***************
*** 327,335 ****
/* [out] */ STGMEDIUM * pmedium)
{
if (!pmedium)
return E_POINTER;
PY_GATEWAY_METHOD;
PyObject *obpformatetcIn = PyObject_FromFORMATETC(pformatetcIn);
! if (obpformatetcIn==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *result;
HRESULT hr=InvokeViaPolicy("GetData", &result, "(O)", obpformatetcIn);
--- 327,336 ----
/* [out] */ STGMEDIUM * pmedium)
{
+ static const char *method_name = "GetData";
if (!pmedium)
return E_POINTER;
PY_GATEWAY_METHOD;
PyObject *obpformatetcIn = PyObject_FromFORMATETC(pformatetcIn);
! if (obpformatetcIn==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *result;
HRESULT hr=InvokeViaPolicy("GetData", &result, "(O)", obpformatetcIn);
***************
*** 344,348 ****
pym->CopyTo(pmedium);
}
! hr = PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
Py_DECREF(result);
return hr;
--- 345,349 ----
pym->CopyTo(pmedium);
}
! hr = MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
Py_DECREF(result);
return hr;
***************
*** 353,361 ****
/* [out][in] */ STGMEDIUM * pmedium)
{
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *result;
! HRESULT hr=InvokeViaPolicy("GetDataHere", &result, "(O)", obpformatetc);
Py_DECREF(obpformatetc);
if (FAILED(hr)) return hr;
--- 354,363 ----
/* [out][in] */ STGMEDIUM * pmedium)
{
+ static const char *method_name = "GetDataHere";
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "(O)", obpformatetc);
Py_DECREF(obpformatetc);
if (FAILED(hr)) return hr;
***************
*** 366,370 ****
pym->DropOwnership();
}
! hr = PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
Py_DECREF(result);
return hr;
--- 368,372 ----
pym->DropOwnership();
}
! hr = MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
Py_DECREF(result);
return hr;
***************
*** 374,381 ****
/* [unique][in] */ FORMATETC * pformatetc)
{
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return PyCom_HandlePythonFailureToCOM();
! HRESULT hr=InvokeViaPolicy("QueryGetData", NULL, "(O)", obpformatetc);
Py_DECREF(obpformatetc);
return hr;
--- 376,384 ----
/* [unique][in] */ FORMATETC * pformatetc)
{
+ static const char *method_name = "QueryGetData";
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
! HRESULT hr=InvokeViaPolicy(method_name, NULL, "(O)", obpformatetc);
Py_DECREF(obpformatetc);
return hr;
***************
*** 386,394 ****
/* [out] */ FORMATETC * pformatetcOut)
{
PY_GATEWAY_METHOD;
PyObject *obpformatectIn = PyObject_FromFORMATETC(pformatectIn);
! if (obpformatectIn==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *result;
! HRESULT hr=InvokeViaPolicy("GetCanonicalFormatEtc", &result, "(O)", obpformatectIn);
Py_DECREF(obpformatectIn);
if (FAILED(hr)) return hr;
--- 389,398 ----
/* [out] */ FORMATETC * pformatetcOut)
{
+ static const char *method_name = "GetCanonicalFormatEtc";
PY_GATEWAY_METHOD;
PyObject *obpformatectIn = PyObject_FromFORMATETC(pformatectIn);
! if (obpformatectIn==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "(O)", obpformatectIn);
Py_DECREF(obpformatectIn);
if (FAILED(hr)) return hr;
***************
*** 404,415 ****
/* [in] */ BOOL fRelease)
{
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return PyCom_HandlePythonFailureToCOM();
PySTGMEDIUM *obmedium = PyObject_FromSTGMEDIUM(pmedium);
! if (obmedium==NULL) return PyCom_HandlePythonFailureToCOM();
// PySTGMEDIUM should be the exact same pointer as PyObject
assert((void *)(PyObject *)obmedium==(void *)obmedium);
! HRESULT hr=InvokeViaPolicy("SetData", NULL, "OOi", obpformatetc, (PyObject *)obmedium, fRelease);
if (!fRelease)
obmedium->DropOwnership();
--- 408,420 ----
/* [in] */ BOOL fRelease)
{
+ static const char *method_name = "SetData";
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PySTGMEDIUM *obmedium = PyObject_FromSTGMEDIUM(pmedium);
! if (obmedium==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
// PySTGMEDIUM should be the exact same pointer as PyObject
assert((void *)(PyObject *)obmedium==(void *)obmedium);
! HRESULT hr=InvokeViaPolicy(method_name, NULL, "OOi", obpformatetc, (PyObject *)obmedium, fRelease);
if (!fRelease)
obmedium->DropOwnership();
***************
*** 423,437 ****
/* [out] */ IEnumFORMATETC ** ppenumFormatEtc)
{
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy("EnumFormatEtc", &result, "l", dwDirection);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
PyObject *obppenumFormatEtc;
! if (!PyArg_Parse(result, "O" , &obppenumFormatEtc)) return PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obppenumFormatEtc, IID_IEnumFORMATETC, (void **)ppenumFormatEtc, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
! if (!bPythonIsHappy) hr = PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
Py_DECREF(result);
return hr;
--- 428,443 ----
/* [out] */ IEnumFORMATETC ** ppenumFormatEtc)
{
+ static const char *method_name = "EnumFormatEtc";
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "l", dwDirection);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
PyObject *obppenumFormatEtc;
! if (!PyArg_Parse(result, "O" , &obppenumFormatEtc)) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obppenumFormatEtc, IID_IEnumFORMATETC, (void **)ppenumFormatEtc, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
! if (!bPythonIsHappy) hr = MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
Py_DECREF(result);
return hr;
***************
*** 444,454 ****
/* [out] */ DWORD * pdwConnection)
{
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return PyCom_HandlePythonFailureToCOM();
PyObject *obpAdvSink;
obpAdvSink = PyCom_PyObjectFromIUnknown(pAdvSink, IID_IAdviseSink, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy("DAdvise", &result, "OlO", obpformatetc, advf, obpAdvSink);
Py_DECREF(obpformatetc);
Py_XDECREF(obpAdvSink);
--- 450,461 ----
/* [out] */ DWORD * pdwConnection)
{
+ static const char *method_name = "DAdvise";
PY_GATEWAY_METHOD;
PyObject *obpformatetc = PyObject_FromFORMATETC(pformatetc);
! if (obpformatetc==NULL) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
PyObject *obpAdvSink;
obpAdvSink = PyCom_PyObjectFromIUnknown(pAdvSink, IID_IAdviseSink, TRUE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result, "OlO", obpformatetc, advf, obpAdvSink);
Py_DECREF(obpformatetc);
Py_XDECREF(obpAdvSink);
***************
*** 470,484 ****
/* [out] */ IEnumSTATDATA ** ppenumAdvise)
{
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy("EnumDAdvise", &result);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
PyObject *obppenumAdvise;
! if (!PyArg_Parse(result, "O" , &obppenumAdvise)) return PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obppenumAdvise, IID_IEnumSTATDATA, (void **)ppenumAdvise, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
! if (!bPythonIsHappy) hr = PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
Py_DECREF(result);
return hr;
--- 477,492 ----
/* [out] */ IEnumSTATDATA ** ppenumAdvise)
{
+ static const char *method_name = "EnumDAdvise";
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
PyObject *obppenumAdvise;
! if (!PyArg_Parse(result, "O" , &obppenumAdvise)) return MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obppenumAdvise, IID_IEnumSTATDATA, (void **)ppenumAdvise, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
! if (!bPythonIsHappy) hr = MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
Py_DECREF(result);
return hr;
Index: PyIOleWindow.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/extensions/PyIOleWindow.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PyIOleWindow.cpp 25 Jun 2007 05:15:36 -0000 1.2
--- PyIOleWindow.cpp 18 Aug 2008 13:04:10 -0000 1.3
***************
*** 87,97 ****
/* [out] */ HWND __RPC_FAR * phwnd)
{
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy("GetWindow", &result);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
if (!PyWinObject_AsHANDLE(result, (HANDLE *)phwnd))
! hr=PyCom_HandlePythonFailureToCOM(/*pexcepinfo*/);
Py_DECREF(result);
return hr;
--- 87,98 ----
/* [out] */ HWND __RPC_FAR * phwnd)
{
+ static const char *method_name = "GetWindow";
PY_GATEWAY_METHOD;
PyObject *result;
! HRESULT hr=InvokeViaPolicy(method_name, &result);
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
if (!PyWinObject_AsHANDLE(result, (HANDLE *)phwnd))
! hr=MAKE_PYCOM_GATEWAY_FAILURE_CODE(method_name);
Py_DECREF(result);
return hr;
|