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 媒體櫃