Метод IMetaDataDispenser::OpenScope
Открывает существующий файл, расположенный на диске, и отображает содержащиеся в нем метаданные в память.
HRESULT OpenScope (
[in] LPCWSTR szScope,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppIUnk
);
Параметры
szScope
[in] Имя файла, который необходимо открыть. Файл должен содержать метаданные среды CLR.dwOpenFlags
[in] Значение перечисления CorOpenFlags, позволяющее задать режим открытия (чтение, запись, и т. д.).riid
[in] Подлежащее возврату значение IID необходимого интерфейса метаданных; вызывающий объект будет использовать этот интерфейс для импорта (чтение) или выдачи метаданных (запись).Значение параметра riid должно задавать один из интерфейсов "импорта" или "выдачи". Допустимыми значениями являются IID_IMetaDataEmit, IID_IMetaDataImport, IID_IMetaDataAssemblyEmit, IID_IMetaDataAssemblyImport, IID_IMetaDataEmit2 или IID_IMetaDataImport2.
ppIUnk
[out] Указатель на возвращенный интерфейс.
Заметки
Копию метаданных в памяти можно запросить с помощью методов одного из интерфейсов "импорта" или добавить в методы одного из интерфейсов "выдачи".
Если целевой файл не содержит метаданные среды CLR, при выполнении метода OpenScope произойдет сбой.
Если в платформе .NET Framework версии 1.0 и 1.1 область открыта с использованием параметра dwOpenFlags, для которого задано значение ofRead, ее можно использовать совместно. Иными словами, если последующие вызовы метода OpenScope передаются в имени файла, открытого ранее, существующая область памяти используется повторно, а новый набор структур данных не создается. Однако в связи с совместным использованием могут возникнуть проблемы.
В платформе .NET Framework версии 2.0 области, которые с использованием параметра dwOpenFlags, для которого задано значение ofRead, больше не используются совместно. Чтобы область стала доступной для совместного использования, нужно воспользоваться значением ofReadOnly. При совместном использовании области запросы, для которых применяются интерфейсы метаданных "чтения-записи", приводят к сбою.
Требования
Платформы: см. раздел Требования к системе для .NET Framework.
Заголовок: Cor.h
Библиотека: используется как ресурс в MsCorEE.dll
Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0, 1.1, 1.0
См. также
Ссылки
Интерфейс IMetaDataDispenserEx
Интерфейс IMetaDataAssemblyEmit