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; \
89DEFINE_GUID(
CLSID_IdentityUnmarshal,0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
90DEFINE_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);
1801static const WCHAR site_monikerW[] = {
'S',
'I',
'T',
'E',
'_',
'M',
'O',
'N',
'I',
'K',
'E',
'R',0};
1802static 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};
BOOL GetDisplayName(LPCTSTR ServiceName)
const CLSID CLSID_IdentityUnmarshal
static const WCHAR empty[]
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static const IHlinkTargetVtbl HlinkTargetVtbl
static HRESULT WINAPI HlinkTarget_QueryInterface(IHlinkTarget *iface, REFIID riid, void **ppv)
static HRESULT WINAPI HlinkTarget_GetBrowseContext(IHlinkTarget *iface, IHlinkBrowseContext **ppihlbc)
static HRESULT WINAPI HlinkTarget_GetFriendlyName(IHlinkTarget *iface, LPCWSTR pwzLocation, LPWSTR *ppwzFriendlyName)
static HRESULT WINAPI HlinkTarget_SetBrowseContext(IHlinkTarget *iface, IHlinkBrowseContext *pihlbc)
static ULONG WINAPI HlinkTarget_AddRef(IHlinkTarget *iface)
static HRESULT WINAPI HlinkTarget_GetMoniker(IHlinkTarget *iface, LPCWSTR pwzLocation, DWORD dwAssign, IMoniker **ppimkLocation)
static ULONG WINAPI HlinkTarget_Release(IHlinkTarget *iface)
static HRESULT WINAPI HlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfHLNF, LPCWSTR pwzJumpLocation)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
MIXER_STATUS Enum(IN PVOID EnumContext, IN ULONG DeviceIndex, OUT LPWSTR *DeviceName, OUT PHANDLE OutHandle, OUT PHANDLE OutKey)
HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR pwzAdditionalHeaders, HWND phwnd, LPCWSTR pszUsername, LPCWSTR pszPassword, IUnknown *punkOuter, REFIID riid, void **ppv)
HRESULT WINAPI CreateFileMoniker(LPCOLESTR lpszPathName, IMoniker **ppmk)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
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)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
HRESULT WINAPI HlinkNavigateToStringReference(LPCWSTR pwzTarget, LPCWSTR pwzLocation, IHlinkSite *pihlsite, DWORD dwSiteData, IHlinkFrame *pihlframe, DWORD grfHLNF, LPBC pibc, IBindStatusCallback *pibsc, IHlinkBrowseContext *pihlbc)
HRESULT WINAPI HlinkCreateFromString(LPCWSTR pwzTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, REFIID riid, void **ppvObj)
HRESULT WINAPI HlinkClone(IHlink *hlink, REFIID riid, IHlinkSite *hls, DWORD site_data, void **obj)
HRESULT WINAPI HlinkParseDisplayName(LPBC pibc, LPCWSTR pwzDisplayName, BOOL fNoForceAbs, ULONG *pcchEaten, IMoniker **ppimk)
HRESULT WINAPI HlinkIsShortcut(LPCWSTR pwzFileName)
HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER pimkReference, DWORD reserved, LPBC pibc, ULONG cFmtetc, FORMATETC *rgFmtetc, IBindStatusCallback *pibsc, LPMONIKER pimkBase)
HRESULT WINAPI HlinkCreateFromMoniker(IMoniker *pimkTrgt, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, REFIID riid, void **ppvObj)
HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference)
HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame *frame, IHlinkBrowseContext *bc, ULONG hlid, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name)
static const WCHAR emptyW[]
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
HRESULT WINAPI CreateItemMoniker(LPCOLESTR lpszDelim, LPCOLESTR lpszItem, IMoniker **ppmk)
static const WCHAR testW[]
#define memcpy(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static const WCHAR friendly_name[]
static HRESULT WINAPI Moniker_GetClassID(IMoniker *iface, CLSID *pClassID)
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static HRESULT WINAPI Moniker_RelativePathTo(IMoniker *iface, IMoniker *pmkOther, IMoniker **pmkRelPath)
static IHlinkFrame testframe
static HRESULT WINAPI Moniker_Enum(IMoniker *iface, BOOL fForwrd, IEnumMoniker **ppenumMoniker)
static HRESULT WINAPI Moniker_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
static HRESULT WINAPI Moniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppv)
static const unsigned char expected_hlink_data4[]
static const unsigned char expected_hlink_data6[]
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hr, const WCHAR *error)
static HRESULT WINAPI HlinkBrowseContext_GetHlink(IHlinkBrowseContext *iface, ULONG uHLID, IHlink **ppihl)
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *bind_flags, BINDINFO *bind_info)
static void r_setStringRef(unsigned line, IHlink *hlink, DWORD flags, const WCHAR *tgt, const WCHAR *loc)
static HRESULT WINAPI Moniker_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *pcbSize)
static const unsigned char expected_hlink_data_ie7[]
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
static const unsigned char expected_hlink_data[]
static HRESULT WINAPI hls_ReadyToNavigate(IHlinkSite *iface, DWORD siteData, DWORD reserved)
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
static ULONG WINAPI hlinkframe_AddRef(IHlinkFrame *iface)
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD reserved, IBinding *binding)
static IHlinkBrowseContextVtbl HlinkBrowseContextVtbl
static HRESULT WINAPI HlinkBrowseContext_Register(IHlinkBrowseContext *iface, DWORD reserved, IUnknown *piunk, IMoniker *pimk, DWORD *pdwRegister)
static HRESULT WINAPI Moniker_Inverse(IMoniker *iface, IMoniker **ppmk)
static const WCHAR winehq_404W[]
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
static IBindStatusCallback * async_bind_callback
static HRESULT WINAPI HlinkBrowseContext_Close(IHlinkBrowseContext *iface, DWORD reserved)
static HRESULT WINAPI HlinkBrowseContext_Revoke(IHlinkBrowseContext *iface, DWORD dwRegister)
static HRESULT WINAPI Moniker_Hash(IMoniker *iface, DWORD *pdwHash)
static HRESULT WINAPI Moniker_ComposeWith(IMoniker *iface, IMoniker *pmkRight, BOOL fOnlyIfNotGeneric, IMoniker **ppnkComposite)
static HRESULT WINAPI HlinkBrowseContext_UpdateHlink(IHlinkBrowseContext *iface, ULONG uHLID, IMoniker *pimkTarget, LPCWSTR location, LPCWSTR friendly_name)
static HRESULT WINAPI hls_QueryInterface(IHlinkSite *iface, REFGUID iid, void **obj)
static IMonikerVtbl hls_site_MonikerVtbl
static const unsigned char expected_hlink_data5_ie7[]
static void test_HlinkGetSetStringReference(void)
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 HRESULT WINAPI hls_QueryService(IHlinkSite *iface, DWORD siteData, REFGUID service, REFIID riid, IUnknown **punk)
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
static LONG bind_callback_refs
static IMonikerVtbl MonikerVtbl
static IServiceProvider ServiceProvider
#define CHECK_EXPECT(func)
static HRESULT WINAPI Moniker_Load(IMoniker *iface, IStream *pStm)
static HRESULT WINAPI HlinkBrowseContext_OnNavigateHlink(IHlinkBrowseContext *iface, DWORD grfHLNF, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, ULONG *puHLID)
static void test_StdHlink(void)
#define DEFINE_EXPECT(func)
static void test_HlinkIsShortcut(void)
static HRESULT WINAPI Moniker_GetTimeOfLastChange(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pFileTime)
static void test_HashLink(void)
#define getMonikerRef(h, t, l, r)
static ULONG WINAPI hlinkframe_Release(IHlinkFrame *iface)
static HRESULT WINAPI hls_GetMoniker(IHlinkSite *iface, DWORD siteData, DWORD assign, DWORD which, IMoniker **pmk)
static const WCHAR site_monikerW[]
static HRESULT WINAPI HlinkBrowseContext_Clone(IHlinkBrowseContext *iface, IUnknown *piunkOuter, REFIID riid, IUnknown **ppiunkObj)
static void r_setMonikerRef(unsigned line, IHlink *hlink, DWORD flags, IMoniker *tgt, const WCHAR *loc)
static HRESULT WINAPI Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName)
static IHlinkBrowseContext HlinkBrowseContext
static IMoniker * r_getMonikerRef(unsigned line, IHlink *hlink, IMoniker *exp_tgt, const WCHAR *exp_loc, DWORD ref)
static IHlinkSiteVtbl HlinkSiteVtbl
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
static const unsigned char expected_hlink_data2_ie7[]
static HRESULT WINAPI Moniker_IsSystemMoniker(IMoniker *iface, DWORD *pdwMksys)
static IHlinkSite HlinkSite
#define getStringRef(h, t, l)
static const unsigned char expected_hlink_data3[]
static IBindStatusCallbackVtbl BindStatusCallbackVtbl
static HRESULT WINAPI Moniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
static void test_HlinkUpdateStackItem(void)
static const WCHAR winehq_urlW[]
static const unsigned char expected_hlink_data3_ie7[]
static void r_getStringRef(unsigned line, IHlink *hlink, const WCHAR *exp_tgt, const WCHAR *exp_loc)
static void test_HlinkMoniker(void)
static void test_HlinkGetSetMonikerReference(void)
static void test_HlinkSite(void)
static HRESULT WINAPI hlinkframe_UpdateHlink(IHlinkFrame *iface, ULONG uHLID, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name)
static HRESULT WINAPI hls_test_Moniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, REFIID riid, void **obj)
static void test_reference(void)
static HRESULT WINAPI Moniker_Save(IMoniker *iface, IStream *pStm, BOOL fClearDirty)
static HRESULT WINAPI hls_site_Moniker_ComposeWith(IMoniker *iface, IMoniker *right, BOOL onlyIfNotGeneric, IMoniker **composite)
static HRESULT WINAPI HlinkBrowseContext_QueryInterface(IHlinkBrowseContext *iface, REFIID riid, void **ppv)
static HRESULT WINAPI hls_ref_Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, LPOLESTR *displayName)
static ULONG WINAPI hls_Release(IHlinkSite *iface)
static HRESULT WINAPI Moniker_BindToObject(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppv)
#define CHECK_EXPECT2(func)
static const WCHAR ref_monikerW[]
static IHlinkFrameVtbl hlinkframevtbl
#define setStringRef(h, f, t, l)
static const unsigned char expected_hlink_data2[]
static HRESULT WINAPI hlinkframe_QueryInterface(IHlinkFrame *iface, REFIID riid, void **obj)
static HRESULT WINAPI Moniker_IsDirty(IMoniker *iface)
static HRESULT WINAPI hlinkframe_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *bsc, IHlink *navigate)
static HRESULT WINAPI Moniker_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning)
static HRESULT WINAPI hls_site_Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *toLeft, LPOLESTR *displayName)
static HRESULT WINAPI Moniker_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther, IMoniker **ppmkPrefix)
#define CHECK_CALLED(func)
static IUnknown * HBC_object
static void test_HlinkCreateExtensionServices(void)
static IMoniker hls_site_Moniker
static HRESULT WINAPI hlinkframe_GetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext **bc)
static const unsigned char expected_hlink_data5[]
static HRESULT WINAPI HlinkBrowseContext_EnumNavigationStack(IHlinkBrowseContext *iface, DWORD dwReserved, DWORD grfHLFNAMEF, IEnumHLITEM **ppienumhlitem)
static HRESULT WINAPI hls_test_Moniker_IsSystemMoniker(IMoniker *iface, DWORD *mksys)
static LONG browse_ctx_refs
static ULONG WINAPI hls_AddRef(IHlinkSite *iface)
static HRESULT WINAPI HlinkBrowseContext_GetObject(IHlinkBrowseContext *iface, IMoniker *pimk, BOOL fBindIfRootRegistered, IUnknown **ppiunk)
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
static HRESULT WINAPI Moniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppv)
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID iid, IUnknown *out)
static IHlinkTarget HlinkTarget
static HRESULT WINAPI HlinkBrowseContext_GetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
static ULONG WINAPI HlinkBrowseContext_Release(IHlinkBrowseContext *iface)
static ULONG WINAPI Moniker_AddRef(IMoniker *iface)
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static IMonikerVtbl hls_ref_MonikerVtbl
static IMoniker hls_ref_Moniker
static IServiceProviderVtbl ServiceProviderVtbl
static void test_special_reference(void)
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
static HRESULT WINAPI HlinkBrowseContext_QueryHlink(IHlinkBrowseContext *iface, DWORD grfHLQF, ULONG uHLID)
static HRESULT WINAPI HlinkBrowseContext_SetInitialHlink(IHlinkBrowseContext *iface, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
static HRESULT WINAPI hls_OnNavigationComplete(IHlinkSite *iface, DWORD siteData, DWORD reserved, HRESULT error, LPCWSTR errorStr)
#define setMonikerRef(h, f, t, l)
static ULONG WINAPI Moniker_Release(IMoniker *iface)
static void test_persist(void)
static void test_HlinkResolveMonikerForData(void)
static HRESULT WINAPI HlinkBrowseContext_SetBrowseWindowInfo(IHlinkBrowseContext *iface, HLBWINFO *phlbwi)
static HRESULT WINAPI HlinkBrowseContext_SetCurrentHlink(IHlinkBrowseContext *iface, ULONG uHLID)
static HRESULT WINAPI Moniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface, REFIID riid, void **ppv)
static HRESULT WINAPI hlinkframe_SetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext *bc)
static void test_HlinkParseDisplayName(void)
static HRESULT WINAPI hlinkframe_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF, IMoniker *target, LPCWSTR location, LPCWSTR friendly_name, DWORD reserved)
static ULONG WINAPI HlinkBrowseContext_AddRef(IHlinkBrowseContext *iface)
static void test_Hlink_Navigate(void)
static void test_HlinkClone(void)
static IInternetBindInfo bind_info
static const WCHAR url2[]
static IHttpNegotiate2 http_negotiate
static IBindStatusCallbackEx bsc
static WCHAR BSCBHolder[]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
interface IBindCtx * LPBC
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IPersistStream
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
vector< Header * > headers
static WCHAR bscb_holderW[]
static int Save(const char **args)
#define REGDB_E_CLASSNOTREG