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

隨筆 - 25  文章 - 29  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(4)

隨筆分類(22)

隨筆檔案(25)

文章分類(2)

文章檔案(2)

相冊

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 57412
  • 排名 - 406

最新評論

閱讀排行榜

評論排行榜

??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 黃大仙 閱讀(681) 評論(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>
            欧美视频一区在线观看| 国模私拍视频一区| 欧美日韩国产一区| 亚洲激情av| 亚洲福利视频二区| 麻豆国产精品777777在线| 激情一区二区三区| 国产精品日韩一区二区| 一本色道久久综合亚洲精品小说 | 欧美在线一二三| 在线精品国精品国产尤物884a| 亚洲欧美在线观看| 99精品视频网| 在线日韩中文字幕| 亚洲美女在线一区| 在线观看久久av| 欧美欧美在线| 免费欧美电影| 欧美日韩成人精品| 亚洲福利视频网站| 欧美日本乱大交xxxxx| 久久综合网hezyo| 国产麻豆9l精品三级站| 亚洲欧美伊人| 国产欧美激情| 亚洲视频网在线直播| 久久人人97超碰人人澡爱香蕉| 亚洲高清色综合| 黄色小说综合网站| 欧美一区二区女人| 久久久久久亚洲综合影院红桃 | 国产精品国码视频| 欧美在线观看视频| 国产精品入口麻豆原神| 亚洲欧美成人一区二区在线电影| 一本久道久久久| 一本色道久久综合狠狠躁篇怎么玩| 国产精品嫩草影院av蜜臀| 欧美二区乱c少妇| 亚洲第一在线综合网站| 久久久美女艺术照精彩视频福利播放| 欧美一级视频一区二区| 国产伦精品一区二区三区在线观看| 欧美一级在线亚洲天堂| 欧美专区日韩专区| 亚洲人成在线播放网站岛国| 在线观看日韩www视频免费| 国产精品xnxxcom| 久久久人成影片一区二区三区| 亚洲国产电影| 久久久九九九九| 国产视频不卡| 国产毛片精品国产一区二区三区| 久久偷窥视频| 亚洲国产清纯| 日韩天堂在线视频| 亚洲欧洲视频在线| 在线日韩欧美视频| 亚洲国产日日夜夜| 久久精品国产69国产精品亚洲| 亚洲国产欧美一区二区三区同亚洲| 91久久国产综合久久91精品网站| 99香蕉国产精品偷在线观看| 午夜精品久久久99热福利| 国产网站欧美日韩免费精品在线观看| 亚洲专区一二三| 国产免费观看久久| 国产精品嫩草99av在线| 国产精品久久久一本精品| 欧美顶级少妇做爰| 国产真实乱子伦精品视频| 亚洲一区在线观看免费观看电影高清| 久久久久久9999| 亚洲欧美日产图| 99精品黄色片免费大全| 久久九九精品| 亚洲精品一区二区网址| 欧美国产激情| 亚洲自拍16p| 欧美freesex交免费视频| 欧美成黄导航| 国模叶桐国产精品一区| 亚洲高清精品中出| 亚洲欧美激情精品一区二区| 亚洲一区二区久久| 久久日韩精品| 久久精品夜色噜噜亚洲a∨ | 亚洲精品日本| 99国产精品视频免费观看| 欧美一区二区三区四区在线观看| 久久综合狠狠综合久久综合88| 国产精品护士白丝一区av| 亚洲精品一区中文| 欧美国产第一页| 欧美有码在线视频| 裸体丰满少妇做受久久99精品| 国产精品福利网站| 亚洲综合视频网| 樱桃成人精品视频在线播放| 亚洲欧美一区二区视频| 99视频有精品| 精品福利免费观看| 麻豆精品网站| 欧美日韩p片| 久久久精品五月天| 欧美深夜影院| 蜜臀av在线播放一区二区三区| 老司机免费视频一区二区| 国产精品永久免费在线| 亚洲精品日韩综合观看成人91| 久久蜜桃资源一区二区老牛| 欧美精品一区二区蜜臀亚洲| 久久精品av麻豆的观看方式| 亚洲一区二区三区777| 欧美激情视频一区二区三区在线播放| 午夜精品视频在线观看| 日韩视频永久免费| 欧美视频一区二区在线观看| 久久一区二区精品| 欧美二区在线看| 亚洲综合精品自拍| 亚洲欧美另类综合偷拍| 亚洲欧美精品在线观看| 国产麻豆午夜三级精品| 久久久久国产精品www| 久久久另类综合| 欧美国产极速在线| 欧美日韩一区二区在线视频| 欧美激情在线有限公司| 欧美日韩色综合| 国产欧美在线| 亚洲免费电影在线| 99伊人成综合| 久久久久国产精品一区二区| 亚洲二区视频| 黄色免费成人| 99成人在线| 久久视频精品在线| 中文亚洲视频在线| 国产一区二区三区在线观看视频| 日韩小视频在线观看| 一本大道av伊人久久综合| 欧美大色视频| av成人免费| 久久天天躁夜夜躁狠狠躁2022| 国产精品日韩一区二区三区| 美国十次成人| 欧美一区综合| 亚洲人成在线观看一区二区| 免费中文日韩| 欧美在线播放一区| 欧美在线91| 亚洲国产精品视频| 国产一本一道久久香蕉| 性色av一区二区三区红粉影视| 免费日本视频一区| 欧美在线视频在线播放完整版免费观看 | 中文成人激情娱乐网| 国产一区二区高清| 理论片一区二区在线| 欧美大片在线看| 暖暖成人免费视频| 国产精品99久久久久久久vr| 亚洲日本欧美| 亚洲欧美久久久| 欧美有码在线观看视频| 久久久蜜臀国产一区二区| 国产精品成人一区二区三区吃奶 | 欧美成人精精品一区二区频| 久久久精彩视频| 亚洲第一天堂av| 亚洲一区精彩视频| 好吊色欧美一区二区三区视频| 美脚丝袜一区二区三区在线观看| 亚洲精品一区二区三区四区高清| 午夜亚洲精品| 亚洲精品午夜精品| 国产啪精品视频| 欧美久久久久久| 午夜在线观看欧美| 亚洲国产精品va在线观看黑人| 午夜精品在线视频| 亚洲精品一区二区三区不| 国产精品网站在线观看| 欧美福利视频在线| 欧美亚洲一区在线| 日韩一区二区精品在线观看| 蜜臀久久99精品久久久久久9 | 一区二区冒白浆视频| 美国十次成人| 欧美在线视频二区| 99视频一区| 亚洲黄色影院| 国产一区日韩欧美| 国产精品二区在线观看| 欧美h视频在线| 久久精品国产亚洲一区二区| 亚洲一区二区三区涩| 99国产精品久久久久久久久久| 欧美国产日本韩|