Compartilhar via


Método IMetaDataDispenser::OpenScope

Abre um arquivo existente em disco e mapeia os metadados para a memória.

Sintaxe

HRESULT OpenScope (  
    [in]  LPCWSTR     szScope,
    [in]  DWORD       dwOpenFlags,
    [in]  REFIID      riid,
    [out] IUnknown    **ppIUnk  
);  

Parâmetros

szScope
[in] O nome do arquivo a ser aberto. O arquivo deve conter metadados CLR (common language runtime).

dwOpenFlags
[in] Um valor da enumeração CorOpenFlags para especificar o modo (leitura, gravação e assim por diante) para abertura.

riid
[in] A IID da interface de metadados desejada a ser retornada; o chamador usará a interface para importar (ler) ou emitir metadados (gravação).

O valor de riid deve especificar uma das interfaces "import" ou "emit". Os valores válidos são IID_IMetaDataEmit, IID_IMetaDataImport, IID_IMetaDataAssemblyEmit, IID_IMetaDataAssemblyImport, IID_IMetaDataEmit2 ou IID_IMetaDataImport2.

ppIUnk
[out] O ponteiro da interface retornada.

Comentários

A cópia na memória dos metadados pode ser consultada usando métodos de uma das interfaces de "importação" ou adicionada ao uso de métodos de uma das interfaces "emit".

Se o arquivo de destino não contiver metadados CLR, o método OpenScope falhará.

No .NET Framework versão 1.0 e versão 1.1, se um escopo for aberto com dwOpenFlags definido como ofRead, ele será qualificado para compartilhamento. Ou seja, se chamadas subsequentes para OpenScope passarem o nome de um arquivo que foi aberto anteriormente, o escopo existente será reutilizado e um novo conjunto de estruturas de dados não será criado. No entanto, podem surgir problemas devido a esse compartilhamento.

No .NET Framework versão 2.0, os escopos abertos com dwOpenFlags definidos como ofRead não são mais compartilhados. Use o valor ofReadOnly para permitir que o escopo seja compartilhado. Quando um escopo é compartilhado, as consultas que usam interfaces de metadados de "leitura/gravação" falharão.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: Cor.h

Biblioteca: usada como um recurso na MsCorEE.dll

Versões do .NET Framework: Disponíveis desde a versão 1.0

Confira também