描述:
用VS.NET 建立的ATL项目
现要在 Object1对象的Method1方法中传递一个struct类型参数,定义如下
#pragma once
#include "resource.h" // 主符号
#include <comsvcs.h>
struct PITCHER_RECORD_TYPE
{
LONG flag;
} ;
// IObject1
[
object,
uuid("79031E1E-8DF6-4FC5-97F4-74E8D4C99663"),
dual, helpstring("IObject1 接口"),
pointer_default(unique)
]
__interface IObject1 : IDispatch
{
[id(3), helpstring("方法Method3")] HRESULT Method3([in] PITCHER_RECORD_TYPE* p);
};
// CObject1
[
coclass,
threading("single"),
aggregatable("never"),
vi_progid("Server.Object1"),
progid("Server.Object1.1"),
version(1.0),
uuid("0775A13B-9D9A-4C8D-A7D7-4C36A47421B3"),
helpstring("Object1 Class")
]
class ATL_NO_VTABLE CObject1 :
public IObject1
{
public:
CObject1()
{
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
// IObject1
public:
STDMETHOD(Method3)(PITCHER_RECORD_TYPE* p);
};
编译MIDL 报错
error MIDL2011 : unresolved type declaration : PITCHER_RECORD_TYPE [ Parameter 'p' of Procedure 'Method3' ( Interface 'IObject1' )
请问如何解决?谢谢