windows-nt/Source/XPSP1/NT/shell/ext/cdfview/proppgs.h
2020-09-26 16:20:57 +08:00

97 lines
2.2 KiB
C++

//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
//
// proppgs.h
//
// IShellPropSheetExt menu interface for items.
//
// History:
//
// 3/26/97 edwardp Created.
//
////////////////////////////////////////////////////////////////////////////////
//
// Check for previous includes of this file.
//
#ifndef _PROPPGS_H_
#define _PROPPGS_H_
//
// Class definition for the item context menu class.
//
class CPropertyPages : public IShellPropSheetExt,
public IShellExtInit
{
//
// Methods
//
public:
// Constructor
CPropertyPages(void);
// IUnknown
STDMETHODIMP QueryInterface(REFIID, void **);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IShellPropSheetExt
STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
STDMETHODIMP ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam);
// IShellExtInit
STDMETHODIMP Initialize(LPCITEMIDLIST pidl, LPDATAOBJECT pdobj, HKEY hkey);
private:
// Destructor.
~CPropertyPages(void);
// Helper functions.
BOOL OnInitDialog(HWND hdlg);
BOOL OnCommand(HWND hdlg, WORD wNotifyCode, WORD wID, HWND hwndCtl);
BOOL OnNotify(HWND hdlg, WPARAM idCtrl, LPNMHDR pnmh);
void OnDestroy(HWND hdlg);
void ShowOfflineSummary(HWND hdlg, BOOL bShow);
void AddRemoveSubsPages(HWND hdlg, BOOL bAdd);
HRESULT InitializeSubsMgr2();
static INT_PTR PropSheetDlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
static UINT PropSheetCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
inline static CPropertyPages *GetThis(HWND hdlg)
{
CPropertyPages *pThis = (CPropertyPages*) GetWindowLongPtr(hdlg, DWLP_USER);
ASSERT(NULL != pThis);
return pThis;
}
//
// Member variables.
//
private:
ULONG m_cRef;
ISubscriptionMgr2* m_pSubscriptionMgr2;
IDataObject* m_pInitDataObject;
TCHAR m_szPath[MAX_PATH];
TCHAR m_szURL[INTERNET_MAX_URL_LENGTH];
WORD m_wHotkey;
BOOL m_bStartSubscribed;
};
#endif // _PROPPGS_H_