Christian Costa wrote:
>
> Hi,
>
> This patch adds implementation for the IFilterMapper interface.

Nice. I have few comments (see below).

> However filters registered with this interface require some work in
> devenum to
> be seen from application. This will be done when time permits.

Ok. I had assumed devenum was complete, but obviously not. Does it spit out
any fixme's?

...

> @@ -879,7 +893,7 @@
>              if (SUCCEEDED(hrSub))
>                  hrSub =
> ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat,
> &pEnum, 0);
>
> -            if (SUCCEEDED(hrSub))
> +            if (SUCCEEDED(hrSub) && (hrSub == S_OK))

You can remove the SUCCEEDED(hrSub) completely here.

...

> +        if (SUCCEEDED(hrSub))
> +     {
> +         len = (strlenW((WCHAR*)&V_UNION(&var, bstrVal))+1) *
> sizeof(WCHAR);
> +         if (!(regfilters[idx].Name = CoTaskMemAlloc(len*2)))
> +             hr = E_OUTOFMEMORY;
> +     }
> +
> +        if (SUCCEEDED(hrSub))
> +     {
> +         memcpy(regfilters[idx].Name, &V_UNION(&var, bstrVal), len);
> +         regfilters[idx].Clsid = clsid;
> +         idx++;
> +     }

Indentation messed up a bit here and many other places.

...
> +    if (cFetched > 0)
> +    {
> +     for(i = 0; i < cFetched; i++) {
> +         /* The string in the REGFILTER structure must be
> allocated in the same block as the REGFILTER structure itself */
> +            ppRegFilter[i] =
> (REGFILTER*)CoTaskMemAlloc(sizeof(REGFILTER)+(strlenW(This->RegFil
> ters[i].Name)+1)*sizeof(WCHAR));
> +         if (!ppRegFilter[i]) {
> +             while(i) {
> +                 CoTaskMemFree(ppRegFilter[--i]);
> +                 ppRegFilter[i] = NULL;
> +             }
> +             return E_OUTOFMEMORY;
> +         }
> +         ppRegFilter[i]->Clsid = This->RegFilters[i].Clsid;
> +         ppRegFilter[i]->Name =
> (WCHAR*)((char*)ppRegFilter[i]+sizeof(REGFILTER));
> +         CopyMemory(ppRegFilter[i]->Name,
> This->RegFilters[i].Name,
> (strlenW(This->RegFilters[i].Name)+1)*sizeof(WCHAR));
> +     }

Please choose one style of bracket placement and stick to it (this occurs in
a few places too).

Other than these things, it looks fine.

Rob



Reply via email to