2009-08-23 7 views
0

일부 인터페이스를 설명하는 typelib이 있습니다. 이러한 인터페이스 중 일부는 카테고리로 사용되므로 유형 ID를 유형 라이브러리에 추가하려고합니다. 질문은 다음과 같습니다 :형식 라이브러리에 추가 GUID를 추가 할 수 있습니까?

a) Delphi (2007 이상)에서 어떻게 수행 할 수 있습니까?

또는 대안

b)는 CATID의 인터페이스 GUID를 사용하는 것이 가능하고 바람직하다

?

답변

1

a)의 경우 델파이에 대해 잘 모릅니다. 하지만 C++에서는 단순히 인터페이스 설명을 MIDL 파일에 추가하는 것입니다. 실제로 인터페이스 만 사용하는 것처럼 보이기 때문에 CoClass 구현이 필요하지 않으므로 이미 충분합니다. 기본적으로 다른 인터페이스를 typelib에 어떻게 추가 했습니까? 지금도 같은 방식으로하십시오.

[편집] typelib-editor에 대한 간단한 자습서를 찾았습니다. 인터페이스를 추가하는 것이 올바른 키워드 일뿐입니다. [/ edit]

b)와 같이 인터페이스를 카테고리 ID로 사용하는 데는 아무런 문제가 없지만이 질문은 다소 모호합니다. 가능한 범주 집합이 고정되어 있고 동작과 같은 상속을 사용하지 않습니다 (적어도 인터페이스 자체가 아니라 인터페이스 GUID를 사용한다고 말하면서 생각합니다). 열거자를 사용하지 않는 이유는 무엇입니까? 인터페이스 등을 사용하는 것은 인터페이스가 실제로 그런 식으로 사용되는 경우, 즉 특정 카테고리 별 동작에 대한 액세스를 제공하는 경우를 제외하고는 과도하게 설계된 솔루션처럼 보입니다.

[편집] ICatRegister 외에도, GUID를 사용하려는 이유가 있습니다. 범주 GUID는 COM 인터페이스 GUID와 다른 네임 스페이스에 있으므로 반드시 동일하게 사용하십시오. 인터페이스 GUID는 카테고리 ID와 동일한 범위 내에서 고유해야하며 1 : 1 매핑을 사용하면 유지 관리를위한 간단한 모델처럼 보일 수도 있습니다.

+0

a) Delphi에는 typelib이 내장되어 있습니다 편집기 - 일반적으로 MIDL 파일을 편집 할 필요가 없습니다. 그러나 이것이 해결책이라면 - 그럼. b) 실제로 ICatRegister 및 ICatInformation을 사용하여 처리 할 수있는 구성 요소 범주에 대해 이야기하고 있습니다. 아이디어는 확립 된 행동을 사용하는 것입니다. –

+0

글쎄, GUID는 괜찮아요, 아직 typelib 편집기에서 포기하지 마세요. typelib-editor가 원하는대로 할 수있는 것 같습니다 (대답의 링크 참조). – gimpf

관련 문제