szUserAgent db "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)",0 szUrl db "http://forum.ru-board.com/forum.cgi?forum=bm",0 URLDownloadToBuffer proc uses ebx lpszURL:LPSTR, lpBuffer:LPVOID, dwMaxBufferSize:DWORD local hInternet:HANDLE local hFile:HANDLE local dwSize:DWORD local nBytesRead:DWORD xor ebx, ebx invoke InternetOpen, offset szUserAgent, INTERNET_OPEN_TYPE_DIRECT + INTERNET_FLAG_HYPERLINK + INTERNET_FLAG_RAW_DATA, NULL, NULL, 0 .if eax != 0 mov hInternet, eax invoke InternetOpenUrl, hInternet, lpszURL, NULL, 0, INTERNET_FLAG_RELOAD, NULL .if eax != 0 mov hFile, eax .while TRUE invoke InternetQueryDataAvailable, hFile, addr dwSize, 0, 0 .if eax == TRUE .break .if dwSize == 0 invoke InternetReadFile, hFile, lpBuffer, dwSize, addr nBytesRead test eax, eax jz @error mov eax, nBytesRead add ebx, eax add lpBuffer, eax .else @error: xor ebx, ebx .break .endif .endw invoke InternetCloseHandle, hFile .endif invoke InternetCloseHandle, hInternet .endif mov eax, ebx ret URLDownloadToBuffer endp |