resubmit: implement hlink.dll

Mike McCormack mike at codeweavers.com
Mon Sep 19 19:01:08 CDT 2005


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



More information about the wine-devel mailing list