// @pymethod <o PyIShellItem>|PyIShellLibrary|ResolveFolder|Attempts to locate a folder that has been moved or renamed PyObject *PyIShellLibrary::ResolveFolder(PyObject *self, PyObject *args) { IShellLibrary *pISL = GetI(self); if ( pISL == NULL ) return NULL; IShellItem *FolderToResolve; PyObject *obFolderToResolve; DWORD Timeout; IID riid = IID_IShellItem; // @pyparm <o PyIShellItem>|FolderToResolve||Library item whose location has changed // @pyparm int|Timeout||Max search time, specified in milliseconds // @pyparm <o PyIID>|riid|IID_IShellItem|The interface to return if (!PyArg_ParseTuple(args, "Ok|O&:ResolveFolder", &obFolderToResolve, &Timeout, PyWinObject_AsIID, &riid)) return NULL; if (!PyCom_InterfaceFromPyObject(obFolderToResolve, IID_IShellItem, (void **)&FolderToResolve, FALSE)) return NULL; void *pv; HRESULT hr; PY_INTERFACE_PRECALL; hr = pISL->ResolveFolder(FolderToResolve, Timeout, riid, &pv ); FolderToResolve->Release(); PY_INTERFACE_POSTCALL; if ( FAILED(hr) ) return PyCom_BuildPyException(hr, pISL, IID_IShellLibrary ); return PyCom_PyObjectFromIUnknown((IUnknown *)pv, riid, FALSE); }