Freigeben über


IShellLibrary::LoadLibraryFromItem-Methode (shobjidl_core.h)

Lädt die Bibliothek aus einer angegebenen Bibliotheksdefinitionsdatei.

Syntax

HRESULT LoadLibraryFromItem(
  [in] IShellItem *psiLibrary,
  [in] DWORD      grfMode
);

Parameter

[in] psiLibrary

Typ: IShellItem*

Ein IShellItem-Objekt für die zu ladende Bibliotheksdefinitionsdatei. Ein Fehler wird zurückgegeben, wenn es sich bei diesem Objekt nicht um eine Bibliothek handelt.

[in] grfMode

Art: DWORD

Mindestens eine STGM-Speichermediumflagge, die Zugriffs- und Freigabemodi für das Bibliotheksobjekt angeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Wenn diese Methode für ein bereits geladenes IShellLibrary-Objekt aufgerufen wird, wird der Inhalt dieses Objekts im Arbeitsspeicher mit den neuen Informationen überschrieben.

Wenn kein Bibliotheksobjekt vorhanden ist, kann SHLoadLibraryFromItem anstelle dieser Methode aufgerufen werden.

Beispiele

Das folgende Codebeispiel zeigt die Hilfsfunktion SHLoadLibraryFromItem, die diese Methode umschließt.

//
// 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;
}

Das folgende Codebeispiel zeigt die Hilfsfunktion SHLoadLibraryFromParsingName, die diese Methode umschließt.

//
// 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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (einschließlich Shobjidl.h)

Weitere Informationen

IShellLibrary

IShellLibrary::LoadLibraryFromKnownFolder

Bibliotheksbeschreibungsschema

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Windows-Bibliotheken