00001
00002
00003
00004
00005 #ifndef __CPROP__
00006 #define __CPROP__
00007
00008 class AM_NOVTABLE CBasePropertyPage : public IPropertyPage, public CUnknown
00009 {
00010 protected:
00011
00012 LPPROPERTYPAGESITE m_pPageSite;
00013 HWND m_hwnd;
00014 HWND m_Dlg;
00015 BOOL m_bDirty;
00016 int m_TitleId;
00017 int m_DialogId;
00018
00019 static INT_PTR CALLBACK DialogProc(HWND hwnd,
00020 UINT uMsg,
00021 WPARAM wParam,
00022 LPARAM lParam);
00023
00024 private:
00025 BOOL m_bObjectSet ;
00026 public:
00027
00028 CBasePropertyPage(TCHAR *pName,
00029 LPUNKNOWN pUnk,
00030 int DialogId,
00031 int TitleId);
00032
00033 #ifdef UNICODE
00034 CBasePropertyPage(CHAR *pName,
00035 LPUNKNOWN pUnk,
00036 int DialogId,
00037 int TitleId);
00038 #endif
00039 virtual ~CBasePropertyPage() { };
00040 DECLARE_IUNKNOWN
00041
00042
00043
00044 virtual HRESULT OnConnect(IUnknown *pUnknown) { return NOERROR; };
00045 virtual HRESULT OnDisconnect() { return NOERROR; };
00046 virtual HRESULT OnActivate() { return NOERROR; };
00047 virtual HRESULT OnDeactivate() { return NOERROR; };
00048 virtual HRESULT OnApplyChanges() { return NOERROR; };
00049 virtual INT_PTR OnReceiveMessage(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
00050
00051
00052
00053 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,void **ppv);
00054 STDMETHODIMP_(ULONG) NonDelegatingRelease();
00055 STDMETHODIMP_(ULONG) NonDelegatingAddRef();
00056 STDMETHODIMP SetPageSite(LPPROPERTYPAGESITE pPageSite);
00057 STDMETHODIMP Activate(HWND hwndParent,LPCRECT prect,BOOL fModal);
00058 STDMETHODIMP Deactivate(void);
00059 STDMETHODIMP GetPageInfo(LPPROPPAGEINFO pPageInfo);
00060 STDMETHODIMP SetObjects(ULONG cObjects, LPUNKNOWN *ppUnk);
00061 STDMETHODIMP Show(UINT nCmdShow);
00062 STDMETHODIMP Move(LPCRECT prect);
00063 STDMETHODIMP IsPageDirty(void) { return m_bDirty ? S_OK : S_FALSE; }
00064 STDMETHODIMP Apply(void);
00065 STDMETHODIMP Help(LPCWSTR lpszHelpDir) { return E_NOTIMPL; }
00066 STDMETHODIMP TranslateAccelerator(LPMSG lpMsg) { return E_NOTIMPL; }
00067 };
00068
00069 #endif
00070