// ## Internet Explorer ## bool Nicookie::findInternetExplorer() { WCHAR cookie_data[256]; DWORD cookie_data_size = 256; BOOL result = false; #ifdef _MSC_VER // 保護モードでの取得。VisualStudioでのみ有効。 // 32bitは32bitだけ、64bitは64bitだけしか取得できない。 HRESULT hr; hr = IEGetProtectedModeCookie(Nicookie::COOKIE_URL.toStdWString().c_str(), Nicookie::COOKIE_NAME.toStdWString().c_str(), cookie_data, &cookie_data_size, 0); result = (hr == S_OK); #endif // _MSC_VER if (!result) { result = InternetGetCookieW(Nicookie::COOKIE_URL.toStdWString().c_str(), Nicookie::COOKIE_NAME.toStdWString().c_str(), cookie_data, &cookie_data_size); } if (result) { this->userSession = QString::fromStdWString(std::wstring(cookie_data)); return true; } else { setError(Nicookie::NotFoundDataError); return false; } }
static void test_null(void) { HINTERNET hi, hc; static const WCHAR szServer[] = { 's','e','r','v','e','r',0 }; static const WCHAR szEmpty[] = { 0 }; static const WCHAR szUrl[] = { 'h','t','t','p',':','/','/','a','.','b','.','c',0 }; static const WCHAR szExpect[] = { 's','e','r','v','e','r',';',' ','s','e','r','v','e','r',0 }; WCHAR buffer[0x20]; BOOL r; DWORD sz; hi = InternetOpenW(NULL, 0, NULL, NULL, 0); ok(hi != NULL, "open failed\n"); hc = InternetConnectW(hi, NULL, 0, NULL, NULL, 0, 0, 0); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(hc == NULL, "connect failed\n"); hc = InternetConnectW(hi, NULL, 0, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(hc == NULL, "connect failed\n"); hc = InternetConnectW(hi, NULL, 0, NULL, NULL, INTERNET_SERVICE_FTP, 0, 0); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(hc == NULL, "connect failed\n"); hc = InternetConnectW(NULL, szServer, 0, NULL, NULL, INTERNET_SERVICE_FTP, 0, 0); ok(GetLastError() == ERROR_INVALID_HANDLE, "wrong error\n"); ok(hc == NULL, "connect failed\n"); hc = InternetOpenUrlW(hi, NULL, NULL, 0, 0, 0); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(hc == NULL, "connect failed\n"); hc = InternetOpenUrlW(hi, szServer, NULL, 0, 0, 0); ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n"); ok(hc == NULL, "connect failed\n"); InternetCloseHandle(hi); r = InternetSetCookieW(NULL, NULL, NULL); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(r == FALSE, "return wrong\n"); r = InternetSetCookieW(szServer, NULL, NULL); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(r == FALSE, "return wrong\n"); r = InternetSetCookieW(szUrl, szServer, NULL); ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); ok(r == FALSE, "return wrong\n"); r = InternetSetCookieW(szUrl, szServer, szServer); ok(r == TRUE, "return wrong\n"); todo_wine { r = InternetSetCookieW(szUrl, NULL, szServer); ok(r == TRUE, "return wrong\n"); } r = InternetSetCookieW(szUrl, szServer, szEmpty); ok(r == TRUE, "return wrong\n"); r = InternetSetCookieW(szServer, NULL, szServer); todo_wine { ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n"); } ok(r == FALSE, "return wrong\n"); sz = 0; r = InternetGetCookieW(NULL, NULL, NULL, &sz); ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n"); ok( r == FALSE, "return wrong\n"); r = InternetGetCookieW(szServer, NULL, NULL, &sz); todo_wine { ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n"); } ok( r == FALSE, "return wrong\n"); sz = 0; r = InternetGetCookieW(szUrl, szServer, NULL, &sz); ok( r == TRUE, "return wrong\n"); todo_wine { ok( sz == 30, "sz wrong\n"); } sz = 0x20; memset(buffer, 0, sizeof buffer); r = InternetGetCookieW(szUrl, szServer, buffer, &sz); ok( r == TRUE, "return wrong\n"); todo_wine { ok( sz == lstrlenW(buffer), "sz wrong\n"); ok( !lstrcmpW(szExpect, buffer), "cookie data wrong\n"); } }