锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久精品午夜一区二区,Xx性欧美肥妇精品久久久久久,久久精品国产亚洲AV蜜臀色欲http://www.shnenglu.com/ivenher/category/198.htmlzh-cnMon, 19 May 2008 21:51:22 GMTMon, 19 May 2008 21:51:22 GMT60com 絎旇鍗? 綾誨巶瀹炵幇http://www.shnenglu.com/ivenher/articles/16463.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 14:42:00 GMThttp://www.shnenglu.com/ivenher/articles/16463.htmlhttp://www.shnenglu.com/ivenher/comments/16463.htmlhttp://www.shnenglu.com/ivenher/articles/16463.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/16463.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/16463.html
STDAPI聽聽聽 DllGetClassObject (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽const聽聽 CLSID &clsid,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽const聽聽 IID &聽 iid,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 void聽 **聽 ppv聽 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
2銆佺粍浠剁殑鍒涘緩榪囩▼

瀹㈡埛璋冪敤 CoGetClassObject----銆塩om搴撹皟鐢―llGetClassObject ------>榪斿洖緇欏鎴稩ClassFactory------>瀹㈡埛璋冪敤 IClassFactory::CreateInstance------>榪斿洖緇欏鎴?IX---------銆夊鎴瘋皟鐢↖X::FX.



]]>
com絎旇涔?涓轟粈涔堢敤綾誨巶http://www.shnenglu.com/ivenher/articles/16460.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 13:53:00 GMThttp://www.shnenglu.com/ivenher/articles/16460.htmlhttp://www.shnenglu.com/ivenher/comments/16460.htmlhttp://www.shnenglu.com/ivenher/articles/16460.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/16460.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/16460.html
1.CoCreateInstance鐨勪笉鐏墊椿.

聽 鎴戜滑鐭ラ亾 CoCreateInstance鍒涘緩緇勪歡鐨勮繃紼嬫槸:浼犵粰浠栦竴涓狢LSID,鐒跺悗瀹冨垱寤虹浉搴旂殑緇勪歡.,騫惰繑鍥炴墍璇鋒眰鎺ュ彛鐨勬寚閽?.CoCreateInstance娌℃湁鎻愪緵涓縐嶅彲浠ユ帶鍒剁粍浠跺垱寤鴻繃紼嬬殑鐨勬柟娉?

聽 瀛樺湪闂: 鎴戜滑涓嶈兘鎺у埗緇勪歡鍒涘緩榪囩▼.
聽 瑙e喅鏂規: 浣跨敤涓涓笓闂ㄥ垱寤虹粍浠剁殑緇勪歡,鏃?綾誨巶.

2.綾誨巶.

聽瀹為檯涓奀oCreateInstance騫舵病鏈夊垱寤虹粍浠?鑰屾槸鍒涘緩浜嗕竴涓縐頒負綾誨巶鐨勭粍浠?
聽綾誨巶鍞竴鍔熻兘灝辨槸鍒涘緩鍏朵粬緇勪歡.

聽綺劇‘鐐硅灝辨槸.鏌愪釜鐗瑰畾綾誨巶灝嗗垱寤烘煇涓壒瀹欳LSID鐩稿簲鐨勭粍浠? 瀹㈡埛鍙互閫氳繃綾誨巶鎵鏀寔鐨勬帴鍙f潵瀵圭被鍘傚垱寤虹粍浠剁殑榪囩▼鍔犱互鎺у埗. 鍒涘緩緇勪歡鐨勬爣鍑嗘帴鍙f槸 IClassFactory,鐢–oCreateInstance鍒涘緩鐨勭粍浠跺疄闄呬笂鏄氳繃IClassFactory鏉ュ垱寤虹殑.

3.CoGetClassObject

瑕佸垱寤轟竴涓粍浠?棣栧厛瑕佸垱寤虹被鍘傛湰韜?

聽聽 CoCreateInstance()鐢ㄦ潵鍒涘緩涓庢寚瀹欳LSID鐨勭粍浠?騫惰繑鍥炴寚鍚戠粍浠舵煇涓帴鍙g殑鎸囬拡.
聽聽 涓嶤oCreateInstance綾諱技,鐢–oGetClassObject() 鏉ュ垱寤轟笌鎸囧畾CLSID鐨勭被鍘?騫惰繑鍥炴寚鍚戠被鍘傛煇涓帴鍙g殑鎸囬拡.

聽 鍑芥爲瀹氫箟濡備笅:

聽 HRESULT __stdcall 鐢–oGetClassObject(

聽聽 const CLSID & clsid,
聽聽 DWORD聽 dwClsContext,聽聽聽 //server context
聽聽 COSERVERINFO *pServerInfo,聽 //Resevred for DCOM
聽聽 const IID &iid,
聽聽 void ** ppv
);

聽瀹㈡埛鐢?CoCreateInstanc 鎵榪斿洖鐨勬寚閽堟潵鍒涘緩鎵闇鐨勭粍浠?榪欎釜鎸囬拡閫氬父鏄竴涓狪ClassFactory鎸囬拡.

聽3.IClassFactory

聽綾誨巶鎵鏀寔鐨勭敤浜庡垱寤虹粍浠剁殑鏍囧噯鎺ュ彛鏄?IClassFactory.澶ч儴鍒嗙粍浠跺彲浠ラ氳繃瀹冩潵鍒涘緩.
聽澹版槑濡備笅:
聽聽
聽interface聽IClassFactory :IUnknown
聽{
聽聽HRESULT stdcall 聽CreateInstace(IUnknown * pUnknownOuter,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽const IID &iid,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽void **ppv);
聽聽HRESULT stdcall LockServer(bool bLock);
聽聽};
聽聽
聽4.涓轟粈涔堣鐢ㄧ敤CoGetClassObject

澶у鏁版儏鍐典笅浣跨敤 CoCreateInstanc 鍒涘緩緇勪歡錛岃屼笉浣跨敤CoGetClassObject銆備絾鏄湪浠ヤ笅涓ょ鎯呭喌聽聽涓嬪簲浣跨敤CoGetClassObject鑰屼笉浣跨敤 CoCreateInstanc 銆?br />1銆佽嫢鎯崇敤涓嶅悓浜?IClassFactory 鐨勬煇涓垱寤烘帴鍙f潵鍒涘緩緇勪歡錛屽垯蹇呴』浣跨敤CoGetClassObject銆?br />2銆佽嫢闇瑕佸垱寤哄悓涓緇勪歡鐨勫涓笉鍚屽疄渚嬶紝浣跨敤CoGetClassObject鍙互鍙栧緱杈冮珮鏁堢巼銆傚洜涓鴻繖鏍峰彧闇鐩稿簲緇勪歡鐨勭被鍘備竴嬈★紝鑰孋oCreateInstanc 闇瑕佷負姣忎釜瀹炰緥鍒嗗埆鍒涘緩騫墮噴鏀劇浉搴旂殑綾誨巶銆?br />鍙﹀錛孋oGetClassObject鍙互瀵圭粍浠剁殑鍒涘緩榪囩▼榪涜鏇村鐨勬帶鍒躲?/p>

]]>
com絎旇鍏? 綾誨巶http://www.shnenglu.com/ivenher/articles/16459.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 13:41:00 GMThttp://www.shnenglu.com/ivenher/articles/16459.htmlhttp://www.shnenglu.com/ivenher/comments/16459.htmlhttp://www.shnenglu.com/ivenher/articles/16459.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/16459.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/16459.html 鍒涘緩涓涓粍浠舵渶綆鍗曠殑鏂規硶

1,鍒涘緩涓涓粍浠舵渶綆鍗曠殑鏂規硶:鐢?CoCreateInstanc鍑芥暟.鍥犳CoCreateInstanc涔熸槸鍒涘緩緇勪歡鐢ㄧ殑鏈澶氱殑涓縐嶆柟娉?浣嗗叾鐏墊椿鎬ф湁闄?涓嶈兘婊¤凍鎵鏈夌粍浠剁殑闇姹? 榪欏氨鏄負浠涔堣寮曞叆綾誨巶.

聽鎵鏈夌粍浠墮兘鏄敤綾誨巶鍒涘緩鐨?聽 CoCreateInstanc涔熸槸鎸夌収涓鑸柟娉曢氳繃綾誨巶鏉ュ垱寤虹粍浠剁殑.

2. CoCreateInstanc

com搴撲腑鍖呭惈涓涓垱寤虹粍浠剁殑鍚嶄負CoCreateInstanc鐨勫嚱鏁?

瀹氫箟濡備笅:

HRESULT __stdcall CoCreateInstanc(

聽聽 const CLSID & clsid,
聽聽 IUnknown * pIUnknown,聽聽 //outer component
聽聽 DWORD聽 dwClsContext,聽聽聽 //server context
聽聽 const IID &iid,
聽聽 void ** ppv
);

鐪嬩互鐪嬪埌鏈夊洓涓緭鍏ュ弬鏁頒竴涓緭鍑哄弬鏁?
絎竴涓緟鍒涘緩緇勪歡鐨凜LSID.
絎簩涓槸鐢ㄦ潵鑱氬悎緇勪歡鐨?
絎笁涓槸鐢ㄦ潵闄愬畾鎵鍒涘緩緇勪歡鐨勬墽琛屼笂涓嬫枃.
絎洓涓槸緇勪歡寰呬嬌鐢ㄧ殑鎺ュ彛鐨処ID;
CoCreateInstanc灝嗗湪鏈鍚庝竴涓弬鏁頒腑榪斿洖姝ゆ帴鍙f寚閽?
灝嗕竴涓狪ID 浼犵粰CoCreateInstanc,瀹㈡埛灝嗘棤闇鍦ㄥ垱寤虹粍浠跺悗鍐嶈皟鐢≦ueryInterface;


3.CoCreateInstanc鐨勪嬌鐢?/p>

聽 IX *pIX = NULL;
聽 HRESULT聽 hr = CoCreateInstanc(CLSID_component1,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 NULL,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CLSCTX_INPROC_SERVER,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IID_IX,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 (void **)&pIX);

聽 if(SUCCEEDED(hr))
聽{
聽 pIX->Fx();
聽 pIX->Release();
聽 }


璇ヤ緥瀛愬垱寤轟簡涓涓敱CLSID_component1鏍囧織鐨勭粍浠?
姝ゅ涓嶉渶瑕佽仛鍚堢粍浠?鍥犳絎簩涓弬鏁頒箣NULL;
鎴戜滑鐢↖ID_IX鏉ヨ〃紺哄笇鏈涘緱鍒版帴鍙IX鐨勬寚閽?CoCreateInstanc灝嗘妸姝ゆ寚閽堣繑鍥炲湪pIX鍙橀噺涓?鑻ユ垚鍔熻繑鍥炲垯鍙敤璇ユ帴鍙?Release()琛ㄧず瀵規帴鍙e拰緇勪歡鐨勪嬌鐢ㄥ凡緇忓畬鎴?

綾諱笂涓嬫枃

CoCreateInstanc鐨勭涓変釜鍙傛暟鍙互鎺у埗鎵鍒涘緩鐨勭粍浠舵槸鍦ㄥ鎴峰垱寤虹殑榪涚▼涓繍琛?榪樻槸鍦ㄤ笉鍚岃繘紼嬩腑.鎴栬呭湪鍙﹀涓鍙版満鍣ㄤ笂.

璇ュ弬鏁板彲浠ョ敱涓涓嬪嚑涓肩粍鍚?

CLSCTX_INPROC_SERVER,
CLSCTX_INPROC_HANDLER,
CLSCTX_LOCAL_SERVER,
CLSCTX_REMOTE_SERVER;
瀹㈡埛鍙互鍦ㄤ笁縐嶄笉鍚屼笂涓嬫枃涓嬌鐢ㄦ煇涓粍浠? 榪涚▼涓?鏈湴,榪滅▼.



]]>
com 絎旇涓?com搴?/title><link>http://www.shnenglu.com/ivenher/articles/1261.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Wed, 23 Nov 2005 08:50:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1261.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1261.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1261.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1261.html</trackback:ping><description><![CDATA[<P>鎵鏈塩om緇勪歡鍜屽鎴烽渶瑕佷竴浜涚浉鍚屾搷浣滐紝涓轟繚璇佽繖浜涙搷浣滄槸鎸夋爣鍑嗘潵鐨勶紝com瀹氫箟浜嗕竴涓嚱鏁板簱鏉ュ疄鐜版墍鏈夎繖浜涙搷浣溿傛鍑芥暟搴撴槸鍦?ole32.dll涓疄鐜扮殑銆傚湪浣跨敤闈欐侀摼鎺ユ椂錛屽彲浠ヤ嬌鐢╫le32.lib銆?BR><BR>com搴撶殑鍒濆鍖栵紝闄や簡CoBuildVersion蹇呴』棣栧厛璋冪敤CoInitialize鏉ュ垵濮嬪寲com搴撳嚱鏁般傚綋榪涚▼涓嶅啀闇瑕佸簱鍑芥暟鏃訛紝蹇呴』璋冪敤CoUninitialize銆?BR>   瀵逛簬涓涓繘紼嬪彧闇鍒濆鍖栦竴嬈om搴擄紝濡傛灉澶氭鍒濆鍖栵紝蹇呴』淇濊瘉姣忎釜閮芥湁瀵瑰簲鐨凜oUninitialize.<BR><BR>OleInitialize鍩轟簬com錛屽娣諱簡鏇村鍔熻兘銆?BR><BR>鍐呭瓨綆$悊銆?BR><BR>鍦ㄧ粍浠朵腑鍒嗛厤涓鍧楀唴瀛橈紝浜х敓闂錛氭湁璋佹潵閲婃斁錛?濡備綍閲婃斁錛?BR><BR>com瑙e喅榪欎竴闂鏂規鏄細鎻愪緵涓涓換鍔″唴瀛樺垎閰嶅櫒銆備嬌鐢ㄥ畠錛宑om鍙互鎻愪緵涓鍧楀彲浠ョ敱瀹㈡埛鍒犻櫎鐨勫唴瀛樸?/P><img src ="http://www.shnenglu.com/ivenher/aggbug/1261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 16:50 <a href="http://www.shnenglu.com/ivenher/articles/1261.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇鍏?HRESULT錛孏UID鍙婃敞鍐岃〃http://www.shnenglu.com/ivenher/articles/1260.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Wed, 23 Nov 2005 08:30:00 GMThttp://www.shnenglu.com/ivenher/articles/1260.htmlhttp://www.shnenglu.com/ivenher/comments/1260.htmlhttp://www.shnenglu.com/ivenher/articles/1260.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1260.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1260.html 

鑷畾涔塇RESULT涓鑸鍒欙細

1銆佷笉瑕佸皢0x0000鍒?x01FF鑼冨洿鍐呬綔涓鴻繑鍥炵爜銆?BR>2銆佷笉瑕佷紶鎾璅ACILITY_ITF閿欒浠g爜銆?BR>3銆佸敖鍙兘浣跨敤閫氱敤com鎴愬姛鎴栧け璐ヤ唬鐮併?BR>4銆侀伩鍏嶅畾涔夎嚜宸辯殑 HRESULT錛屽彲浠ュ湪鍑芥暟涓嬌鐢ㄨ緭鍑哄弬鏁般?BR>
鍒╃敤MAKE_HRESULT瀹忔潵瀹氫竴涓狧RESULT鍊箋?BR>

GUID
鏄竴涓?28浣?6瀛楄妭鐨凣UID緇撴瀯銆?BR>MS鎻愪緵涓や釜宸ュ叿鐢熸垚GUID錛屼竴涓槸UUIDGEN銆侲XE   鍙︿竴涓槸 GUIDGEN.EXE銆?BR>
瀹氫箟涓涓狦UID:
extern "C"    const   IID      IID_IX  = 
{
      .....
}
澹版槑錛?BR>extern "C"   congst   IID      IID_IX;

鎴栬呭畯

DEFINE_GUID(IID_IX, .....);


灝嗕竴涓狦UID鍋氫負緇勪歡鏍囧織絎︺?BR>IUnknown    *    CoCreateInstance(.....);

com涓敤浠ユ爣蹇楃粍浠剁殑GUID琚О涓虹被鏍囧織絎︼紝鐢–LSID涓嶪ID鍖哄垎銆?BR>

閫氳繃寮曠敤浼犻扜UID銆?BR>
娉ㄥ唽琛ㄣ?BR>CoCreateInstance灝嗗埄鐢–LSID浣滀負鍏抽敭瀛楀湪娉ㄥ唽琛ㄤ腑鎵炬墍闇鏂囦歡鍚嶃?BR>
com鍙敤浜嗚繖鍐岃〃鐨勪竴涓垎鏀細HKEY_CLASSES_ROOT,  鍏朵笅鏈変竴涓狢LSID鍏抽敭瀛楋紝鍏朵笅鍒楁湁緋葷粺涓畨瑁呯殑鎵鏈夌粍浠剁殑CLSID銆?BR>

]]>
com 絎旇浜? 鍔ㄦ侀摼鎺?/title><link>http://www.shnenglu.com/ivenher/articles/1259.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Wed, 23 Nov 2005 07:02:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1259.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1259.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1259.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1259.html</trackback:ping><description><![CDATA[濡備綍灝嗕竴涓粍浠舵斁鍒頒竴涓狣LL涓?BR>com涓嶆槸DLL銆侱LL鍙槸涓涓粍浠舵湇鍔″櫒錛屾垨鑰呰鏄竴涓彂琛岀粍浠剁殑鏂瑰紡銆?img src ="http://www.shnenglu.com/ivenher/aggbug/1259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 15:02 <a href="http://www.shnenglu.com/ivenher/articles/1259.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇 浜?----璁℃暟鍣?/title><link>http://www.shnenglu.com/ivenher/articles/1257.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Wed, 23 Nov 2005 06:29:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1257.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1257.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1257.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1257.html</trackback:ping><description><![CDATA[interface   IUnknown<BR>{<BR>         virtual      HRESULT      __stdcall  QueryInterface(const  IID && iid,  void  * *ppv) = 0;<BR>         virtual      ULONG         __stdcall  AddRef() =  0;<BR>         virtual      ULONG         __stdcall  Release() =  0;<BR>}<BR><BR>寮曠敤璁℃暟綆浠嬶細<BR>AddRef 鍜?Release瀹炵幇鐨勬槸涓縐嶅悕涓哄紩鐢ㄨ鏁板櫒鐨勫唴瀛樼鐞嗘妧鏈傚紩鐢ㄨ鏁版槸浣跨粍浠惰兘灝嗚嚜韜垹闄ゆ渶綆鍗曚篃鏄晥鐜囨渶楂樼殑鏂規硶銆?BR><BR>璁℃暟鍣ㄤ嬌鐢ㄨ鍒欙細<BR>1銆佽繑鍥炰箣鍓嶈皟鐢ˋddRef錛堬級錛?BR>2銆佷嬌鐢ㄥ畬鎺ュ彛璋冪敤Release錛堬級錛?BR>3銆佽祴鍊間箣鍚庤皟鐢ˋddRef銆傚啀灝嗕竴涓帴鍙f寚閽堣祴緇欏彟涓涓帴鍙f寚閽堟椂錛屽簲璋冪敤AddRef銆?img src ="http://www.shnenglu.com/ivenher/aggbug/1257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 14:29 <a href="http://www.shnenglu.com/ivenher/articles/1257.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com絎旇 鍥?錛堝皬緇撲竴 錛?/title><link>http://www.shnenglu.com/ivenher/articles/1256.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Wed, 23 Nov 2005 05:59:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1256.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1256.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1256.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1256.html</trackback:ping><description><![CDATA[灝忕粨錛?BR>com緇勪歡鏄互鍔ㄦ侀摼鎺ュ簱錛圖LLS錛夋垨鑰呭彲鎵ц鏂囦歡錛圗XES)褰㈠紡鍙戝竷鐨勫彲鎵ц浠g爜緇勬垚銆?BR>com緇勪歡鏄姩鎬侀摼鎺ョ殑銆?BR><BR>QueryInterface <BR>鏄皢com緇勪歡鍚宑++綾誨垎寮鐨勪竴縐嶇壒鎬с?BR><BR>com緇勪歡鐨勫ぇ閮ㄥ垎鐏墊椿鎬у強灝佽鐨勮兘鍔涢兘鏈夊叾鎻愪緵銆?BR>瀹冧嬌寰楀鎴瘋兘鍦ㄨ繍琛屾椂鍐沖畾涓涓粍浠舵墍鑳芥彁渚涚殑鍔熻兘銆?BR>灝嗙粍浠剁殑鍔熻兘瀹屽叏鐨勫悜瀹㈡埛闅愯棌銆?BR>鏋佸ソ鐨勫疄鐜板鐗堟湰鐨勬棤緙濆鐞嗐?BR><BR>IUnknown鎺ュ彛銆?BR>鎵鏈夋帴鍙g殑鏍規帴鍙c?img src ="http://www.shnenglu.com/ivenher/aggbug/1256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 13:59 <a href="http://www.shnenglu.com/ivenher/articles/1256.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇 涓?/title><link>http://www.shnenglu.com/ivenher/articles/1255.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Wed, 23 Nov 2005 05:53:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1255.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1255.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1255.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1255.html</trackback:ping><description><![CDATA[鍚屼竴涓狪Unknown鎺ュ彛銆?BR>緇勫緩鐨勫疄渚嬪彧鏈変竴涓狪Unknown鎺ュ彛錛屽彲浠ラ氳繃瀹冪‘瀹氫袱涓帴鍙f槸鍚﹀睘浜庡悓涓緇勪歡銆?BR><BR>BOOL   SameComponents(IX *pIX,IY *pIY)<BR>{<BR>      IUnknown * pI1=NULL;<BR>      IUnknown * pI2= NULL;<BR>      <BR>      pIX->QueryInterface(IID_IUnknown,(void *)&pI1);      <BR>      pIY->QueryInterface(IID_IUnknown,(void *)&pI2);<BR>   <BR>      return  pIX==pIY;<BR>}<BR><BR><BR>鐗堟湰鎺у埗銆?BR>浣曟椂寤虹珛鏂扮増鏈細浣嗕互涓嬩換浣曚竴涓敼鍙樻椂<BR>1銆佹帴鍙e嚱鏁版暟鐩?BR>2銆佹帴鍙d腑鍑芥暟欏哄簭銆?BR>3銆佹煇涓嚱鏁板弬鏁般?BR>4銆佹煇涓嚱鏁板弬鏁伴『搴忋?BR>5銆佸嚱鏁板彲鑳界殑榪斿洖鍊箋?BR>6銆佸嚱鏁拌繑鍥炲肩被鍨嬨?BR>7銆佹帴鍙d腑鍑芥暟鐨勬剰涔夈?BR><BR>鐗堟湰鍛藉悕銆?BR>com鍏充簬鏂扮増鏈悕縐扮害瀹氭槸鍦ㄨ佸悕縐板悗杈瑰姞涓涓暟瀛椼?BR><BR><img src ="http://www.shnenglu.com/ivenher/aggbug/1255.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 13:53 <a href="http://www.shnenglu.com/ivenher/articles/1255.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>COM瀛︿範絎旇 浜?/title><link>http://www.shnenglu.com/ivenher/articles/890.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Tue, 01 Nov 2005 08:56:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/890.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/890.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/890.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/890.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/890.html</trackback:ping><description><![CDATA[<P>涓錛孮ueryInterface鍑芥暟<BR>鍘熷瀷錛?/P> <P>HRESULT  __stdcall QueryInterface(const IID&iid,void **ppv);</P> <P>iid錛氭爣蹇楀鎴鋒墍闇鐨勬帴鍙c傛槸鈥濅竴涓帴鍙f爣蹇楃鈥滅粨鏋勶紙IID錛夈?BR>ppv錛歈ueryInterface鐢ㄦ潵瀛樻斁鎵璇鋒眰鎺ュ彛鐨勫湴鍧銆?/P> <P>榪斿洖鍊鹼細鍙互榪斿洖S_OK 鎴?E_NOINTERFACE搴旇鐢⊿UCEEDED鎴栬匜AILED瀹忛獙璇佹槸鍚︽垚鍔熴?/P> <P>浣跨敤鏂規硶錛?/P> <P>鍋囧鐭ラ亾涓涓寚鍚慖Unknown鎺ュ彛鐨勬寚閽坧I錛屼紶緇欏畠涓涓帴鍙f爣蹇楃鍗沖彲</P> <P>渚嬪錛?BR></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> Foo(IUnknown </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> pI)<BR><IMG id=Codehighlighter1_24_141_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_141_Open_Text.style.display='none'; Codehighlighter1_24_141_Closed_Image.style.display='inline'; Codehighlighter1_24_141_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_24_141_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_141_Closed_Text.style.display='none'; Codehighlighter1_24_141_Open_Image.style.display='inline'; Codehighlighter1_24_141_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_24_141_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_24_141_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    IX </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> pIX </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NULL;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    HRESULT hr </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> pI</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">QueryInterface(IID_IX,(</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">**</SPAN><SPAN style="COLOR: #000000">)pIX);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(SUCCEEDED(hr))<BR><IMG id=Codehighlighter1_121_139_Open_Image onclick="this.style.display='none'; Codehighlighter1_121_139_Open_Text.style.display='none'; Codehighlighter1_121_139_Closed_Image.style.display='inline'; Codehighlighter1_121_139_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_121_139_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_121_139_Closed_Text.style.display='none'; Codehighlighter1_121_139_Open_Image.style.display='inline'; Codehighlighter1_121_139_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN id=Codehighlighter1_121_139_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_121_139_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      pIX</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">FX();<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>     }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">QueryInterface鐨勫疄鐜般?/SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top>HRESULT _stdcall  CA::QueryInterface(</SPAN><SPAN style="COLOR: #0000ff">const</SPAN><SPAN style="COLOR: #000000">    IID</SPAN><SPAN style="COLOR: #000000">&</SPAN><SPAN style="COLOR: #000000">iid,</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">**</SPAN><SPAN style="COLOR: #000000">ppv)<BR><IMG id=Codehighlighter1_229_567_Open_Image onclick="this.style.display='none'; Codehighlighter1_229_567_Open_Text.style.display='none'; Codehighlighter1_229_567_Closed_Image.style.display='inline'; Codehighlighter1_229_567_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_229_567_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_229_567_Closed_Text.style.display='none'; Codehighlighter1_229_567_Open_Image.style.display='inline'; Codehighlighter1_229_567_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_229_567_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_229_567_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(iid </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> IID_IUnknown)<BR><IMG id=Codehighlighter1_257_295_Open_Image onclick="this.style.display='none'; Codehighlighter1_257_295_Open_Text.style.display='none'; Codehighlighter1_257_295_Closed_Image.style.display='inline'; Codehighlighter1_257_295_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_257_295_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_257_295_Closed_Text.style.display='none'; Codehighlighter1_257_295_Open_Image.style.display='inline'; Codehighlighter1_257_295_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN id=Codehighlighter1_257_295_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_257_295_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">ppv </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> static_cast</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IX </SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">  </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(iid </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> IID_IX)<BR><IMG id=Codehighlighter1_323_361_Open_Image onclick="this.style.display='none'; Codehighlighter1_323_361_Open_Text.style.display='none'; Codehighlighter1_323_361_Closed_Image.style.display='inline'; Codehighlighter1_323_361_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_323_361_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_323_361_Closed_Text.style.display='none'; Codehighlighter1_323_361_Open_Image.style.display='inline'; Codehighlighter1_323_361_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN id=Codehighlighter1_323_361_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_323_361_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">ppv </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> static_cast</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IX </SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">  </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(iid </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> IID_IY)<BR><IMG id=Codehighlighter1_389_427_Open_Image onclick="this.style.display='none'; Codehighlighter1_389_427_Open_Text.style.display='none'; Codehighlighter1_389_427_Closed_Image.style.display='inline'; Codehighlighter1_389_427_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_389_427_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_389_427_Closed_Text.style.display='none'; Codehighlighter1_389_427_Open_Image.style.display='inline'; Codehighlighter1_389_427_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN id=Codehighlighter1_389_427_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_389_427_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">ppv </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> static_cast</SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IY </SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">  </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(iid </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> IID_IUnknown)<BR><IMG id=Codehighlighter1_461_505_Open_Image onclick="this.style.display='none'; Codehighlighter1_461_505_Open_Text.style.display='none'; Codehighlighter1_461_505_Closed_Image.style.display='inline'; Codehighlighter1_461_505_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_461_505_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_461_505_Closed_Text.style.display='none'; Codehighlighter1_461_505_Open_Image.style.display='inline'; Codehighlighter1_461_505_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN id=Codehighlighter1_461_505_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_461_505_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">ppv </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> NULL;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> E_NOINTERFACE;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    static_cast </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">IUnknown </SPAN><SPAN style="COLOR: #000000">*></SPAN><SPAN style="COLOR: #000000"> (</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> ppv)</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">AddRef();<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    retru S_OK;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV> <P><BR><BR>澶氶噸緇ф壙鍙婄被鍨嬭漿鎹€?/P> <P>閫氬父灝嗕竴縐嶇被鍨嬬殑鎸囬拡杞崲涓哄彟涓縐嶇被鍨嬪茍涓嶄細鏀瑰彉瀹冪殑鍊箋備負浜嗘敮鎸佸閲嶇戶鎵匡紝鏌愪簺鎯呭喌涓嬶紝C++蹇呴』鏀瑰彉綾繪寚閽堢殑鍊箋?BR>鍋囧涓涓被瀹氫箟濡備笅錛?/P> <P>class CA: public IX,public IY{...};</P> <P>鐢變簬CA鍚屾椂緇ф壙浜咺X錛孖Y鍥犳鍙互浣跨敤IX鎴朓Y鎸囬拡鐨勫湴鏂瑰潎鍙互浣跨敤鎸囧悜CA鐨勬寚閽堛?/P> <P> </P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> foo(IX</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> pIX);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> bar(IY</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> pIY);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> main()<BR><IMG id=Codehighlighter1_49_112_Open_Image onclick="this.style.display='none'; Codehighlighter1_49_112_Open_Text.style.display='none'; Codehighlighter1_49_112_Closed_Image.style.display='inline'; Codehighlighter1_49_112_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_49_112_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_49_112_Closed_Text.style.display='none'; Codehighlighter1_49_112_Open_Image.style.display='inline'; Codehighlighter1_49_112_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_49_112_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_49_112_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> CA</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000"> pA </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> CA;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> foo(pA);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> bar(pA);<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> delete pA;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV> <P>foo闇瑕佷竴涓寚鍚戝悎娉曠殑IX鐨勮櫄鎷熷嚱鏁拌〃鐨勬寚閽堬紱<BR>bar闇瑕佷竴涓寚鍚戝悎娉曠殑IY鐨勮櫄鎷熷嚱鏁拌〃鐨勬寚閽堬紱<BR>褰撶劧IX鍜孖Y鐨勮櫄鎷熷嚱鏁拌〃鐨勫唴瀹規槸涓嶄竴鏍風殑銆傚洜姝ゅ皢涓涓狪X vtbl浼犵粰bar鏃訛紝姝ゅ嚱鏁版槸涓嶈兘姝e父宸ヤ綔鐨勩?BR>鍥犳緙栬瘧鍣ㄥ皢鍚屼竴鎸囬拡浼犵粰foo鍜宐ar鏄笉鍙兘鐨勶紝瀹冨繀欏誨CA鐨勬寚閽堣繘琛屼慨鏀逛互渚夸粬鎸囧悜涓涓悎閫傜殑vtbl鎸囬拡銆?BR>涓嬪浘鏄劇ず浜咰A瀵硅薄鐨勫唴瀛樼粨鏋勩?BR><BR><IMG height=432 alt=2.jpg src="http://www.shnenglu.com/images/cppblog_com/ivenher/com/2.jpg" width=722 border=0><BR><BR></P><img src ="http://www.shnenglu.com/ivenher/aggbug/890.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-01 16:56 <a href="http://www.shnenglu.com/ivenher/articles/890.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>COM瀛︿範絎旇 涓http://www.shnenglu.com/ivenher/articles/835.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Mon, 24 Oct 2005 09:50:00 GMThttp://www.shnenglu.com/ivenher/articles/835.htmlhttp://www.shnenglu.com/ivenher/comments/835.htmlhttp://www.shnenglu.com/ivenher/articles/835.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/835.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/835.html鎺ュ彛鐨勫疄鐜般?BR>

class IX
{
public:
 
virtual void Fx1() = 0 ;
 
virtual void Fx2() = 0 ;
}

class IY
{
public:
 
virtual void Fy1() = 0 ;
 
virtual void Fy2() = 0 ;
}

class CA: public IX,
   
public IY
{
public:
 
virtual void Fx1()
 
{
   cout
<<"Fx1()"< }

 
virtual void Fx2()
 
{
   cout
<<"Fx2()"< }

 
virtual void Fy1()
 
{
   cout
<<"Fy1()"< }

 
virtual void Fy2()
 
{
   cout
<<"Fy2()"< }

}


鐩稿叧姒傚康錛氱函鎶借薄鍩虹被錛氭寚鍖呭惈綰娊璞″嚱鏁扮殑鍩虹被銆?BR>                   綰櫄鏋勫嚱鏁幫細鐢?=0 鏍囪鐨勮櫄鏋勫嚱鏁般?BR>澶氶噸緇ф壙錛氭寚涓涓被鐩存帴緇ф壙涓涓互涓婄殑鍩虹被銆?BR>瀵圭函铏氬嚱鏁扮殑緇ф壙縐頒負鎺ュ彛緇ф壙銆?BR>IX鍜孖Y騫朵笉鏄湡姝f剰涔変笂鐨凜OM鎺ュ彛錛屼負浣夸箣鎴愪負COM鎺ュ彛錛屽畠蹇呴』緇ф壙涓涓悕涓篒Unknown鐨勬帴鍙c?BR>



///interface.h 
#include "iostream.h"

#include 
"objbase.h"


void trace(const char * pMsg){cout<<pMsg<<endl;}

interface IX
{
 
virtual void __stdcall Fx1() = 0;
 
virtual void __stdcall Fx2() = 0;
}
;
interface IY
{
 
virtual void __stdcall Fy1() = 0;
 
virtual void __stdcall Fy2() = 0;
}
;

class CA: public IX,
       
public IY
{
public:
 
virtual void __stdcall Fx1(){cout<<"CA::Fx1()"<<endl;}
 
virtual void __stdcall Fx2(){cout<<"CA::Fx2()"<<endl;}

 
virtual void __stdcall Fy1(){cout<<"CA::Fy1()"<<endl;}
 
virtual void __stdcall Fy2(){cout<<"CA::Fy2()"<<endl;}
}
;
// com_1.cpp : Defines the entry point for the console application.
//

#include 
"stdafx.h"
#include 
"IFace.h"

int main(int argc, char* argv[])
{
 trace(
"Create an instance of the componet!");
 CA 
* pA = new CA;
 IX 
* pIX = pA;
 trace(
"use the ix interface!");
 pIX
->Fx1();
 pIX
->Fx2();

 IY 
* pIY = pA;
 trace(
"use the iy interface!");
 pIY
->Fy1();
 pIY
->Fy2();
 pA
->Fx1();
 trace(
"delete the componet!");
 delete pA;
 printf(
"Hello World!\n");
 
return 0;
}


      
榪愯緇撴灉濡備笅錛?BR>com_1.JPG

鎬葷粨錛?BR>1銆丆OM鎺ュ彛鍦╟++涓敤綰娊璞″熀綾誨疄鐜般?BR>2銆佷竴涓狢OM緇勪歡鍙互鎻愪緵澶氫釜鎺ュ彛銆?BR>3銆佷竴涓狢++綾誨彲浠ヤ嬌鐢ㄥ緇ф壙瀹炵幇涓涓彁渚涘涓帴鍙g殑緇勪歡銆?BR>鍦╟om涓紝瀵逛竴涓粍浠剁殑璁塊棶鍙兘閫氳繃鍑芥暟錛岃屽喅涓嶈兘鐩存帴閫氳繃鍙橀噺銆?/FONT>



]]>
久久99精品久久久久久久久久| 亚洲国产成人精品女人久久久| 无码人妻少妇久久中文字幕蜜桃| 国产成人精品三上悠亚久久| 色欲综合久久躁天天躁蜜桃| 久久精品视频免费| 伊人久久亚洲综合影院| 国内精品久久久久久99蜜桃| 久久久免费观成人影院| 狼狼综合久久久久综合网| 久久精品18| 久久精品免费观看| 久久亚洲天堂| 91精品国产91久久久久久蜜臀| 伊人久久大香线蕉综合网站| 国产激情久久久久影院小草| 伊人热热久久原色播放www| 97久久超碰成人精品网站| 欧美日韩成人精品久久久免费看| 天天躁日日躁狠狠久久 | 97r久久精品国产99国产精| 久久99精品九九九久久婷婷| 九九精品99久久久香蕉| 久久99热这里只有精品国产| 久久久99精品成人片中文字幕| 99国产精品久久久久久久成人热| 久久人人爽人人人人爽AV| 久久露脸国产精品| 日韩欧美亚洲国产精品字幕久久久 | 久久精品中文字幕第23页| 777久久精品一区二区三区无码| 久久精品国产第一区二区三区 | 精品久久久久香蕉网| 亚洲AV无码久久精品狠狠爱浪潮| 性欧美大战久久久久久久| 久久乐国产精品亚洲综合| 青青热久久国产久精品| 一级做a爰片久久毛片看看| 老男人久久青草av高清| 亚洲AV无码久久精品色欲 | 久久婷婷久久一区二区三区|