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");