ATL / COM:在IDL文件中我们可以创建一个可以用作返回类型的类

时间:2013-12-20 05:19:12

标签: visual-c++ com atl idl

我正在研究COM / ATL。我需要使用类对象作为返回值,以便它可以在托管代码中使用。我能够在idl文件中定义结构,并且在创建方法时也能够将其用作返回参数。 下面是部分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;
}

我是否需要更改MIDL中的任何设置。

注意:我是COM编程的新手。

1 个答案:

答案 0 :(得分:1)

你不能这样做 - 在IDL中没有C ++风格类。如果要从函数返回某个类的对象,则必须声明interface并且可能是coclass(根据您的情况可能不需要后者)并使该函数返回该接口