Re: resubmit: implement hlink.dll
Aric Stewart wrote:
+ if (r == S_OK);
I don't think you want to put a semi colon there.
+ { + if (pwzLocation) + IHlink_SetStringReference(*(IHlink**)ppvObj, HLINKSETF_LOCATION, + NULL, pwzLocation); + if (pwzFriendlyName) + IHlink_SetFriendlyName(*(IHlink**)ppvObj, pwzFriendlyName); + if (pihlsite) + IHlink_SetHlinkSite(*(IHlink**)ppvObj, pihlsite, dwSiteData); + if (pimkTrgt) + IHlink_SetMonikerReference(*(IHlink**)ppvObj, 0, pimkTrgt, + pwzLocation);
Rather than continually casting ppvObj, why not make a temporary variable of type IHlink?
+static HRESULT WINAPI IHlink_fnGetMonikerReference(IHlink* iface, + DWORD dwWhichRef, IMoniker **ppimkTarget, LPWSTR *ppwzLocation) +{ + IHlinkImpl *This = (IHlinkImpl*)iface; + + TRACE("(%p) -> (%li %p %p)\n",This, dwWhichRef, ppimkTarget, ppwzLocation); + + if(ppimkTarget) + { + if (This->Moniker) + *ppimkTarget = This->Moniker; + else if (This->Site) + IHlinkSite_GetMoniker(This->Site, This->SiteData, + OLEGETMONIKER_FORCEASSIGN, OLEWHICHMK_CONTAINER, + (LPVOID)ppimkTarget); + } + + return S_OK; +}
The above function doesn't look right. You don't use dwWhichRef or ppwzLocation, and you unconditionally return S_OK even when *ppimkTarget is uninitialized or IHlinkSite_GetMoniker fails. Mike
participants (1)
-
Mike McCormack