HRESULT hr = S_OK;
- TRACE("(%p)->(cidl=%d apidl=%p mask=0x%08lx)\n", This, cidl, apidl, *rgfInOut);
+ TRACE("(%p)->(cidl=%d apidl=%p mask=%p (0x%08lx))\n",
+ This, cidl, apidl, rgfInOut, rgfInOut ? *rgfInOut : 0);
- if ((!cidl) ||(!apidl) ||(!rgfInOut))
- return E_INVALIDARG;
+ if (!rgfInOut)
+ return E_INVALIDARG;
+ if (cidl && !apidl)
+ return E_INVALIDARG;
if (*rgfInOut == 0)
*rgfInOut = ~0;
apidl++;
cidl--;
}
+ /* make sure SFGAO_VALIDATE is cleared, some apps depend on that */
+ *rgfInOut &= ~SFGAO_VALIDATE;
TRACE("-- result=0x%08lx\n", *rgfInOut);
return hr;