Compartir a través de


Método IShellLibrary::LoadLibraryFromItem (shobjidl_core.h)

Carga la biblioteca desde un archivo de definición de biblioteca especificado.

Sintaxis

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

Parámetros

[in] psiLibrary

Tipo: IShellItem*

Objeto IShellItem para que se cargue el archivo de definición de biblioteca. Se devuelve un error si este objeto no es una biblioteca.

[in] grfMode

Tipo: DWORD

Una o varias marcas de medios de almacenamiento STGM que especifican los modos de acceso y uso compartido para el objeto de biblioteca.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Si se llama a este método en un objeto IShellLibrary que ya está cargado, el contenido de ese objeto se sobrescribe en memoria con la nueva información.

Si no hay ningún objeto de biblioteca existente, se puede llamar a SHLoadLibraryFromItem en lugar de este método.

Ejemplos

En el ejemplo de código siguiente se muestra la función auxiliar SHLoadLibraryFromItem, que encapsula este método.

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

En el ejemplo de código siguiente se muestra la función auxiliar SHLoadLibraryFromParsingName, que encapsula este método.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (incluya Shobjidl.h)

Consulte también

IShellLibrary

IShellLibrary::LoadLibraryFromKnownFolder

Esquema de descripción de la biblioteca

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Bibliotecas de Windows