не получается перехват

Тема в разделе "WASM.BEGINNERS", создана пользователем vaaah, 14 янв 2009.

  1. vaaah

    vaaah New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    4
    Всем привет.
    Хукаю InternetSetStatusCallback в IE
    Заменяю обработчик lpfnInternetCallback на свой, а старый сохраняю, но при его вызове из подставного Callback, IE падает, объясните, в чем проблема?что не так?
    вот код:
    Код (Text):
    1. typedef void ( CALLBACK *ISC )( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength );
    2.  
    3. ISC CallbackRet;
    4.  
    5. void CALLBACK MyCallback( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength )
    6. {
    7.     //CallbackRet( hInternet, dwContext, dwInternetStatus, lpvStatusInformation, dwStatusInformationLength );
    8.     return;
    9. }
    10.  
    11. INTERNET_STATUS_CALLBACK __stdcall HOOK_InternetSetStatusCallback( HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnInternetCallback )
    12. {
    13.     INTERNET_STATUS_CALLBACK ret = REAL_InternetSetStatusCallback( hInternet, (INTERNET_STATUS_CALLBACK)MyCallback );
    14.     CallbackRet = (ISC)lpfnInternetCallback;
    15.  
    16.     return ret;
    17. }
     
  2. vaaah

    vaaah New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    4
    гг, проблема решена, заменил
    Код (Text):
    1. CallbackRet = (ISC)lpfnInternetCallback;
    на
    Код (Text):
    1. CallbackRet = (ISC)(LPVOID)lpfnInternetCallback;
    все работает :)