1.使用COM庫函數(shù)(最麻煩,要求對(duì)COM原理有深的理解)
2.使用MFC OLE的ClassWizard
3.使用#import指令(一般都用這種,利用了只能指針_com_ptr_t,它能自動(dòng)執(zhí)行COM的QueryInterface,AddRef和Release函數(shù))
不需要你在工程中對(duì)組件進(jìn)行維護(hù).
下面詳細(xì)說明各種用法:
第一種方法:
創(chuàng)建工程,并初始化COM庫.在InitInstance的開始和返回前分別添加:
CoInitialize(NULL);
...
CoUninitialize();
包含組件頭文件 :#include "..COMSample.h"
#include"..COMSample_i.c"
.h文件包含了接口的C++定義,并說明IID,CLSID的符號(hào)化常量 .c文件包含了IID,CLSID和LIBID的GUID定義
第二種方法:
創(chuàng)建工程,初始化COM. 在應(yīng)用程序類的InitInstance中添加AfxOleInit();
創(chuàng)建組件包裝類:View->ClassWizard單擊"AddClass",選擇From a Type Library(來自類型庫),在..COMSample.tlb
釋放組件對(duì)象:ReleaseDispatch();
第三種方法:
創(chuàng)建工程,初始化COM,在InitInstance中調(diào)用AfxOleInit();
利用#inport指令引入類型庫.在stdafx.h中添加:#import "..COMSample.tlb" rename_namespace("...") using namespace ...
定義智能指針變量
2.使用MFC OLE的ClassWizard
3.使用#import指令(一般都用這種,利用了只能指針_com_ptr_t,它能自動(dòng)執(zhí)行COM的QueryInterface,AddRef和Release函數(shù))
不需要你在工程中對(duì)組件進(jìn)行維護(hù).
下面詳細(xì)說明各種用法:
第一種方法:
創(chuàng)建工程,并初始化COM庫.在InitInstance的開始和返回前分別添加:
CoInitialize(NULL);
...
CoUninitialize();
包含組件頭文件 :#include "..COMSample.h"
#include"..COMSample_i.c"
.h文件包含了接口的C++定義,并說明IID,CLSID的符號(hào)化常量 .c文件包含了IID,CLSID和LIBID的GUID定義
第二種方法:
創(chuàng)建工程,初始化COM. 在應(yīng)用程序類的InitInstance中添加AfxOleInit();
創(chuàng)建組件包裝類:View->ClassWizard單擊"AddClass",選擇From a Type Library(來自類型庫),在..COMSample.tlb
釋放組件對(duì)象:ReleaseDispatch();
第三種方法:
創(chuàng)建工程,初始化COM,在InitInstance中調(diào)用AfxOleInit();
利用#inport指令引入類型庫.在stdafx.h中添加:#import "..COMSample.tlb" rename_namespace("...") using namespace ...
定義智能指針變量