我已经使用ATL创建了一个COM对象。我想创建一个可以从方法中返回并作为参数传递的新对象。我已经创建了coclass,但是我不知道如何添加将其作为参数接受的方法。
我得到的错误是MIDL2025:语法错误:期望在“ IgBrush”附近有类型说明。我正在使用Visual Studio 2008。
当我添加枚举时,我想起了很多与IDL一起玩耍的方法,最终让它接受了枚举作为参数。同班同学没有这种运气。
从ATL向导提供的默认生成代码中,使该代码正常工作需要执行哪些步骤? (即,我该向何处以及为什么移动?)
最佳答案
如果您使用的是IDL,那会有所帮助。
要在MIDL中使用类型,您必须先声明它。
interface IMyFactory:IDispatch
{
...
};
interface IMyObject:IDispatch
{
HRESULT SetFactory([in] IMyFactory * state);
}
但是我建议您传递IUnknown *或IDispach *之类的参数(如果合适的话),那么最后的资源就是使用VOID *作为参数。
关于c++ - ATL:我想创建一个可以用作类中方法参数的协类。为什么我不能使它正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/698273/