void CpeepmBrowser::SaveCookie(char* cookie) { if (cookie == NULL) return; const char* http = "http://"; UINT len = strlen(http) + strlen(Server); char* buffer = new char[len + 1]; ZeroMemory(buffer, len + 1); strcat(buffer, http); strcat(buffer, Server); wchar_t* host = CpeepmUtil::CharToWideChar(buffer, len); ReleaseArray(buffer); if (host == NULL) return; char* p = cookie; char* n = p; char* v = p; UINT nameLength = 0; UINT valueLength = 0; while (*p != '\0') { if (*p == '=') { while (n < p) { if (*n != '=' && *n != ';' && *n != ' ') break; n++; } nameLength = p - n; v = p + 1; } if (*p == ';' && nameLength > 0) { valueLength = p - v; SaveCookie(host, n, nameLength, v, valueLength); nameLength = 0; valueLength = 0; n = p; } p++; } if (nameLength > 0 && v < p) { valueLength = p - v; SaveCookie(host, n, nameLength, v, valueLength); } ReleaseArray(host); }
void CpeepmBrowser::SaveCookie(const wchar_t* host, const char* name, UINT nameLength, const char* value, UINT valueLength) { wchar_t* n = CpeepmUtil::CharToWideChar(name, nameLength); wchar_t* v = CpeepmUtil::CharToWideChar(value, valueLength); if (n != NULL && v != NULL) InternetSetCookie(host, n, v); ReleaseArray(n); ReleaseArray(v); }
void CpeepmBrowser::OnThreadBrowser(const char* url, char* cookie) { wchar_t* u = CpeepmUtil::CharToWideChar(url, strlen(url)); if (u == NULL) return; char* o = GetCookie(); SaveCookie(cookie); m_Browser.Navigate(u, NULL, NULL, NULL, NULL); Sleep(1000); SaveCookie(o); ReleaseArray(o); ReleaseArray(u); }
int main() { #ifndef VERIFIER int data[] = {44, 12, 145, -123, -1, 0, 121, 88}; const unsigned int n = sizeof(data)/sizeof(int); printArray(data, n); MERGE_SORT(data, 0, n-1); printArray(data, n); #else int *Array = NULL; int size = 0; int test_case = 0; for (; test_case<MAX_TEST_CASE; test_case++) { Array = FillArray(&size); if (!Array) return 0; MERGE_SORT(Array, 0, size-1); CheckArrayElement(Array, size); ReleaseArray(Array); } printf("\n"); #endif return 0; }
void CpeepmBrowser::OnThreadProgress(UINT id, const char* username, const char* password, const char* progress) { UINT len = strlen(username) + strlen(password) + 3; char* buffer = new char[len + 1]; ZeroMemory(buffer, len + 1); strcat(buffer, username); strcat(buffer, " - "); strcat(buffer, password); wchar_t* text = CpeepmUtil::CharToWideChar(buffer, strlen(buffer)); ReleaseArray(buffer); if (text != NULL) { SetWindowText(text); ReleaseArray(text); } }
char* CpeepmBrowser::GetCookie() { const char* http = "http://"; UINT len = strlen(http) + strlen(Server); char* buffer = new char[len + 1]; ZeroMemory(buffer, len + 1); strcat(buffer, http); strcat(buffer, Server); wchar_t* host = CpeepmUtil::CharToWideChar(buffer, len); ReleaseArray(buffer); if (host == NULL) return NULL; wchar_t tmp[1] = {0}; DWORD size = 0; InternetGetCookie(host, NULL, tmp, &size); if (size == 0) { ReleaseArray(host); return NULL; } wchar_t* cookie = new wchar_t[size / 2 + 1]; wmemset(cookie, 0, size / 2 + 1); InternetGetCookie(host, NULL, cookie, &size); ReleaseArray(host); len = wcslen(cookie); if (len > 0) { char* c = CpeepmUtil::WideCharToChar(cookie, len); ReleaseArray(cookie); return c; } else { ReleaseArray(cookie); return NULL; } }
int main() { #ifndef VERIFIER int a[] = {19,5,2,6,7,12,10,3,8,4,11,18,17}; const unsigned int n = sizeof(a)/sizeof(int); int *b = (int *)malloc(n*sizeof(int)); if (!b) return 0; COUNTING_SORT(a, b, VALUE_UPPER_LIMIT, n); int i = 0; for(; i<n; i++) printf("%d ",b[i]); printf("\n"); free(b); #else int *Array = NULL; int size = 0; int test_case = 0; for (; test_case<MAX_TEST_CASE; test_case++) { Array = FillArray(&size); if (!Array) return 0; int *b = (int *)malloc(size*sizeof(int)); if (!b) return 0; COUNTING_SORT(Array, b, VALUE_UPPER_LIMIT, size); CheckArrayElement(b, size); free(b); ReleaseArray(Array); } printf("\n"); #endif return 0; }