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

Life & Code

代碼是咒語,我是魔法師

<> 例子2 QueryInterface的實現

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

#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指針
口若客戶曾經獲取過某個接口.那么它將總能獲取此接口。
口客戶可以再次獲取已經擁有的接口。
口客戶可以返回到起始接口。
口若能夠從某個接口獲取某特定接口,那么可以從任意接口都將可以獲取此接口
下面我們將詳細討論這些規則。
*/

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

評論

# re: > 例子2 QueryInterface的實現 2008-09-08 15:32 huan

很有用  回復  更多評論   

<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

相冊

收藏夾

搜索

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人免费在线视频| 久久国产一区| 国产精品入口66mio| 欧美精品免费视频| 欧美视频中文一区二区三区在线观看| 欧美日韩天堂| 国产视频亚洲精品| 在线欧美不卡| 夜夜狂射影院欧美极品| 亚洲一区二区三区四区中文| 久久精品国产亚洲一区二区三区| 麻豆精品精品国产自在97香蕉| 久久综合九色九九| 亚洲久久视频| 欧美影视一区| 欧美电影免费观看| 国产精品日韩欧美一区| 亚洲成人在线视频网站| 一区二区三区视频在线| 久久国产精品毛片| 亚洲高清精品中出| 亚洲作爱视频| 久久国产手机看片| 欧美区视频在线观看| 国产欧美一区二区色老头| 亚洲国产91精品在线观看| 亚洲午夜一区二区| 欧美/亚洲一区| 亚洲少妇诱惑| 欧美成人精品在线观看| 国产区精品在线观看| 99在线视频精品| 久久免费午夜影院| 国产精品99久久久久久久女警 | 亚洲欧美日韩在线观看a三区| 久久另类ts人妖一区二区| 国产精品久久中文| 日韩网站在线观看| 你懂的视频一区二区| 欧美在线国产| 国产精品在线看| 亚洲一二三区精品| 亚洲精品国产精品乱码不99按摩 | 亚洲片区在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产精品传媒在线观看| 巨乳诱惑日韩免费av| 亚洲国产一区二区三区高清| 亚洲欧美日韩国产综合精品二区 | 麻豆91精品91久久久的内涵| 国产精品五区| 亚洲男人第一av网站| 91久久精品一区二区别| 久久久久成人网| 黄色日韩在线| 浪潮色综合久久天堂| 性高湖久久久久久久久| 国产精品夜夜嗨| 欧美一级欧美一级在线播放| 亚洲一二三区精品| 国产精品视频免费在线观看| 亚洲欧美日韩精品在线| 亚洲视频导航| 国产亚洲一区精品| 美女91精品| 欧美69wwwcom| 一区二区三区久久精品| 亚洲视屏一区| 国产字幕视频一区二区| 免费观看30秒视频久久| 欧美激情一区二区在线 | 99热免费精品| 国产精品麻豆成人av电影艾秋| 午夜精品成人在线视频| 亚洲欧美日韩精品久久| 国语自产精品视频在线看| 久色婷婷小香蕉久久| 久久综合九色综合久99| 亚洲美女精品成人在线视频| 日韩一二三区视频| 国产偷自视频区视频一区二区| 久久网站热最新地址| 欧美岛国在线观看| 亚洲伊人观看| 久久精品国产亚洲a| 日韩视频精品在线观看| 中文国产亚洲喷潮| 激情视频一区二区| 日韩午夜激情电影| 国产在线不卡精品| 亚洲人成绝费网站色www| 国产精品欧美风情| 欧美高清日韩| 国产精品永久在线| 欧美国产日韩在线| 国产精品一区二区三区久久| 欧美高清视频免费观看| 国产目拍亚洲精品99久久精品 | 亚洲欧美一区二区激情| 久久欧美肥婆一二区| 亚洲欧美综合国产精品一区| 宅男精品视频| 久久久久久久久久码影片| 模特精品裸拍一区| 欧美一区日韩一区| 欧美精品三级| 久久免费视频在线| 国产精品美女| 亚洲欧洲日韩在线| 狠狠色狠狠色综合日日小说| 99pao成人国产永久免费视频| 国产亚洲精品aa| 99在线精品观看| 最新高清无码专区| 欧美在线观看一区二区| 亚洲综合导航| 欧美日韩精品一区| 亚洲高清久久| 在线观看成人小视频| 欧美亚洲日本国产| 香蕉国产精品偷在线观看不卡| 欧美va天堂va视频va在线| 久久婷婷国产综合国色天香| 国产精品久久午夜| 在线亚洲伦理| 国产精品99久久久久久www| 欧美成人精品1314www| 噜噜噜噜噜久久久久久91| 国产一区二区三区在线免费观看| 亚洲私人影院| 午夜精品99久久免费| 国产精品久久久久久久久免费桃花| 亚洲片在线观看| 亚洲久色影视| 欧美精品www| 亚洲精品一区二区三区不| 一区二区三区偷拍| 国产精品wwwwww| 亚洲一级二级在线| 欧美在线观看日本一区| 国产日韩欧美在线| 久久精品72免费观看| 男人的天堂亚洲| 亚洲理伦电影| 国产精品wwwwww| 亚洲欧美国产一区二区三区| 久久不射中文字幕| 激情综合网址| 免费不卡在线观看| 亚洲人成77777在线观看网| 亚洲一区二区三区精品视频| 国产精品久久久久天堂| 欧美一区1区三区3区公司| 蜜桃久久av| 一本一本久久a久久精品综合妖精| 欧美日韩免费视频| 亚洲欧美日韩在线| 欧美福利精品| 亚洲一区二区精品在线观看| 国产欧美一区二区三区视频| 噜噜噜91成人网| 亚洲最新视频在线| 久久激情综合网| 1000精品久久久久久久久| 欧美日韩国产三区| 欧美一区二区高清在线观看| 欧美激情久久久| 午夜久久tv| 在线观看一区| 欧美日韩国产精品一卡| 一区二区欧美在线| 亚洲午夜性刺激影院| 欧美一二三区精品| 在线成人h网| 欧美日韩亚洲成人| 欧美综合国产精品久久丁香| 欧美国产一区视频在线观看| 亚洲图片欧美日产| 在线观看福利一区| 国产精品久久午夜| 欧美极品aⅴ影院| 久久爱www| 艳妇臀荡乳欲伦亚洲一区| 欧美**人妖| 欧美一区精品| 一本久道久久久| 亚洲第一色中文字幕| 国产精品久久久久毛片软件| 欧美成年人网站| 久久精品国产一区二区电影 | 欧美精品性视频| 欧美中文字幕在线观看| 夜久久久久久| 欧美激情第一页xxx| 久久精品夜色噜噜亚洲a∨| 亚洲一区二区av电影| 亚洲精品麻豆| 亚洲第一伊人| 在线观看视频一区二区| 国产日韩专区在线|