Update of /cvsroot/pywin32/pywin32/com/win32comext/shell/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23340/com/win32comext/shell/src
Modified Files:
PyIContextMenu.cpp PyIContextMenu.h PyIShellFolder.cpp
PyIShellFolder.h shell.cpp
Log Message:
Another pass at getting things working on x64. This change incorporates
most of Sidnei's work on the AMD64 branch, and updates most of the other
win32 and win32com modules that haven't already had 64bit love from Roger
(thanks guys!). Note this is not complete - among the outstanding issues
are fixing 's#' format strings (but most of the tests *do* pass on x64,
and the ones which don't fail for 'vista environment' reasons rather
than x64 reasons)
Index: PyIContextMenu.h
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/PyIContextMenu.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** PyIContextMenu.h 6 Oct 2003 12:47:57 -0000 1.1
--- PyIContextMenu.h 24 May 2007 06:01:05 -0000 1.2
***************
*** 45,49 ****
STDMETHOD(GetCommandString)(
! UINT idCmd,
UINT uType,
UINT __RPC_FAR * pwReserved,
--- 45,49 ----
STDMETHOD(GetCommandString)(
! UINT_PTR idCmd,
UINT uType,
UINT __RPC_FAR * pwReserved,
Index: PyIContextMenu.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/PyIContextMenu.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** PyIContextMenu.cpp 21 Jan 2007 11:40:40 -0000 1.4
--- PyIContextMenu.cpp 24 May 2007 06:01:05 -0000 1.5
***************
*** 162,166 ****
STDMETHODIMP PyGContextMenu::GetCommandString(
! /* [unique][in] */ UINT idCmd,
/* [unique][in] */ UINT uFlags,
/* [unique][in] */ UINT * pwReserved,
--- 162,166 ----
STDMETHODIMP PyGContextMenu::GetCommandString(
! /* [unique][in] */ UINT_PTR idCmd,
/* [unique][in] */ UINT uFlags,
/* [unique][in] */ UINT * pwReserved,
***************
*** 170,174 ****
PyObject *result;
PY_GATEWAY_METHOD;
! HRESULT hr=InvokeViaPolicy("GetCommandString", &result, "II", idCmd, uFlags);
if (FAILED(hr))
return hr;
--- 170,174 ----
PyObject *result;
PY_GATEWAY_METHOD;
! HRESULT hr=InvokeViaPolicy("GetCommandString", &result, "NI", PyWinObject_FromULONG_PTR(idCmd), uFlags);
if (FAILED(hr))
return hr;
Index: PyIShellFolder.h
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/PyIShellFolder.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** PyIShellFolder.h 2 Nov 2003 09:58:32 -0000 1.3
--- PyIShellFolder.h 24 May 2007 06:01:05 -0000 1.4
***************
*** 67,73 ****
STDMETHOD(CompareIDs)(
! long lparam,
! const ITEMIDLIST __RPC_FAR * pidl1,
! const ITEMIDLIST __RPC_FAR * pidl2);
STDMETHOD(CreateViewObject)(
--- 67,73 ----
STDMETHOD(CompareIDs)(
! LPARAM lparam,
! LPCITEMIDLIST pidl1,
! LPCITEMIDLIST pidl2);
STDMETHOD(CreateViewObject)(
***************
*** 90,95 ****
STDMETHOD(GetDisplayNameOf)(
! const ITEMIDLIST __RPC_FAR * pidl,
! DWORD uFlags,
STRRET __RPC_FAR * out);
--- 90,95 ----
STDMETHOD(GetDisplayNameOf)(
! LPCITEMIDLIST pidl,
! SHGDNF uFlags,
STRRET __RPC_FAR * out);
Index: shell.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/shell.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -C2 -d -r1.52 -r1.53
*** shell.cpp 25 Apr 2007 03:24:40 -0000 1.52
--- shell.cpp 24 May 2007 06:01:05 -0000 1.53
***************
*** 171,175 ****
// @object PyIDL|A Python representation of an IDL. Implemented as list of Python strings.
! BOOL PyObject_AsPIDL(PyObject *ob, ITEMIDLIST **ppidl, BOOL bNoneOK /*= FALSE*/, UINT *pcb /* = NULL */)
{
if (ob==Py_None) {
--- 171,175 ----
// @object PyIDL|A Python representation of an IDL. Implemented as list of Python strings.
! BOOL PyObject_AsPIDL(PyObject *ob, LPITEMIDLIST *ppidl, BOOL bNoneOK /*= FALSE*/, UINT *pcb /* = NULL */)
{
if (ob==Py_None) {
***************
*** 2136,2142 ****
--- 2136,2148 ----
}
if (obhIcon) {
+ // SEE_MASK_ICON is defined around 'if (NTDDI_VERSION < NTDDI_LONGHORN)' and commented as 'not used'
+ #ifndef SEE_MASK_ICON
+ PyErr_SetString(PyExc_NotImplementedError, "SEE_MASK_ICON not declared on this platform");
+ goto done;
+ #else
p->fMask |= SEE_MASK_ICON;
if (!PyWinObject_AsHANDLE(obhIcon, &p->hIcon))
goto done;
+ #endif
}
if (obhMonitor) {
Index: PyIShellFolder.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/PyIShellFolder.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** PyIShellFolder.cpp 8 Mar 2007 23:38:59 -0000 1.14
--- PyIShellFolder.cpp 24 May 2007 06:01:05 -0000 1.15
***************
*** 551,567 ****
STDMETHODIMP PyGShellFolder::CompareIDs(
! /* [unique][in] */ long lparam,
! /* [unique][in] */ const ITEMIDLIST __RPC_FAR * pidl1,
! /* [unique][in] */ const ITEMIDLIST __RPC_FAR * pidl2)
{
PY_GATEWAY_METHOD;
! PyObject *obpidl1;
! PyObject *obpidl2;
! obpidl1 = PyObject_FromPIDL(pidl1, FALSE);
! obpidl2 = PyObject_FromPIDL(pidl2, FALSE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy("CompareIDs", &result, "lOO", lparam, obpidl1, obpidl2);
! Py_XDECREF(obpidl1);
! Py_XDECREF(obpidl2);
if (FAILED(hr)) return hr;
if (PyInt_Check(result))
--- 551,564 ----
STDMETHODIMP PyGShellFolder::CompareIDs(
! /* [unique][in] */ LPARAM lparam,
! /* [unique][in] */ LPCITEMIDLIST pidl1,
! /* [unique][in] */ LPCITEMIDLIST pidl2)
{
PY_GATEWAY_METHOD;
! PyObject *obparam = PyWinObject_FromPARAM(lparam);
! PyObject *obpidl1 = PyObject_FromPIDL(pidl1, FALSE);
! PyObject *obpidl2 = PyObject_FromPIDL(pidl2, FALSE);
PyObject *result;
! HRESULT hr=InvokeViaPolicy("CompareIDs", &result, "NNN", obparam, obpidl1, obpidl2);
if (FAILED(hr)) return hr;
if (PyInt_Check(result))
***************
*** 644,649 ****
STDMETHODIMP PyGShellFolder::GetDisplayNameOf(
! /* [unique][in] */ const ITEMIDLIST __RPC_FAR * pidl,
! /* [unique][in] */ DWORD uFlags,
/* [out] */ STRRET __RPC_FAR * out)
{
--- 641,646 ----
STDMETHODIMP PyGShellFolder::GetDisplayNameOf(
! /* [unique][in] */ LPCITEMIDLIST pidl,
! /* [unique][in] */ SHGDNF uFlags,
/* [out] */ STRRET __RPC_FAR * out)
{
|