Delphi에서 클래스 참조를 전달하여 객체 유형을 비교하고 인스턴스화 할 수 있습니다. COM 자동화 서버에 전달되는 인터페이스 참조를 사용하여 동일한 작업을 수행 할 수 있습니까? 내가 노드 종류, 예를 들어,에 의해 지정된 인터페이스를 지원하는 자동화 형태를 돌려하고자하는이 기능에서델파이의 자동화 메소드에 인터페이스 유형/GUID 참조를 전달하는 방법
function ChildNodesOfType(NodeType: TGUID): IMBNode; safecall;
:
예를 들어, 형식 라이브러리 편집기를 사용하여 GUID 매개 변수를 복용하는 방법을 정의 할 수 있습니다
if Supports(SomeNode, NodeType) then
result := SomeNode;
하지만 지지대는 항상 내가 형식 라이브러리에 정의 된 GUID를 전달 시도 실패하지만, 다른 유형 (Ixxx, Class_xxxx, IId_Ixxxx) 중 어느 것도 제대로 작동하지 호출합니다.
안녕하세요 롭, 고맙습니다. 훌륭한 답변입니다. TInterfacedObject를 사용하지 않아도 작동하지 않아야 할 이유는 없습니다. 따라서 필자의 가정을 확인한 결과 실수로 인터페이스를 구현하지 않는 지원 객체로 실수로 객체를 전달한 결과였습니다. –