다음을 통해 공유


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 값을 사용합니다. 범위가 공유되면 "읽기/쓰기" 메타데이터 인터페이스를 사용하는 쿼리가 실패합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: Cor.h

라이브러리: MsCorEE.dll에서 리소스로 사용됩니다.

.NET Framework 버전: 1.0부터 사용 가능

참고 항목