21#define NONAMELESSUNION
36DEFINE_GUID(
CLSID_AboutProtocol, 0x3050F406, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
38#define DEFINE_EXPECT(func) \
39 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
41#define SET_EXPECT(func) \
42 expect_ ## func = TRUE
44#define CHECK_EXPECT(func) \
46 ok(expect_ ##func, "unexpected call " #func "\n"); \
47 expect_ ## func = FALSE; \
48 called_ ## func = TRUE; \
51#define CHECK_EXPECT2(func) \
53 ok(expect_ ##func, "unexpected call " #func "\n"); \
54 called_ ## func = TRUE; \
57#define CHECK_CALLED(func) \
59 ok(called_ ## func, "expected " #func "\n"); \
60 expect_ ## func = called_ ## func = FALSE; \
75static HRESULT (
WINAPI *pCopyStgMedium)(
const STGMEDIUM *, STGMEDIUM *);
76static HRESULT (
WINAPI *pCopyBindInfo)(
const BINDINFO *, BINDINFO *);
131 static DVTARGETDEVICE
dev = {
sizeof(
dev),0,0,0,0,{0}};
132 static FORMATETC formatetc[] = {
141 ok(
hres ==
E_FAIL,
"CreateFormatEnumerator failed: %08x, expected E_FAIL\n",
hres);
153 hres = IEnumFORMATETC_Next(fenum, 2,
NULL, &ul);
156 hres = IEnumFORMATETC_Next(fenum, 0, fetc, &ul);
158 ok(ul == 0,
"ul=%d, expected 0\n", ul);
160 hres = IEnumFORMATETC_Next(fenum, 2, fetc, &ul);
162 ok(fetc[0].lindex == 0,
"fetc[0].lindex=%d, expected 0\n", fetc[0].lindex);
163 ok(fetc[1].lindex == 1,
"fetc[1].lindex=%d, expected 1\n", fetc[1].lindex);
164 ok(fetc[0].ptd == &
dev,
"fetc[0].ptd=%p, expected %p\n", fetc[0].ptd, &
dev);
165 ok(ul == 2,
"ul=%d, expected 2\n", ul);
167 hres = IEnumFORMATETC_Skip(fenum, 1);
170 hres = IEnumFORMATETC_Next(fenum, 4, fetc, &ul);
172 ok(fetc[0].lindex == 3,
"fetc[0].lindex=%d, expected 3\n", fetc[0].lindex);
173 ok(fetc[1].lindex == 4,
"fetc[1].lindex=%d, expected 4\n", fetc[1].lindex);
174 ok(fetc[0].ptd ==
NULL,
"fetc[0].ptd=%p, expected NULL\n", fetc[0].ptd);
175 ok(ul == 2,
"ul=%d, expected 2\n", ul);
177 hres = IEnumFORMATETC_Next(fenum, 4, fetc, &ul);
179 ok(ul == 0,
"ul=%d, expected 0\n", ul);
181 hres = IEnumFORMATETC_Next(fenum, 0, fetc, &ul);
183 ok(ul == 0,
"ul=%d, expected 0\n", ul);
185 hres = IEnumFORMATETC_Skip(fenum, 3);
188 hres = IEnumFORMATETC_Reset(fenum);
191 hres = IEnumFORMATETC_Next(fenum, 5, fetc,
NULL);
193 ok(fetc[0].lindex == 0,
"fetc[0].lindex=%d, expected 0\n", fetc[0].lindex);
195 hres = IEnumFORMATETC_Reset(fenum);
198 hres = IEnumFORMATETC_Skip(fenum, 2);
201 hres = IEnumFORMATETC_Clone(fenum,
NULL);
204 hres = IEnumFORMATETC_Clone(fenum, &fenum2);
208 ok(fenum != fenum2,
"fenum == fenum2\n");
210 hres = IEnumFORMATETC_Next(fenum2, 2, fetc, &ul);
212 ok(fetc[0].lindex == 2,
"fetc[0].lindex=%d, expected 2\n", fetc[0].lindex);
214 IEnumFORMATETC_Release(fenum2);
217 hres = IEnumFORMATETC_Next(fenum, 2, fetc, &ul);
219 ok(fetc[0].lindex == 2,
"fetc[0].lindex=%d, expected 2\n", fetc[0].lindex);
221 hres = IEnumFORMATETC_Skip(fenum, 1);
224 IEnumFORMATETC_Release(fenum);
234 static FORMATETC formatetc = {0,
NULL,0,0,0};
236 {
'_',
'E',
'n',
'u',
'm',
'F',
'O',
'R',
'M',
'A',
'T',
'E',
'T',
'C',
'_',0};
247 "RegisterFormatEnumerator failed: %08x, expected E_INVALIDARG\n",
hres);
250 "RegisterFormatEnumerator failed: %08x, expected E_INVALIDARG\n",
hres);
253 ok(
hres ==
S_OK,
"RegisterFormatEnumerator failed: %08x\n",
hres);
261 "RevokeFormatEnumerator failed: %08x, expected E_INVALIDARG\n",
hres);
267 ok(
hres ==
E_FAIL,
"RevokeFormatEnumerator failed: %08x, expected E_FAIL\n",
hres);
273 ok(
hres ==
S_OK,
"RegisterFormatEnumerator failed: %08x\n",
hres);
282 IEnumFORMATETC_Release(format2);
288 IEnumFORMATETC_Release(
format);
291 ok(
hres ==
S_OK,
"RegisterFormatEnumerator failed: %08x\n",
hres);
297 IEnumFORMATETC_Release(
format);
298 IBindCtx_Release(bctx);
300static const WCHAR url1[] = {
'r',
'e',
's',
':',
'/',
'/',
'm',
's',
'h',
't',
'm',
'l',
'.',
'd',
'l',
'l',
301 '/',
'b',
'l',
'a',
'n',
'k',
'.',
'h',
't',
'm',0};
302static const WCHAR url2[] = {
'i',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',0};
303static const WCHAR url3[] = {
'f',
'i',
'l',
'e',
':',
'/',
'/',
'c',
':',
'\\',
'I',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',0};
304static const WCHAR url4[] = {
'f',
'i',
'l',
'e',
':',
's',
'o',
'm',
'e',
'%',
'2',
'0',
'f',
'i',
'l',
'e',
305 '%',
'2',
'e',
'j',
'p',
'g',0};
306static const WCHAR url5[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
308static const WCHAR url6[] = {
'a',
'b',
'o',
'u',
't',
':',
'b',
'l',
'a',
'n',
'k',0};
309static const WCHAR url7[] = {
'f',
't',
'p',
':',
'/',
'/',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
'/',
310 'f',
'i',
'l',
'e',
'.',
't',
'e',
's',
't',0};
311static const WCHAR url8[] = {
't',
'e',
's',
't',
':',
'1',
'2',
'3',
'a',
'b',
'c',0};
313 {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
314 '/',
's',
'i',
't',
'e',
'/',
'a',
'b',
'o',
'u',
't',0};
315static const WCHAR url10[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'g',
'o',
'o',
'g',
'l',
'e',
'.',
'*',
'.',
317static const WCHAR url4e[] = {
'f',
'i',
'l',
'e',
':',
's',
'o',
'm',
'e',
' ',
'f',
'i',
'l',
'e',
320static const WCHAR path3[] = {
'c',
':',
'\\',
'I',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',0};
321static const WCHAR path4[] = {
's',
'o',
'm',
'e',
' ',
'f',
'i',
'l',
'e',
'.',
'j',
'p',
'g',0};
328static const WCHAR wszGoogle[] = {
'g',
'o',
'o',
'g',
'l',
'e',
'.',
'*',
'.',
'c',
'o',
'm',0};
330static const WCHAR wszWineHQ[] = {
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',0};
331static const WCHAR wszHttpWineHQ[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
332 'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',0};
333static const WCHAR wszHttpGoogle[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'g',
'o',
'o',
'g',
'l',
'e',
334 '.',
'*',
'.',
'c',
'o',
'm',0};
350 {
url1,
S_OK,
url1,
E_INVALIDARG,
NULL,
wszRes,
NULL,
E_FAIL,
NULL,
E_FAIL},
351 {
url2,
E_FAIL,
url2,
E_INVALIDARG,
NULL,
wszEmpty,
NULL,
E_FAIL,
NULL,
E_FAIL},
352 {
url3,
E_FAIL,
url3,
S_OK,
path3,
wszFile,
wszEmpty,
S_OK,
NULL,
E_FAIL},
353 {
url4,
E_FAIL,
url4e,
S_OK,
path4,
wszFile,
wszEmpty,
S_OK,
NULL,
E_FAIL},
354 {
url5,
E_FAIL,
url5,
E_INVALIDARG,
NULL,
wszHttp,
wszWineHQ,
S_OK,
wszHttpWineHQ,
S_OK},
355 {
url6,
S_OK,
url6,
E_INVALIDARG,
NULL,
wszAbout,
NULL,
E_FAIL,
NULL,
E_FAIL},
473 ok(
hres ==
E_FAIL,
"[%d] CoInternetQueryInfo failed: %08x, expected E_FAIL\n",
i,
hres);
475 ok(
hres ==
E_FAIL,
"[%d] CoInternetQueryInfo failed: %08x, expected E_FAIL\n",
i,
hres);
492 {
"res://mshtml.dll/blank.htm",
"text/html",
S_OK},
493 {
"index.htm",
"text/html",
S_OK},
494 {
"file://c:\\Index.htm",
"text/html",
S_OK},
495 {
"file://c:\\Index.htm?q=test",
"text/html",
S_OK,
TRUE},
496 {
"file://c:\\Index.htm#hash_part",
"text/html",
S_OK,
TRUE},
497 {
"file://c:\\Index.htm#hash_part.txt",
"text/html",
S_OK,
FALSE,
"text/plain"},
505static BYTE data2[] = {31,
't',
'e',
's',0xfa,
't',
' ',
'd',
'a',
't',
'a',
'\n',0};
507static BYTE data4[] = {
't',
'e',
's',0xfa,
't',
' ',
'd',
'a',
't',
'a',
'\n',0,0};
509static BYTE data6[] = {0xfa,0xfa,0xfa,0xfa,
'\n',
'\r',
'\t',
'x',
'x',
'x',1};
511static BYTE data8[] = {
't',
'e',
's',0xfa,
't',
' ',
'<',
'h',
't',
'm',
'l',
'>',
'd',
'a',
't',
'a',
'\n',0,0};
512static BYTE data9[] = {
't',
'e',0,
's',0xfa,
't',
' ',
'<',
'h',
't',
'm',
'l',
'>',
'd',
'a',
't',
'a',
'\n',0,0};
529static BYTE data26[] = {
'G',
'i',
'F',
'8',
'7',
'a',
'<',
'h',
't',
'm',
'l',
'>'};
531static BYTE data28[] = {0x42,0x4d,0x6e,0x42,0x1c,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00};
532static BYTE data29[] = {0x42,0x4d,
'x',
'x',
'x',
'x',0x00,0x00,0x00,0x00,
'x',
'x',
'x',
'x'};
533static BYTE data30[] = {0x42,0x4d,
'x',
'x',
'x',
'x',0x00,0x01,0x00,0x00,
'x',
'x',
'x',
'x'};
534static BYTE data31[] = {0x42,0x4d,
'x',
'x',
'x',
'x',0x00,0x00,0x00,0x00,
'<',
'h',
't',
'm',
'l',
'>'};
535static BYTE data32[] = {0x42,0x4d,
'x',
'x',
'x',
'x',0x00,0x00,0x00,0x00,
'x',
'x',
'x'};
536static BYTE data33[] = {0x00,0x42,0x4d,
'x',
'x',
'x',
'x',0x00,0x00,0x00,0x00,
'x',
'x',
'x'};
537static BYTE data34[] = {0x89,
'P',
'N',
'G',0x0d,0x0a,0x1a,0x0a,
'x'};
538static BYTE data35[] = {0x89,
'P',
'N',
'G',0x0d,0x0a,0x1a,0x0a,
'x',
'x',
'x',
'x',0};
539static BYTE data36[] = {0x89,
'P',
'N',
'G',0x0d,0x0a,0x1a,
'x',
'x'};
540static BYTE data37[] = {0x89,
'P',
'N',
'G',0x0d,0x0a,0x1a,0x0a,
'<',
'h',
't',
'm',
'l',
'>'};
541static BYTE data38[] = {0x00,0x89,
'P',
'N',
'G',0x0d,0x0a,0x1a,0x0a,
'x'};
543static BYTE data40[] = {0x4d,0x4d,0x00,0x2a,
'<',
'h',
't',
'm',
'l',
'>',0};
547static BYTE data44[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'A',
'V',
'I',0x20,0xff};
548static BYTE data45[] = {
'R',
'I',
'F',
'f',0xff,0xff,0xff,0xff,
'A',
'V',
'I',0x20,0xff};
549static BYTE data46[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'A',
'V',
'I',0x20};
550static BYTE data47[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'A',
'V',
'I',0x21,0xff};
551static BYTE data48[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'A',
'V',
'I',0x20,
'<',
'h',
't',
'm',
'l',
'>'};
552static BYTE data49[] = {
'R',
'I',
'F',
'F',0x0f,0x0f,0xf0,0xf0,
'A',
'V',
'I',0x20,0xf0,0x00};
557static BYTE data54[] = {0x00,0x00,0x01,0xba,
'<',
'h',
't',
'm',
'l',
'>'};
560static BYTE data57[] = {0x1f,0x8b,
'<',
'h',
't',
'm',
'l',
'>',
't',
'e',
's',
't',0};
567static BYTE data64[] = {0xca,0xfe,0xba,0xbe,
'<',
'h',
't',
'm',
'l',
'>',0};
570static BYTE data67[] = {0x25,0x50,0x44,0x46,
'x',
'<',
'h',
't',
'm',
'l',
'>'};
573static BYTE data70[] = {
'M',
'Z',
'<',
'h',
't',
'm',
'l',
'>',0xff};
577static BYTE data74[] = {
'{',
'\\',
'r',
't',
'f',
'<',
'h',
't',
'm',
'l',
'>',
' '};
578static BYTE data75[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'W',
'A',
'V',
'E',0xff};
579static BYTE data76[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'W',
'A',
'V',
'E'};
580static BYTE data77[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'W',
'A',
'V',0xff,0xff};
581static BYTE data78[] = {
'R',
'I',
'F',
'F',0xff,0xff,0xff,0xff,
'<',
'h',
't',
'm',
'l',
'>',0xff};
584static BYTE data81[] = {
'%',
'!',
'P',
'S',
'<',
'h',
't',
'm',
'l',
'>'};
587static BYTE data84[] = {
'.',
's',
'n',
'd',0,
'<',
'h',
't',
'm',
'l',
'>',1,1};
595static BYTE data92[] = {
'a',
'b',
'c',
'<',
'?',
'x',
'm',
'l',
' ',
' '};
596static BYTE data93[] = {
'<',
'?',
'x',
'm',
'l',
' ',
' ',
'<',
'h',
't',
'm',
'l',
'>'};
597static BYTE data94[] = {
'<',
'h',
't',
'm',
'l',
'>',
'<',
'?',
'x',
'm',
'l',
' ',
' '};
598static BYTE data95[] = {
'{',
'\\',
'r',
't',
'f',
'<',
'?',
'x',
'm',
'l',
' ',
' '};
613 {
data2,
sizeof(
data2),
"application/octet-stream",
"image/pjpeg"},
614 {
data3,
sizeof(
data3),
"application/octet-stream",
"image/pjpeg"},
615 {
data4,
sizeof(
data4),
"application/octet-stream",
"image/pjpeg"},
618 {
data7,
sizeof(
data7),
"text/html",
"text/plain"},
619 {
data8,
sizeof(
data8),
"text/html",
"text/plain"},
620 {
data9,
sizeof(
data9),
"text/html",
"image/pjpeg"},
628 {
data17,
sizeof(
data17),
"application/octet-stream",
"image/pjpeg"},
641 {
data30,
sizeof(
data30),
"application/octet-stream",
"image/pjpeg"},
643 {
data32,
sizeof(
data32),
"application/octet-stream",
"image/pjpeg"},
644 {
data33,
sizeof(
data33),
"application/octet-stream",
"image/pjpeg"},
647 {
data36,
sizeof(
data36),
"application/octet-stream",
"image/pjpeg"},
649 {
data38,
sizeof(
data38),
"application/octet-stream",
"image/pjpeg"},
654 {
data43,
sizeof(
data43),
"application/octet-stream",
"image/pjpeg"},
663 {
data52,
sizeof(
data52),
"application/octet-stream",
"image/pjpeg"},
664 {
data53,
sizeof(
data53),
"application/octet-stream",
"image/pjpeg",
"image/x-icon"},
666 {
data55,
sizeof(
data55),
"application/x-gzip-compressed"},
668 {
data57,
sizeof(
data57),
"text/html",
"application/x-gzip-compressed"},
669 {
data58,
sizeof(
data58),
"application/octet-stream",
"image/pjpeg"},
670 {
data59,
sizeof(
data59),
"application/x-zip-compressed"},
672 {
data61,
sizeof(
data61),
"text/html",
"application/x-zip-compressed"},
675 {
data64,
sizeof(
data64),
"text/html",
"application/java"},
678 {
data67,
sizeof(
data67),
"text/html",
"application/pdf"},
681 {
data70,
sizeof(
data70),
"text/html",
"application/x-msdownload"},
692 {
data81,
sizeof(
data81),
"text/html",
"application/postscript"},
711 {
NULL, 0,
"text/html",
NULL,
NULL,
"res://mshtml.dll/blank.htm"},
712 {
data1,
sizeof(
data1),
"text/plain",
NULL,
NULL,
"res://mshtml.dll/blank.htm",
"application/octet-stream"},
713 {
data1,
sizeof(
data1),
"text/plain",
NULL,
NULL,
"file:some%20file%2ejpg",
"application/octet-stream"},
718 {
data1,
sizeof(
data1),
"text/css",
NULL,
NULL,
"http://www.winehq.org/test.css",
"text/plain"},
719 {
data1,
sizeof(
data1),
"text/css",
NULL,
NULL,
"http://www.winehq.org/test.css",
"application/octet-stream"},
720 {
data1,
sizeof(
data1),
"text/test",
NULL,
NULL,
"http://www.winehq.org/test.css",
"text/test"}
730 static const WCHAR app_octet_streamW[] =
731 {
'a',
'p',
'p',
'l',
'i',
'c',
'a',
't',
'i',
'o',
'n',
'/',
'o',
'c',
't',
'e',
't',
'-',
's',
't',
'r',
'e',
'a',
'm',0};
732 static const WCHAR image_pjpegW[] = {
'i',
'm',
'a',
'g',
'e',
'/',
'p',
'j',
'p',
'e',
'g',0};
733 static const WCHAR text_htmlW[] = {
't',
'e',
'x',
't',
'/',
'h',
't',
'm',
'l',0};
734 static const WCHAR text_plainW[] = {
't',
'e',
'x',
't',
'/',
'p',
'l',
'a',
'i',
'n',0};
750 "[%d] FindMimeFromData failed: %08x, expected %08x\n",
752 ok(
mime == (
LPWSTR)0xf0f0f0f0,
"[%d] mime != 0xf0f0f0f0\n",
i);
785 app_octet_streamW, 0, &
mime, 0);
826 ok(
hres ==
E_FAIL,
"FindMimeFromData failed: %08x, expected E_FAIL\n",
hres);
829 ok(
hres ==
E_FAIL,
"FindMimeFromData failed: %08x, expected E_FAIL\n",
hres);
855 ok(
hres ==
S_OK,
"Could not get AboutProtocol factory: %08x\n",
hres);
861 IClassFactory_Release(
factory);
863 IInternetSession_Release(
session);
869 ok(0,
"unexpected call\n");
887 switch(ParseAction) {
888 case PARSE_SECURITY_URL:
918 ok(0,
"unexpected call\n");
925 ok(0,
"unexpected call\n");
933 ok(0,
"unexpected call\n");
961 ok(0,
"unexpected call\n");
978 ok(0,
"unexpected call\n");
988 ok(pOuter ==
NULL,
"pOuter = %p\n", pOuter);
998 ok(0,
"unexpected call\n");
1030 static const WCHAR wszTest[] = {
't',
'e',
's',
't',0};
1038 wszTest, 0,
NULL, 0);
1046 wszTest, 0,
NULL, 0);
1097 if (pCoInternetGetSecurityUrl) {
1098 hres = pCoInternetGetSecurityUrl(
url8, &sec_url, PSU_SECURITY_URL_ONLY, 0);
1099 ok(
hres ==
S_OK,
"CoInternetGetSecurityUrl failed: %08x\n",
hres);
1118 wszTest, 0,
NULL, 0);
1122 wszTest, 0,
NULL, 0);
1126 wszTest, 0,
NULL, 0);
1178 IInternetSession_Release(
session);
1186 static const WCHAR mimeW[] = {
't',
'e',
's',
't',
'/',
'm',
'i',
'm',
'e',0};
1202 hres = IInternetSession_UnregisterMimeFilter(
session, (
void*)0xdeadbeef, mimeW);
1205 IInternetSession_Release(
session);
1225 pReleaseBindInfo(
NULL);
1227 memset(&bi, 0,
sizeof(bi));
1228 bi.cbSize =
sizeof(BINDINFO);
1231 pReleaseBindInfo(&bi);
1232 ok(bi.cbSize ==
sizeof(BINDINFO),
"bi.cbSize=%d\n", bi.cbSize);
1233 ok(bi.pUnk ==
NULL,
"bi.pUnk=%p, expected NULL\n", bi.pUnk);
1236 memset(&bi, 0,
sizeof(bi));
1239 pReleaseBindInfo(&bi);
1240 ok(bi.cbSize ==
offsetof(BINDINFO,
pUnk),
"bi.cbSize=%d\n", bi.cbSize);
1241 ok(bi.pUnk == &unk,
"bi.pUnk=%p, expected %p\n", bi.pUnk, &unk);
1243 memset(&bi, 0,
sizeof(bi));
1245 pReleaseBindInfo(&bi);
1246 ok(!bi.cbSize,
"bi.cbSize=%d, expected 0\n", bi.cbSize);
1247 ok(bi.pUnk == &unk,
"bi.pUnk=%p, expected %p\n", bi.pUnk, &unk);
1263 src.tymed = TYMED_NULL;
1267 ok(
dst.tymed == TYMED_NULL,
"tymed=%d\n",
dst.tymed);
1269 ok(!
dst.pUnkForRelease,
"pUnkForRelease=%p, expected NULL\n",
dst.pUnkForRelease);
1272 src.tymed = TYMED_ISTREAM;
1277 ok(
dst.tymed == TYMED_ISTREAM,
"tymed=%d\n",
dst.tymed);
1278 ok(!
dst.u.pstm,
"pstm=%p\n",
dst.u.pstm);
1279 ok(!
dst.pUnkForRelease,
"pUnkForRelease=%p, expected NULL\n",
dst.pUnkForRelease);
1282 src.tymed = TYMED_FILE;
1287 ok(
dst.tymed == TYMED_FILE,
"tymed=%d\n",
dst.tymed);
1288 ok(
dst.u.lpszFileName &&
dst.u.lpszFileName !=
fileW,
"lpszFileName=%p\n",
dst.u.lpszFileName);
1290 ok(!
dst.pUnkForRelease,
"pUnkForRelease=%p, expected NULL\n",
dst.pUnkForRelease);
1298 src.tymed = TYMED_HGLOBAL;
1302 ok(
dst.tymed == TYMED_HGLOBAL,
"tymed=%d\n",
dst.tymed);
1303 ok(
dst.u.hGlobal !=
hg,
"got %p, %p\n",
dst.u.hGlobal,
hg);
1308 ok(!
memcmp(ptr1, ptr2, 10),
"got wrong data\n");
1316 src.tymed = TYMED_HGLOBAL;
1345 src[0].cbSize =
sizeof(BINDINFO);
1353 dest[0].cbSize =
sizeof(BINDINFO)+
sizeof(
DWORD);
1356 ok(
dest[0].cbSize ==
sizeof(BINDINFO)+
sizeof(
DWORD),
"incorrect cbSize: %d\n",
dest[0].cbSize);
1358 ok(((
int*)
dest)[
i] == 0,
"unset values should be set to 0, got %d on %d\n", ((
int*)
dest)[
i],
i);
1362 src[0].cbSize =
sizeof(BINDINFO)+2*
sizeof(
DWORD);
1363 dest[0].cbSize =
sizeof(BINDINFO)+
sizeof(
DWORD);
1366 ok(
dest[1].cbSize ==
src[1].cbSize,
"additional data should be copied\n");
1367 ok(
dest[1].szExtraInfo !=
src[1].szExtraInfo,
1368 "data not fitting in destination buffer should not be copied\n");
1372 src[0].cbSize =
sizeof(BINDINFO);
1374 src[0].szExtraInfo[0] = 0;
1377 src[0].stgmedData.tymed = TYMED_NULL;
1378 src[0].stgmedData.pUnkForRelease =
NULL;
1379 dest[0].cbSize =
sizeof(BINDINFO);
1383 ok(
dest[0].cbSize ==
sizeof(BINDINFO),
"incorrect cbSize: %d\n",
dest[0].cbSize);
1384 ok(
dest[0].szExtraInfo && !
dest[0].szExtraInfo[0] &&
dest[0].szExtraInfo!=
src[0].szExtraInfo,
1385 "incorrect szExtraInfo: (%p!=%p) %d\n",
dest[0].szExtraInfo,
1386 src[0].szExtraInfo,
dest[0].szExtraInfo[0]);
1387 ok(!
memcmp(&
dest[0].stgmedData, &
src[0].stgmedData,
sizeof(STGMEDIUM)),
1388 "incorrect stgmedData value\n");
1389 ok(
src[0].grfBindInfoF ==
dest[0].grfBindInfoF,
"grfBindInfoF = %x, expected %x\n",
1390 dest[0].grfBindInfoF,
src[0].grfBindInfoF);
1391 ok(
src[0].dwBindVerb ==
dest[0].dwBindVerb,
"dwBindVerb = %x, expected %x\n",
1392 dest[0].dwBindVerb,
src[0].dwBindVerb);
1393 ok(!
dest[0].szCustomVerb,
"szCustmoVerb != NULL\n");
1394 ok(
src[0].cbstgmedData ==
dest[0].cbstgmedData,
"cbstgmedData = %x, expected %x\n",
1395 dest[0].cbstgmedData,
src[0].cbstgmedData);
1398 ok(
src[0].dwOptionsFlags ==
dest[0].dwOptionsFlags,
"dwOptionsFlags = %x, expected %x\n",
1399 dest[0].dwOptionsFlags,
src[0].dwOptionsFlags);
1400 ok(
src[0].dwCodePage ==
dest[0].dwCodePage,
"dwCodePage = %x, expected %x\n",
1401 dest[0].dwCodePage,
src[0].dwCodePage);
1402 ok(!
dest[0].securityAttributes.nLength,
1403 "unexpected securityAttributes.nLength value: %d\n",
1404 dest[0].securityAttributes.nLength);
1405 ok(!
dest[0].securityAttributes.lpSecurityDescriptor,
1406 "unexpected securityAttributes.lpSecurityDescriptor value: %p\n",
1407 dest[0].securityAttributes.lpSecurityDescriptor);
1408 ok(!
dest[0].securityAttributes.bInheritHandle,
1409 "unexpected securityAttributes.bInheritHandle value: %d\n",
1410 dest[0].securityAttributes.bInheritHandle);
1412 "incorrect iid value\n");
1423 "InitializeSecurityDescriptor failed\n");
1424 src[0].securityAttributes.lpSecurityDescriptor = (
void*)&sec_desc;
1425 src[0].securityAttributes.bInheritHandle =
TRUE;
1428 ok(!
dest[0].securityAttributes.nLength,
1429 "unexpected securityAttributes.nLength value: %d\n",
1430 dest[0].securityAttributes.nLength);
1431 ok(!
dest[0].securityAttributes.lpSecurityDescriptor,
1432 "unexpected securityAttributes.lpSecurityDescriptor value: %p\n",
1433 dest[0].securityAttributes.lpSecurityDescriptor);
1434 ok(!
dest[0].securityAttributes.bInheritHandle,
1435 "unexpected securityAttributes.bInheritHandle value: %d\n",
1436 dest[0].securityAttributes.bInheritHandle);
1445 hres = pUrlMkGetSessionOption(URLMON_OPTION_URL_ENCODING, &
encoding,
1448 ok(
encoding != 0xdeadbeef,
"encoding not changed\n");
1452 hres = pUrlMkGetSessionOption(URLMON_OPTION_URL_ENCODING, &
encoding,
1455 ok(
encoding != 0xdeadbeef,
"encoding not changed\n");
1459 hres = pUrlMkGetSessionOption(URLMON_OPTION_URL_ENCODING, &
encoding,
1466 hres = pUrlMkGetSessionOption(URLMON_OPTION_URL_ENCODING,
NULL,
1473 hres = pUrlMkGetSessionOption(URLMON_OPTION_URL_ENCODING, &
encoding,
1481 static const CHAR expected[] =
"Mozilla/4.0 (compatible; MSIE ";
1482 static char test_str[] =
"test";
1483 static char test2_str[] =
"test\0test";
1495 ok(
size == 100,
"size=%d, expected %d\n",
size, 100);
1500 ok(
size > 0,
"size=%d, expected non-zero\n",
size);
1506 ok(
size > 0,
"size=%d, expected non-zero\n",
size);
1507 ok(
str[0] ==
'a',
"str[0]=%c, expected 'a'\n",
str[0]);
1512 ok(
size > 0,
"size=%d, expected non-zero\n",
size);
1516 hres = pObtainUserAgentString(0, str2, &
size);
1518 ok(
size == saved,
"size=%d, expected %d\n",
size, saved);
1521 "user agent was \"%s\", expected to start with \"%s\"\n",
1525 hres = pObtainUserAgentString(0, str2, &
size);
1527 ok(
size == saved,
"size=%d, expected %d\n",
size, saved);
1530 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT,
NULL, 0, &
size, 0);
1535 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT,
NULL, 1000, &
size, 0);
1541 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved+10, &
size, 0);
1543 ok(
size == saved,
"size = %d, expected %d\n",
size, saved);
1545 "user agent was \"%s\", expected to start with \"%s\"\n",
1550 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &
size, 0);
1552 ok(
size == saved,
"size = %d, expected %d\n",
size, saved);
1554 "user agent was \"%s\", expected to start with \"%s\"\n",
1559 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved-1, &
size, 0);
1561 ok(
size == saved,
"size = %d, expected %d\n",
size, saved);
1562 ok(!str2[0],
"buf changed\n");
1566 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved,
NULL, 0);
1568 ok(!str2[0],
"buf changed\n");
1575 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &
size, 0);
1577 ok(
size ==
sizeof(test_str) && !
memcmp(str2, test_str,
sizeof(test_str)),
"wrong user agent\n");
1584 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &
size, 0);
1586 ok(
size ==
sizeof(test_str) && !
memcmp(str2, test_str,
sizeof(test_str)),
"wrong user agent\n");
1593 hres = pUrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &
size, 0);
1595 ok(
size == 3 && !
strcmp(str2,
"te"),
"wrong user agent\n");
1618 static const WCHAR clsid_nameW[] = {
'c',
'l',
's',
'i',
'd',
':',
1619 '2',
'0',
'D',
'0',
'4',
'F',
'E',
'0',
'-',
'3',
'A',
'E',
'A',
'-',
'1',
'0',
'6',
'9',
'-',
'A',
'2',
'D',
'8',
1620 '-',
'0',
'8',
'0',
'0',
'2',
'B',
'3',
'0',
'3',
'0',
'9',
'D',
':',0};
1628 } invalid_parameters[] =
1641 {&bctx,
NULL, &eaten, &mon},
1657 invalid_parameters[
i].szDisplayName,
1658 invalid_parameters[
i].pchEaten,
1659 invalid_parameters[
i].ppmk);
1661 "[%d] Expected MkParseDisplayNameEx to return E_INVALIDARG, got %08x\n",
i,
hres);
1662 ok(eaten == 0xdeadbeef,
"[%d] Expected eaten to be 0xdeadbeef, got %u\n",
i, eaten);
1663 ok(mon == (
IMoniker *)0xdeadbeef,
"[%d] Expected mon to be 0xdeadbeef, got %p\n",
i, mon);
1669 ok(mon !=
NULL,
"mon == NULL\n");
1676 hres = IMoniker_IsSystemMoniker(mon, &issys);
1678 ok(issys == MKSYS_URLMONIKER,
"issys=%x\n", issys);
1680 IMoniker_Release(mon);
1684 ok(eaten ==
ARRAY_SIZE(clsid_nameW)-1,
"eaten=%d\n", eaten);
1685 ok(mon !=
NULL,
"mon == NULL\n");
1687 hres = IMoniker_IsSystemMoniker(mon, &issys);
1689 ok(issys == MKSYS_CLASSMONIKER,
"issys=%x\n", issys);
1691 IMoniker_Release(mon);
1696 IBindCtx_Release(bctx);
1708 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1713 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1715 IBindCtx_Release(bctx);
1718static const struct {
1724 {FEATURE_OBJECT_CACHING,GET_FEATURE_FROM_PROCESS,
S_OK},
1787 static const char* szFeatureBehaviorsKey =
"FEATURE_BEHAVIORS";
1788 static const char* szFeatureZoneElevationKey =
"FEATURE_ZONE_ELEVATION";
1790 if(!pIEInstallScope) {
1791 win_skip(
"Skipping internet feature registry tests, IE is too old...\n");
1807 delete_feature_key =
FALSE;
1818 ok(
hres ==
S_FALSE,
"CoInternetIsFeatureEnabled returned %08x, expected S_FALSE\n",
hres);
1820 if(delete_feature_key) {
1830 ok(
hres ==
S_FALSE,
"CoInternetIsFeatureEnabled returned %08x, expected S_FALSE\n",
hres);
1834 ok(
hres ==
S_OK,
"CoInternetSetFeatureEnabled failed: %08x\n",
hres);
1848 skip(
"Not allowed to modify zone elevation\n");
1857 ok(
hres ==
S_OK,
"CoInternetIsFeatureEnabled returned %08x, expected S_OK\n",
hres);
1867 ok(
hres ==
S_OK,
"CoInternetIsFeatureEnabled returned %08x, expected S_OK\n",
hres);
1870 ok(
hres ==
S_OK,
"CoInternetSetFeatureEnabled failed: %08x\n",
hres);
1879 hres = pCoInternetIsFeatureEnabled(FEATURE_ENTRY_COUNT, GET_FEATURE_FROM_PROCESS);
1880 ok(
hres ==
E_FAIL,
"CoInternetIsFeatureEnabled returned %08x, expected E_FAIL\n",
hres);
1883static const struct {
1902 hres = pCoInternetSetFeatureEnabled(FEATURE_ENTRY_COUNT,SET_FEATURE_ON_PROCESS,
TRUE);
1903 ok(
hres ==
E_FAIL,
"CoInternetSetFeatureEnabled returned %08x, expected E_FAIL\n",
hres);
1924 if(!pCoInternetIsFeatureEnabled || !pCoInternetSetFeatureEnabled) {
1925 win_skip(
"Skipping internet feature tests, IE is too old\n");
1941 trace(
"Running features tests in a separated process.\n");
1989 ok(0,
"unexpected call\n");
1995 ok(0,
"unexpected call\n");
2001 ok(0,
"unexpected call\n");
2008 ok(0,
"unexpected call\n");
2014 ok(0,
"unexpected call\n");
2029 DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed)
2038 ok(0,
"unexpected call\n");
2087 IUnknown_AddRef(iface);
2124 MSHCTX_INPROC,
NULL, MSHLFLAGS_NORMAL);
2144 FORMATETC formatetc = {0,
NULL, 1, -1, TYMED_ISTREAM};
2150 WCHAR *extra_info_out;
2159 ok(
hres ==
S_OK,
"CreateStreamOnHGlobal returned: %08x\n",
hres);
2169 ok(
hres ==
S_OK,
"CreateStreamOnHGlobal returned: %08x\n",
hres);
2170 hres = IStream_Write(binding_stream,
"xxx", 3,
NULL);
2173 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2176 memset(&bindinfo, 0,
sizeof(bindinfo));
2177 bindinfo.cbSize =
sizeof(bindinfo);
2178 bindinfo.grfBindInfoF = 12;
2179 bindinfo.dwBindVerb = 13;
2180 bindinfo.cbstgmedData = 19;
2181 bindinfo.dwOptions = 14;
2182 bindinfo.dwOptionsFlags = 15;
2183 bindinfo.dwCodePage = 16;
2184 bindinfo.securityAttributes.nLength = 30;
2185 bindinfo.securityAttributes.lpSecurityDescriptor = (
void*)0xdead0001;
2186 bindinfo.securityAttributes.bInheritHandle = 31;
2187 bindinfo.iid.Data1 = 17;
2188 bindinfo.pUnk = (
IUnknown*)0xdeadbeef;
2189 bindinfo.dwReserved = 18;
2204 rem_bindinfo.securityAttributes.lpSecurityDescriptor = (
void*)0xdead0002;
2212 hres = IBindStatusCallback_GetBindInfo(
bsc, &
bindf, &bindinfo);
2228 ok(!
in_bindinfo.securityAttributes.nLength,
"securityAttributes.nLength = %u\n",
2231 "securityAttributes.lpSecurityDescriptor = %p\n",
2232 in_bindinfo.securityAttributes.lpSecurityDescriptor);
2233 ok(!
in_bindinfo.securityAttributes.bInheritHandle,
"securityAttributes.bInheritHandle = %u\n",
2235 ok(!
in_bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2239 ok(!
strcmp_wa(bindinfo.szExtraInfo,
"extra info out"),
2241 ok(bindinfo.grfBindInfoF == 22,
"grfBindInfoF = %u\n",
rem_bindinfo.grfBindInfoF);
2242 ok(bindinfo.dwBindVerb == 23,
"dwBindVerb = %u\n", bindinfo.dwBindVerb);
2243 ok(bindinfo.szCustomVerb != verb_out,
"szCustomVerb == inbuf\n");
2244 ok(!
strcmp_wa(bindinfo.szCustomVerb,
"custom verb out"),
"szCustomVerb = %s\n",
2246 ok(bindinfo.cbstgmedData == 29,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2247 ok(bindinfo.dwOptions == 24,
"dwOptions = %u\n", bindinfo.dwOptions);
2248 ok(bindinfo.dwOptionsFlags == 25,
"dwOptionsFlags = %u\n", bindinfo.dwOptionsFlags);
2249 ok(bindinfo.dwCodePage,
"dwCodePage = %u\n", bindinfo.dwCodePage);
2250 ok(!bindinfo.iid.Data1,
"iid.Data1 = %u\n", bindinfo.iid.Data1);
2251 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2252 ok(bindinfo.dwReserved == 18,
"dwReserved = %u\n", bindinfo.dwReserved);
2253 ok(bindinfo.securityAttributes.nLength == 30,
"securityAttributes.nLength = %u\n",
2254 bindinfo.securityAttributes.nLength);
2255 ok(bindinfo.securityAttributes.lpSecurityDescriptor == (
void*)0xdead0001,
2256 "securityAttributes.lpSecurityDescriptor = %p\n",
2257 bindinfo.securityAttributes.lpSecurityDescriptor);
2258 ok(bindinfo.securityAttributes.bInheritHandle == 31,
"securityAttributes.bInheritHandle = %u\n",
2259 bindinfo.securityAttributes.bInheritHandle);
2261 bindinfo.stgmedData.pUnkForRelease);
2264 bindinfo.stgmedData.pUnkForRelease =
NULL;
2268 hres = IStream_Seek(binding_stream,
zero, STREAM_SEEK_SET,
NULL);
2272 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2275 memset(&bindinfo, 0,
sizeof(bindinfo));
2276 bindinfo.cbSize =
sizeof(bindinfo);
2284 IStream_AddRef(binding_stream);
2286 hres = IBindStatusCallback_GetBindInfo(
bsc, &
bindf, &bindinfo);
2292 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2295 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2296 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2297 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2298 bindinfo.stgmedData.tymed);
2299 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2300 bindinfo.stgmedData.u.pstm);
2301 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2302 bindinfo.stgmedData.pUnkForRelease);
2303 ok(bindinfo.cbstgmedData == 3,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2308 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2311 memset(&bindinfo, 0,
sizeof(bindinfo));
2312 bindinfo.cbSize =
sizeof(bindinfo);
2322 IStream_AddRef(binding_stream);
2324 hres = IBindStatusCallback_GetBindInfo(
bsc, &
bindf, &bindinfo);
2330 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2333 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2334 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2335 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2336 bindinfo.stgmedData.tymed);
2337 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2338 bindinfo.stgmedData.u.pstm);
2339 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2340 bindinfo.stgmedData.pUnkForRelease);
2341 ok(bindinfo.cbstgmedData == 3,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2346 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2349 memset(&bindinfo, 0,
sizeof(bindinfo));
2350 bindinfo.cbSize =
sizeof(bindinfo);
2362 hres = IBindStatusCallback_GetBindInfo(
bsc, &
bindf, &bindinfo);
2368 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2371 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2372 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2373 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2374 bindinfo.stgmedData.tymed);
2375 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2376 bindinfo.stgmedData.u.pstm);
2377 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2378 bindinfo.stgmedData.pUnkForRelease);
2379 ok(bindinfo.cbstgmedData == 5,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2384 hres = IBindStatusCallback_QueryInterface(
bsc, &IID_IBindStatusCallbackEx, (
void**)&callbackex);
2388 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2391 memset(&bindinfo, 0,
sizeof(bindinfo));
2392 bindinfo.cbSize =
sizeof(bindinfo);
2393 bindinfo.grfBindInfoF = 12;
2394 bindinfo.dwBindVerb = 13;
2395 bindinfo.cbstgmedData = 19;
2396 bindinfo.dwOptions = 14;
2397 bindinfo.dwOptionsFlags = 15;
2398 bindinfo.dwCodePage = 16;
2399 bindinfo.securityAttributes.nLength = 30;
2400 bindinfo.securityAttributes.lpSecurityDescriptor = (
void*)0xdead0001;
2401 bindinfo.securityAttributes.bInheritHandle = 31;
2402 bindinfo.iid.Data1 = 17;
2403 bindinfo.pUnk = (
IUnknown*)0xdeadbeef;
2404 bindinfo.dwReserved = 18;
2419 rem_bindinfo.securityAttributes.lpSecurityDescriptor = (
void*)0xdead0002;
2427 hres = IBindStatusCallbackEx_GetBindInfoEx(callbackex, &
bindf, &bindinfo, &bindf2, &
reserved);
2430 ok(bindf2 == 11,
"bindf2 = %x\n",
bindf);
2445 ok(!
in_bindinfo.securityAttributes.nLength,
"securityAttributes.nLength = %u\n",
2448 "securityAttributes.lpSecurityDescriptor = %p\n",
2449 in_bindinfo.securityAttributes.lpSecurityDescriptor);
2450 ok(!
in_bindinfo.securityAttributes.bInheritHandle,
"securityAttributes.bInheritHandle = %u\n",
2452 ok(!
in_bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2456 ok(!
strcmp_wa(bindinfo.szExtraInfo,
"extra info out"),
2458 ok(bindinfo.grfBindInfoF == 22,
"grfBindInfoF = %u\n",
rem_bindinfo.grfBindInfoF);
2459 ok(bindinfo.dwBindVerb == 23,
"dwBindVerb = %u\n", bindinfo.dwBindVerb);
2460 ok(bindinfo.szCustomVerb != verb_out,
"szCustomVerb == inbuf\n");
2461 ok(!
strcmp_wa(bindinfo.szCustomVerb,
"custom verb out"),
"szCustomVerb = %s\n",
2463 ok(bindinfo.cbstgmedData == 29,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2464 ok(bindinfo.dwOptions == 24,
"dwOptions = %u\n", bindinfo.dwOptions);
2465 ok(bindinfo.dwOptionsFlags == 25,
"dwOptionsFlags = %u\n", bindinfo.dwOptionsFlags);
2466 ok(bindinfo.dwCodePage,
"dwCodePage = %u\n", bindinfo.dwCodePage);
2467 ok(!bindinfo.iid.Data1,
"iid.Data1 = %u\n", bindinfo.iid.Data1);
2468 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2469 ok(bindinfo.dwReserved == 18,
"dwReserved = %u\n", bindinfo.dwReserved);
2470 ok(bindinfo.securityAttributes.nLength == 30,
"securityAttributes.nLength = %u\n",
2471 bindinfo.securityAttributes.nLength);
2472 ok(bindinfo.securityAttributes.lpSecurityDescriptor == (
void*)0xdead0001,
2473 "securityAttributes.lpSecurityDescriptor = %p\n",
2474 bindinfo.securityAttributes.lpSecurityDescriptor);
2475 ok(bindinfo.securityAttributes.bInheritHandle == 31,
"securityAttributes.bInheritHandle = %u\n",
2476 bindinfo.securityAttributes.bInheritHandle);
2478 bindinfo.stgmedData.pUnkForRelease);
2481 bindinfo.stgmedData.pUnkForRelease =
NULL;
2485 hres = IStream_Seek(binding_stream,
zero, STREAM_SEEK_SET,
NULL);
2489 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2492 memset(&bindinfo, 0,
sizeof(bindinfo));
2493 bindinfo.cbSize =
sizeof(bindinfo);
2501 IStream_AddRef(binding_stream);
2503 hres = IBindStatusCallbackEx_GetBindInfoEx(callbackex, &
bindf, &bindinfo, &bindf2, &
reserved);
2509 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2512 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2513 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2514 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2515 bindinfo.stgmedData.tymed);
2516 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2517 bindinfo.stgmedData.u.pstm);
2518 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2519 bindinfo.stgmedData.pUnkForRelease);
2520 ok(bindinfo.cbstgmedData == 3,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2525 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2528 memset(&bindinfo, 0,
sizeof(bindinfo));
2529 bindinfo.cbSize =
sizeof(bindinfo);
2539 IStream_AddRef(binding_stream);
2541 hres = IBindStatusCallbackEx_GetBindInfoEx(callbackex, &
bindf, &bindinfo, &bindf2, &
reserved);
2547 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2550 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2551 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2552 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2553 bindinfo.stgmedData.tymed);
2554 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2555 bindinfo.stgmedData.u.pstm);
2556 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2557 bindinfo.stgmedData.pUnkForRelease);
2558 ok(bindinfo.cbstgmedData == 3,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2563 rem_bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
2566 memset(&bindinfo, 0,
sizeof(bindinfo));
2567 bindinfo.cbSize =
sizeof(bindinfo);
2579 hres = IBindStatusCallbackEx_GetBindInfoEx(callbackex, &
bindf, &bindinfo, &bindf2, &
reserved);
2585 ok(
in_bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2588 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"cbSize = %u\n", bindinfo.cbSize);
2589 ok(!bindinfo.pUnk,
"pUnk = %p\n", bindinfo.pUnk);
2590 ok(bindinfo.stgmedData.tymed == TYMED_NULL,
"tymed = %u\n",
2591 bindinfo.stgmedData.tymed);
2592 ok(!bindinfo.stgmedData.u.pstm,
"stm = %p\n",
2593 bindinfo.stgmedData.u.pstm);
2594 ok(!bindinfo.stgmedData.pUnkForRelease,
"pUnkForRelease = %p\n",
2595 bindinfo.stgmedData.pUnkForRelease);
2596 ok(bindinfo.cbstgmedData == 5,
"cbstgmedData = %u\n", bindinfo.cbstgmedData);
2600 IBindStatusCallbackEx_Release(callbackex);
2602 win_skip(
"IBindStatusCallbackEx not supported\n");
2607 stgmed.tymed = TYMED_ISTREAM;
2608 stgmed.u.pstm = binding_stream;
2609 stgmed.pUnkForRelease =
NULL;
2611 hres = IBindStatusCallback_OnDataAvailable(
bsc, 1, 10, &formatetc, &stgmed);
2620 stgmed.tymed = TYMED_ISTREAM;
2621 stgmed.u.pstm = binding_stream;
2625 hres = IBindStatusCallback_OnDataAvailable(
bsc, 1, 10, &formatetc, &stgmed);
2635 stgmed.tymed = TYMED_ISTREAM;
2636 stgmed.u.pstm = binding_stream;
2637 stgmed.pUnkForRelease =
NULL;
2639 hres = IBindStatusCallback_OnDataAvailable(
bsc, 1, 10, &formatetc, &stgmed);
2648 stgmed.tymed = TYMED_NULL;
2649 stgmed.u.pstm = binding_stream;
2653 hres = IBindStatusCallback_OnDataAvailable(
bsc, 1, 10, &formatetc, &stgmed);
2661 IStream_Release(binding_stream);
2662 IBindStatusCallback_Release(
bsc);
2676 pCoInternetCompareUrl = (
void *)
GetProcAddress(hurlmon,
"CoInternetCompareUrl");
2677 pCoInternetGetSecurityUrl = (
void*)
GetProcAddress(hurlmon,
"CoInternetGetSecurityUrl");
2678 pCoInternetGetSession = (
void*)
GetProcAddress(hurlmon,
"CoInternetGetSession");
2679 pCoInternetParseUrl = (
void*)
GetProcAddress(hurlmon,
"CoInternetParseUrl");
2680 pCoInternetQueryInfo = (
void*)
GetProcAddress(hurlmon,
"CoInternetQueryInfo");
2681 pCopyStgMedium = (
void*)
GetProcAddress(hurlmon,
"CopyStgMedium");
2683 pFindMimeFromData = (
void*)
GetProcAddress(hurlmon,
"FindMimeFromData");
2684 pObtainUserAgentString = (
void*)
GetProcAddress(hurlmon,
"ObtainUserAgentString");
2685 pReleaseBindInfo = (
void*)
GetProcAddress(hurlmon,
"ReleaseBindInfo");
2686 pUrlMkGetSessionOption = (
void*)
GetProcAddress(hurlmon,
"UrlMkGetSessionOption");
2687 pCompareSecurityIds = (
void*)
GetProcAddress(hurlmon,
"CompareSecurityIds");
2688 pCoInternetIsFeatureEnabled = (
void*)
GetProcAddress(hurlmon,
"CoInternetIsFeatureEnabled");
2689 pCoInternetSetFeatureEnabled = (
void*)
GetProcAddress(hurlmon,
"CoInternetSetFeatureEnabled");
2690 pIEInstallScope = (
void*)
GetProcAddress(hurlmon,
"IEInstallScope");
2692 if (!pCoInternetCompareUrl || !pCoInternetGetSecurityUrl ||
2693 !pCoInternetGetSession || !pCoInternetParseUrl || !pCompareSecurityIds) {
2694 win_skip(
"Various needed functions not present, too old IE\n");
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
static const WCHAR empty[]
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
#define MultiByteToWideChar
#define ERROR_ACCESS_DENIED
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
BOOL WINAPI TerminateThread(IN HANDLE hThread, IN DWORD dwExitCode)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI CoUnmarshalInterface(IStream *pStream, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CoMarshalInterface(IStream *pStream, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
static const WCHAR fileW[]
HRESULT WINAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD Reserved)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
UINT NTAPI GlobalFlags(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static const WCHAR text_plainW[]
static const WCHAR image_pjpegW[]
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define sprintf(buf, format,...)
static const char * strw(LPCWSTR x)
static HMODULE MODULEINFO DWORD cb
#define todo_wine_if(is_todo)
static const WCHAR wszHttpWineHQ[]
static IClassFactory test_protocol_cf2
static BINDINFO rem_bindinfo
static void test_MkParseDisplayNameEx(void)
static const WCHAR url6[]
static HANDLE thread_ready
static IInternetProtocolInfo protocol_info
static DWORD WINAPI bsc_thread(void *arg)
static void test_internet_features_registry(void)
static const IClassFactoryVtbl ProtocolCFVtbl
static ULONG WINAPI RefUnk_Release(IUnknown *iface)
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
static void test_RegisterFormatEnumerator(void)
static const WCHAR wszEmpty[]
static const WCHAR wszRes[]
static void test_ReleaseBindInfo(void)
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppv)
static BINDINFO in_bindinfo
static void test_MimeFilter(void)
static HRESULT WINAPI InternetProtocolInfo_QueryInfo(IInternetProtocolInfo *iface, LPCWSTR pwzUrl, QUERYOPTION OueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD *pcbBuf, DWORD dwReserved)
static const IClassFactoryVtbl ClassFactoryVtbl
static HRESULT WINAPI RefUnk_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static const struct @1724 mime_tests2[]
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallbackEx *iface, LONG *pnPriority)
static void test_CoInternetIsFeatureEnabled(void)
static const struct @1723 mime_tests[]
static void test_CoInternetSetFeatureEnabled(void)
static const WCHAR url1[]
static void test_CoInternetCompareUrl(void)
static const WCHAR url5[]
static void test_NameSpace(void)
static WCHAR * a2co(const char *str)
static const struct parse_test parse_tests[]
static RefUnk * impl_from_IUnknown(IUnknown *iface)
#define CHECK_EXPECT(func)
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
static const char * szFeatureControlKey
static const WCHAR url4[]
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallbackEx *iface, REFIID riid, IUnknown *punk)
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
#define DEFINE_EXPECT(func)
static ULONG WINAPI unk_Release(IUnknown *iface)
static IClassFactory test_cf
static HRESULT WINAPI ProtocolCF_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppv)
static void test_CopyBindInfo(void)
static const WCHAR wszGoogle[]
INTERNETFEATURELIST feature
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallbackEx *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
static STGMEDIUM in_stgmed
static void test_UrlMkGetSessionOption(void)
static int strcmp_wa(const WCHAR *strw, const char *stra)
static const WCHAR url8[]
static HRESULT WINAPI InternetProtocolInfo_CompareUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
static HRESULT WINAPI BindStatusCallbackEx_GetBindInfoEx(IBindStatusCallbackEx *iface, DWORD *grfBINDF, BINDINFO *pbindinfo, DWORD *grfBINDF2, DWORD *pdwReserved)
static HRESULT WINAPI InternetProtocolInfo_CombineUrl(IInternetProtocolInfo *iface, LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static ULONG WINAPI RefUnk_AddRef(IUnknown *iface)
static void test_FindMimeFromData(void)
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallbackEx *iface, HRESULT hresult, LPCWSTR szError)
static void register_protocols(void)
#define CHECK_EXPECT2(func)
static ULONG WINAPI InternetProtocolInfo_AddRef(IInternetProtocolInfo *iface)
static void test_IsValidURL(void)
static const WCHAR path3[]
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallbackEx *iface, DWORD dwReserved, IBinding *pib)
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallbackEx *iface)
const char * proposed_mime
static const WCHAR url2[]
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallbackEx *iface, DWORD reserved)
#define CHECK_CALLED(func)
static WCHAR * a2w(const char *str)
static const IUnknownVtbl unk_vtbl
static const WCHAR wszWineHQ[]
static const WCHAR wszFile[]
static const struct @1725 default_feature_tests[]
static const IUnknownVtbl RefUnkVtbl
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallbackEx *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
static const WCHAR url4e[]
static void test_bsc_marshaling(void)
static const WCHAR wszHttp[]
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static void test_CoInternetQueryInfo(void)
static ULONG WINAPI InternetProtocolInfo_Release(IInternetProtocolInfo *iface)
static const WCHAR url9[]
static STGMEDIUM rem_stgmed
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
static IClassFactory test_protocol_cf
static HRESULT WINAPI InternetProtocolInfo_QueryInterface(IInternetProtocolInfo *iface, REFIID riid, void **ppv)
static void test_user_agent(void)
static const struct @1722 query_info_tests[]
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallbackEx *iface)
static HRESULT WINAPI InternetProtocolInfo_ParseUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwParseFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static IClassFactory * expect_cf
static void test_CopyStgMedium(void)
static void test_internet_features(void)
static const WCHAR wszAbout[]
static const WCHAR path4[]
static const IBindStatusCallbackExVtbl BindStatusCallbackExVtbl
static void test_CreateFormatEnum(void)
static void test_internet_feature_defaults(void)
static void test_CoInternetParseUrl(void)
static const WCHAR wszHttpGoogle[]
static const WCHAR url3[]
static const WCHAR url10[]
static const IInternetProtocolInfoVtbl InternetProtocolInfoVtbl
static const struct @1726 internet_feature_tests[]
static const WCHAR url7[]
CLSID CLSID_AboutProtocol
static IBindStatusCallbackEx bsc
static const WCHAR text_htmlW[]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
interface IMoniker * LPMONIKER
interface IBindCtx * LPBC
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define offsetof(TYPE, MEMBER)
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
int winetest_get_mainargs(char ***pargv)
void winetest_wait_child_process(HANDLE process)
HRESULT rootdocument_hres
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, LPMONIKER *ppmk)
enum FEATURE_SAFE_BINDTOOBJECT
enum FEATURE_MIME_SNIFFING
enum FEATURE_VALIDATE_NAVIGATE_URL
enum FEATURE_WEBOC_POPUPMANAGEMENT
enum FEATURE_DISABLE_MK_PROTOCOL
enum FEATURE_UNC_SAVEDFILECHECK
enum FEATURE_LOCALMACHINE_LOCKDOWN
enum FEATURE_GET_URL_DOM_FILEPATH_UNENCODED
enum FEATURE_DISABLE_LEGACY_COMPRESSION
enum FEATURE_TABBED_BROWSING
enum FEATURE_WINDOW_RESTRICTIONS
enum FEATURE_PROTOCOL_LOCKDOWN
enum FEATURE_MIME_HANDLING
enum FEATURE_ZONE_ELEVATION
enum FEATURE_FORCE_ADDR_AND_STATUS
enum FEATURE_DISABLE_TELNET_PROTOCOL
enum FEATURE_DISABLE_NAVIGATION_SOUNDS
enum FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
enum FEATURE_ADDON_MANAGEMENT
enum FEATURE_RESTRICT_ACTIVEXINSTALL
enum FEATURE_SECURITYBAND
enum FEATURE_BLOCK_INPUT_PROMPTS
enum FEATURE_RESTRICT_FILEDOWNLOAD
void WINAPI ReleaseBindInfo(BINDINFO *pbindinfo)
HRESULT WINAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved)
DWORD WINAPI GetLastError(void)
_Reserved_ DWORD * pdwReserved
_In_ FONTOBJ _In_ ULONG _In_ HGLYPH hg
#define __HRESULT_FROM_WIN32(x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
#define SECURITY_DESCRIPTOR_REVISION