Vista shell extension and WM_INITDIALOG
-
I wrote a property-page shell extension in ATL and it works fine in Windows XP. Lately I have been working on updating it for Vista's UAC and found that the page only gets a WM_INITDIALOG the first time it appears. If I kill off and restart Explorer, then open the property sheet, the page gets a WM_INITDIALOG and initializes itself correctly. No problem. But then if I dismiss the property sheet and re-open it, on the same or a different object, the page gets no WM_INITDIALOG. How do I get the WM_INITDIALOG back? Is there a value I should be returning from IShellExtInit::Initialize or IShellPropSheetExt::AddPages or somewhere? The "PropSheetPageProc" callback is being called with PSPCB_CREATE each time the property sheet loads, WM_INITDIALOG or not. Are we expected to do dialog-initialization there? I don't see how, since there's no dialog-window handle available in PropSheetPageProc (the docs say the passed-in hWnd is always NULL).