디스크에 있는 기존 파일을 열고 해당 메타데이터를 메모리에 매핑합니다.
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 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0