Всем привет. Хукаю в ишаке InternetStatusCallback заменяю в нем lpfnInternetCallback, на свой обработчик такого вида(из msdn) Код (Text): void CALLBACK CallMaster( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength ) { REQUEST_CONTEXT *cpContext; cpContext = (REQUEST_CONTEXT*)dwContext; char szStatusText[80]; // MessageBox( 0, "callback", "hook", 0 ); switch (dwInternetStatus) { case INTERNET_STATUS_CLOSING_CONNECTION: wsprintf( szStatusText, "%s CLOSING_CONNECTION", cpContext->szMemo ); break; case INTERNET_STATUS_CONNECTED_TO_SERVER: wsprintf( szStatusText, "%s CONNECTED_TO_SERVER", cpContext->szMemo ); break; <..........................> case INTERNET_STATUS_STATE_CHANGE: wsprintf( szStatusText, "%s STATE_CHANGE", cpContext->szMemo ); break; default: wsprintf( szStatusText, "%s Unknown Status %d Given", cpContext->szMemo, dwInternetStatus); break; } MessageBox( 0, szStatusText,"Callback", 0 ); } мессаджбоксы вываливаются нормально, т.е. каллбэк работает, проблема в том что при этом в самом браузере ничего не отображается, т.е. пустая страница, почитал msdn ничего адекватного не нашел, так же наткнулся на пару примеров у китайчегов все так же, результат работы один и тот же ткните носом в доку или кодес или объясните плз, буду очень признателен
нужно сохранять заданый колбек для сессии и подменять своим, а из своего вызывать оригинальный, конечно когда ничего не надо скрывать в нотификаторе..
barton спасибо, сделал как ты и написал проблема в следущем Код (Text): typedef INTERNET_STATUS_CALLBACK ( WINAPI *mInternetStatusCallbackRet )( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength ); mInternetStatusCallbackRet InternetStatusCallbackRet; INTERNET_STATUS_CALLBACK HOOK_InternetStatusCallback( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength ) { // MessageBox( 0, "ok", "ok", 0 ); return InternetStatusCallbackRet( hInternet, dwContext, dwInternetStatus, lpvStatusInformation, dwStatusInformationLength ); } INTERNET_STATUS_CALLBACK HOOK_InternetSetStatusCallback( HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnInternetCallback ) { InternetStatusCallbackRet = (mInternetStatusCallbackRet)lpfnInternetCallback; return REAL_InternetSetStatusCallback( hInternet, (INTERNET_STATUS_CALLBACK)HOOK_InternetStatusCallback ); } управление передается на мой InternetStatusCallback, но при вызове оригинального каллбэка ослик падает, я так понял ошибка в адрессе оригинальной функции или их типы не совпадают?