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

隨筆 - 25  文章 - 29  trackbacks - 0
<2006年5月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(4)

隨筆分類(22)

隨筆檔案(25)

文章分類(2)

文章檔案(2)

相冊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 57096
  • 排名 - 405

最新評論

閱讀排行榜

評論排行榜

??1 #pragma?once
??2 static ? const ?GUID?CLSID_mydiv? = ?
??3 {? 0x41443b3 ,? 0xe38f ,? 0x403d ,? {? 0xad ,? 0xe7 ,? 0x64 ,? 0x6e ,? 0x16 ,? 0x67 ,? 0x10 ,? 0x77 ?} ?} ;
??4 // ?{977CF9DA-1373-4534-B70B-A1897BD33C7C}
??5 static ? const ?GUID?IID_Idiv? = ?
??6 {? 0x977cf9da ,? 0x1373 ,? 0x4534 ,? {? 0xb7 ,? 0xb ,? 0xa1 ,? 0x89 ,? 0x7b ,? 0xd3 ,? 0x3c ,? 0x7c ?} ?} ;
??7
??8 // ?{8E8A627A-D2F8-4692-8C96-CEB9EB4734C1}
??9 static ? const ?GUID?CLSID_mydivfactory? = ?
?10 {? 0x8e8a627a ,? 0xd2f8 ,? 0x4692 ,? {? 0x8c ,? 0x96 ,? 0xce ,? 0xb9 ,? 0xeb ,? 0x47 ,? 0x34 ,? 0xc1 ?} ?} ;
?11 // ??[7/4/2006?hyk]
?12 ///////////////////////////////// Cmydiv?包容了?IAdd,ISubcat?接口
?13 // ??[7/4/2006?hyk]
?14
?15 extern ?? int ?m_comobjnum;
?16 extern ?? int ?m_lock;
?17 class ?Idiv: public ?IUnknown
?18 {
?19 public :
?20 ???? virtual ? int ?__stdcall?div( int , int ) = 0 ;
?21 ???? /* virtual?int?__stdcall?add(int,int)=0;
?22 ????virtual?int?__stdcall?sub(int,int)=0; */

?23 protected :
?24 private :
?25 }
;
?26 class ?Cmydiv: public ?Idiv, public ?IAdd, public ?ISubcat
?27 {
?28 public :
?29 ????Cmydiv()
?30 ???? {
?31 ????????m_ref = 0 ;
?32 ????????m_comobjnum ++ ;
?33 ????????padd = NULL;
?34 ????????psubcat = NULL;
?35 ????}

?36 ???? ~ Cmydiv()
?37 ???? {
?38
?39 ????????padd -> Release();
?40 ???
?41 ????????
?42 ????????psubcat -> Release();
?43 ????????m_comobjnum -- ;
?44
?45
?46 ????}

?47 ????HRESULT?init()
?48 ???? {??
?49 ????????HRESULT?hr = ::CoCreateInstance(CLSID_myadd,NULL,CLSCTX_INPROC_SERVER,IID_IAdd,( void ** ) & padd);
?50 ???????? if ?(FAILED(hr))
?51 ???????? {
?52 ????????????? return ?E_FAIL;
?53 ????????}

?54 ???????? // hr=::CoCreateInstance(CLSID_myadd,NULL,CLSCTX_INPROC_SERVER,IID_ISubcat,(void**)&psubcat);
?55 ????????hr == padd -> QueryInterface(IID_ISubcat,( void ** ) & psubcat);
?56 ???????? if ?(FAILED(hr))
?57 ???????? {
?58 ???????????? return ?E_FAIL;
?59 ????????}

?60 ???????? return ?S_OK;
?61 ????}

?62 ????HRESULT?__stdcall?QueryInterface(REFIID?riid,? void ? ** ppvObject)
?63 ???? {
?64 ???????? if ?(riid == IID_IAdd)
?65 ???????? {
?66 ????????????????? * ppvObject = padd;
?67 ?????????????????AddRef();
?68 ????????????????? return ?S_OK;
?69 ????????}
else ? if ?(riid == IID_ISubcat)
?70 ???????? {
?71 ?????????????????? * ppvObject = psubcat;
?72 ?????????????????? return ?S_OK;
?73 ????????}
else ? if ?(riid == IID_Idiv)
?74 ???????? {
?75 ???????????? * ppvObject = (Idiv? * ) this ;
?76 ???????????? return ?S_OK;
?77
?78 ????????}
else ? if ?(riid == IID_IUnknown)
?79 ???????? {
?80 ???????????? * ppvObject = (Idiv? * ) this ;
?81 ???????????? return ?S_OK;
?82 ????????}

?83 ???????? else
?84 ???????????? return ?E_FAIL;
?85 ????}

?86 ????ULONG??__stdcall?AddRef()
?87 ???? {
?88 ???????? // cout<<"\n"<<typeid(*this).name();
?89 ???????? ++ m_ref;
?90 ????????cout << " \n?Cmydiv?object?ref?count?++= " << m_ref;
?91 ???????? return ?m_ref;
?92 ????}

?93 ????ULONG??__stdcall?Release()?????????
?94 ???? {
?95 ???????? // cout<<"\n"<<typeid(*this).name();
?96 ???????? -- m_ref;
?97 ????????cout << " \n?Cmydiv?object?ref?count?--= " << m_ref;
?98 ???????? if ?(m_ref == 0 )
?99 ???????? {
100 ????????????delete? this ;
101 ????????????cout << " \n?object?delete " ;
102 ????????}

103 ???????? return ?m_ref;
104 ????}

105 ???? int ?__stdcall?add( int ?a?, int ?b?)
106 ???? {
107 ????????????? return ??padd -> add(a,b);
108 ????}

109 ???? int ?__stdcall?sub( int ?a, int ?b?)
110 ???? {
111 ???????????????? return ??psubcat -> sub(a,b);
112 ????}

113 ???? int ?__stdcall?div( int ?a, int ?b)
114 ???? {
115 ???????? return ?a / b;
116 ????}

117 protected :
118 private :
119 ???? int ?m_ref;
120 ????IAdd? * ?padd;
121 ????ISubcat? * ?psubcat;
122 }
;
123 class ??Cmydivfactory: public ?IClassFactory
124 {
125 public :
126 ????Cmydivfactory()
127 ???? {
128 ????????m_ref = 0 ;
129 ????????
130 ????}

131 ???? ~ Cmydivfactory()
132 ???? {
133
134 ????}

135 ??????HRESULT?__stdcall?QueryInterface(REFIID?riid,? void ? ** ppvObject)
136 ?????? {
137 ?????????? if ?(riid == IID_IClassFactory)
138 ?????????? {
139 ?????????????? * ppvObject = (IClassFactory * ?) this ;
140 ??????????????AddRef();
141 ?????????????? return ?S_OK;
142 ??????????}
else
143 ?????????? return ?E_NOINTERFACE;
144 ?????????????
145 ??????}

146 ??????ULONG?__stdcall?AddRef()
147 ?????? {
148 ?????????? ++ m_ref;
149 ?????????? return ?m_ref;
150
151 ??????}

152 ??????ULONG?__stdcall?Release()
153 ?????? {
154 ?????????? -- m_ref;
155 ?????????? if ?( ! m_ref)
156 ?????????? {
157 ??????????????delete? this ;
158 ??????????}

159 ?????????? return ?m_ref;
160 ??????}

161 ??????HRESULT?__stdcall?CreateInstance(IUnknown? * ?pUnknownOuter,? const ?IID & ?iid,? void ? ** ppv)
162 ?????? {
163 ????????Cmydiv?? * ?pObj;???
164 ??????????HRESULT?hr;
165
166 ?????????? * ppv = NULL;
167 ??????????hr = E_OUTOFMEMORY;
168 ?????????? if ?(NULL? != ?pUnknownOuter)
169 ?????????????? return ?CLASS_E_NOAGGREGATION;
170
171 ?????????? // Create?the?object?passing?function?to?notify?on?destruction.
172 ??????????pObj = new ?Cmydiv;
173 ?????????? if ?(NULL == pObj)
174 ?????????????? return ?hr;???
175 ????????????????hr = pObj -> init();
176 ???????????????? if ?(FAILED(hr))
177 ???????????????? {
178 ???????????????????? return ?hr;
179 ????????????????}

180 ?????????? // Obtain?the?first?interface?pointer?(which?does?an?AddRef)
181 ??????????hr = pObj -> QueryInterface(iid,?ppv);
182
183 ?????????? if ?(hr? != ?S_OK)? {
184 ?????????????? // Kill?the?object?if?initial?creation?or?FInit?failed.
185 ??????????????m_comobjnum? -- ;? // ?Reference?count?g_cDictionary?be?added?in?constructor
186 ??????????????delete?pObj;
187 ??????????}

188
189 ?????????? return ?hr;???
190 ??????}

191 ??????HRESULT?__stdcall?LockServer(BOOL?fLock)
192 ?????? {
193 ?????????? if ?(fLock)
194 ?????????? {
195 ??????????????m_lock ++ ;
196 ??????????}
else
197 ??????????????m_lock -- ;
198 ?????????? return ?S_OK;
199 ??????}

200 protected :
201
202 private :
203 ???? int ?m_ref;
204 }
;
205
?????? A要重用 實現2個接口? ,a,b,? 則A 繼承 a,b,并要改寫 a,b 函數,增加 a,b 2個指針,在初始化
中獲取 a,b 接口指針 ,在析構中釋放。
?? 關于類廠要注意的是,類廠guid,在客戶文件中并不需要,僅僅在組件中使用,也不進入注冊表(進程
中的組件)
?????????? 對象計數和鎖計數,其中對象計數一般可以不包含類廠
????????????????? 以這種方式來實現重用,更體現 接口的概念,
?????????????????????????? 客戶端只需要 接口頭文件, 接口iid,com類clsid
posted on 2006-07-04 16:20 黃大仙 閱讀(673) 評論(0)  編輯 收藏 引用 所屬分類: c++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美肥婆bbw| 亚洲电影在线| 国外视频精品毛片| 国产精品羞羞答答| 国产精品视频免费| 国产日韩欧美夫妻视频在线观看| 国产精品一区二区视频| 国产日韩欧美在线| 国产精品高精视频免费| 亚洲第一综合天堂另类专| 亚洲一区二区在线看| 亚洲在线观看| 久久国产视频网站| 免费看av成人| 99国内精品| 欧美一级艳片视频免费观看| 久久久精品国产免大香伊| 美女视频黄a大片欧美| 欧美日本国产视频| 国产欧美日韩综合精品二区| 韩国av一区二区| 一本色道久久综合亚洲精品按摩| 欧美在线免费播放| 亚洲国产精品一区二区第一页| 亚洲一二三区在线| 男女视频一区二区| 国产精品你懂的在线欣赏| 亚洲第一福利视频| 欧美亚洲色图校园春色| 欧美激情一区二区三区全黄| 亚洲女同同性videoxma| 欧美精品在线网站| 一区二区视频在线观看| 午夜精品久久| 亚洲激情偷拍| 久久亚洲欧美国产精品乐播| 国产精品毛片| 一本色道久久综合| 欧美风情在线观看| 欧美一级二级三级蜜桃| 欧美亚洲不卡| aⅴ色国产欧美| 欧美激情 亚洲a∨综合| 久久国内精品视频| 国产日韩欧美91| 亚洲图片欧美日产| 亚洲人成网站777色婷婷| 美女在线一区二区| 精品福利电影| 麻豆成人av| 欧美在线不卡| 国产偷自视频区视频一区二区| 亚洲一区二区三区国产| 亚洲精品国精品久久99热| 免费一级欧美在线大片| 亚洲盗摄视频| 欧美激情亚洲一区| 欧美大秀在线观看| 亚洲乱码国产乱码精品精天堂 | 国产一区二区三区四区三区四| 亚洲天堂久久| 一区二区三区波多野结衣在线观看| 欧美精品三级日韩久久| 宅男噜噜噜66一区二区66| 最新日韩在线视频| 亚洲一区欧美| 亚洲乱码国产乱码精品精可以看| 久久蜜桃精品| 久久国产精品久久国产精品| 国产一区二区黄色| 久久婷婷人人澡人人喊人人爽 | 欧美激情国产日韩精品一区18| 久久夜色精品国产欧美乱| 在线欧美影院| 亚洲精品在线视频观看| 欧美三级免费| 欧美综合国产精品久久丁香| 欧美在线综合视频| 曰韩精品一区二区| 亚洲人成网站777色婷婷| 欧美日韩精品一区| 欧美一区二区日韩一区二区| 久久国产婷婷国产香蕉| 亚洲免费av观看| 中国日韩欧美久久久久久久久| 国产乱理伦片在线观看夜一区| 久久一二三国产| 欧美美女bb生活片| 欧美在线精品免播放器视频| 美女啪啪无遮挡免费久久网站| 亚洲一区二区三区高清 | 在线欧美福利| 日韩午夜三级在线| 国产亚洲制服色| 欧美高清视频免费观看| 欧美三级资源在线| 久久嫩草精品久久久久| 欧美久久久久免费| 久久一区二区三区四区五区| 欧美日韩国产三区| 美日韩在线观看| 国产精品日韩一区二区| 欧美激情一区二区三区蜜桃视频| 国产精品永久| 亚洲乱码国产乱码精品精天堂 | 欧美激情一区二区三区在线 | 亚洲一区在线直播| 亚洲国产精品久久91精品| 亚洲视频一区二区| 亚洲精品女人| 久久久久久久高潮| 亚洲欧美一区二区精品久久久| 蜜桃av久久久亚洲精品| 久久国产88| 欧美视频一区二| 亚洲人成网站777色婷婷| 一区二区视频免费在线观看| 午夜久久黄色| 午夜精品亚洲| 亚洲国产精品一区二区第四页av| 久久精品国产在热久久| 亚洲字幕一区二区| 欧美精品免费在线| 欧美夫妇交换俱乐部在线观看| 国产欧美在线观看| 亚洲午夜激情在线| 亚洲色图综合久久| 欧美日韩精品系列| 亚洲精品国产品国语在线app| 亚洲级视频在线观看免费1级| 久久本道综合色狠狠五月| 午夜欧美精品久久久久久久| 国产精品www994| 一本一本久久a久久精品牛牛影视| 一本色道久久综合亚洲精品小说 | 国产综合视频在线观看| 亚洲男人第一av网站| 亚洲欧美日韩精品久久| 欧美视频四区| 亚洲欧美日韩网| 久久av一区二区三区漫画| 国产精品男gay被猛男狂揉视频| 亚洲午夜精品一区二区三区他趣| 亚洲欧美日韩综合国产aⅴ | 99亚洲视频| 欧美日韩亚洲三区| 日韩视频在线一区二区| 亚洲午夜一区| 国产精品嫩草久久久久| 欧美一区二区三区精品| 久久久中精品2020中文| 一区二区在线观看av| 欧美成人激情在线| 日韩午夜三级在线| 久久精品国产免费观看| 伊人久久大香线蕉综合热线| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品乱码久久久久久蜜桃麻豆| 99精品国产高清一区二区| 国产精品久久久久久福利一牛影视 | 亚洲一区三区电影在线观看| 久久国产毛片| 91久久夜色精品国产九色| 欧美日韩国产精品一区二区亚洲| 亚洲视频每日更新| 免费观看成人网| 亚洲视频狠狠| 黄色亚洲大片免费在线观看| 欧美高清成人| 午夜精品久久久久久久白皮肤 | 免费成人黄色av| 在线一区二区三区四区| 国产一区二区在线观看免费播放 | 欧美一区二区三区四区视频| 在线观看91精品国产麻豆| 欧美日韩和欧美的一区二区| 欧美成人精品高清在线播放| 欧美国产精品v| 久久亚洲一区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲视频axxx| 欧美成人第一页| 亚洲欧美国产制服动漫| 亚洲国产清纯| 国产日韩一区二区三区| 欧美日本国产精品| 老司机精品视频网站| 亚洲一区观看| 亚洲精品日韩综合观看成人91| 久久久久久久久久久一区 | 亚洲欧美成人综合| 亚洲精品免费在线观看| 韩国av一区二区| 国产精品久久久| 欧美久久电影| 欧美激情bt| 欧美韩国日本综合| 免费看av成人| 噜噜噜在线观看免费视频日韩| 欧美一区二区三区日韩|