我正在研究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编程的新手。
答案 0 :(得分:1)
你不能这样做 - 在IDL中没有C ++风格类。如果要从函数返回某个类的对象,则必须声明interface
并且可能是coclass
(根据您的情况可能不需要后者)并使该函数返回该接口