150
secur_url = heap_alloc(INTERNET_MAX_URL_LENGTH*sizeof(WCHAR));
153
hres = CoInternetParseUrl(url, PARSE_SECURITY_URL, 0, secur_url, INTERNET_MAX_URL_LENGTH, &size, 0);
155
strcpyW(secur_url, url);
152
hres = CoInternetGetSecurityUrl(url, &secur_url, PSU_SECURITY_URL_ONLY, 0);
154
size = strlenW(url)*sizeof(WCHAR);
156
secur_url = heap_alloc(size);
158
return E_OUTOFMEMORY;
160
memcpy(secur_url, url, size);
157
163
hres = CoInternetParseUrl(secur_url, PARSE_SCHEMA, 0, schema, sizeof(schema)/sizeof(WCHAR), &size, 0);
158
164
if(FAILED(hres) || !*schema) {
1235
1241
HRESULT WINAPI CoInternetGetSecurityUrl(LPCWSTR pwzUrl, LPWSTR *ppwzSecUrl, PSUACTION psuAction, DWORD dwReserved)
1237
WCHAR url[INTERNET_MAX_URL_LENGTH], domain[INTERNET_MAX_URL_LENGTH];
1243
WCHAR buf1[INTERNET_MAX_URL_LENGTH], buf2[INTERNET_MAX_URL_LENGTH];
1241
1248
TRACE("(%p,%p,%u,%u)\n", pwzUrl, ppwzSecUrl, psuAction, dwReserved);
1243
hres = CoInternetParseUrl(pwzUrl, PARSE_SECURITY_URL, 0, url, INTERNET_MAX_URL_LENGTH, &len, 0);
1245
if(psuAction == PSU_DEFAULT)
1246
hres = CoInternetParseUrl(url, PARSE_SECURITY_DOMAIN, 0, domain,
1247
INTERNET_MAX_URL_LENGTH, &len, 0);
1249
if(psuAction==PSU_SECURITY_URL_ONLY || hres!=S_OK) {
1250
len = lstrlenW(url)+1;
1251
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1253
return E_OUTOFMEMORY;
1255
memcpy(*ppwzSecUrl, url, len*sizeof(WCHAR));
1252
strcpyW(url, pwzUrl);
1255
hres = CoInternetParseUrl(url, PARSE_SECURITY_URL, 0, domain, INTERNET_MAX_URL_LENGTH, &len, 0);
1256
if(hres!=S_OK || !strcmpW(url, domain))
1268
if(psuAction==PSU_SECURITY_URL_ONLY) {
1269
len = lstrlenW(url)+1;
1270
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1272
return E_OUTOFMEMORY;
1274
memcpy(*ppwzSecUrl, url, len*sizeof(WCHAR));
1278
hres = CoInternetParseUrl(url, PARSE_SECURITY_DOMAIN, 0, domain,
1279
INTERNET_MAX_URL_LENGTH, &len, 0);
1280
if(SUCCEEDED(hres)) {
1260
1282
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1261
1283
if(!*ppwzSecUrl)
1268
if(psuAction == PSU_DEFAULT) {
1269
hres = CoInternetParseUrl(pwzUrl, PARSE_ROOTDOCUMENT, 0, url, 0, &len, 0);
1270
if(hres == S_FALSE) {
1271
hres = CoInternetParseUrl(pwzUrl, PARSE_SCHEMA, 0, domain,
1272
INTERNET_MAX_URL_LENGTH, &len, 0);
1290
hres = CoInternetParseUrl(url, PARSE_ROOTDOCUMENT, 0, domain, 0, &len, 0);
1291
if(hres == S_FALSE) {
1292
hres = CoInternetParseUrl(url, PARSE_SCHEMA, 0, domain,
1293
INTERNET_MAX_URL_LENGTH, &len, 0);
1296
hres = CoInternetParseUrl(url, PARSE_DOMAIN, 0, domain+len+1,
1297
INTERNET_MAX_URL_LENGTH-len-1, &len, 0);
1273
1298
if(hres == S_OK) {
1275
hres = CoInternetParseUrl(pwzUrl, PARSE_DOMAIN, 0, domain+len+1,
1276
INTERNET_MAX_URL_LENGTH-len-1, &len, 0);
1278
len = lstrlenW(domain)+1;
1279
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1281
return E_OUTOFMEMORY;
1299
len = lstrlenW(domain)+1;
1300
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1302
return E_OUTOFMEMORY;
1283
memcpy(*ppwzSecUrl, domain, len*sizeof(WCHAR));
1304
memcpy(*ppwzSecUrl, domain, len*sizeof(WCHAR));
1290
len = lstrlenW(pwzUrl)+1;
1310
len = lstrlenW(url)+1;
1291
1311
*ppwzSecUrl = CoTaskMemAlloc(len*sizeof(WCHAR));
1292
1312
if(!*ppwzSecUrl)
1293
1313
return E_OUTOFMEMORY;
1295
memcpy(*ppwzSecUrl, pwzUrl, len*sizeof(WCHAR));
1315
memcpy(*ppwzSecUrl, url, len*sizeof(WCHAR));