COM编程入门(20)

时间:2025-04-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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219