《COM 原理与应用》学习笔记 - 第一部分 COM原理

豆豆网   技术应用频道   2007年03月20日  【字号: 收藏本文

本文详细介绍《COM 原理与应用》学习笔记 - 第一部分 COM原理

interface IDictionary
{
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 Visual C++ 提供了 MIDL 工具,可以把 IDL 接口描述文件编译成 C/C++ 兼容的接口描述头文件(.h)。

  ---------------------------------------------------

  IUnknown 接口

  ---------------------------------------------------

  IUnknown 的 IDL 定义:

interface IUnknown
{
HRESULT QueryInterface([in] REFIID iid, [out] void **ppv);
ULONG AddRef(void);
ULONG Release(void);
}

  IUnkown 的 C++ 定义:

class IUnknown
{
virutal HRESULT _stdcall QueryInterface(const IID& iid, void **ppv) = 0;
virtual ULONG _stdcall AddRef() = 0;
virutal ULONG _stdcall Release() = 0;
}

  ---------------------------------------------------

  COM 对象的接口原则

  ---------------------------------------------------

  COM 规范对 QueryInterface 函数设置了以下规则:

  1. 对于同一个对象的不同接口指针,查询得到的 IUnknown 接口必须完全相同。也就是说,每个对象的 IUnknown 接口指针是唯一的。因此,对两个接口指针,我们可以通过判断其查询到的 IUnknown 接口是否相等来判断它们是否指向同一个对象。

责编:豆豆技术应用

正在加载评论...