Метод 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)

См. также раздел

IShellLibrary

IShellLibrary::LoadLibraryFromKnownFolder

Схема описания библиотеки

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Библиотеки Windows