Condividi tramite


Metodo IShellLibrary::LoadLibraryFromItem (shobjidl_core.h)

Carica la libreria da un file di definizione della libreria specificato.

Sintassi

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

Parametri

[in] psiLibrary

Tipo: IShellItem*

Oggetto IShellItem per il file di definizione della libreria da caricare. Se questo oggetto non è una libreria, viene restituito un errore.

[in] grfMode

Tipo: DWORD

Uno o più flag di archiviazione STGM che specificano le modalità di accesso e condivisione per l'oggetto libreria.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Se questo metodo viene chiamato su un oggetto IShellLibrary già caricato, il contenuto di tale oggetto viene sovrascritto in memoria con le nuove informazioni.

Se non è presente alcun oggetto di libreria, è possibile chiamare SHLoadLibraryFromItem al posto di questo metodo.

Esempio

Nell'esempio di codice seguente viene illustrata la funzione helper SHLoadLibraryFromItem, che esegue il wrapping di questo metodo.

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

Nell'esempio di codice seguente viene illustrata la funzione helper SHLoadLibraryFromParsingName, che esegue il wrapping di questo metodo.

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

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)

Vedi anche

IShellLibrary

IShellLibrary::LoadLibraryFromKnownFolder

Schema della descrizione della libreria

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Librerie di Windows