When a PropertySheet fails to init, that fact is being logged
and it shows an empty page, but it can't be closed.
Handle second failure properly by using FAILED_UNEXPECTEDLY macro.
CORE-18333
{
pFileDefExt->AddRef(); // CreateInstance returns object with 0 ref count
hr = pFileDefExt->Initialize(pidlFolder, pDataObj, NULL);
{
pFileDefExt->AddRef(); // CreateInstance returns object with 0 ref count
hr = pFileDefExt->Initialize(pidlFolder, pDataObj, NULL);
+ if (!FAILED_UNEXPECTEDLY(hr))
{
hr = pFileDefExt->AddPages(AddPropSheetPageCallback, (LPARAM)&Header);
{
hr = pFileDefExt->AddPages(AddPropSheetPageCallback, (LPARAM)&Header);
+ if (FAILED_UNEXPECTEDLY(hr))
+ {
ERR("AddPages failed\n");
ERR("AddPages failed\n");
+ return FALSE;
+ }
+ }
+ else
+ {
ERR("Initialize failed\n");
ERR("Initialize failed\n");
}
LoadPropSheetHandlers(wszPath, &Header, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj);
}
LoadPropSheetHandlers(wszPath, &Header, MAX_PROPERTY_SHEET_PAGE - 1, hpsxa, pDataObj);