锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久www,一区二区三区欧美在线观看,亚洲国产精品一区二区www在线http://m.shnenglu.com/ivenher/category/198.htmlzh-cnMon, 19 May 2008 21:51:22 GMTMon, 19 May 2008 21:51:22 GMT60com 絎旇鍗? 綾誨巶瀹炵幇http://m.shnenglu.com/ivenher/articles/16463.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 14:42:00 GMThttp://m.shnenglu.com/ivenher/articles/16463.htmlhttp://m.shnenglu.com/ivenher/comments/16463.htmlhttp://m.shnenglu.com/ivenher/articles/16463.html#Feedback0http://m.shnenglu.com/ivenher/comments/commentRss/16463.htmlhttp://m.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://m.shnenglu.com/ivenher/articles/16460.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 13:53:00 GMThttp://m.shnenglu.com/ivenher/articles/16460.htmlhttp://m.shnenglu.com/ivenher/comments/16460.htmlhttp://m.shnenglu.com/ivenher/articles/16460.html#Feedback0http://m.shnenglu.com/ivenher/comments/commentRss/16460.htmlhttp://m.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://m.shnenglu.com/ivenher/articles/16459.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Thu, 14 Dec 2006 13:41:00 GMThttp://m.shnenglu.com/ivenher/articles/16459.htmlhttp://m.shnenglu.com/ivenher/comments/16459.htmlhttp://m.shnenglu.com/ivenher/articles/16459.html#Feedback0http://m.shnenglu.com/ivenher/comments/commentRss/16459.htmlhttp://m.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://m.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://m.shnenglu.com/ivenher/articles/1261.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/1261.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/1261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/1261.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/ivenher/aggbug/1261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 16:50 <a href="http://m.shnenglu.com/ivenher/articles/1261.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇鍏?HRESULT錛孏UID鍙婃敞鍐岃〃http://m.shnenglu.com/ivenher/articles/1260.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Wed, 23 Nov 2005 08:30:00 GMThttp://m.shnenglu.com/ivenher/articles/1260.htmlhttp://m.shnenglu.com/ivenher/comments/1260.htmlhttp://m.shnenglu.com/ivenher/articles/1260.html#Feedback0http://m.shnenglu.com/ivenher/comments/commentRss/1260.htmlhttp://m.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://m.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://m.shnenglu.com/ivenher/articles/1259.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/1259.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/1259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/1259.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/ivenher/services/trackbacks/1259.html</trackback:ping><description><![CDATA[濡備綍灝嗕竴涓粍浠舵斁鍒頒竴涓狣LL涓?BR>com涓嶆槸DLL銆侱LL鍙槸涓涓粍浠舵湇鍔″櫒錛屾垨鑰呰鏄竴涓彂琛岀粍浠剁殑鏂瑰紡銆?img src ="http://m.shnenglu.com/ivenher/aggbug/1259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 15:02 <a href="http://m.shnenglu.com/ivenher/articles/1259.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇 浜?----璁℃暟鍣?/title><link>http://m.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://m.shnenglu.com/ivenher/articles/1257.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/1257.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/1257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/1257.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/ivenher/aggbug/1257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 14:29 <a href="http://m.shnenglu.com/ivenher/articles/1257.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com絎旇 鍥?錛堝皬緇撲竴 錛?/title><link>http://m.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://m.shnenglu.com/ivenher/articles/1256.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/1256.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/1256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/1256.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/ivenher/aggbug/1256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 13:59 <a href="http://m.shnenglu.com/ivenher/articles/1256.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>com 絎旇 涓?/title><link>http://m.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://m.shnenglu.com/ivenher/articles/1255.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/1255.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/1255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/1255.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/ivenher/aggbug/1255.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-23 13:53 <a href="http://m.shnenglu.com/ivenher/articles/1255.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>COM瀛︿範絎旇 浜?/title><link>http://m.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://m.shnenglu.com/ivenher/articles/890.html</guid><wfw:comment>http://m.shnenglu.com/ivenher/comments/890.html</wfw:comment><comments>http://m.shnenglu.com/ivenher/articles/890.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/ivenher/comments/commentRss/890.html</wfw:commentRss><trackback:ping>http://m.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://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_24_141_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_121_139_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>      pIX</SPAN><SPAN style="COLOR: #000000">-></SPAN><SPAN style="COLOR: #000000">FX();<BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>     }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_229_567_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_257_295_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_323_361_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_389_427_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_461_505_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.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://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top>    retru S_OK;<BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://m.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://m.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://m.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://m.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://m.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://m.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://m.shnenglu.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_49_112_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> foo(pA);<BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> bar(pA);<BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align=top> delete pA;<BR><IMG src="http://m.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://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://m.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://m.shnenglu.com/images/cppblog_com/ivenher/com/2.jpg" width=722 border=0><BR><BR></P><img src ="http://m.shnenglu.com/ivenher/aggbug/890.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-01 16:56 <a href="http://m.shnenglu.com/ivenher/articles/890.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>COM瀛︿範絎旇 涓http://m.shnenglu.com/ivenher/articles/835.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Mon, 24 Oct 2005 09:50:00 GMThttp://m.shnenglu.com/ivenher/articles/835.htmlhttp://m.shnenglu.com/ivenher/comments/835.htmlhttp://m.shnenglu.com/ivenher/articles/835.html#Feedback0http://m.shnenglu.com/ivenher/comments/commentRss/835.htmlhttp://m.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>
            亚洲国产一成人久久精品| 亚洲久久一区二区| 正在播放欧美一区| 日韩图片一区| 亚洲一区免费看| 国外成人在线视频网站| 欧美在线亚洲| 亚洲国产成人在线播放| 亚洲精品视频在线观看网站| 一区二区三区久久精品| 欧美一区二区免费| 欧美不卡福利| 亚洲新中文字幕| 久久精品国产精品亚洲| 欧美日韩福利| 很黄很黄激情成人| 一区二区三区www| 久久精品二区亚洲w码| 欧美国产精品人人做人人爱| 在线一区视频| 嫩草伊人久久精品少妇av杨幂| 欧美日韩一区二区三区免费| 激情久久影院| 亚洲男女自偷自拍| 欧美国产精品日韩| 欧美在线视频日韩| 欧美午夜精品久久久久免费视| 国产麻豆一精品一av一免费| 日韩视频不卡| 欧美大片在线看| 欧美亚洲在线观看| 欧美精品一级| 亚洲国产mv| 欧美中文字幕| 亚洲视频二区| 欧美色图首页| 日韩视频免费大全中文字幕| 蜜桃久久精品一区二区| 亚洲欧美在线磁力| 欧美手机在线视频| 亚洲毛片在线免费观看| 欧美成人激情视频| 久久国产精品毛片| 国产亚洲一本大道中文在线| 欧美一级淫片aaaaaaa视频| 亚洲精品小视频在线观看| 男人的天堂成人在线| 在线观看av一区| 久久成人18免费观看| 亚洲一二三区精品| 欧美日韩一区精品| 一本色道久久综合狠狠躁篇的优点| 猛男gaygay欧美视频| 久久精品日韩欧美| 尤妮丝一区二区裸体视频| 久久久爽爽爽美女图片| 久久精品盗摄| 亚洲福利久久| 亚洲二区免费| 欧美成人一区二区在线| 亚洲国产高清自拍| 欧美激情视频网站| 欧美精品一区视频| 亚洲一二三区在线观看| 国产精品swag| 在线观看视频免费一区二区三区| 亚洲靠逼com| 欧美.www| 可以免费看不卡的av网站| 亚洲电影第1页| 亚洲国产婷婷香蕉久久久久久99 | 国产亚洲欧美另类中文| 午夜影视日本亚洲欧洲精品| 亚洲女性喷水在线观看一区| 国产区精品视频| 久久这里只有精品视频首页| 男人的天堂亚洲在线| 亚洲午夜伦理| 午夜在线不卡| 亚洲欧洲久久| 一区二区三区日韩欧美| 国产在线不卡精品| 亚洲国产裸拍裸体视频在线观看乱了中文 | 中文欧美日韩| 国产一区高清视频| 亚洲国产欧美国产综合一区| 欧美日韩一区在线播放| 久久久www成人免费毛片麻豆| 久久精品国产清高在天天线 | 国产一区二区三区网站| 欧美高清在线播放| 国产精品社区| 亚洲国产精品美女| 国产精品剧情在线亚洲| 欧美不卡福利| 国产精品视频一| 农夫在线精品视频免费观看| 欧美午夜精品| 欧美粗暴jizz性欧美20| 国产精品初高中精品久久| 欧美成人一区二区三区| 国产精品入口麻豆原神| 欧美激情亚洲| 国产网站欧美日韩免费精品在线观看| 欧美.日韩.国产.一区.二区| 国产精品视频成人| 亚洲国产精品激情在线观看| 国产自产2019最新不卡| 亚洲肉体裸体xxxx137| 国产农村妇女精品一二区| 美女日韩欧美| 国产精品日韩在线观看| 亚洲国产视频a| 国产在线国偷精品产拍免费yy| 亚洲欧洲在线免费| 亚洲第一区中文99精品| 香蕉久久国产| 亚洲一区影音先锋| 欧美精品一区在线| 欧美岛国在线观看| 国产一区二区三区无遮挡| 亚洲一二三区在线观看| 99在线精品视频在线观看| 免费在线看一区| 免费看黄裸体一级大秀欧美| 国产麻豆成人精品| 亚洲在线观看视频网站| 校园激情久久| 国产欧美不卡| 欧美一区二区三区另类| 久久精品亚洲一区二区| 国产欧美综合一区二区三区| 亚洲午夜精品国产| 亚洲一区三区在线观看| 国产精品h在线观看| 中文亚洲欧美| 午夜精品久久久久久久| 国产日本欧美一区二区| 午夜国产一区| 久久深夜福利| 亚洲国产精品日韩| 美女被久久久| 亚洲激情电影中文字幕| 日韩视频三区| 欧美日韩国产成人在线观看| 亚洲三级电影在线观看 | 久久国产99| 在线免费高清一区二区三区| 麻豆成人91精品二区三区| 亚洲国产高清自拍| 亚洲午夜av在线| 国产欧美69| 六月天综合网| 亚洲精品在线视频观看| 亚洲综合成人婷婷小说| 国产欧美日韩综合精品二区| 久久久亚洲人| 91久久综合亚洲鲁鲁五月天| 亚洲视频在线免费观看| 国产日本欧洲亚洲| 免费在线国产精品| 在线视频精品| 久久综合综合久久综合| 亚洲日本在线观看| 国产精品久久77777| 久久精品1区| 欧美激情一区三区| 欧美在线观看你懂的| 亚洲国产激情| 国产精品视频成人| 欧美+日本+国产+在线a∨观看| 一区二区欧美日韩视频| 免费不卡视频| 亚洲欧美一区二区激情| 亚洲国产精品va在线看黑人动漫| 欧美性大战久久久久| 久久综合九色99| 亚洲午夜一区| 国产精品伦理| 亚洲国产精品专区久久| 午夜精品一区二区三区在线播放| 国内精品久久久久影院 日本资源| 老司机精品视频一区二区三区| 亚洲免费高清视频| 久久综合狠狠综合久久综合88 | 久久九九99视频| 99精品欧美一区二区三区 | 欧美日韩在线大尺度| 久久精品72免费观看| 亚洲私人影院| 欧美激情一区二区三级高清视频 | 99国产精品久久久| 亚洲成在人线av| 久久精品人人做人人综合| 亚洲视频综合| 亚洲美女黄网| 亚洲国产欧美一区二区三区同亚洲 | 快she精品国产999| 久久国产高清| 亚洲男人的天堂在线观看|