32 #define DEFINE_EXPECT(func) \ 33 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE 35 #define SET_EXPECT(func) \ 36 expect_ ## func = TRUE 38 #define CHECK_EXPECT2(func) \ 40 ok(expect_ ##func, "unexpected call " #func "\n"); \ 41 called_ ## func = TRUE; \ 44 #define CHECK_EXPECT(func) \ 46 CHECK_EXPECT2(func); \ 47 expect_ ## func = FALSE; \ 50 #define CHECK_CALLED(func) \ 52 ok(called_ ## func, "expected " #func "\n"); \ 53 expect_ ## func = called_ ## func = FALSE; \ 89 DEFINE_GUID(
CLSID_IdentityUnmarshal,0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
90 DEFINE_GUID(IID_IHlinkHistory,0x79eac9c8,0xbaf9,0x11ce,0x8c,0x82,0x00,0xaa,0x00,0x4b,0xa9,0x0b);
95 {
'h',
't',
't',
'p',
':',
'/',
'/',
't',
'e',
's',
't',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
96 '/',
't',
'e',
's',
't',
's',
'/',
'h',
'e',
'l',
'l',
'o',
'.',
'h',
't',
'm',
'l',0};
98 {
'h',
't',
't',
'p',
':',
'/',
'/',
't',
'e',
's',
't',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
99 '/',
't',
'e',
's',
't',
's',
'/',
'f',
'a',
'k',
'e',
'u',
'r',
'l',0};
106 static const WCHAR file0[] = {
'f',
'i',
'l',
'e',0};
107 static const WCHAR file1[] = {
'f',
'i',
'l',
'e',
'.',
'u',
'r',
'l',0};
108 static const WCHAR file2[] = {
'f',
'i',
'l',
'e',
'.',
'l',
'n',
'k',0};
109 static const WCHAR file3[] = {
'f',
'i',
'l',
'e',
'.',
'u',
'R',
'l',0};
110 static const WCHAR file4[] = {
'f',
'i',
'l',
'e',
'u',
'r',
'l',0};
111 static const WCHAR file5[] = {
'c',
':',
'\\',
'f',
'i',
'l',
'e',
'.',
'u',
'r',
'l',0};
112 static const WCHAR file6[] = {
'c',
':',
'\\',
'f',
'i',
'l',
'e',
'.',
'l',
'n',
'k',0};
113 static const WCHAR file7[] = {
'.',
'u',
'r',
'l',0};
118 } shortcut_test[] = {
132 ok(
hres == shortcut_test[
i].
hres,
"[%d] HlinkIsShortcut returned %08x, expected %08x\n",
142 const WCHAR url[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',0 };
143 const WCHAR url2[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
'/',0 };
148 ok(
r ==
S_OK,
"failed to create link\n");
152 r = IHlink_GetMonikerReference(lnk, HLINKGETREF_DEFAULT,
NULL,
NULL);
155 r = IHlink_GetMonikerReference(lnk, HLINKGETREF_DEFAULT, &mk, &
str);
157 ok(mk !=
NULL,
"no moniker\n");
158 ok(
str ==
NULL,
"string should be null\n");
160 r = IMoniker_Release(mk);
161 ok(
r == 1,
"moniker refcount wrong\n");
163 r = IHlink_GetStringReference(lnk, -1, &
str,
NULL);
167 r = IHlink_GetStringReference(lnk, -1,
NULL,
NULL);
168 ok(
r ==
S_OK,
"failed, r=%08x\n",
r);
170 r = IHlink_GetStringReference(lnk, -1,
NULL, &
str);
171 ok(
r ==
S_OK,
"failed, r=%08x\n",
r);
172 ok(
str ==
NULL,
"string should be null\n");
174 r = IHlink_GetStringReference(lnk, HLINKGETREF_DEFAULT, &
str,
NULL);
179 r = IHlink_GetStringReference(lnk, HLINKGETREF_DEFAULT,
NULL,
NULL);
182 r = IHlink_GetStringReference(lnk, HLINKGETREF_DEFAULT,
NULL, &
str);
184 ok(
str ==
NULL,
"string should be null\n");
187 r = IHlink_GetAdditionalParams(lnk,
NULL);
190 r = IHlink_SetAdditionalParams(lnk,
NULL);
199 0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
200 0xe0,0xc9,0xea,0x79,0xf9,0xba,0xce,0x11,
201 0x8c,0x82,0x00,0xaa,0x00,0x4b,0xa9,0x0b,
202 0x26,0x00,0x00,0x00,0x68,0x00,0x74,0x00,
203 0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,
204 0x2f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,
205 0x65,0x00,0x68,0x00,0x71,0x00,0x2e,0x00,
206 0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,
213 0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
214 0xe0,0xc9,0xea,0x79,0xf9,0xba,0xce,0x11,
215 0x8c,0x82,0x00,0xaa,0x00,0x4b,0xa9,0x0b,
216 0x3e,0x00,0x00,0x00,0x68,0x00,0x74,0x00,
217 0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,
218 0x2f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,
219 0x65,0x00,0x68,0x00,0x71,0x00,0x2e,0x00,
220 0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,
221 0x00,0x00,0x79,0x58,0x81,0xf4,0x3b,0x1d,
222 0x7f,0x48,0xaf,0x2c,0x82,0x5d,0xc4,0x85,
223 0x27,0x63,0x00,0x00,0x00,0x00,0xa5,0xab,
230 0x02,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
231 0x08,0x00,0x00,0x00,0x57,0x00,0x69,0x00,
232 0x6e,0x00,0x65,0x00,0x20,0x00,0x48,0x00,
233 0x51,0x00,0x00,0x00,0xe0,0xc9,0xea,0x79,
234 0xf9,0xba,0xce,0x11,0x8c,0x82,0x00,0xaa,
235 0x00,0x4b,0xa9,0x0b,0x26,0x00,0x00,0x00,
236 0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,
237 0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,
238 0x69,0x00,0x6e,0x00,0x65,0x00,0x68,0x00,
239 0x71,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,
240 0x67,0x00,0x2f,0x00,0x00,0x00,
246 0x02,0x00,0x00,0x00,0x17,0x00,0x00,0x00,
247 0x08,0x00,0x00,0x00,0x57,0x00,0x69,0x00,
248 0x6e,0x00,0x65,0x00,0x20,0x00,0x48,0x00,
249 0x51,0x00,0x00,0x00,0xe0,0xc9,0xea,0x79,
250 0xf9,0xba,0xce,0x11,0x8c,0x82,0x00,0xaa,
251 0x00,0x4b,0xa9,0x0b,0x3e,0x00,0x00,0x00,
252 0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,
253 0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,
254 0x69,0x00,0x6e,0x00,0x65,0x00,0x68,0x00,
255 0x71,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,
256 0x67,0x00,0x2f,0x00,0x00,0x00,0x79,0x58,
257 0x81,0xf4,0x3b,0x1d,0x7f,0x48,0xaf,0x2c,
258 0x82,0x5d,0xc4,0x85,0x27,0x63,0x00,0x00,
259 0x00,0x00,0xa5,0xab,0x00,0x00,
265 0x02,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
266 0x08,0x00,0x00,0x00,0x57,0x00,0x69,0x00,
267 0x6e,0x00,0x65,0x00,0x20,0x00,0x48,0x00,
268 0x51,0x00,0x00,0x00,0xe0,0xc9,0xea,0x79,
269 0xf9,0xba,0xce,0x11,0x8c,0x82,0x00,0xaa,
270 0x00,0x4b,0xa9,0x0b,0x26,0x00,0x00,0x00,
271 0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,
272 0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,
273 0x69,0x00,0x6e,0x00,0x65,0x00,0x68,0x00,
274 0x71,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,
275 0x67,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,
276 0x00,0x00,0x5f,0x00,0x62,0x00,0x6c,0x00,
277 0x61,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,
283 0x02,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,
284 0x08,0x00,0x00,0x00,0x57,0x00,0x69,0x00,
285 0x6e,0x00,0x65,0x00,0x20,0x00,0x48,0x00,
286 0x51,0x00,0x00,0x00,0xe0,0xc9,0xea,0x79,
287 0xf9,0xba,0xce,0x11,0x8c,0x82,0x00,0xaa,
288 0x00,0x4b,0xa9,0x0b,0x3e,0x00,0x00,0x00,
289 0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,
290 0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,
291 0x69,0x00,0x6e,0x00,0x65,0x00,0x68,0x00,
292 0x71,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,
293 0x67,0x00,0x2f,0x00,0x00,0x00,0x79,0x58,
294 0x81,0xf4,0x3b,0x1d,0x7f,0x48,0xaf,0x2c,
295 0x82,0x5d,0xc4,0x85,0x27,0x63,0x00,0x00,
296 0x00,0x00,0xa5,0xab,0x00,0x00,0x07,0x00,
297 0x00,0x00,0x5f,0x00,0x62,0x00,0x6c,0x00,
298 0x61,0x00,0x6e,0x00,0x6b,0x00,0x00,0x00,
304 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
305 0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
306 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,
307 0x00,0x00,0x0b,0x00,0x00,0x00,0x69,0x6e,
308 0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,
309 0x00,0xff,0xff,0xad,0xde,0x00,0x00,0x00,
310 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
311 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
312 0x00,0x00,0x00,0x00,0x00,
318 0x02,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
319 0x07,0x00,0x00,0x00,0x74,0x00,0x67,0x00,
320 0x74,0x00,0x66,0x00,0x72,0x00,0x6d,0x00,
321 0x00,0x00,0xe0,0xc9,0xea,0x79,0xf9,0xba,
322 0xce,0x11,0x8c,0x82,0x00,0xaa,0x00,0x4b,
323 0xa9,0x0b,0x26,0x00,0x00,0x00,0x68,0x00,
324 0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,
325 0x2f,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,
326 0x6e,0x00,0x65,0x00,0x68,0x00,0x71,0x00,
327 0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,
334 0x02,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
335 0x07,0x00,0x00,0x00,0x74,0x00,0x67,0x00,
336 0x74,0x00,0x66,0x00,0x72,0x00,0x6d,0x00,
337 0x00,0x00,0xe0,0xc9,0xea,0x79,0xf9,0xba,
338 0xce,0x11,0x8c,0x82,0x00,0xaa,0x00,0x4b,
339 0xa9,0x0b,0x3e,0x00,0x00,0x00,0x68,0x00,
340 0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,
341 0x2f,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,
342 0x6e,0x00,0x65,0x00,0x68,0x00,0x71,0x00,
343 0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,
344 0x2f,0x00,0x00,0x00,0x79,0x58,0x81,0xf4,
345 0x3b,0x1d,0x7f,0x48,0xaf,0x2c,0x82,0x5d,
346 0xc4,0x85,0x27,0x63,0x00,0x00,0x00,0x00,
353 0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
354 0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
355 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,
356 0x00,0x00,0x04,0x00,0x00,0x00,0x63,0x3a,
357 0x5c,0x00,0xff,0xff,0xad,0xde,0x00,0x00,
358 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
359 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
360 0x00,0x00,0x0c,0x00,0x00,0x00,0x06,0x00,
361 0x00,0x00,0x03,0x00,0x63,0x00,0x3a,0x00,
366 const unsigned char *expected_data,
367 unsigned int expected_data_size,
368 const unsigned char *expected_data_alt,
369 unsigned int expected_data_alt_size)
376 const unsigned char *
data;
381 ok(
hr ==
S_OK,
"IHlink_QueryInterface failed with error 0x%08x\n",
hr);
384 ok(
hr ==
S_OK,
"CreateStreamOnHGlobal failed with error 0x%08x\n",
hr);
387 ok(
hr ==
S_OK,
"IPersistStream_Save failed with error 0x%08x\n",
hr);
390 ok(
hr ==
S_OK,
"GetHGlobalFromStream failed with error 0x%08x\n",
hr);
397 ok((data_size == expected_data_size) ||
398 (data_size == expected_data_alt_size),
399 "%s: Size of saved data differs (expected %d or %d, actual %d)\n",
400 testname, expected_data_size, expected_data_alt_size, data_size);
404 for (
i = 0;
i <
min(data_size, expected_data_size);
i++)
406 if ((expected_data[
i] !=
data[
i]) &&
409 ((i < 52 || i >= 56) && (i < 80 || i >= 84))))
416 if (!same && (expected_data_alt != expected_data))
420 for (
i = 0;
i <
min(data_size, expected_data_alt_size);
i++)
428 "Expected 0 or 1, got %d\n",
data[
i]);
431 if ((expected_data_alt[
i] !=
data[
i]) &&
434 ((i < 52 || i >= 56) && (i < 80 || i >= 84))))
442 ok(same,
"%s: Saved data differs\n", testname);
445 for (
i = 0;
i < data_size;
i++)
457 IPersistStream_Release(ps);
462 static const WCHAR url[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',0 };
463 static const WCHAR rel_url[] = {
'i',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',
'l',0 };
466 static const WCHAR location[] = {
'_',
'b',
'l',
'a',
'n',
'k',0 };
467 static const WCHAR target_frame_name[] = {
't',
'g',
't',
'f',
'r',
'm',0 };
473 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
475 skip(
"Can't create lnk, skipping test_persist.\n");
485 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
493 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
501 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
509 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
510 hr = IHlink_SetTargetFrameName(lnk, target_frame_name);
511 ok(
hr ==
S_OK,
"IHlink_SetTargetFrameName failed with error 0x%08x\n",
hr);
519 ok(
hr ==
S_OK,
"HlinkCreateFromString failed with error 0x%08x\n",
hr);
532 ok(
hres ==
S_OK,
"HlinkGetSpecialReference(HLSR_HOME) failed: %08x\n",
hres);
537 ok(
hres ==
S_OK,
"HlinkGetSpecialReference(HLSR_SEARCHPAGE) failed: %08x\n",
hres);
541 ref = (
void*)0xdeadbeef;
543 ok(
hres ==
E_NOTIMPL,
"HlinkGetSpecialReference(HLSR_HISTORYFOLDER) failed: %08x\n",
hres);
546 ref = (
void*)0xdeadbeef;
560 static const WCHAR usernameW[] = {
'u',
's',
'e',
'r',0};
561 static const WCHAR passwordW[] = {
'p',
'a',
's',
's',0};
562 static const WCHAR headersW[] = {
'h',
'e',
'a',
'd',
'e',
'r',
's',0};
563 static const WCHAR headersexW[] = {
'h',
'e',
'a',
'd',
'e',
'r',
's',
'\r',
'\n',0};
566 NULL, &IID_IAuthenticate, (
void**)&authenticate);
567 ok(
hres ==
S_OK,
"HlinkCreateExtensionServices failed: %08x\n",
hres);
568 ok(authenticate !=
NULL,
"HlinkCreateExtensionServices returned NULL\n");
571 hwnd = (
void*)0xdeadbeef;
574 ok(!
hwnd,
"hwnd != NULL\n");
578 hres = IAuthenticate_QueryInterface(authenticate, &IID_IHttpNegotiate, (
void**)&
http_negotiate);
579 ok(
hres ==
S_OK,
"Could not get IHttpNegotiate interface: %08x\n",
hres);
582 hres = IHttpNegotiate_BeginningTransaction(
http_negotiate, (
void*)0xdeadbeef, (
void*)0xdeadbeef,
587 hres = IHttpNegotiate_BeginningTransaction(
http_negotiate, (
void*)0xdeadbeef, (
void*)0xdeadbeef,
597 IAuthenticate_Release(authenticate);
601 NULL, &IID_IAuthenticate, (
void**)&authenticate);
602 ok(
hres ==
S_OK,
"HlinkCreateExtensionServices failed: %08x\n",
hres);
603 ok(authenticate !=
NULL,
"HlinkCreateExtensionServices returned NULL\n");
616 hwnd = (
void*)0xdeadbeef;
620 ok(
hwnd == (
void*)0xdeadbeef,
"hwnd = %p\n",
hwnd);
622 hres = IAuthenticate_QueryInterface(authenticate, &IID_IHttpNegotiate, (
void**)&
http_negotiate);
623 ok(
hres ==
S_OK,
"Could not get IHttpNegotiate interface: %08x\n",
hres);
626 hres = IHttpNegotiate_BeginningTransaction(
http_negotiate, (
void*)0xdeadbeef, (
void*)0xdeadbeef,
638 IAuthenticate_Release(authenticate);
650 static const WCHAR invalid_urlW[] = {
't',
'e',
's',
't',
':',
'1',
'2',
'3',
'a',
'b',
'c',0};
651 static const WCHAR clsid_nameW[] = {
'c',
'l',
's',
'i',
'd',
':',
652 '2',
'0',
'D',
'0',
'4',
'F',
'E',
'0',
'-',
'3',
'A',
'E',
'A',
'-',
'1',
'0',
'6',
'9',
'-',
'A',
'2',
'D',
'8',
653 '-',
'0',
'8',
'0',
'0',
'2',
'B',
'3',
'0',
'3',
'0',
'9',
'D',
':',0};
654 static const WCHAR file_urlW[] =
655 {
'f',
'i',
'l',
'e',
':',
'/',
'/',
'/',
'c',
':',
'\\',
'f',
'i',
'l',
'e',
'.',
't',
'x',
't',0};
662 ok(mon !=
NULL,
"mon == NULL\n");
664 hres = IMoniker_GetDisplayName(mon, bctx, 0, &
name);
669 hres = IMoniker_IsSystemMoniker(mon, &issys);
671 ok(issys == MKSYS_URLMONIKER,
"issys=%x\n", issys);
673 IMoniker_Release(mon);
677 ok(eaten ==
ARRAY_SIZE(clsid_nameW)-1,
"eaten=%d\n", eaten);
678 ok(mon !=
NULL,
"mon == NULL\n");
680 hres = IMoniker_IsSystemMoniker(mon, &issys);
682 ok(issys == MKSYS_CLASSMONIKER,
"issys=%x\n", issys);
684 IMoniker_Release(mon);
688 ok(eaten ==
ARRAY_SIZE(invalid_urlW)-1,
"eaten=%d\n", eaten);
689 ok(mon !=
NULL,
"mon == NULL\n");
691 hres = IMoniker_GetDisplayName(mon, bctx, 0, &
name);
696 hres = IMoniker_IsSystemMoniker(mon, &issys);
698 ok(issys == MKSYS_FILEMONIKER,
"issys=%x\n", issys);
700 IMoniker_Release(mon);
704 ok(eaten ==
ARRAY_SIZE(file_urlW)-1,
"eaten=%d\n", eaten);
705 ok(mon !=
NULL,
"mon == NULL\n");
707 hres = IMoniker_GetDisplayName(mon, bctx, 0, &
name);
712 hres = IMoniker_IsSystemMoniker(mon, &issys);
714 ok(issys == MKSYS_FILEMONIKER,
"issys=%x\n", issys);
716 IMoniker_Release(mon);
717 IBindCtx_Release(bctx);
724 ok(0,
"unexpected call\n");
784 ok(!binding,
"binding = %p\n", binding);
790 ok(0,
"unexpected call\n");
796 ok(0,
"unexpected call\n");
803 ok(0,
"unexpected call\n");
825 DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed)
827 ok(0,
"unexpected call\n");
891 ok(0,
"unexpected call\n");
908 hr = IMoniker_GetDisplayName(pimk, bctx,
NULL, &
name);
909 ok(
hr ==
S_OK,
"Failed to get display name, hr %#x.\n",
hr);
912 IBindCtx_Release(bctx);
914 ok(fBindIfRootRegistered == 1,
"fBindIfRootRegistered = %x\n", fBindIfRootRegistered);
922 ok(0,
"unexpected call\n");
929 ok(0,
"unexpected call\n");
936 ok(0,
"unexpected call\n");
943 ok(0,
"unexpected call\n");
950 ok(0,
"unexpected call\n");
964 ok(0,
"unexpected call\n");
971 ok(0,
"unexpected call\n");
978 ok(0,
"unexpected call\n");
985 ok(0,
"unexpected call\n");
992 ok(0,
"unexpected call\n");
998 ok(0,
"unexpected call\n");
1069 ok(grfHLNF == 0,
"grfHLNF = %x\n", grfHLNF);
1077 ok(0,
"unexpected call\n");
1128 ok(0,
"unexpected call\n");
1134 ok(0,
"unexpected call\n");
1146 ok(0,
"unexpected call\n");
1156 static WCHAR bscb_holderW[] = {
'_',
'B',
'S',
'C',
'B',
'_',
'H',
'o',
'l',
'd',
'e',
'r',
'_',0};
1162 ok(pbc !=
_bctx,
"pbc != _bctx\n");
1163 ok(pmkToLeft ==
NULL,
"pmkToLeft = %p\n", pmkToLeft);
1170 hr = IBindCtx_GetObjectParam(pbc,
bscb_holderW, &bind_callback_holder);
1171 ok(
hr ==
S_OK,
"Failed to get IBindStatusCallback holder, hr %#x.\n",
hr);
1172 hr = IUnknown_QueryInterface(bind_callback_holder, &IID_IBindStatusCallback,
1174 ok(
hr ==
S_OK,
"Failed to get IBindStatusCallback interface, hr %#x.\n",
hr);
1175 IUnknown_Release(bind_callback_holder);
1176 return MK_S_ASYNCHRONOUS;
1189 static OLECHAR BSCBHolder[] = {
'_',
'B',
'S',
'C',
'B',
'_',
'H',
'o',
'l',
'd',
'e',
'r',
'_',0 };
1193 ok(pbc ==
_bctx,
"pbc != _bctx\n");
1194 ok(pmkToLeft ==
NULL,
"pmkToLeft=%p\n", pmkToLeft);
1201 ok(unk !=
NULL,
"unk == NULL\n");
1203 IUnknown_Release(unk);
1218 ok(0,
"unexpected call\n");
1230 ok(0,
"unexpected call\n");
1236 ok(0,
"unexpected call\n");
1243 ok(0,
"unexpected call\n");
1250 ok(0,
"unexpected call\n");
1256 ok(0,
"unexpected call\n");
1263 ok(0,
"unexpected call\n");
1270 ok(0,
"unexpected call\n");
1279 ok(pbc !=
NULL,
"pbc == NULL\n");
1280 ok(pbc !=
_bctx,
"pbc == _bctx\n");
1281 ok(pmkToLeft ==
NULL,
"pmkToLeft=%p\n", pmkToLeft);
1291 ok(0,
"unexpected call\n");
1299 *pdwMksys = MKSYS_URLMONIKER;
1344 ok(
hres ==
S_OK,
"HlinkResolveMonikerForData failed: %08x\n",
hres);
1350 IBindCtx_Release(bctx);
1373 ok(
hres ==
S_OK,
"HlinkCreateFromMoniker failed: 0x%08x\n",
hres);
1376 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1377 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1378 ok(found_trgt ==
dummy,
"Found target should've been %p, was: %p\n",
dummy, found_trgt);
1380 IMoniker_Release(found_trgt);
1384 hres = IHlink_SetMonikerReference(hlink, HLINKSETF_LOCATION, dummy2,
two);
1385 ok(
hres ==
S_OK,
"IHlink_SetMonikerReference failed: 0x%08x\n",
hres);
1387 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1388 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1389 ok(found_trgt ==
dummy,
"Found target should've been %p, was: %p\n",
dummy, found_trgt);
1391 IMoniker_Release(found_trgt);
1395 hres = IHlink_SetMonikerReference(hlink, HLINKSETF_TARGET, dummy2,
one);
1396 ok(
hres ==
S_OK,
"IHlink_SetMonikerReference failed: 0x%08x\n",
hres);
1398 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1399 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1400 ok(found_trgt == dummy2,
"Found target should've been %p, was: %p\n", dummy2, found_trgt);
1402 IMoniker_Release(found_trgt);
1406 hres = IHlink_SetMonikerReference(hlink, HLINKSETF_TARGET | HLINKSETF_LOCATION,
dummy,
one);
1407 ok(
hres ==
S_OK,
"IHlink_SetMonikerReference failed: 0x%08x\n",
hres);
1409 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1410 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1411 ok(found_trgt ==
dummy,
"Found target should've been %p, was: %p\n",
dummy, found_trgt);
1413 IMoniker_Release(found_trgt);
1417 hres = IHlink_SetMonikerReference(hlink, 0, dummy2,
two);
1420 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1421 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1422 ok(found_trgt ==
dummy,
"Found target should've been %p, was: %p\n",
dummy, found_trgt);
1424 IMoniker_Release(found_trgt);
1430 IHlink_SetMonikerReference(hlink, 12, dummy2,
two);
1432 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1433 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1434 ok(found_trgt ==
dummy,
"Found target should've been %p, was: %p\n",
dummy, found_trgt);
1436 IMoniker_Release(found_trgt);
1440 hres = IHlink_SetMonikerReference(hlink, 12 | HLINKSETF_TARGET, dummy2,
two);
1441 ok(
hres ==
S_OK,
"IHlink_SetMonikerReference failed: 0x%08x\n",
hres);
1443 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1444 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1445 ok(found_trgt == dummy2,
"Found target should've been %p, was: %p\n", dummy2, found_trgt);
1447 IMoniker_Release(found_trgt);
1451 hres = IHlink_SetMonikerReference(hlink, HLINKSETF_TARGET | HLINKSETF_LOCATION,
NULL,
NULL);
1452 ok(
hres ==
S_OK,
"IHlink_SetMonikerReference failed: 0x%08x\n",
hres);
1454 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_DEFAULT, &found_trgt, &found_loc);
1455 ok(
hres ==
S_OK,
"IHlink_GetMonikerReference failed: 0x%08x\n",
hres);
1456 ok(found_trgt ==
NULL,
"Found target should've been %p, was: %p\n",
NULL, found_trgt);
1459 IMoniker_Release(found_trgt);
1461 IHlink_Release(hlink);
1462 IMoniker_Release(dummy2);
1463 IMoniker_Release(
dummy);
1470 &IID_IHlink, (
void **)&hlink);
1473 hres = IHlink_GetMonikerReference(hlink, HLINKGETREF_ABSOLUTE,
1474 &found_trgt, &found_loc);
1476 ok(found_trgt == &
Moniker,
"Got unexpected moniker: %p\n", found_trgt);
1477 ok(found_loc ==
NULL,
"Got unexpected location: %p\n", found_loc);
1483 IHlink_Release(hlink);
1489 static const WCHAR one[] = {
'1',0};
1490 static const WCHAR two[] = {
'2',0};
1491 static const WCHAR three[] = {
'3',0};
1493 WCHAR *fnd_tgt, *fnd_loc;
1498 ok(
hres ==
S_OK,
"HlinkCreateFromMoniker failed: 0x%08x\n",
hres);
1501 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1502 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1503 ok(fnd_tgt ==
NULL,
"Found target should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_tgt));
1508 hres = IHlink_SetStringReference(
link, HLINKSETF_LOCATION,
one,
two);
1509 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1511 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1512 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1513 ok(fnd_tgt ==
NULL,
"Found target should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_tgt));
1518 hres = IHlink_SetStringReference(
link, -HLINKSETF_LOCATION,
two,
one);
1519 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1521 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1522 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1523 ok(fnd_tgt ==
NULL,
"Found target should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_tgt));
1529 hres = IHlink_SetStringReference(
link, HLINKSETF_TARGET,
two, three);
1530 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1532 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1533 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1539 hres = IHlink_SetStringReference(
link, -HLINKSETF_TARGET, three,
two);
1540 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1542 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1543 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1550 hres = IHlink_SetStringReference(
link, HLINKSETF_TARGET | HLINKSETF_LOCATION,
one,
two);
1551 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1553 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1554 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1560 hres = IHlink_SetStringReference(
link, -(HLINKSETF_TARGET | HLINKSETF_LOCATION), three,
one);
1561 ok(
hres ==
S_OK,
"IHlink_SetStringReference failed: 0x%08x\n",
hres);
1563 hres = IHlink_GetStringReference(
link, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1564 ok(
hres ==
S_OK,
"IHlink_GetStringReference failed: 0x%08x\n",
hres);
1571 hres = IHlink_GetStringReference(
link, 4, &fnd_tgt, &fnd_loc);
1574 ok(fnd_tgt ==
NULL,
"Found target should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_tgt));
1575 ok(fnd_loc ==
NULL,
"Found location should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_loc));
1579 hres = IHlink_GetStringReference(
link, -1, &fnd_tgt,
NULL);
1581 "with E_FAIL (0x%08x), instead: 0x%08x\n",
E_FAIL,
hres);
1587 hres = IHlink_GetStringReference(
link, -1,
NULL, &fnd_loc);
1591 hres = IHlink_GetStringReference(
link, -1, &fnd_tgt, &fnd_loc);
1593 "with E_FAIL (0x%08x), instead: 0x%08x\n",
E_FAIL,
hres);
1597 hres = IHlink_GetStringReference(
link, -2, &fnd_tgt, &fnd_loc);
1610 IHlink_Release(
link);
1613 #define setStringRef(h,f,t,l) r_setStringRef(__LINE__,h,f,t,l) 1617 hres = IHlink_SetStringReference(hlink,
flags, tgt, loc);
1621 #define getStringRef(h,t,l) r_getStringRef(__LINE__,h,t,l) 1625 WCHAR *fnd_tgt, *fnd_loc;
1627 hres = IHlink_GetStringReference(hlink, HLINKGETREF_DEFAULT, &fnd_tgt, &fnd_loc);
1633 ok_(__FILE__,
line) (fnd_tgt ==
NULL,
"Found string target should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_tgt));
1638 ok_(__FILE__,
line) (fnd_loc ==
NULL,
"Found string location should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_loc));
1644 #define setMonikerRef(h,f,t,l) r_setMonikerRef(__LINE__,h,f,t,l) 1648 hres = IHlink_SetMonikerReference(hlink,
flags, tgt, loc);
1653 #define getMonikerRef(h,t,l,r) r_getMonikerRef(__LINE__,h,t,l,r) 1660 hres = IHlink_GetMonikerReference(hlink,
ref, &fnd_tgt, &fnd_loc);
1666 ok_(__FILE__,
line) (fnd_loc ==
NULL,
"Found string location should have been NULL, was: %s\n",
wine_dbgstr_w(fnd_loc));
1670 if(exp_tgt == (
IMoniker*)0xFFFFFFFF)
1673 ok_(__FILE__,
line) (fnd_tgt == exp_tgt,
"Found moniker target should have been %p, was: %p\n", exp_tgt, fnd_tgt);
1676 IMoniker_Release(fnd_tgt);
1686 static const WCHAR wordsW[] = {
'w',
'o',
'r',
'd',
's',0};
1687 static const WCHAR aW[] = {
'a',0};
1688 static const WCHAR bW[] = {
'b',0};
1692 ok(
hres ==
S_OK,
"HlinkCreateFromString failed: 0x%08x\n",
hres);
1697 setStringRef(hlink, HLINKSETF_TARGET | HLINKSETF_LOCATION,
aW, wordsW);
1702 IMoniker_Release(aMon);
1715 setMonikerRef(hlink, HLINKSETF_TARGET | HLINKSETF_LOCATION, file_mon, wordsW);
1717 getMonikerRef(hlink, file_mon, wordsW, HLINKGETREF_RELATIVE);
1719 IMoniker_Release(file_mon);
1721 IHlink_Release(hlink);
1728 const WCHAR hash_targetW[] = {
'a',
'f',
'i',
'l',
'e',
'#',
'a',
'n',
'a',
'n',
'c',
'h',
'o',
'r',0};
1729 const WCHAR two_hash_targetW[] = {
'a',
'f',
'i',
'l',
'e',
'#',
'a',
'n',
'a',
'n',
'c',
'h',
'o',
'r',
'#',
'a',
'n',
'o',
't',
'h',
'e',
'r',0};
1730 const WCHAR hash_no_tgtW[] = {
'#',
'a',
'n',
'a',
'n',
'c',
'h',
'o',
'r',0};
1731 const WCHAR tgt_partW[] = {
'a',
'f',
'i',
'l',
'e',0};
1732 const WCHAR loc_partW[] = {
'a',
'n',
'a',
'n',
'c',
'h',
'o',
'r',0};
1733 const WCHAR two_hash_loc_partW[] = {
'a',
'n',
'a',
'n',
'c',
'h',
'o',
'r',
'#',
'a',
'n',
'o',
't',
'h',
'e',
'r',0};
1734 const WCHAR test_locW[] = {
't',
'e',
's',
't',
'l',
'o',
'c',0};
1739 ok(
hres ==
S_OK,
"HlinkCreateFromString failed: 0x%08x\n",
hres);
1740 ok(hlink !=
NULL,
"Didn't get an hlink\n");
1745 ok(pmk !=
NULL,
"Found moniker should not be NULL\n");
1747 IMoniker_Release(pmk);
1752 IHlink_Release(hlink);
1757 ok(
hres ==
S_OK,
"HlinkCreateFromString failed: 0x%08x\n",
hres);
1758 ok(hlink !=
NULL,
"Didn't get an hlink\n");
1763 ok(pmk !=
NULL,
"Found moniker should not be NULL\n");
1765 IMoniker_Release(pmk);
1767 IHlink_Release(hlink);
1772 ok(
hres ==
S_OK,
"HlinkCreateFromString failed: 0x%08x\n",
hres);
1773 ok(hlink !=
NULL,
"Didn't get an hlink\n");
1778 ok(pmk !=
NULL,
"Found moniker should not be NULL\n");
1780 IMoniker_Release(pmk);
1782 IHlink_Release(hlink);
1787 ok(
hres ==
S_OK,
"HlinkCreateFromString failed: 0x%08x\n",
hres);
1788 ok(hlink !=
NULL,
"Didn't get an hlink\n");
1793 ok(pmk ==
NULL,
"Found moniker should be NULL\n");
1795 IMoniker_Release(pmk);
1797 IHlink_Release(hlink);
1801 static const WCHAR site_monikerW[] = {
'S',
'I',
'T',
'E',
'_',
'M',
'O',
'N',
'I',
'K',
'E',
'R',0};
1802 static const WCHAR ref_monikerW[] = {
'R',
'E',
'F',
'_',
'M',
'O',
'N',
'I',
'K',
'E',
'R',0};
1817 ok(onlyIfNotGeneric == 0,
"Expected onlyIfNotGeneric to be FALSE\n");
1824 "Expected to get moniker set via SetMonikerReference, instead got: %s\n",
1936 #define SITEDATA_SUCCESS 1 1937 #define SITEDATA_NOTIMPL 2 1956 ok(0,
"RTN: %p %x %x\n", iface, siteData,
reserved);
1989 &IID_IHlink, (
LPVOID*)&hl);
1998 hres = IHlink_GetMonikerReference(hl, HLINKGETREF_RELATIVE, &mon_ref,
NULL);
2000 ok(mon_ref ==
NULL,
"Didn't get expected moniker, instead: %p\n", mon_ref);
2002 hres = IHlink_GetMonikerReference(hl, HLINKGETREF_ABSOLUTE, &mon_ref,
NULL);
2004 ok(mon_ref == &
hls_site_Moniker,
"Didn't get expected moniker, instead: %p\n", mon_ref);
2019 hres = IHlink_GetMonikerReference(hl, HLINKGETREF_RELATIVE, &mon_ref,
NULL);
2021 ok(mon_ref == &
hls_ref_Moniker,
"Didn't get expected moniker, instead: %p\n", mon_ref);
2022 IMoniker_Release(mon_ref);
2025 hres = IHlink_GetMonikerReference(hl, HLINKGETREF_ABSOLUTE, &mon_ref,
NULL);
2027 ok(mon_ref ==
NULL,
"Shouldn't have got a Moniker, got: %p\n", mon_ref);
2040 IBindCtx_Release(pbc);
2090 &IID_IHlink, (
void**)&hl);
2106 ok(cloned !=
NULL,
"Didn't get a clone\n");
2108 IHlink_Release(cloned);
2117 ok(
hres ==
S_OK,
"HlinkCreateFromMoniker failed: 0x%08x\n",
hres);
2122 cloned = (
IHlink*)0xdeadbeef;
2126 ok(cloned ==
NULL,
"Shouldn't have gotten a clone\n");
2136 ok(
hres ==
S_OK,
"HlinkCreateFromMoniker failed: 0x%08x\n",
hres);
2142 ok(cloned !=
NULL,
"Should have gotten a clone\n");
2145 ok(fnd_mk !=
NULL,
"Expected non-null Moniker\n");
2146 ok(fnd_mk !=
dummy,
"Expected a new Moniker to be created\n");
2149 hres = IHlink_GetFriendlyName(cloned, HLFNAMEF_DEFAULT, &fnd_name);
2151 ok(fnd_name !=
NULL,
"Expected friendly name to be non-NULL\n");
2152 ok(
lstrcmpW(fnd_name,
name) == 0,
"Expected friendly name to be %s, was %s\n",
2158 hres = IHlink_GetHlinkSite(cloned, &fnd_site, &fnd_data);
2160 ok(fnd_site ==
NULL,
"Expected NULL site\n");
2161 ok(fnd_data == 4,
"Expected site data to be 4, was: %d\n", fnd_data);
2163 IHlink_Release(cloned);
2167 ok(
hres ==
S_OK,
"HlinkCreateFromMoniker failed: 0x%08x\n",
hres);
2173 ok(cloned !=
NULL,
"Should have gotten a clone\n");
2176 ok(fnd_mk !=
NULL,
"Expected non-null Moniker\n");
2177 ok(fnd_mk !=
dummy,
"Expected a new Moniker to be created\n");
2181 hres = IHlink_GetHlinkSite(cloned, &fnd_site, &fnd_data);
2183 ok(fnd_site == &
HlinkSite,
"Expected found site to be HlinkSite, was: %p\n", fnd_site);
2186 IHlink_Release(cloned);
2189 IMoniker_Release(
dummy);
2198 static const WCHAR testW[] = {
't',
'e',
's',
't',0};
2201 &IID_IHlink, (
void**)&hlink);
2204 str = (
void*)0xdeadbeef;
2205 hres = IHlink_GetTargetFrameName(hlink, &
str);
2209 hres = IHlink_SetTargetFrameName(hlink,
testW);
2212 str = (
void*)0xdeadbeef;
2213 hres = IHlink_GetTargetFrameName(hlink, &
str);
2218 hres = IHlink_SetTargetFrameName(hlink,
NULL);
2221 str = (
void*)0xdeadbeef;
2222 hres = IHlink_GetTargetFrameName(hlink, &
str);
2226 IHlink_Release(hlink);
2231 BINDINFO
bind_info = {
sizeof(BINDINFO)};
2248 0,
NULL, &IID_IHlink, (
void**)&hlink);
2263 SET_EXPECT(HBC_QueryInterface_IHlinkHistory);
2304 todo_wine ok(
hres == INET_E_OBJECT_NOT_FOUND,
"Expected INET_E_OBJECT_NOT_FOUND, got %08x\n",
hres);
2310 todo_wine ok(
hres == INET_E_OBJECT_NOT_FOUND,
"Expected INET_E_OBJECT_NOT_FOUND, got %08x\n",
hres);
2331 SET_EXPECT(HBC_QueryInterface_IHlinkHistory);
2333 SET_EXPECT(HBC_QueryInterface_IdentityUnmarshal);
2344 skip(
"interactive IHlink_Navigate tests\n");
2358 SET_EXPECT(HBC_QueryInterface_IHlinkHistory);
2399 ok(
hres == MK_S_ASYNCHRONOUS,
"Navigate failed: %#x\n",
hres);
2421 SET_EXPECT(HBC_QueryInterface_IHlinkHistory);
2456 ok(
hres == MK_S_ASYNCHRONOUS,
"Navigate failed: %#x\n",
hres);
2486 SET_EXPECT(HBC_QueryInterface_IHlinkHistory);
2519 IHlink_Release(hlink);
2520 IBindCtx_Release(pbc);
2548 ok(0,
"unexpected %p\n",
bc);
2555 ok(0,
"unexpected %p\n",
bc);
2561 ok(0,
"unexpected\n");
2568 ok(0,
"unexpected\n");
2593 static const WCHAR location[] = {
'l',
'o',
'c',
'a',
't',
'i',
'o',
'n',0};
const CLSID CLSID_IdentityUnmarshal
static ULONG WINAPI Moniker_AddRef(IMoniker *iface)
static HRESULT WINAPI hls_test_Moniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, REFIID riid, void **obj)
static const unsigned char expected_hlink_data5_ie7[]
static void test_reference(void)
static const WCHAR ref_monikerW[]
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
static HRESULT WINAPI Moniker_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
static ULONG WINAPI hlinkframe_Release(IHlinkFrame *iface)
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
static HRESULT WINAPI hls_site_Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, LPOLESTR *displayName)
static HRESULT WINAPI Moniker_Hash(IMoniker *iface, DWORD *pdwHash)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
static HRESULT WINAPI Moniker_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning)
#define CHECK_CALLED(func)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
static HRESULT WINAPI Moniker_GetTimeOfLastChange(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pFileTime)
#define CHECK_EXPECT(func)
static IServiceProvider ServiceProvider
static const unsigned char expected_hlink_data3[]
static void test_persist_save_data(const char *testname, IHlink *lnk, const unsigned char *expected_data, unsigned int expected_data_size, const unsigned char *expected_data_alt, unsigned int expected_data_alt_size)
static void test_HlinkGetSetMonikerReference(void)
BOOL GetDisplayName(LPCTSTR ServiceName)
interface IBindCtx * LPBC
static IMonikerVtbl hls_site_MonikerVtbl
static HRESULT WINAPI HlinkBrowseContext_GetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
GLdouble GLdouble GLdouble r
char * wine_dbgstr_w(const wchar_t *wstr)
static IBindStatusCallback * async_bind_callback
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
static IMoniker * r_getMonikerRef(unsigned line, IHlink *hlink, IMoniker *exp_tgt, const WCHAR *exp_loc, DWORD ref)
#define DEFINE_EXPECT(func)
static WCHAR bscb_holderW[]
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
static void test_StdHlink(void)
static IMoniker hls_ref_Moniker
#define getStringRef(h, t, l)
static IUnknown * HBC_object
static HRESULT WINAPI HlinkBrowseContext_GetHlink(IHlinkBrowseContext *iface, ULONG uHLID, IHlink **ppihl)
static ULONG WINAPI Moniker_Release(IMoniker *iface)
static void test_HlinkMoniker(void)
static HRESULT WINAPI Moniker_GetClassID(IMoniker *iface, CLSID *pClassID)
static ULONG WINAPI hls_Release(IHlinkSite *iface)
const char * wine_dbgstr_guid(const GUID *guid)
static HRESULT WINAPI Moniker_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther, IMoniker **ppmkPrefix)
static HRESULT WINAPI Moniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
static HRESULT WINAPI hls_site_Moniker_ComposeWith(IMoniker *iface, IMoniker *right, BOOL onlyIfNotGeneric, IMoniker **composite)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
vector< Header * > headers
static HRESULT WINAPI Moniker_Inverse(IMoniker *iface, IMoniker **ppmk)
static ULONG WINAPI HlinkBrowseContext_Release(IHlinkBrowseContext *iface)
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
static HRESULT WINAPI Moniker_RelativePathTo(IMoniker *iface, IMoniker *pmkOther, IMoniker **pmkRelPath)
static HRESULT WINAPI HlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfHLNF, LPCWSTR pwzJumpLocation)
static const WCHAR url2[]
static void test_HlinkClone(void)
HRESULT WINAPI HlinkClone(IHlink *hlink, REFIID riid, IHlinkSite *hls, DWORD site_data, void **obj)
static HRESULT WINAPI hls_ref_Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, LPOLESTR *displayName)
static HRESULT WINAPI Moniker_Load(IMoniker *iface, IStream *pStm)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static HRESULT WINAPI HlinkBrowseContext_GetObject(IHlinkBrowseContext *iface, IMoniker *pimk, BOOL fBindIfRootRegistered, IUnknown **ppiunk)
static void test_HlinkUpdateStackItem(void)
#define CHECK_EXPECT2(func)
static ULONG WINAPI hlinkframe_AddRef(IHlinkFrame *iface)
static void test_HlinkIsShortcut(void)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
static HRESULT WINAPI hls_OnNavigationComplete(IHlinkSite *iface, DWORD siteData, DWORD reserved, HRESULT error, LPCWSTR errorStr)
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID iid, IUnknown *out)
HRESULT WINAPI CreateItemMoniker(LPCOLESTR lpszDelim, LPCOLESTR lpszItem, IMoniker **ppmk)
static HRESULT WINAPI HlinkBrowseContext_Close(IHlinkBrowseContext *iface, DWORD reserved)
static IBindStatusCallbackEx bsc
static int Save(const char **args)
static ULONG WINAPI HlinkBrowseContext_AddRef(IHlinkBrowseContext *iface)
static const unsigned char expected_hlink_data4[]
static HRESULT WINAPI HlinkBrowseContext_QueryHlink(IHlinkBrowseContext *iface, DWORD grfHLQF, ULONG uHLID)
static const unsigned char expected_hlink_data2[]
static HRESULT WINAPI hlinkframe_UpdateHlink(IHlinkFrame *iface, ULONG uHLID, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name)
HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR pwzTarget, LPCWSTR pwzLocation, IHlinkSite *pihlsite, DWORD dwSiteData, IHlinkFrame *pihlframe, DWORD grfHLNF, LPBC pibc, IBindStatusCallback *pibsc, IHlinkBrowseContext *pihlbc)
static HRESULT WINAPI Moniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
#define setStringRef(h, f, t, l)
static const unsigned char expected_hlink_data[]
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
static void test_HlinkResolveMonikerForData(void)
static HRESULT WINAPI Moniker_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *pcbSize)
static const unsigned char expected_hlink_data2_ie7[]
static const unsigned char expected_hlink_data3_ie7[]
static void test_persist(void)
static const unsigned char expected_hlink_data6[]
HRESULT WINAPI HlinkCreateFromString(LPCWSTR pwzTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, REFIID riid, void **ppvObj)
static const WCHAR site_monikerW[]
static HRESULT WINAPI Moniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppv)
static void test_special_reference(void)
static LONG browse_ctx_refs
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD reserved, IBinding *binding)
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
static IHlinkFrame testframe
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
static ULONG WINAPI HlinkTarget_Release(IHlinkTarget *iface)
HRESULT WINAPI HlinkParseDisplayName(LPBC pibc, LPCWSTR pwzDisplayName, BOOL fNoForceAbs, ULONG *pcchEaten, IMoniker **ppimk)
static HRESULT WINAPI hls_QueryInterface(IHlinkSite *iface, REFGUID iid, void **obj)
HRESULT WINAPI CreateFileMoniker(LPCOLESTR lpszPathName, IMoniker **ppmk)
static HRESULT WINAPI HlinkBrowseContext_OnNavigateHlink(IHlinkBrowseContext *iface, DWORD grfHLNF, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, ULONG *puHLID)
static HRESULT WINAPI Moniker_BindToObject(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppv)
static HRESULT WINAPI hls_ReadyToNavigate(IHlinkSite *iface, DWORD siteData, DWORD reserved)
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR pwzAdditionalHeaders, HWND phwnd, LPCWSTR pszUsername, LPCWSTR pszPassword, IUnknown *punkOuter, REFIID riid, void **ppv)
static void test_HlinkGetSetStringReference(void)
static HRESULT WINAPI HlinkTarget_QueryInterface(IHlinkTarget *iface, REFIID riid, void **ppv)
static ULONG WINAPI hls_AddRef(IHlinkSite *iface)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame *frame, IHlinkBrowseContext *bc, ULONG hlid, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name)
static HRESULT WINAPI Moniker_ComposeWith(IMoniker *iface, IMoniker *pmkRight, BOOL fOnlyIfNotGeneric, IMoniker **ppnkComposite)
const GUID IID_IPersistStream
static void test_Hlink_Navigate(void)
static HRESULT WINAPI HlinkBrowseContext_QueryInterface(IHlinkBrowseContext *iface, REFIID riid, void **ppv)
static void test_HlinkSite(void)
static IBindStatusCallbackVtbl BindStatusCallbackVtbl
static IHlinkSiteVtbl HlinkSiteVtbl
static HRESULT WINAPI Moniker_IsSystemMoniker(IMoniker *iface, DWORD *pdwMksys)
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
static void test_HlinkCreateExtensionServices(void)
T1_FIELD_DICT_PRIVATE password
static HRESULT WINAPI HlinkBrowseContext_SetCurrentHlink(IHlinkBrowseContext *iface, ULONG uHLID)
static HRESULT WINAPI hlinkframe_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *bsc, IHlink *navigate)
static HRESULT WINAPI HlinkBrowseContext_Revoke(IHlinkBrowseContext *iface, DWORD dwRegister)
static HRESULT WINAPI HlinkBrowseContext_SetInitialHlink(IHlinkBrowseContext *iface, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
#define memcpy(s1, s2, n)
static IHlinkSite HlinkSite
MIXER_STATUS Enum(IN PVOID EnumContext, IN ULONG DeviceIndex, OUT LPWSTR *DeviceName, OUT PHANDLE OutHandle, OUT PHANDLE OutKey)
static IHlinkTargetVtbl HlinkTargetVtbl
static HRESULT WINAPI HlinkTarget_GetBrowseContext(IHlinkTarget *iface, IHlinkBrowseContext **ppihlbc)
static const unsigned char expected_hlink_data_ie7[]
static HRESULT WINAPI Moniker_IsDirty(IMoniker *iface)
static IMonikerVtbl MonikerVtbl
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
static IMonikerVtbl hls_ref_MonikerVtbl
static ULONG WINAPI HlinkTarget_AddRef(IHlinkTarget *iface)
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface, REFIID riid, void **ppv)
static const unsigned char expected_hlink_data5[]
static HRESULT WINAPI Moniker_Enum(IMoniker *iface, BOOL fForwrd, IEnumMoniker **ppenumMoniker)
#define REGDB_E_CLASSNOTREG
static HRESULT WINAPI hlinkframe_SetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext *bc)
static HRESULT WINAPI hlinkframe_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name, DWORD reserved)
static const WCHAR emptyW[]
static IHlinkFrameVtbl hlinkframevtbl
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
DEFINE_GUID(CLSID_IdentityUnmarshal, 0x0000001b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)
static HRESULT WINAPI Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName)
static HRESULT WINAPI hlinkframe_GetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext **bc)
HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference)
static const WCHAR winehq_404W[]
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
static HRESULT WINAPI HlinkBrowseContext_Clone(IHlinkBrowseContext *iface, IUnknown *piunkOuter, REFIID riid, IUnknown **ppiunkObj)
static const WCHAR friendly_name[]
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *bind_flags, BINDINFO *bind_info)
static HRESULT WINAPI HlinkBrowseContext_Register(IHlinkBrowseContext *iface, DWORD reserved, IUnknown *piunk, IMoniker *pimk, DWORD *pdwRegister)
static IHlinkBrowseContext HlinkBrowseContext
static IHlinkTarget HlinkTarget
static HRESULT WINAPI Moniker_Save(IMoniker *iface, IStream *pStm, BOOL fClearDirty)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static HRESULT WINAPI hlinkframe_QueryInterface(IHlinkFrame *iface, REFIID riid, void **obj)
#define getMonikerRef(h, t, l, r)
static void test_HashLink(void)
HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER pimkReference, DWORD reserved, LPBC pibc, ULONG cFmtetc, FORMATETC *rgFmtetc, IBindStatusCallback *pibsc, LPMONIKER pimkBase)
static HRESULT WINAPI hls_GetMoniker(IHlinkSite *iface, DWORD siteData, DWORD assign, DWORD which, IMoniker **pmk)
static IInternetBindInfo bind_info
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
static void r_setMonikerRef(unsigned line, IHlink *hlink, DWORD flags, IMoniker *tgt, const WCHAR *loc)
static const WCHAR winehq_urlW[]
static HRESULT WINAPI HlinkBrowseContext_SetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
HRESULT WINAPI HlinkCreateFromMoniker(IMoniker *pimkTrgt, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, REFIID riid, void **ppvObj)
static LONG bind_callback_refs
static void r_setStringRef(unsigned line, IHlink *hlink, DWORD flags, const WCHAR *tgt, const WCHAR *loc)
static IServiceProviderVtbl ServiceProviderVtbl
static WCHAR BSCBHolder[]
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static void test_HlinkParseDisplayName(void)
static HRESULT WINAPI HlinkTarget_SetBrowseContext(IHlinkTarget *iface, IHlinkBrowseContext *pihlbc)
static void r_getStringRef(unsigned line, IHlink *hlink, const WCHAR *exp_tgt, const WCHAR *exp_loc)
static HRESULT WINAPI HlinkBrowseContext_EnumNavigationStack(IHlinkBrowseContext *iface, DWORD dwReserved, DWORD grfHLFNAMEF, IEnumHLITEM **ppienumhlitem)
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hr, const WCHAR *error)
static IHttpNegotiate2 http_negotiate
static HRESULT WINAPI hls_QueryService(IHlinkSite *iface, DWORD siteData, REFGUID service, REFIID riid, IUnknown **punk)
static HRESULT WINAPI HlinkBrowseContext_UpdateHlink(IHlinkBrowseContext *iface, ULONG uHLID, IMoniker *pimkTarget, LPCWSTR location, LPCWSTR friendly_name)
static HRESULT WINAPI HlinkTarget_GetFriendlyName(IHlinkTarget *iface, LPCWSTR pwzLocation, LPWSTR *ppwzFriendlyName)
static HRESULT WINAPI HlinkTarget_GetMoniker(IHlinkTarget *iface, LPCWSTR pwzLocation, DWORD dwAssign, IMoniker **ppimkLocation)
HRESULT WINAPI HlinkIsShortcut(LPCWSTR pwzFileName)
static HRESULT WINAPI Moniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppv)
#define setMonikerRef(h, f, t, l)
static HRESULT WINAPI hls_test_Moniker_IsSystemMoniker(IMoniker *iface, DWORD *mksys)
static IHlinkBrowseContextVtbl HlinkBrowseContextVtbl
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define IsEqualIID(riid1, riid2)
static const WCHAR testW[]
static IMoniker hls_site_Moniker
GLuint const GLchar * name