[QUARTZ] Add implementation for IFilterMapper interface

Robert Shearman R.J.Shearman at warwick.ac.uk
Sat Feb 28 08:55:19 CST 2004


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





More information about the wine-devel mailing list