2013-12-20 12 views
0

COM/ATL에서 작업하고 있습니다. 클래스 객체를 반환 값으로 사용하여 관리되는 코드에서 사용할 수 있도록해야합니다. 나는 idl 파일에서 구조체를 정의 할 수 있으며 메소드를 작성할 때 리턴 매개 변수로 사용할 수도있다.ATL/COM : IDL 파일에서 반환 유형으로 사용할 수있는 클래스를 만들 수 있습니까?

import "oaidl.idl"; 
    import "ocidl.idl"; 

//Structure for message mapping of activation and deactivation 
//Structures are working properly 
[uuid(E2240D8B-EB97-4ACD-AC96-21F2EAFFE100)] 
struct tagActivationManaged 
{ 

    WORD   wMsgId; 
    WORD   wStatus; 
    WORD   wClient; 
    WORD   wClientId; 

}; 


//same manner if creating class it throws error. 
[uuid(2ED2E59C-9362-46b2-80D8-471AD69BA5D5)] 
class AuthenticationMessage 
{ 
    public: 
    Word message; 
} 

내가 관한에서 설정을 변경해야합니까 : 다음은 부분 IDL 파일의 구현입니다.

NB : 저는 COM 프로그래밍을 처음 사용합니다.

답변

1

IDL에는 C++ 플레어 클래스가 없습니다. 함수에서 어떤 클래스의 객체를 반환하려면 interface 및 가능하면 coclass을 선언해야합니다 (사용자 위치에 따라 후자가 필요하지 않을 수도 있음). 해당 인터페이스를 반환하도록합니다.