windows-nt/Source/XPSP1/NT/shell/osshell/cpls/usb/proppage.h
2020-09-26 16:20:57 +08:00

136 lines
4.5 KiB
C++

/*******************************************************************************
*
* (C) COPYRIGHT MICROSOFT CORP., 1993-1995
* TITLE: PROPPAGE.H
* VERSION: 1.0
* AUTHOR: jsenior
* DATE: 10/28/1998
*
********************************************************************************
*
* CHANGE LOG:
*
* DATE REV DESCRIPTION
* ---------- ------- ----------------------------------------------------------
* 10/28/1998 jsenior Original implementation.
*
*******************************************************************************/
#ifndef _USBPROPERTYPAGE_H
#define _USBPROPERTYPAGE_H
#define USBWM_NOTIFYREFRESH (WM_USER + 501)
#ifndef WINNT
#define HELPFILE "windows.hlp"
#else
#define HELPFILE "devmgr.hlp"
#endif //WINNT
#include "UsbItem.h"
#include "debug.h"
extern HINSTANCE gHInst;
#define IDH_NOHELP (DWORD(-1))
class UsbPropertyPage {
public:
UsbPropertyPage(HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData);
UsbPropertyPage(UsbItem *);
UsbPropertyPage(HWND, LPCSTR);
virtual ~UsbPropertyPage()
{ if (rootItem) { DeleteChunk(rootItem); delete rootItem; } }
HPROPSHEETPAGE Create();
static void SetHandle(HANDLE HInst) {if (!hInst) hInst = HInst;};
static void DisplayPPSelectedListItem(HWND main, HWND hList);
static void DisplayPPSelectedTreeItem(HWND main, HWND hList);
VOID CreateAsChild(HWND hWndParent, HWND hCreateOn, UsbItem *item);
VOID CreateIndependent();
BOOL DestroyChild();
BOOL SizeWindow(int X, int Y, int W, int H) {
return hwnd ? MoveWindow(hwnd, X, Y, W, H, TRUE) : FALSE; }
protected:
const DWORD *HelpIds;
static USBINT_PTR APIENTRY StaticDialogProc(IN HWND hDlg,
IN UINT uMessage,
IN WPARAM wParam,
IN LPARAM lParam);
static USBINT_PTR APIENTRY AppletDialogProc(IN HWND hDlg,
IN UINT uMessage,
IN WPARAM wParam,
IN LPARAM lParam);
static UINT CALLBACK StaticDialogCallback(HWND Hwnd,
UINT Msg,
LPPROPSHEETPAGE Page);
virtual USBINT_PTR APIENTRY ActualDialogProc(IN HWND hDlg,
IN UINT uMessage,
IN WPARAM wParam,
IN LPARAM lParam)
{ return FALSE; } // DefDlgProc(hDlg, uMessage, wParam, lParam); }
virtual BOOL OnCommand(INT wNotifyCode, INT wID, HWND hCtl) {return 1;}
virtual BOOL OnInitDialog() =0;
virtual BOOL OnNotify(HWND hDlg, int nID, LPNMHDR pnmh);
BOOL OnContextMenu(HWND HwndControl, WORD Xpos, WORD Ypos);
void OnHelp(HWND ParentHwnd, LPHELPINFO HelpInfo);
static void ShowPropertyPage(HWND parent, UsbItem *usbItem);
BOOL GetDeviceName();
static HANDLE hInst;
String deviceName;
HWND hwnd;
HWND hWndParent;
UINT dlgResource;
PROPSHEETPAGE psp;
HDEVINFO deviceInfoSet;
PSP_DEVINFO_DATA deviceInfoData;
UsbImageList imageList;
UsbItem *rootItem;
//
// This should be null if using as a proppage. This is used when using this
// class as a child window in the usbapplet class.
//
UsbItem *preItem;
};
class GenericPage : public UsbPropertyPage {
public:
GenericPage(UsbItem *item) : UsbPropertyPage(item) {Initialize();}
GenericPage(HWND HWndParent, LPCSTR DevName) : UsbPropertyPage(HWndParent, DevName) {Initialize();}
GenericPage(HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData) :
UsbPropertyPage(DeviceInfoSet, DeviceInfoData) {Initialize();}
protected:
void Refresh();
BOOL OnInitDialog();
VOID Initialize();
UsbItem *rootItem;
};
class RootPage : public UsbPropertyPage {
public:
RootPage(UsbItem *item) : UsbPropertyPage(item) {Initialize();}
protected:
void Refresh();
BOOL OnInitDialog();
VOID Initialize();
BOOL ErrorCheckingEnabled;
BOOL OnCommand(INT wNotifyCode, INT wID, HWND hCtl) ;
};
#endif // _USBPROPERTYPAGE_H