*/
class CLayerUIPropPage :
+ public CPropertyPageImpl<CLayerUIPropPage>,
public CComCoClass<CLayerUIPropPage, &CLSID_CLayerUIPropPage>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
public IShellExtInit,
// IShellPropSheetExt
- STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
+ STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
+ {
+ HPROPSHEETPAGE hPage = Create();
+ if (hPage && !pfnAddPage(hPage, lParam))
+ DestroyPropertySheetPage(hPage);
+
+ return S_OK;
+ }
+
STDMETHODIMP ReplacePage(UINT, LPFNADDPROPSHEETPAGE, LPARAM)
{
return E_NOTIMPL;
}
+ VOID OnPageAddRef()
+ {
+ InterlockedIncrement(&g_ModuleRefCnt);
+ }
+
+ VOID OnPageRelease()
+ {
+ InterlockedDecrement(&g_ModuleRefCnt);
+ }
+
HRESULT InitFile(PCWSTR Filename);
- INT_PTR InitDialog(HWND hWnd);
- INT_PTR OnCommand(HWND hWnd, WORD id);
- void UpdateControls(HWND hWnd);
- INT_PTR DisableControls(HWND hWnd);
+ void UpdateControls();
+ INT_PTR DisableControls();
BOOL HasChanges() const;
- void OnRefresh(HWND hWnd);
- void OnApply(HWND hWnd);
+ int OnSetActive();
+ int OnApply();
+ LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+ LRESULT OnCtrlCommand(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
+ LRESULT OnEditModes(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
+ LRESULT OnClickNotify(INT uCode, LPNMHDR hdr, BOOL& bHandled);
static INT_PTR CALLBACK PropDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK EditModesProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
protected:
CString m_Filename;
BOOL m_IsSfcProtected;
CSimpleArray<CString> m_RegistryCustomLayers, m_CustomLayers;
public:
+ enum { IDD = IDD_ACPPAGESHEET };
+
+ BEGIN_MSG_MAP(CLayerUIPropPage)
+ MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
+ COMMAND_RANGE_HANDLER(IDC_CHKRUNCOMPATIBILITY, IDC_CHKDISABLEVISUALTHEMES, OnCtrlCommand)
+ COMMAND_ID_HANDLER(IDC_EDITCOMPATIBILITYMODES, OnEditModes)
+ NOTIFY_CODE_HANDLER(NM_CLICK, OnClickNotify)
+ NOTIFY_CODE_HANDLER(NM_RETURN, OnClickNotify)
+ CHAIN_MSG_MAP(CPropertyPageImpl<CLayerUIPropPage>)
+ END_MSG_MAP()
+
DECLARE_REGISTRY_RESOURCEID(IDR_ACPPAGE)
DECLARE_NOT_AGGREGATABLE(CLayerUIPropPage)