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

77 lines
2.1 KiB
C++

#ifndef GRPINFO_H_INCLUDED
#define GRPINFO_H_INCLUDED
// base implementation of the page/wizard object - handles state
class CGroupPageBase
{
public:
// Public interface (in the case where you're not using a derived class
CGroupPageBase(CUserInfo* pUserInfo, CDPA<CGroupInfo>* pGroupList);
~CGroupPageBase()
{
if (NULL != m_hBoldFont)
DeleteObject((HGDIOBJ) m_hBoldFont);
}
INT_PTR HandleGroupMessage(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL GetSelectedGroup(HWND hwnd, LPTSTR pszGroupOut, DWORD cchGroup, CUserInfo::GROUPPSEUDONYM* pgsOut);
protected:
void InitializeLocalGroupCombo(HWND hwndCombo);
void SetGroupDescription(HWND hwndCombo, HWND hwndEdit);
void BoldGroupNames(HWND hwnd);
void SelectGroup(HWND hwnd, LPCTSTR pszSelect);
UINT RadioIdForGroup(LPCTSTR pszGroup);
protected:
// Message handlers
BOOL OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
BOOL OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
void OnRadioChanged(HWND hwnd, UINT idRadio);
protected:
// Data
CUserInfo* m_pUserInfo;
CDPA<CGroupInfo>* m_pGroupList;
HFONT m_hBoldFont;
};
// wizard page for exposing the group membership
class CGroupWizardPage: public CPropertyPage, public CGroupPageBase
{
public:
CGroupWizardPage(CUserInfo* pUserInfo,
CDPA<CGroupInfo>* pGroupList):
CGroupPageBase(pUserInfo, pGroupList) {}
protected:
// Message handlers
virtual INT_PTR DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL OnNotify(HWND hwnd, int idCtrl, LPNMHDR pnmh);
};
// property page for exposing group membership
class CGroupPropertyPage: public CPropertyPage, public CGroupPageBase
{
public:
CGroupPropertyPage(CUserInfo* pUserInfo,
CDPA<CGroupInfo>* pGroupList):
CGroupPageBase(pUserInfo, pGroupList) {}
protected:
// Message handlers
virtual INT_PTR DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL OnNotify(HWND hwnd, int idCtrl, LPNMHDR pnmh);
};
#endif // !GRPINFO_H_INCLUDED