[PATCH 3/4] shell32: Add IQueryInfo to more shellfolder

Nikolay Sivov bunglehead at gmail.com
Fri May 18 07:35:52 CDT 2012

On 5/18/2012 14:06, Detlef Riekenberg wrote:
> +        } else if (IsEqualIID(riid,&IID_IQueryInfo)&&  (cidl == 1)) {
> +            pidl = ILCombine (This->pidlRoot, apidl[0]);
> +            pObj = (IUnknown *) IQueryInfo_Constructor (pidl);
> +            SHFree (pidl);
> +            hr = S_OK;
>           } else {
Patch doesn't have a cast here, and looks really redundant. If you 
really need that it's better to make IQueryInfo_Constructor look more 
like class factory call - with HRESULT and void** parameter.

Also it looks like you always need to combine pidls and cleanup after 
that, I think it's better to combine them in constructor and keep result 
in QueryInfo impl. (instead of making a clone). So constructor could 
look like "HRESULT constructor(root, pidl, pObj)".

More information about the wine-devel mailing list