2011-04-19 7 views
0

마다. COM 서버는 dll 또는 ax로 실행됩니다. CoCreateInstance를 호출하여 COM 구성 요소를 사용할 수 있습니다. 각 COM 클래스에 CLSID가 있음을 알았습니다. 우리는 CLSID를 사용하여 객체를 생성합니다. 하나의 dll (COM 서버)에서 구현할 수있는 COM 클래스의 수를 알려주고 싶습니다.하나의 COM에만 몇 개의 클래스가 있습니까?

+0

"실제 제한 없음" –

답변

2

하나의 .dll 파일 (in-proc COM 서버)은 모든 종류의 COM 클래스를 제공 할 수 있습니다. 우리는 20 개의 COM 클래스와 같은 것을 구현하는 단일 COM 서버와 함께 제공되는 상용 제품을 가지고 있습니다.

Windows 레지스트리가 동일한 .dll 파일에 여러 클래스 ID를 매핑한다는 사실은 문제가되지 않습니다. 요청한 클래스 ID를 전달하고 올바른 클래스 팩터 리를 검색하는 모든 in-proc COM 서버에 DllGetClassObject() 함수가 있습니다. 따라서 단일 in-proc COM 서버 캠은 여러 COM 클래스를 제공합니다.

+0

많은 COM 클래스 (CLSID)가 하나의 dll에 저장된다는 것을 의미합니까? 다음과 같이 레지스트리에 두 개의 항목이 있습니다. CLSID_one 주소는 D : /myCom.dll CLSID_two 주소 D : /myCom.dll – kenny

+0

@kenny : 물론 가능합니다. 두 클래스 ID가 동일한 .dll에 매핑된다는 사실은 문제가 아닙니다. .dll 내의'DllGetClassObject()'는 올바른 클래스 팩토리를 검색합니다. – sharptooth

+0

고맙습니다. 나는 완전히 본다. – kenny

관련 문제