手机版

COM编程入门(20)

发布时间:2021-06-06   来源:未知    
字号:

COM编程入门,十分浅显易懂

这个工程是一个能运行的DLL服务器例子,对象由类工厂创建,此DLL服务器在 CSimpleMsgBoxImpl组件对象类中实现了一个接口:ISimpleMsgBox。 接口定义

我们的新接口是ISimpleMsgBox。所有的接口多必须从IUnknown派生。这个接口只有一个方法:DoSimpleMsgBox()。注意它 返回标准类型HRESULT。所有的方法都应该返回HRESULT类型,并且所有返回到调用者的其它数据都应该通过指针参数操作。

struct ISimpleMsgBox : public IUnknown

{

// IUnknown 方法

ULONG AddRef();

ULONG Release();

HRESULT QueryInterface( REFIID riid, void** ppv );

// ISimpleMsgBox方法

HRESULT DoSimpleMsgBox( HWND hwndParent, BSTR bsMessageText ); };

struct __declspec(uuid("{7D51904D-1645-4a8c-BDE0-0F4A44FC38C4}")) ISimpleMsgBox;

有__declspec的一行将一个GUID赋值给ISimpleMsgBox,并且以后可以用__uuidof操作符来获取GUID。这两个东西都 是微软的C++的扩展。

DoSimpleMsgBox()的第二个参数是BSTR类型。意思是二进制串——即定长序列位的COM表示。BSTRs主要用于Visual Basic 和 Windows Scripting Host之类的脚本客户端。接下来这个接口由CSimpleMsgBoxImpl C++类来实现。其定义如下:

class CSimpleMsgBoxImpl : public ISimpleMsgBox

{

public:

CSimpleMsgBoxImpl();

virtual ~CSimpleMsgBoxImpl();

// IUnknown 方法

ULONG AddRef();

ULONG Release();

HRESULT QueryInterface( REFIID riid, void** ppv );

// ISimpleMsgBox 方法

HRESULT DoSimpleMsgBox( HWND hwndParent, BSTR bsMessageText );

protected:

ULONG m_uRefCount;

COM编程入门(20).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)