Partager via


IShellLibrary ::LoadLibraryFromItem, méthode (shobjidl_core.h)

Charge la bibliothèque à partir d’un fichier de définition de bibliothèque spécifié.

Syntaxe

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

Paramètres

[in] psiLibrary

Type : IShellItem*

Objet IShellItem pour le fichier de définition de bibliothèque à charger. Une erreur est retournée si cet objet n’est pas une bibliothèque.

[in] grfMode

Type : DWORD

Un ou plusieurs indicateurs de support de stockage STGM qui spécifient des modes d’accès et de partage pour l’objet de bibliothèque.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Si cette méthode est appelée sur un objet IShellLibrary déjà chargé, le contenu de cet objet est remplacé en mémoire avec les nouvelles informations.

S’il n’existe aucun objet de bibliothèque existant, SHLoadLibraryFromItem peut être appelé à la place de cette méthode.

Exemples

L’exemple de code suivant montre la fonction d’assistance SHLoadLibraryFromItem, qui encapsule cette méthode.

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

L’exemple de code suivant montre la fonction d’assistance SHLoadLibraryFromParsingName, qui encapsule cette méthode.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (inclure Shobjidl.h)

Voir aussi

IShellLibrary

IShellLibrary ::LoadLibraryFromKnownFolder

Schéma de description de la bibliothèque

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Bibliothèques Windows