異常: 0x00000000: 操作成功完成
簡(jiǎn)單取個(gè)例子,現(xiàn)在有以下COM指針,p1,p2,兩個(gè)COM里的方法,BOOL TT1(COM指針1,COM指針2),BOOL TT2(COM指針); TT1方法,實(shí)現(xiàn)將COM指針1轉(zhuǎn)為COM指針2, TT2作為其它操作調(diào)用,它需要的是COM指針2類型的指針。
現(xiàn)在,你調(diào)用TT1,傳遞了p1, p2(p1有效,p2為NULL),TT1方法,返回TRUE,也就是轉(zhuǎn)換成功,現(xiàn)在p2也就是有效值。再調(diào)用TT2,返回了TRUE。這就樣調(diào)用成功。但是假如我現(xiàn)在所使用的系統(tǒng)并非原始的開(kāi)發(fā)系統(tǒng)(版本),其內(nèi)核COM庫(kù),有所改變(方法的實(shí)現(xiàn)),當(dāng)我在調(diào)用TT1方法的時(shí)候,p2返回了一個(gè)有效值,但對(duì)于此版本的系統(tǒng)來(lái)說(shuō),p2轉(zhuǎn)換很有可能不成功(或者是有了新的方法代替,或者是此方法在此版本中不提倡再被使用,或者原始的此方法被另一個(gè)名稱的方法替代,而現(xiàn)有版本的方法有所更新。),很就是很有可能是NULL。當(dāng)其值為NULL時(shí),系統(tǒng)Catch到了此異常,自動(dòng)調(diào)用了另一個(gè)被兼容的方法。因此拋出了此異常。但是由于catch的作用,程序的執(zhí)行仍然達(dá)到了目的。
現(xiàn)在,你調(diào)用TT1,傳遞了p1, p2(p1有效,p2為NULL),TT1方法,返回TRUE,也就是轉(zhuǎn)換成功,現(xiàn)在p2也就是有效值。再調(diào)用TT2,返回了TRUE。這就樣調(diào)用成功。但是假如我現(xiàn)在所使用的系統(tǒng)并非原始的開(kāi)發(fā)系統(tǒng)(版本),其內(nèi)核COM庫(kù),有所改變(方法的實(shí)現(xiàn)),當(dāng)我在調(diào)用TT1方法的時(shí)候,p2返回了一個(gè)有效值,但對(duì)于此版本的系統(tǒng)來(lái)說(shuō),p2轉(zhuǎn)換很有可能不成功(或者是有了新的方法代替,或者是此方法在此版本中不提倡再被使用,或者原始的此方法被另一個(gè)名稱的方法替代,而現(xiàn)有版本的方法有所更新。),很就是很有可能是NULL。當(dāng)其值為NULL時(shí),系統(tǒng)Catch到了此異常,自動(dòng)調(diào)用了另一個(gè)被兼容的方法。因此拋出了此異常。但是由于catch的作用,程序的執(zhí)行仍然達(dá)到了目的。