From 873905ac43151a6b1c5df93e4a0bea791549bf65 Mon Sep 17 00:00:00 2001 From: Rob Shearman Date: Wed, 23 May 2007 19:04:13 +0100 Subject: [PATCH] hlink: Fix HlinkCreateFromString to create a URL moniker if the input target is a URL. --- dlls/hlink/hlink_main.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/dlls/hlink/hlink_main.c b/dlls/hlink/hlink_main.c index 1a595ae4bc1..3a4632fe757 100644 --- a/dlls/hlink/hlink_main.c +++ b/dlls/hlink/hlink_main.c @@ -134,17 +134,22 @@ HRESULT WINAPI HlinkCreateFromString( LPCWSTR pwzTarget, LPCWSTR pwzLocation, if (FAILED(r)) { - FIXME("ParseDisplayName failed, falling back to file\n"); - r = CreateFileMoniker(pwzTarget,&pTgtMk); + LPCWSTR p = strchrW(pwzTarget, ':'); + if (p && (p - pwzTarget > 1)) + r = CreateURLMoniker(NULL, pwzTarget, &pTgtMk); + else + r = CreateFileMoniker(pwzTarget,&pTgtMk); } - if (pTgtMk) + if (FAILED(r)) { - IHlink_SetMonikerReference(hl, 0, pTgtMk, pwzLocation); - IMoniker_Release(pTgtMk); + ERR("couldn't create moniker for %s, failed with error 0x%08x\n", + debugstr_w(pwzTarget), r); + return r; } - else - FIXME("Unable to come up with a moniker, expect problems\n"); + + IHlink_SetMonikerReference(hl, 0, pTgtMk, pwzLocation); + IMoniker_Release(pTgtMk); IHlink_SetStringReference(hl, HLINKSETF_TARGET, pwzTarget, NULL); }