介紹在VC++ 6.0下編寫COM客戶程序的三種方法,雖然每一種方法都可以達到使用代碼組件的目的,但詳細瞭解並掌握所有方法會爲根據具體情況選擇適當方法提供更大的餘地。
1、COM庫函數
利用COM庫函數使用代碼組件的方法是介紹的三種方法中實現起來最麻煩和困難的方法。它要求開發人員必須具有對COM原理的深入理解。該方法實現步驟如下:
- 首先添加COM初始和終止代碼。在應用程序類的初始化實例函數InitInstance()中添加如下代碼:
CoInitialize(NULL);
……
CoUnInitialize();
上述語句運行在MFC框架/非MFC框架中,但由於本文程序使用MFC框架,所以也可以利用AfxOleInit()函數對其進行初始化。
AfxOleInit()和AfxOleTerm()其實也是需要成對的,但是,在你的程序中,AfxOleTerm()可以不出現,這是因爲,MFC已經幫你做好了(有興趣的話,你可以仔細研究一下
2. 然後用#include 語句包含對組件頭文件的引用並創建組件對象。在頭文件中包含了接口的C++定義以及說明接口ID IID和類ID CLSID的符號化常量。創建工作在初始化對話框函數中進行:
IAccount pAccount=NULL;
……
CoCreateInstance(CLSID_Account,
NULL,
CLSCTX_INPROC_SERVER,
IID_Iaccount,
reinterpret_cast (&pAccount));
- 最後釋放組件對象。該工作應在程序退出之前完成,比如在消息WM_CLOSE的響應函數中進行:
if(pAccount!=NULL)
pAccount->Realease();
對該代碼組件中的其他功能函數的調用,可以通過組件對象的接口指針pAccount來進行: