Update of /cvsroot/pywin32/pywin32/com/win32comext/bits/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4138
Modified Files:
Tag: sidnei-bits
PyIBackgroundCopyError.cpp
Log Message:
fixes/tweaks to the callback interface
Index: PyIBackgroundCopyError.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/bits/src/Attic/PyIBackgroundCopyError.cpp,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -C2 -d -r1.1.2.3 -r1.1.2.4
*** PyIBackgroundCopyError.cpp 7 Feb 2008 08:50:26 -0000 1.1.2.3
--- PyIBackgroundCopyError.cpp 7 Feb 2008 09:05:58 -0000 1.1.2.4
***************
*** 31,52 ****
if ( pIBCE == NULL )
return NULL;
- BG_ERROR_CONTEXT *pContext;
- PyObject *obpContext;
- HRESULT *pCode;
- PyObject *obpCode;
if ( !PyArg_ParseTuple(args, ":GetError") )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
! hr = pIBCE->GetError( pContext, pCode );
!
PY_INTERFACE_POSTCALL;
-
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
!
! Py_INCREF(Py_None);
! return Py_None;
!
}
--- 31,45 ----
if ( pIBCE == NULL )
return NULL;
if ( !PyArg_ParseTuple(args, ":GetError") )
return NULL;
HRESULT hr;
+ BG_ERROR_CONTEXT context;
+ HRESULT hr_err;
PY_INTERFACE_PRECALL;
! hr = pIBCE->GetError( &context, &hr_err);
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
! return Py_BuildValue("lk", context, hr_err);
}
***************
*** 63,77 ****
PY_INTERFACE_PRECALL;
hr = pIBCE->GetFile( &pVal );
-
PY_INTERFACE_POSTCALL;
-
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError);
! PyObject *obpVal;
!
! obpVal = PyCom_PyObjectFromIUnknown(pVal, IID_IBackgroundCopyFile, FALSE);
! PyObject *pyretval = Py_BuildValue("O", obpVal);
! Py_XDECREF(obpVal);
! return pyretval;
}
--- 56,63 ----
PY_INTERFACE_PRECALL;
hr = pIBCE->GetFile( &pVal );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError);
! return PyCom_PyObjectFromIUnknown(pVal, IID_IBackgroundCopyFile, FALSE);
}
***************
*** 84,100 ****
// @pyparm int|LanguageId||Description for LanguageId
WCHAR *pErrorDescription;
! DWORD LanguageId;
! if ( !PyArg_ParseTuple(args, "l:GetErrorDescription", &LanguageId) )
return NULL;
HRESULT hr;
-
PY_INTERFACE_PRECALL;
hr = pIBCE->GetErrorDescription( LanguageId, &pErrorDescription );
PY_INTERFACE_POSTCALL;
-
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
-
PyObject *ret = PyString_FromUnicode(pErrorDescription);
return ret;
}
--- 70,84 ----
// @pyparm int|LanguageId||Description for LanguageId
WCHAR *pErrorDescription;
! DWORD LanguageId = 0;
! if ( !PyArg_ParseTuple(args, "|l:GetErrorDescription", &LanguageId) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIBCE->GetErrorDescription( LanguageId, &pErrorDescription );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
PyObject *ret = PyString_FromUnicode(pErrorDescription);
+ CoTaskMemFree(pErrorDescription);
return ret;
}
***************
*** 115,123 ****
hr = pIBCE->GetErrorContextDescription( LanguageId, &pContextDescription );
PY_INTERFACE_POSTCALL;
-
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
-
PyObject *ret = PyString_FromUnicode(pContextDescription);
return ret;
}
--- 99,106 ----
hr = pIBCE->GetErrorContextDescription( LanguageId, &pContextDescription );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
PyObject *ret = PyString_FromUnicode(pContextDescription);
+ CoTaskMemFree(pContextDescription);
return ret;
}
***************
*** 135,145 ****
PY_INTERFACE_PRECALL;
hr = pIBCE->GetProtocol( &pProtocol );
-
PY_INTERFACE_POSTCALL;
-
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
-
PyObject *ret = PyString_FromUnicode(pProtocol);
return ret;
}
--- 118,126 ----
PY_INTERFACE_PRECALL;
hr = pIBCE->GetProtocol( &pProtocol );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIBCE, IID_IBackgroundCopyError );
PyObject *ret = PyString_FromUnicode(pProtocol);
+ CoTaskMemFree(pProtocol);
return ret;
}
|