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
标头 shobjidl_core.h (包括 Shobjidl.h)

另请参阅

IShellLibrary

IShellLibrary::LoadLibraryFromKnownFolder

库说明架构

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Windows 库