COM原理
+ -

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;
}

0 篇笔记 写笔记

COM 接口描述语言IDL
COM规范在IDL接口描述语言(OSF的DCE规范)的基础上,通过扩展形成了COM接口的描述语言。接口描述语言提供了一种不依赖于任何语言的接口的描述方法,因此,可成为组件程序和客户程序之间的共同语言。COM规范使用的IDL不仅可用于定义COM接口,同时还定义了一些常用数据类型,也可描述自定义的数据......
IUnknown
与CUnKnow相类似的是IUnknown,其定义如下:#undef INTERFACE#define INTERFACE IUnknownDECLARE_INTERFACE(IUnknown){ STDMETHOD_(NTSTATUS,QueryInterface) ( ......
SwapAPO COM接口关系图
总目录为SwapAPODlllib,其UUIP定义为:// SwapAPODlllib//[ uuid(7092F0B2-D28D-4095-95A7-6C37A97432A2), version(1.0)]其包含2个COM类,分别为SFX和MFXlibrary Swap......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!