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

Life & Code

代碼是咒語(yǔ),我是魔法師

<> 例子2 QueryInterface的實(shí)現(xiàn)

今天一大早就把例子完成了

#include <objbase.h>
#include <unknwn.h>
#include <iostream>
using namespace std;

interface IX:IUnknown{
 virtual void __stdcall FX() = 0;
};

interface IY:IUnknown{
 virtual void __stdcall FY() = 0;
};

interface IZ:IUnknown{
 virtual void __stdcall FZ() = 0;
};

extern const IID IID_IX;
extern const IID IID_IY;
extern const IID IID_IZ;

class CA:public IX,
   public IY
{
 virtual void __stdcall FY() {cout <<"CA::FY"<<endl; }
 virtual void __stdcall FX() {cout <<"CA::FX"<<endl; }      
        virtual HRESULT STDMETHODCALLTYPE QueryInterface(
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject)
  {
   if(riid == IID_IX)
   {
    *ppvObject = static_cast<IX*>(this);
   }
   else if(riid == IID_IY)
   {
    *ppvObject = static_cast<IY*>(this);
   }
   else if(riid == IID_IUnknown)
   {
    *ppvObject = static_cast<IX*>(this);
   }
   else
   {
    *ppvObject = NULL;
    return E_NOINTERFACE;
   }
   reinterpret_cast<IUnknown *>(*ppvObject)->AddRef();
   return S_OK;

  }
       
  virtual ULONG STDMETHODCALLTYPE AddRef( void){ return 0; }
       
  virtual ULONG STDMETHODCALLTYPE Release( void) {return 0; } 

};

IUnknown * CreateInstance()
{
     IUnknown * pI = static_cast <IX*>(new CA);
     pI->AddRef();
     return pI;
}

// {1A5EE493-AD77-4224-9A78-5F2DD3874714}
static const IID IID_IX =
{ 0x1a5ee493, 0xad77, 0x4224, { 0x9a, 0x78, 0x5f, 0x2d, 0xd3, 0x87, 0x47, 0x14 } };

// {AB55D03D-2160-4197-8AD2-36A36E33F69B}
static const IID IID_IY =
{ 0xab55d03d, 0x2160, 0x4197, { 0x8a, 0xd2, 0x36, 0xa3, 0x6e, 0x33, 0xf6, 0x9b } };

// {5443E124-25A6-451e-A634-2BA392788C38}
static const IID IID_IZ =
{ 0x5443e124, 0x25a6, 0x451e, { 0xa6, 0x34, 0x2b, 0xa3, 0x92, 0x78, 0x8c, 0x38 } };

int _tmain(int argc, _TCHAR* argv[])
{
    HRESULT  hr;
    IUnknown *pUnknown = CreateInstance();
    IX *pIX = NULL;
    hr = pUnknown->QueryInterface(IID_IX,(void **)(&pIX));
    if(SUCCEEDED(hr))
    {
         pIX->FX();
    }

    IY *pIY = NULL;
    hr = pUnknown->QueryInterface(IID_IY,(void **)(&pIY));
    if(SUCCEEDED(hr))
    {
         pIY->FY();
    }
     delete pUnknown;
     return 0;
}

/*
口QueryInterface 返回的總是同一IUnknown指針
口若客戶(hù)曾經(jīng)獲取過(guò)某個(gè)接口.那么它將總能獲取此接口。
口客戶(hù)可以再次獲取已經(jīng)擁有的接口。
口客戶(hù)可以返回到起始接口。
口若能夠從某個(gè)接口獲取某特定接口,那么可以從任意接口都將可以獲取此接口
下面我們將詳細(xì)討論這些規(guī)則。
*/

posted on 2006-03-02 09:35 橙子 閱讀(2103) 評(píng)論(1)  編輯 收藏 引用

評(píng)論

# re: > 例子2 QueryInterface的實(shí)現(xiàn) 2008-09-08 15:32 huan

很有用  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(10)

隨筆分類(lèi)

隨筆檔案

相冊(cè)

收藏夾

搜索

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲激情一区| 亚洲国产综合91精品麻豆| 亚洲一区二区在线免费观看| 亚洲欧洲日本在线| 亚洲国产日韩欧美在线图片| 亚洲黄页视频免费观看| 亚洲美女性视频| 亚洲一区二区三区777| 亚洲欧美不卡| 久久久久九九视频| 美国十次成人| 欧美日韩一区在线| 国产麻豆日韩欧美久久| 激情久久五月| 日韩一区二区电影网| 亚洲欧美国产制服动漫| 久久嫩草精品久久久久| 欧美黑人在线播放| 99精品欧美一区二区蜜桃免费| 亚洲视频在线一区| 久久久久国产精品一区三寸| 欧美激情视频一区二区三区不卡| 欧美三级视频在线观看| 影音先锋亚洲电影| 亚洲中无吗在线| 蜜臀久久99精品久久久画质超高清| 亚洲欧洲另类| 久久精品五月| 国产精品久久久久久久7电影| 国内精品免费在线观看| 亚洲色诱最新| 欧美国产乱视频| 亚洲视频网在线直播| 久久男人av资源网站| 欧美日韩在线另类| 亚洲国产精品成人va在线观看| 亚洲一二三区视频在线观看| 欧美1区视频| 亚洲欧美另类在线| 欧美日韩p片| 亚洲精品国产精品国自产在线| 欧美在线网站| 一区二区三区久久| 欧美精品一区二区三区久久久竹菊| 国自产拍偷拍福利精品免费一| 亚洲女人小视频在线观看| 亚洲欧洲日韩女同| 牛人盗摄一区二区三区视频| 国产一区二区三区四区在线观看| 亚洲影院免费观看| 亚洲理伦在线| 欧美另类在线观看| 日韩亚洲欧美成人| 91久久黄色| 蜜臀va亚洲va欧美va天堂| 国产亚洲欧美在线| 欧美专区日韩专区| 亚洲综合日本| 国产精品视频精品视频| 亚洲女人小视频在线观看| aa国产精品| 欧美日韩国语| 亚洲五月婷婷| 在线视频欧美一区| 国产精品久久久久久久久免费| 一区二区三区日韩欧美精品| 亚洲精选在线| 国产精品白丝黑袜喷水久久久 | 日韩视频在线观看国产| 亚洲高清色综合| 欧美成人午夜| 亚洲美女在线国产| 亚洲九九爱视频| 国产精品你懂的| 午夜免费久久久久| 欧美一区二区视频在线观看2020| 国产一区二区三区不卡在线观看| 久久国产精品亚洲va麻豆| 久久国产精品久久w女人spa| 狠狠久久五月精品中文字幕| 老司机精品视频网站| 蜜桃久久av一区| 亚洲一卡二卡三卡四卡五卡| 亚洲综合精品一区二区| 又紧又大又爽精品一区二区| 欧美国产成人精品| 欧美三级中文字幕在线观看| 欧美一级精品大片| 久热精品视频在线观看| 一区二区欧美激情| 午夜在线播放视频欧美| 亚洲国产成人高清精品| 99国产精品久久久久老师| 国产欧美日韩在线| 欧美激情一区二区久久久| 欧美系列一区| 美女精品在线观看| 欧美日韩中文字幕综合视频 | 久久久xxx| 暖暖成人免费视频| 欧美亚洲午夜视频在线观看| 理论片一区二区在线| 亚洲欧美中文另类| 欧美成人r级一区二区三区| 久久成人免费视频| 欧美日韩国语| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩国产限制| 免费欧美日韩| 国产麻豆9l精品三级站| 亚洲经典三级| 亚洲成人在线观看视频| 一区二区欧美日韩| 亚洲国产天堂网精品网站| 亚洲天堂第二页| 亚洲欧洲日产国产综合网| 午夜精品久久久久久久99热浪潮| 亚洲精品自在久久| 久久久国际精品| 欧美一区二区私人影院日本| 欧美激情视频给我| 欧美国产在线视频| 国产亚洲一区二区三区在线观看 | 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产欧美在线人成| 国产在线观看一区| 亚洲图片欧洲图片日韩av| 亚洲美女91| 欧美大片免费看| 欧美高清在线视频| 激情一区二区三区| 欧美一区2区视频在线观看| 亚洲欧美日韩一区二区在线 | 久久精品国产96久久久香蕉 | 亚洲毛片av在线| 免费观看成人| 裸体女人亚洲精品一区| 国产综合色产| 久久电影一区| 免播放器亚洲一区| 在线观看欧美成人| 久久这里有精品视频| 欧美激情精品久久久久久| 在线视频国产日韩| 你懂的国产精品永久在线| 欧美激情一区二区久久久| 亚洲精品在线看| 欧美日韩精品欧美日韩精品 | 狠狠88综合久久久久综合网| 小黄鸭视频精品导航| 久久久久久**毛片大全| 国产亚洲视频在线| 久久久欧美精品| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲欧美激情视频在线观看一区二区三区 | 一区二区三区日韩精品| 亚洲综合清纯丝袜自拍| 国产精品美女主播| 久久精品一级爱片| 亚洲国产va精品久久久不卡综合| 99re6热只有精品免费观看| 欧美日韩视频在线第一区| 亚洲午夜精品17c| 久久一区二区三区国产精品| 亚洲国产欧美日韩精品| 欧美另类99xxxxx| 香蕉久久一区二区不卡无毒影院 | 亚洲国产欧美一区| 欧美日韩国产小视频在线观看| 制服丝袜亚洲播放| 久久男人资源视频| 一本大道久久a久久精二百| 国产精品视频999| 久热精品视频在线免费观看| 亚洲乱码国产乱码精品精98午夜 | 国产日韩一区欧美| 免费精品视频| 亚洲欧美日韩视频一区| 欧美激情网友自拍| 欧美有码视频| 夜夜嗨网站十八久久| 国产亚洲一区二区精品| 欧美精品一区三区| 久久精品视频在线看| 在线一区二区日韩| 欧美激情亚洲| 久久婷婷成人综合色| 日韩午夜电影av| 一区二区三区在线视频播放| 国产精品99免费看 | 在线视频一区二区| 国色天香一区二区| 国产精品久久福利| 欧美精品国产精品日韩精品| 欧美伊人久久久久久午夜久久久久 | 亚洲自拍偷拍色片视频| 亚洲欧洲精品一区二区三区| 国产婷婷97碰碰久久人人蜜臀| 欧美在线亚洲综合一区| 亚洲影院免费|