Метод IShellLibrary::LoadLibraryFromItem (shobjidl_core.h)
Загружает библиотеку из указанного файла определения библиотеки.
Синтаксис
HRESULT LoadLibraryFromItem(
[in] IShellItem *psiLibrary,
[in] DWORD grfMode
);
Параметры
[in] psiLibrary
Тип: IShellItem*
Объект IShellItem для загружаемого файла определения библиотеки. Если этот объект не является библиотекой, возвращается ошибка.
[in] grfMode
Тип: DWORD
Один или несколько средних флагов хранилища STGM , которые указывают режимы доступа и общего доступа для объекта библиотеки.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Если этот метод вызывается для уже загруженного объекта IShellLibrary , содержимое этого объекта перезаписывается в памяти новыми сведениями.
Если существующий объект библиотеки отсутствует, вместо этого метода можно вызвать SHLoadLibraryFromItem .
Примеры
В следующем примере кода показана вспомогающая функция SHLoadLibraryFromItem, которая служит оболочкой для этого метода.
//
// from shobjidl.h
//
__inline HRESULT SHLoadLibraryFromItem(
__in IShellItem *psiLibrary,
__in DWORD grfMode,
__in REFIID riid,
__deref_out void **ppv
)
{
*ppv = NULL;
IShellLibrary *plib;
HRESULT hr = CoCreateInstance(
CLSID_ShellLibrary,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&plib));
if (SUCCEEDED(hr))
{
hr = plib->LoadLibraryFromItem (psiLibrary, grfMode);
if (SUCCEEDED(hr))
{
hr = plib->QueryInterface (riid, ppv);
}
plib->Release();
}
return hr;
}
В следующем примере кода показана вспомогающая функция SHLoadLibraryFromParsingName, которая заключает этот метод в оболочку.
//
// from shobjidl.h
//
__inline HRESULT SHLoadLibraryFromParsingName(
__in PCWSTR pszParsingName,
__in DWORD grfMode,
__in REFIID riid,
__deref_out void **ppv
)
{
*ppv = NULL;
IShellItem *psiLibrary;
HRESULT hr = SHCreateItemFromParsingName (
pszParsingName,
NULL,
IID_PPV_ARGS(&psiLibrary));
if (SUCCEEDED(hr))
{
hr = SHLoadLibraryFromItem (psiLibrary, grfMode, riid, ppv);
psiLibrary->Release();
}
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl_core.h (включая Shobjidl.h) |