приветствую!
Я перехватываю функцию HttpSendRequestW из WinInet в IE9 , наблюдаю мистическое поведение
Код выглядит так:
var
HttpSendRequestWhook: THttpSendRequestW;
function HttpSendRequestWHookProc(hRequest: HINTERNET; lpszHeaders: PWideChar;
dwHeadersLength: DWORD; lpOptional: Pointer;
dwOptionalLength: DWORD): BOOL; stdcall;
var
wsTmp: WideString;
begin
OutputDebugStringA('[HttpSendRequestWHookProc]');
// wsTmp := '11';
Result := HttpSendRequestWhook(hRequest, lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength);
end;
begin
OutputDebugString('Dll Main');
@HttpSendRequestWhook := HookCode(GetProcAddress(LoadLibrary('WinInet.dll'), 'HttpSendRequestW'), @HttpSendRequestWHookProc);
end.
Если в HttpSendRequestWHookProc делать какие-то действия, например, OutputDebugStringW(lpszHeaders); или еще чего — всё ок. А вот если убрать комментарий с wsTmp := '11' — IE начнёт возвращать Internet Explorer cannot display the webpage!!
Я грешил на менеджер памяти, попробовал подключить FastMM — пофигу. Пробовал отлаживать, но проблему найти так и не удалось.
Кто постарше, посоветуйте как искать причину или помогите разобраться, пожалуйста..
Спасибо!