COM 接口描述语言IDL
2022-02-07
146
0
COM规范在IDL接口描述语言(OSF的DCE规范)的基础上,通过扩展形成了COM接口的描述语言。接口描述语言提供了一种不依赖于任何语言的接口的描述方法,因此,可成为组件程序和客户程序之间的共同语言。
COM规范使用的IDL不仅可用于定义COM接口,同时还定义了一些常用数据类型,也可描述自定义的数据结构,对接口成员函数,可定义每个参数的类型、输入输出特性,甚至支持可变长度的数组的描述。
IDL支持指针类型,与C/C++很类似。
interface IDictionary //使用IDL语言定义接口
{
HRESULT Initialize();
HRESULT LoadLibrary([in]string);
HRESULT InsertWord([in]string,[in]string);
HRESULT DeleteWord([in]string);
HRESULT LookupWord([in]string,[out]string*);
HRESULT RestoreLibrary([in]string);
HRESULT FreeLibrary();
}
Microsoft VC++提供了MIDL工具,可把IDL接口描述文件编译成C/C++兼容的接口描述头文件(.h)。
IUnknown
如IUnknown接口。
interface IUnknown // IUnknown接口的IDL定义
{
HRESULT QueryInterface([in]REFIID iid,[out]void **ppv);
ULONG AddRef(void);
ULONG Release(void);
}
IUnknown接口的C++定义
class IUnknown // IUnknown接口的C++定义
{
virutal HRESULT _stdcall QueryInterface(const IID&iid,void**ppv)=0;
virtual ULONG _stdcall AddRef()= 0;
virutal ULONG _stdcall Release()= 0;
}