ID2D1RenderTarget
是在 中定义的接口d2d1.h
。我想在我的 IDL 界面中使用它,如下所示:
interface IXXX : IUnknown {
HRESULT XXX([out, retval] ID2D1RenderTarget **_ppRT);
}
d2d1.idl
不包含在 SDK 中,我只能得到d2d1.h
(也没有 d2d1.tlb)。
我试过包括d2d1.h
使用 cpp_quote:
cpp_quote("#include <d2d1.h>")
它提出:
error MIDL2025: syntax error : expecting a type specification near "ID2D1RenderTarget"
然后我添加了一个typedef:
typedef struct ID2D1RenderTarget ID2D1RenderTarget;
错误变成了这样:
error MIDL2011: unresolved type declaration : ID2D1RenderTarget [ Type 'ID2D1RenderTarget' ( Parameter '_ppRT' ) ]
我也尝试过添加cpp_quote("#define D2D_USE_C_DEFINITIONS")
在包含之前添加,但它什么也没做。
那么我应该怎么做才能ID2D1RenderTarget
在我的 IDL 文件中使用呢?