MFC에서 IEnumVariant 구현 예제
INPROC 클래스
CVariantMap 클래스는 VARIANT 맵에 VARIANT를 구현합니다. 이렇게 되면 한 VARIANT를 다른 VARIANT에 매핑할 수 있습니다. CMap을 직접 사용하는 Visual C++ 프로그래머들에게는 유용하지 않겠지만 이로 인해 Visual Basic 사용자들은 MFC의 컬렉션 클래스 기능을 이용할 수 있습니다. mfc.inproc.varmap 이름을 사용하여CVariantMap 클래스에 액세스합니다. 이것은 Windows 레지스트리에서 개체를 등록하는 방법입니다. CVariantMap은 _NewEnum 메서드뿐만 아니라 표준 컬렉션 메서드와 속성을 구현합니다.
CStringCollect 클래스는 문자열 배열을 구현합니다. CStringCollect는 CVariantMap과 동일한 여러 가지 자동화 기능을 구현하지만 CStringCollect 구현이CVariantMap 클래스보다 간단합니다. mfc.inproc.strcoll 이름을 사용하여 CstringCollect 개체에 액세스합니다. CStringCollect는 대부분의 표준 컬렉션 메서드와 속성을 구현하며 자체 컬렉션을 구현하는 방법을 보여주는 좋은 예제이기도 합니다. _NewEnum 메서드를 구현하여 컬렉션의 콘텐츠를 열거할 때 Visual Basic 사용자가For Each... In 구문을 사용할 수 있도록 합니다. CStringCollect는 CEnumVariant를 사용하여 이 기능을 구현하며 MFC 인터페이스 맵을 사용하여 IEnumVARIANT를 구현합니다. 사용자의 응용 프로그램에서 CEnumVariant가 유용함을 확인할 수 있습니다.
마지막으로 이 샘플에서는 in-process 서버와 LocalServer 서버의 성능을 비교하는 데 사용되는 몇 가지 더미 속성을 구현합니다. 더미 속성은 IPDRIVE의 Test1 및 Test2 단추로 테스트한 속성입니다.