我已经使用ATL创建了一个COM对象。我想创建一个可以从方法返回并作为参数传入的新对象。我已经创建了coclass,但是我不知道如何添加一个接受它作为参数的方法。
我得到的错误是MIDL2025:语法错误:需要"IgBrush“附近的类型规范。我使用的是Visual Studio 2008。
当我添加一个枚举时,我记得我花了很多时间使用IDL,并最终让它接受枚举作为参数。对于coclass就没有这么好的运气了。
根据ATL向导提供的默认生成的代码,需要执行哪些步骤才能使其正常工作?(即我要把什么移动到哪里?为什么?)
发布于 2009-03-30 18:41:47
如果您将您正在使用的IDL放入其中,将会有所帮助。
要在MIDL中使用类型,必须先声明它。
interface IMyFactory:IDispatch
{
...
};
interface IMyObject:IDispatch
{
HRESULT SetFactory([in] IMyFactory * state);
}但我建议你传递像IUnknown*或IDispach*这样的参数(如果它们是合适的),那么最后一个资源将是使用VOID*作为参数。
https://stackoverflow.com/questions/698273
复制相似问题