mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.1 KiB
77 lines
2.1 KiB
#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
|