锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久www,一区二区三区欧美在线观看,亚洲国产精品一区二区www在线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>



]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久亚洲高清| 亚洲女同性videos| 欧美成人午夜剧场免费观看| 久久久久国产一区二区三区四区 | 亚洲激情视频在线观看| 久久久久久国产精品mv| 亚洲国产一区二区a毛片| 欧美国产三级| 欧美亚洲第一区| 欧美成人一区二免费视频软件| 欧美极品影院| 一区二区日韩伦理片| 夜夜嗨av一区二区三区中文字幕 | 国产精品国产精品| 久久精品一区二区国产| 欧美成人免费播放| 亚洲欧美日韩国产精品| 久久精品中文字幕一区| 日韩视频在线一区二区三区| 亚洲摸下面视频| 亚洲第一区中文99精品| 一区二区三欧美| 在线成人免费观看| 亚洲调教视频在线观看| 在线观看欧美日韩国产| 日韩视频不卡| 影音先锋亚洲一区| 亚洲一二三级电影| 91久久精品日日躁夜夜躁国产| 亚洲网在线观看| 日韩午夜av电影| 久久久久91| 欧美一级一区| 欧美日韩黄视频| 欧美国产成人精品| 国产无一区二区| 亚洲私人影院在线观看| 日韩午夜剧场| 久久一区中文字幕| 久久av一区二区三区亚洲| 欧美精品一区二区三区蜜臀| 久久一本综合频道| 国产精品一区二区三区乱码| 日韩午夜在线视频| 亚洲精品一二三| 亚洲黄色在线观看| 亚洲欧美日韩精品| 亚洲一区二区四区| 欧美精品一区二区三区久久久竹菊| 久久久久久高潮国产精品视| 国产精品高潮呻吟视频| 亚洲乱码国产乱码精品精天堂| 亚洲欧洲一区二区三区| 久久亚洲精选| 蜜桃av综合| 永久久久久久| 美女精品一区| 亚洲国产成人av在线| 亚洲片区在线| 欧美肥婆在线| 日韩视频在线永久播放| 99在线精品观看| 欧美精品久久久久久| 亚洲日本在线视频观看| 夜夜精品视频| 国产精品swag| 午夜视频一区在线观看| 久久久国产午夜精品| 国产一区二区三区的电影 | 久久精品一区二区三区不卡牛牛| 欧美激情1区2区3区| 亚洲国产高清aⅴ视频| 99国产精品视频免费观看| 欧美大片一区二区| 亚洲美女av网站| 午夜激情综合网| 国产日韩欧美在线观看| 久久精品电影| 欧美激情一区二区| 亚洲午夜精品视频| 国产视频亚洲精品| 久久综合久色欧美综合狠狠| 亚洲国产成人久久| 亚洲一区二区三区涩| 国产三级精品三级| 免费欧美日韩国产三级电影| 亚洲毛片播放| 欧美与黑人午夜性猛交久久久| 黄色成人av网站| 欧美日韩情趣电影| 欧美一区综合| 日韩午夜电影在线观看| 欧美在线一二三区| 亚洲精品一区二区三区99| 国产精品久久久久91| 欧美一级黄色网| 亚洲国产美国国产综合一区二区| 亚洲在线播放电影| 亚洲国产精品成人| 国产精自产拍久久久久久| 久久久xxx| 中文高清一区| 亚洲第一精品影视| 欧美中文字幕不卡| av成人福利| 影音先锋日韩精品| 国产精品视频免费一区| 欧美jizz19hd性欧美| 欧美一区二视频| 国产欧美在线看| 欧美二区在线观看| 久久精品人人做人人爽| 亚洲精选中文字幕| 欧美成人午夜免费视在线看片| 亚洲欧美日韩一区二区三区在线观看 | 牛夜精品久久久久久久99黑人 | 午夜精品久久久久久久蜜桃app| 亚洲成色www8888| 久久五月婷婷丁香社区| 亚洲免费视频网站| 日韩视频中午一区| 亚洲国产黄色片| 国产一区二区成人| 国产精品人人做人人爽| 欧美日韩国产色站一区二区三区 | 一本色道久久综合精品竹菊 | 91久久精品美女高潮| 蜜桃av一区二区三区| 久久久久国产一区二区三区| 欧美一级大片在线观看| 亚洲免费在线观看| 亚洲天堂av在线免费观看| 91久久精品一区| 美国成人毛片| 亚洲精品护士| 亚洲区国产区| 亚洲精品日韩在线| 亚洲精品一区二区三| 亚洲激情在线激情| 亚洲国产精品美女| 亚洲国产精品嫩草影院| 亚洲国产精品久久人人爱蜜臀| 另类国产ts人妖高潮视频| 蜜乳av另类精品一区二区| 麻豆精品一区二区综合av| 免费h精品视频在线播放| 嫩模写真一区二区三区三州| 欧美a级理论片| 亚洲成人资源| 亚洲免费观看高清完整版在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲精品美女91| 夜夜夜精品看看| 亚洲欧美视频| 久久视频一区二区| 欧美国产精品久久| 国产精品久久777777毛茸茸| 国产午夜精品久久| 亚洲高清av在线| 亚洲深夜福利| 久久国产精品久久精品国产| 蜜桃av久久久亚洲精品| 91久久精品国产| 亚洲欧美日韩第一区| 久久久久久久欧美精品| 欧美—级在线免费片| 国产精品欧美日韩一区二区| 禁断一区二区三区在线| 日韩视频免费观看高清在线视频| 亚洲一区二区三区免费观看| 久久这里有精品视频| 欧美成人午夜视频| 国产精品激情电影| 在线日韩av片| 亚洲一二三区在线| 久久综合久久综合久久综合| 亚洲精品一区二| 久久精品99国产精品| 欧美另类在线观看| 国产一区二区毛片| 一本大道久久a久久综合婷婷 | 亚洲激情视频| 午夜精品久久久久久久99热浪潮| 麻豆久久精品| 亚洲自拍高清| 欧美精品一区二区久久婷婷| 国产伊人精品| 亚洲一区免费观看| 亚洲电影在线播放| 欧美亚洲自偷自偷| 欧美午夜免费电影| 亚洲久久一区二区| 久久综合九色九九| 亚洲欧美日韩另类| 欧美视频在线观看免费| 91久久午夜| 欧美mv日韩mv国产网站| 欧美一区二区观看视频| 国产精品久久毛片a| 在线中文字幕一区|