__inline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID aFolderId, DWORD aMode, REFIID riid, void **ppv) { *ppv = NULL; IShellLibrary *plib; HRESULT hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib)); if (SUCCEEDED(hr)) { hr = plib->LoadLibraryFromKnownFolder(aFolderId, aMode); if (SUCCEEDED(hr)) { hr = plib->QueryInterface(riid, ppv); } plib->Release(); } return hr; }
// @pymethod |PyIShellLibrary|LoadLibraryFromKnownFolder|Initializes library from a known folder PyObject *PyIShellLibrary::LoadLibraryFromKnownFolder(PyObject *self, PyObject *args) { IShellLibrary *pISL = GetI(self); if ( pISL == NULL ) return NULL; IID Library; DWORD Mode; // @pyparm <o PyIID>|Library||Known folder id, shell.FOLDERID_* // @pyparm int|Mode||Access mode, combination of storagecon.STGM_* flags if ( !PyArg_ParseTuple(args, "O&k:LoadLibraryFromKnownFolder", PyWinObject_AsIID, &Library, &Mode)) return NULL; HRESULT hr; PY_INTERFACE_PRECALL; hr = pISL->LoadLibraryFromKnownFolder(Library, Mode); PY_INTERFACE_POSTCALL; if ( FAILED(hr) ) return PyCom_BuildPyException(hr, pISL, IID_IShellLibrary ); Py_INCREF(Py_None); return Py_None; }