[pywin32-checkins] pywin32/com/win32comext/shell/src PyIShellFolder.cpp, 1.12, 1.13
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Roger U. <ru...@us...> - 2007-01-21 15:25:58
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/shell/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18373/com/win32comext/shell/src Modified Files: PyIShellFolder.cpp Log Message: Change places where handles were treated as longs Index: PyIShellFolder.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32comext/shell/src/PyIShellFolder.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** PyIShellFolder.cpp 26 Oct 2005 01:05:18 -0000 1.12 --- PyIShellFolder.cpp 21 Jan 2007 15:24:02 -0000 1.13 *************** *** 37,41 **** if ( pISF == NULL ) return NULL; ! // @pyparm HWND|hwndOwner||Window in which to display any dialogs or message boxes, can be 0 // @pyparm <o PyIBindCtx>|pbc||Bind context that affects how parsing is performed, can be None // @pyparm <o PyUNICODE>|DisplayName||Display name to parse, format is dependent on the shell folder. --- 37,41 ---- if ( pISF == NULL ) return NULL; ! // @pyparm <o PyHANDLE>|hwndOwner||Window in which to display any dialogs or message boxes, can be 0 // @pyparm <o PyIBindCtx>|pbc||Bind context that affects how parsing is performed, can be None // @pyparm <o PyUNICODE>|DisplayName||Display name to parse, format is dependent on the shell folder. *************** *** 46,49 **** --- 46,50 ---- PyObject *oblpszDisplayName; HWND hwndOwner; + PyObject *obhwndOwner; IBindCtx * pbcReserved; LPOLESTR lpszDisplayName; *************** *** 51,57 **** ITEMIDLIST *ppidl; ULONG pdwAttributes = 0; ! if ( !PyArg_ParseTuple(args, "lOO|k:ParseDisplayName", &hwndOwner, &obpbcReserved, &oblpszDisplayName, &pdwAttributes) ) return NULL; BOOL bPythonIsHappy = TRUE; if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpbcReserved, IID_IBindCtx, (void **)&pbcReserved, TRUE /* bNoneOK */)) --- 52,60 ---- ITEMIDLIST *ppidl; ULONG pdwAttributes = 0; ! if ( !PyArg_ParseTuple(args, "OOO|k:ParseDisplayName", &obhwndOwner, &obpbcReserved, &oblpszDisplayName, &pdwAttributes) ) return NULL; + if (!PyWinObject_AsHANDLE(obhwndOwner, (HANDLE *)&hwndOwner, TRUE)) + return NULL; BOOL bPythonIsHappy = TRUE; if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpbcReserved, IID_IBindCtx, (void **)&pbcReserved, TRUE /* bNoneOK */)) *************** *** 84,94 **** if ( pISF == NULL ) return NULL; ! // @pyparm HWND|hwndOwner|0|Window to use if any user interaction is required // @pyparm int|grfFlags|SHCONTF_FOLDERS\|SHCONTF_NONFOLDERS\|SHCONTF_INCLUDEHIDDEN|Combination of shellcon.SHCONTF_* constants HWND hwndOwner = 0; DWORD grfFlags = SHCONTF_FOLDERS|SHCONTF_NONFOLDERS|SHCONTF_INCLUDEHIDDEN; IEnumIDList * ppeidl; ! if ( !PyArg_ParseTuple(args, "|ll:EnumObjects", &hwndOwner, &grfFlags) ) return NULL; HRESULT hr; PY_INTERFACE_PRECALL; --- 87,101 ---- if ( pISF == NULL ) return NULL; ! // @pyparm <o PyHANDLE>|hwndOwner|None|Window to use if any user interaction is required // @pyparm int|grfFlags|SHCONTF_FOLDERS\|SHCONTF_NONFOLDERS\|SHCONTF_INCLUDEHIDDEN|Combination of shellcon.SHCONTF_* constants HWND hwndOwner = 0; + PyObject *obhwndOwner=Py_None; DWORD grfFlags = SHCONTF_FOLDERS|SHCONTF_NONFOLDERS|SHCONTF_INCLUDEHIDDEN; IEnumIDList * ppeidl; ! if ( !PyArg_ParseTuple(args, "|Ol:EnumObjects", &obhwndOwner, &grfFlags) ) ! return NULL; ! if (!PyWinObject_AsHANDLE(obhwndOwner, (HANDLE *)&hwndOwner, TRUE)) return NULL; + HRESULT hr; PY_INTERFACE_PRECALL; *************** *** 235,241 **** PyObject *obriid; HWND hwndOwner; IID riid; void * out; ! if ( !PyArg_ParseTuple(args, "lO:CreateViewObject", &hwndOwner, &obriid) ) return NULL; BOOL bPythonIsHappy = TRUE; --- 242,251 ---- PyObject *obriid; HWND hwndOwner; + PyObject *obhwndOwner; IID riid; void * out; ! if ( !PyArg_ParseTuple(args, "OO:CreateViewObject", &obhwndOwner, &obriid) ) ! return NULL; ! if (!PyWinObject_AsHANDLE(obhwndOwner, (HANDLE *)&hwndOwner, TRUE)) return NULL; BOOL bPythonIsHappy = TRUE; *************** *** 290,294 **** if ( pISF == NULL ) return NULL; ! // @pyparm HWND|hwndOwner||Specifies a window in which to display any required dialogs or errors, can be 0 // @pyparm (<o PyIDL>,...)|pidl||A sequence of single-level pidls identifying items in the folder // @pyparm <o PyIID>|riid||The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo --- 300,304 ---- if ( pISF == NULL ) return NULL; ! // @pyparm <o PyHANDLE>|hwndOwner||Specifies a window in which to display any required dialogs or errors, can be 0 // @pyparm (<o PyIDL>,...)|pidl||A sequence of single-level pidls identifying items in the folder // @pyparm <o PyIID>|riid||The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo *************** *** 297,300 **** --- 307,311 ---- PyObject *obriid; PyObject *obiidout = NULL; + PyObject *obhwndOwner; HWND hwndOwner; UINT cidl; *************** *** 303,307 **** UINT rgfInOut; void * out; ! if ( !PyArg_ParseTuple(args, "lOOl|O:GetUIObjectOf", &hwndOwner, &obpidl, &obriid, &rgfInOut, &obiidout) ) return NULL; BOOL bPythonIsHappy = TRUE; --- 314,320 ---- UINT rgfInOut; void * out; ! if ( !PyArg_ParseTuple(args, "OOOl|O:GetUIObjectOf", &obhwndOwner, &obpidl, &obriid, &rgfInOut, &obiidout) ) ! return NULL; ! if (!PyWinObject_AsHANDLE(obhwndOwner, (HANDLE *)&hwndOwner, TRUE)) return NULL; BOOL bPythonIsHappy = TRUE; *************** *** 371,374 **** --- 384,388 ---- PyObject *obpidl=NULL, *ret=NULL; PyObject *oblpszName=NULL; + PyObject *obhwndOwner; HWND hwndOwner; ITEMIDLIST *pidl=NULL; *************** *** 377,382 **** DWORD flags; ! if ( !PyArg_ParseTuple(args, "lOOl:SetNameOf", &hwndOwner, &obpidl, &oblpszName, &flags) ) return NULL; if (PyObject_AsPIDL(obpidl, &pidl)&& PyWinObject_AsBstr(oblpszName, &lpszName)){ --- 391,399 ---- DWORD flags; ! if ( !PyArg_ParseTuple(args, "OOOl:SetNameOf", &obhwndOwner, &obpidl, &oblpszName, &flags) ) return NULL; + if (!PyWinObject_AsHANDLE(obhwndOwner, (HANDLE *)&hwndOwner, TRUE)) + return NULL; + if (PyObject_AsPIDL(obpidl, &pidl)&& PyWinObject_AsBstr(oblpszName, &lpszName)){ *************** *** 437,441 **** oblpszDisplayName = MakeOLECHARToObj(lpszDisplayName); PyObject *result; ! HRESULT hr=InvokeViaPolicy("ParseDisplayName", &result, "lOOl", hwndOwner, obpbcReserved, oblpszDisplayName, pdwAttributes ? *pdwAttributes : 0); --- 454,458 ---- oblpszDisplayName = MakeOLECHARToObj(lpszDisplayName); PyObject *result; ! HRESULT hr=InvokeViaPolicy("ParseDisplayName", &result, "NOOl", PyWinLong_FromHANDLE(hwndOwner), obpbcReserved, oblpszDisplayName, pdwAttributes ? *pdwAttributes : 0); *************** *** 470,474 **** PY_GATEWAY_METHOD; PyObject *result; ! HRESULT hr=InvokeViaPolicy("EnumObjects", &result, "ll", hwndOwner, grfFlags); if (FAILED(hr)) return hr; // Process the Python results, and convert back to the real params --- 487,491 ---- PY_GATEWAY_METHOD; PyObject *result; ! HRESULT hr=InvokeViaPolicy("EnumObjects", &result, "Nl", PyWinLong_FromHANDLE(hwndOwner), grfFlags); if (FAILED(hr)) return hr; // Process the Python results, and convert back to the real params *************** *** 564,568 **** obriid = PyWinObject_FromIID(riid); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "lO", hwndOwner, obriid); Py_XDECREF(obriid); if (FAILED(hr)) return hr; --- 581,585 ---- obriid = PyWinObject_FromIID(riid); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "NO", PyWinLong_FromHANDLE(hwndOwner), obriid); Py_XDECREF(obriid); if (FAILED(hr)) return hr; *************** *** 609,613 **** obriid = PyWinObject_FromIID(riid); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "lOOl", hwndOwner, obpidl, obriid, rgfInOut ? *rgfInOut : 0); Py_XDECREF(obpidl); Py_XDECREF(obriid); --- 626,630 ---- obriid = PyWinObject_FromIID(riid); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "NOOl", PyWinLong_FromHANDLE(hwndOwner), obpidl, obriid, rgfInOut ? *rgfInOut : 0); Py_XDECREF(obpidl); Py_XDECREF(obriid); *************** *** 664,668 **** oblpszName = MakeOLECHARToObj(pszName); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "lOOl", hwnd, obpidl, oblpszName, uFlags); Py_XDECREF(obpidl); Py_XDECREF(oblpszName); --- 681,685 ---- oblpszName = MakeOLECHARToObj(pszName); PyObject *result; ! HRESULT hr=InvokeViaPolicy(szMethodName, &result, "NOOl", PyWinLong_FromHANDLE(hwnd), obpidl, oblpszName, uFlags); Py_XDECREF(obpidl); Py_XDECREF(oblpszName); |