Compartilhar via


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

Carrega a biblioteca de um arquivo de definição de biblioteca especificado.

Sintaxe

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

Parâmetros

[in] psiLibrary

Tipo: IShellItem*

Um objeto IShellItem para o arquivo de definição de biblioteca a ser carregado. Um erro será retornado se este objeto não for uma biblioteca.

[in] grfMode

Tipo: DWORD

Um ou mais sinalizadores médios de armazenamento STGM que especificam modos de acesso e compartilhamento para o objeto de biblioteca.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Se esse método for chamado em um objeto IShellLibrary que já está carregado, o conteúdo desse objeto será substituído na memória com as novas informações.

Se não houver nenhum objeto de biblioteca existente, SHLoadLibraryFromItem poderá ser chamado no lugar desse método.

Exemplos

O exemplo de código a seguir mostra a função auxiliar SHLoadLibraryFromItem, que encapsula esse 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;
}

O exemplo de código a seguir mostra a função auxiliar SHLoadLibraryFromParsingName, que encapsula esse 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 Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)

Confira também

Ishelllibrary

IShellLibrary::LoadLibraryFromKnownFolder

Esquema de descrição da biblioteca

SHLoadLibraryFromItem

SHLoadLibraryFromParsingName

Bibliotecas do Windows