青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

codeArt

codeArt

com的使用例子

1. 創建myCom.dll,該COM只有一個組件,兩個接口IGetRes--方法Hello(),
IGetResEx
--方法HelloEx()
2.在工程中導入組件或類型庫
   #import 
"組件所在目錄\myCom.dll" no_namespace
       或
   #import 
"類型庫所在目錄\myCom.tlb"
   
using namespace MYCOM;

--Method 1-------------------------------------------------------
   CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(OLESTR(
"myCom.GetRes"),&clsid);
   CComPtr
<IGetRes> pGetRes;//智能指針
   pGetRes.CoCreateInstance(clsid);
   pGetRes
->Hello();
   pGetRes.Release();
//小心哦!!請看最后的“注意”
   CoUninitialize();
--Method 2---------------------------------------------------------
   CoInitialize(NULL);
   CLSID clsid;
   HRESULT hr
=CLSIDFromProgID(OLESTR("myCom.GetRes"),&clsid);
   IGetRes 
*ptr;
   hr
=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,
                 __uuidof(IGetRes),(LPVOID
*)&ptr);
   ptr
->Hello();
   CoUninitialize();
--Method 3--------------------------------------------------------
   CoInitialize(NULL);
   HRESULT hr;
   CLSID clsid;
   hr
=CLSIDFromProgID(OLESTR("myCom.GetRes"),&clsid);
   IGetRes
* ptr;
   IGetResEx
* ptrEx;

//使用CoCreateClassObject創建一個組件(特別是 mutilThreads)的多個對象的
    時候,效率更高.
   IClassFactory
* p_classfactory;
   hr
=CoGetClassObject(clsid,CLSCTX_INPROC_SERVER,
                      NULL,IID_IClassFactory,
                     (LPVOID
*)&p_classfactory);
   p_classfactory
->CreateInstance(NULL,__uuidof(IGetRes),
                                          (LPVOID
*)&ptr);
   p_classfactory
->CreateInstance(NULL,__uuidof(IGetResEx),
                                          (LPVOID
*)&ptrEx);
   ptr
->Hello();
   ptrEx
->HelloEx();
   CoUninitialize();
--Method 4--------------------------------------------------------
    直接從dll中得到DllGetClassObject,接著生成類對象及類實例(這方法可以
使組件不用在注冊表里注冊,這是最原始的方法,但這樣做沒什么意義,至少失去了COM
對用戶的透明性),不推薦使用.

typedef HRESULT (__stdcall 
* pfnHello)(REFCLSID,REFIID,void**);
   pfnHello fnHello
= NULL;
   HINSTANCE hdllInst 
= LoadLibrary("組件所在目錄\myCom.dll");
   fnHello
=(pfnHello)GetProcAddress(hdllInst,"DllGetClassObject");
   
if (fnHello != 0)
   {
   IClassFactory
* pcf = NULL;
   HRESULT hr
=(fnHello)(CLSID_GetRes,IID_IClassFactory,(void**)&pcf);
   
if (SUCCEEDED(hr) && (pcf != NULL))
   {
   IGetRes
* pGetRes = NULL;
   hr 
= pcf->CreateInstance(NULL, IID_IFoo, (void**)&pGetRes);
   
if (SUCCEEDED(hr) && (pFoo != NULL))
   {
   pGetRes
->Hello();
   pGetRes
->Release();
   }
   pcf
->Release();
   }
   }
   FreeLibrary(hdllInst);
--Method 5-------------------------------------------------------
    通過ClassWizard利用類型庫生成包裝類,不過前提是com組件的接口必須是派
生自IDispatch,具體方法:
   調出添加類向導(.NET中),選擇類型庫中MFC類,打開,選擇
"文件",選擇
"myCom.dll""myCom.tlb", 接下來會出來該myCom中的所有接口,選擇你想
生成的接口包裝類后,向導會自動生成相應的.h文件.這樣你就可以在你的MFC中
像使用普通類那樣使用組件了.

   CoInitialize(NULL);
   CGetRes getRest;
   
if (getRest.CreateDispatch("myCom.GetRes"!= 0)
   {
   getRest.Hello();
   getRest.ReleaseDispatch();
   }
   CoUninitialize();
--注意--------------------------------------------------------------
    COM中的智能指針實際上是重載了
->的類,目的是為了簡化引用記數,幾不需要程序
員顯示的調用AddRef()和Release(),但是為什么我們在Method 1中
pGetRes.Release(), 問題在與,我們的智能指針pGetRes生命周期的結束是在
CoUninitialize()之后,CoInitialize所開的套間在 CoUninitialize()后已經被
關閉,而pGetRes此時發生析構,導致了程序的崩潰,解決這個問題的另一個方法是
   CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(OLESTR(
"myCom.GetRes"),&clsid);
{
   CComPtr
<IGetRes> pGetRes;//智能指針
   pGetRes.CoCreateInstance(clsid);
   pGetRes
->Hello();
}
   CoUninitialize();
-----------------------------------------------------------------
轉自http:
//hi.baidu.com/qxwandy/blog/item/00d116fbfa0d5062024f56a1.html

posted on 2010-07-06 10:16 codeArt 閱讀(470) 評論(0)  編輯 收藏 引用

<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

導航

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

文章檔案

編程與開源

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产亚洲免费的视频看| 一区二区三区鲁丝不卡| 激情五月婷婷综合| 久久久亚洲精品一区二区三区| 午夜日韩av| 久久成人精品无人区| 国产欧美1区2区3区| 极品日韩久久| 日韩视频免费看| 欧美激情免费观看| 欧美一区三区二区在线观看| 中文在线一区| 欧美伊人精品成人久久综合97| 欧美日韩另类国产亚洲欧美一级| 牛牛影视久久网| 欧美系列精品| 午夜久久久久| 校园春色国产精品| 欧美成人精品高清在线播放| 亚洲精品麻豆| 黄色欧美成人| 国产精品成人一区二区| 亚洲午夜日本在线观看| 欧美在线1区| 欧美成人午夜免费视在线看片| 99热精品在线观看| 亚洲免费黄色| 国产精品日韩欧美大师| 免费久久精品视频| 1024日韩| 国产亚洲精品v| 99精品欧美| 91久久黄色| 国产精品毛片在线看| av成人免费在线| 久久精品盗摄| 亚洲免费中文| 亚洲美女少妇无套啪啪呻吟| 欧美美女视频| 欧美3dxxxxhd| 久久欧美中文字幕| 欧美一级一区| 国产女主播一区二区| 狼狼综合久久久久综合网| 久久网站免费| 亚洲欧美日产图| 日韩亚洲欧美在线观看| 国内精品久久久| 国产精品久久久久免费a∨| 久久精品国产欧美亚洲人人爽| 这里只有精品丝袜| 欧美a一区二区| 久久精品综合一区| 宅男精品视频| 亚洲美女91| 久久九九精品99国产精品| 亚洲美女区一区| 亚洲欧洲视频| 国产欧美一区二区在线观看| 韩日欧美一区| 亚洲伦理自拍| 久久噜噜噜精品国产亚洲综合| 99精品国产高清一区二区| 亚洲精品美女久久久久| 欧美国产专区| 国产伊人精品| 亚洲一区二区视频| 亚洲午夜电影网| 久久精品女人的天堂av| 一区二区三区日韩精品视频| 欧美国产视频在线观看| 国产精品午夜视频| 亚洲第一毛片| 宅男精品视频| 久久精品欧美日韩精品| 欧美成人dvd在线视频| 久久精品一本| 欧美精品在线一区| 亚洲人成网站色ww在线| 亚洲免费在线视频| 亚洲乱码国产乱码精品精| 久久久久久一区二区三区| 亚洲欧美国内爽妇网| 亚洲一二三级电影| 老司机精品视频网站| 国产亚洲制服色| 久久爱www久久做| 欧美一区二区三区久久精品茉莉花 | 亚洲欧美国产高清| 99国产精品99久久久久久粉嫩| 欧美激情精品久久久久久大尺度| 亚洲女同同性videoxma| 欧美国产在线视频| 亚洲午夜久久久久久久久电影院 | 亚洲欧美文学| 久久香蕉精品| 久久久99免费视频| 亚洲欧美日韩一区| 午夜激情综合网| 国产亚洲欧美另类一区二区三区| 夜夜狂射影院欧美极品| 一本大道久久a久久精品综合| 欧美日韩高清在线播放| 99在线热播精品免费| 亚洲一区免费在线观看| 国产在线观看91精品一区| 久久精品中文字幕免费mv| 欧美在线播放一区| 亚洲人成网在线播放| 国产一区二区三区网站| 欧美在线视频一区二区三区| 亚洲欧洲日本专区| 巨乳诱惑日韩免费av| 亚洲一区二区免费| 亚洲黄色免费网站| 久久综合精品国产一区二区三区| 国产伦精品一区二区三| 亚洲激情午夜| 国产精品日韩欧美综合| 久久久999精品| 久久精品一本久久99精品| 欧美日韩一区二区欧美激情| 久久久水蜜桃| 国产精品一二三| 一区二区国产精品| 狠狠色丁香婷综合久久| 99re6热在线精品视频播放速度| 国内精品久久久久影院优| 日韩一级片网址| 欧美日韩国产二区| 嫩草国产精品入口| 最近中文字幕日韩精品| 久久激情五月激情| 老司机午夜精品| 久久精品人人做人人综合| 在线观看av不卡| 欧美日韩精品久久久| 久久久久国内| 亚洲激情成人在线| 激情小说亚洲一区| 国产精品日韩专区| 久久久在线视频| 亚洲视频导航| 亚洲午夜精品视频| 国产精品美女久久福利网站| 亚洲永久免费视频| 激情综合久久| 国产精品亚洲综合天堂夜夜 | 欧美中文字幕| 性色一区二区三区| 亚洲精品免费看| 国产精品美女久久福利网站| 亚洲综合色丁香婷婷六月图片| 免费在线播放第一区高清av| 亚洲免费成人av电影| 黄色在线一区| 国产精品成人va在线观看| 91久久线看在观草草青青| 久久综合狠狠综合久久激情| 亚洲一区二区少妇| 国产精品热久久久久夜色精品三区| 欧美亚洲一区三区| 欧美高清在线一区| 欧美主播一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 久久久av水蜜桃| 欧美一站二站| 久久久91精品| 欧美精品电影在线| 久久精品色图| 性欧美18~19sex高清播放| 久久精品成人| 午夜精品久久久久久久99樱桃| 一区二区三区四区精品| 亚洲另类一区二区| 久久精品国产欧美激情| 一区二区三区四区五区在线| 99国产精品久久久久久久| 亚洲精品三级| 一区二区三区色| 一本色道**综合亚洲精品蜜桃冫| 麻豆精品精华液| 亚洲国产精品国自产拍av秋霞 | 欧美v日韩v国产v| 欧美日韩国产色综合一二三四| 国产欧美精品日韩区二区麻豆天美| 在线精品视频在线观看高清| 午夜精彩视频在线观看不卡| 久久精品国产在热久久| 猛干欧美女孩| 久久精品五月婷婷| 欧美激情中文字幕乱码免费| 国产亚洲成精品久久| 亚洲午夜免费视频| 欧美一级在线亚洲天堂| 亚洲免费视频中文字幕| 免费在线国产精品| 日韩网站在线| 亚洲精品综合精品自拍| 欧美精品少妇一区二区三区|