本文整理汇总了C++中IShellLibrary类的典型用法代码示例。如果您正苦于以下问题:C++ IShellLibrary类的具体用法?C++ IShellLibrary怎么用?C++ IShellLibrary使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IShellLibrary类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetI
// @pymethod |PyIShellLibrary|SetDefaultSaveFolder|Sets the default save location
PyObject *PyIShellLibrary::SetDefaultSaveFolder(PyObject *self, PyObject *args)
{
IShellLibrary *pISL = GetI(self);
if ( pISL == NULL )
return NULL;
DEFAULTSAVEFOLDERTYPE Type;
IShellItem *SaveFolder;
PyObject *obSaveFolder;
// @pyparm int|Type||Specifies public or private save location, shellcon.DSFT_*
// @pyparm <o PyIShellItem>|SaveFolder||New default location, must be in the library
if (!PyArg_ParseTuple(args, "iO:SetDefaultSaveFolder", &Type, &obSaveFolder))
return NULL;
if (!PyCom_InterfaceFromPyObject(obSaveFolder, IID_IShellItem, (void **)&SaveFolder, FALSE))
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pISL->SetDefaultSaveFolder(Type, SaveFolder);
SaveFolder->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pISL, IID_IShellLibrary );
Py_INCREF(Py_None);
return Py_None;
}
示例2: CreateShellItemArray
// Create a shell item array object that can be accessed using IObjectCollection
// or IShellItemArray. IObjectCollection lets items be added or removed from the collection.
// For code that needs to run on Vista use SHCreateShellItemArrayFromIDLists()
HRESULT CreateShellItemArray(REFIID riid, void **ppv)
{
*ppv = NULL;
IShellLibrary *pLibrary;
HRESULT hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pLibrary));
if (SUCCEEDED(hr))
{
hr = pLibrary->GetFolders(LFF_ALLITEMS, riid, ppv);
pLibrary->Release();
}
return hr;
}
示例3: SHLoadLibraryFromKnownFolder
__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;
}