我想在C#中使用EasyHook,以正確地從COM對象(非託管)鉤入方法。處理掛鉤函數
我能夠確定COM對象的方法的地址,我可以正確地觸發我的鉤子函數。我就是這麼做的,作爲代碼的其餘部分幾乎類似於一個教程:
SendHook = LocalHook.Create(0x12345678, new DMyFunc(MyFunc_Hooked), this);
但是,一旦我的鉤子裏,所有的參數都炒(它們不等於那些我原本通過)。另外,我不能返回任何東西(請注意,我也嘗試掛鉤另一個函數,返回一個短的值,並且該值不能正確返回)。
當我打開EXESCOPE,這是函數簽名之一:
function MyFunc(out ParamA:^BSTR; out ParamB:^bool): ^TypeA;
而這種功能具有以下簽名的時候我在C#中通常使用的COM對象:
TypeA MyFunc(ref string ParamA, ref bool ParamB);
任何想法?提前致謝!
您是否正在考慮作爲COM對象指針的第一個參數?在這裏看到一個COM調用的例子:http://www.codeproject.com/Articles/13601/COM-in-plain-C – 2013-02-20 17:34:00
我不知道,但肯定我會把這個輸入帳戶,謝謝!!!!! – 2013-02-20 18:00:40