0,0 → 1,51 |
|
char DL_URL[10000]; |
dword DL_bufpointer, DL_bufsize, DL_http_transfer, DL_http_buffer; |
|
int downloaded_size, full_size; |
|
byte download_state; |
enum { STATE_NOT_STARTED, STATE_IN_PROGRESS, STATE_COMPLETED }; |
|
|
|
|
void Downloading_SetDefaults() |
{ |
downloaded_size = full_size = 0; |
} |
|
void Downloading_Stop() |
{ |
download_state = STATE_NOT_STARTED; |
if (DL_http_transfer<>0) |
{ |
EAX = DL_http_transfer; |
EAX = EAX.http_msg.content_ptr; // get pointer to data |
$push EAX // save it on the stack |
http_free stdcall (DL_http_transfer); // abort connection |
$pop EAX |
mem_Free(EAX); // free data |
DL_http_transfer=0; |
DL_bufsize = 0; |
DL_bufpointer = mem_Free(DL_bufpointer); |
Downloading_SetDefaults(); |
} |
} |
|
void Downloading_Start() |
{ |
download_state = STATE_IN_PROGRESS; |
http_get stdcall (#DL_URL, 0, 0, #accept_language); |
DL_http_transfer = EAX; |
} |
|
void Downloading_Completed() |
{ |
ESI = DL_http_transfer; |
DL_bufpointer = ESI.http_msg.content_ptr; |
DL_bufsize = ESI.http_msg.content_received; |
http_free stdcall (DL_http_transfer); |
DL_http_transfer=0; |
download_state = STATE_COMPLETED; |
} |