情况:我正在编写一个看起来像的 COM 接口
MIDL_INTERFACE(/*....*/)
IFace : IUnknown
{
STDMETHOD_(void, Foo)(int param) PURE;
};
该接口应该只在我的项目中使用,在几个编译单元中,不应该放在 idl 文件中。int param
应该以逻辑"OR"
方式使用
IFace* p;
p->Foo( param1 | param2 | param3 );
参数值列表是静态预定义的,不应在程序执行期间修改。
问题是:如何定义参数列表?接口描述应该放在一个已经包含许多接口描述(硬遗留)的IFace
文件中,这个文件包含在整个项目的许多地方。所以,我想在接口类本身中定义参数列表。
IFace : IUnknown
{
/*somehow define list of param for Foo here*/
STDMETHOD_(void, Foo)(int param) PURE;
};
并以某种方式使用它Foo( IFace::param1 | IFace::param2 );
。我考虑将参数列表作为static const
变量,但我不喜欢将变量放在接口类中的想法。我无法使用枚举,因为我需要使用逻辑或。
除了完全重组包含文件之外,对这种情况有什么好的建议吗?