Source code of Windows XP (NT5)
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.

73 lines
2.3 KiB

  1. // UserPage.h : Declaration of the CUserPage
  2. #ifndef __USERPAGE_H_
  3. #define __USERPAGE_H_
  4. #include "Nusrmgr.h"
  5. #include "resource.h" // main symbols
  6. /////////////////////////////////////////////////////////////////////////////
  7. // CUserPage
  8. class ATL_NO_VTABLE DECLSPEC_UUID("F4924514-CFBC-4AAB-9EC5-6C6E6D0DB38D") CUserPage :
  9. public CComObjectRoot,
  10. public CHTMLPageImpl<CUserPage,IUserPageUI>
  11. {
  12. public:
  13. CUserPage() : _pUser(NULL), _bSelf(FALSE), _bRunningAsOwner(FALSE), _bRunningAsAdmin(FALSE) {}
  14. ~CUserPage() { ATOMICRELEASE(_pUser); }
  15. DECLARE_NOT_AGGREGATABLE(CUserPage)
  16. //DECLARE_PROTECT_FINAL_CONSTRUCT()
  17. BEGIN_COM_MAP(CUserPage)
  18. COM_INTERFACE_ENTRY(ITaskPage)
  19. COM_INTERFACE_ENTRY(IUserPageUI)
  20. COM_INTERFACE_ENTRY2(IDispatch, IUserPageUI)
  21. END_COM_MAP()
  22. // ITaskPage overrides
  23. public:
  24. STDMETHOD(SetFrame)(ITaskFrame* pFrame);
  25. STDMETHOD(Reinitialize)(/*[in]*/ ULONG reserved);
  26. // IUserPageUI
  27. public:
  28. STDMETHOD(get_isSelf)(/*[out, retval]*/ VARIANT_BOOL *pVal) { return _GetBool(_bSelf, pVal); }
  29. STDMETHOD(get_runningAsOwner)(/*[out, retval]*/ VARIANT_BOOL *pVal) { return _GetBool(_bRunningAsOwner, pVal); }
  30. STDMETHOD(get_runningAsAdmin)(/*[out, retval]*/ VARIANT_BOOL *pVal) { return _GetBool(_bRunningAsAdmin, pVal); }
  31. STDMETHOD(get_passwordRequired)(/*[out, retval]*/ VARIANT_BOOL *pVal);
  32. STDMETHOD(get_isAdmin)(/*[out, retval]*/ VARIANT_BOOL *pVal);
  33. STDMETHOD(get_isGuest)(/*[out, retval]*/ VARIANT_BOOL *pVal);
  34. STDMETHOD(get_isOwner)(/*[out, retval]*/ VARIANT_BOOL *pVal);
  35. STDMETHOD(get_userDisplayName)(/*[out, retval]*/ BSTR *pVal);
  36. STDMETHOD(createUserDisplayHTML)(/*[out, retval]*/ BSTR *pVal);
  37. STDMETHOD(countOwners)(/*[out, retval]*/ UINT *pVal);
  38. STDMETHOD(enableGuest)(/*[in]*/ VARIANT_BOOL bEnable);
  39. private:
  40. HRESULT _GetBool(BOOL bVal, VARIANT_BOOL *pVal)
  41. {
  42. if (NULL == pVal)
  43. return E_POINTER;
  44. *pVal = bVal ? VARIANT_TRUE : VARIANT_FALSE;
  45. return S_OK;
  46. }
  47. public:
  48. static LPWSTR c_aHTML[2];
  49. private:
  50. ILogonUser* _pUser;
  51. BOOL _bSelf;
  52. BOOL _bRunningAsOwner;
  53. BOOL _bRunningAsAdmin;
  54. };
  55. EXTERN_C const CLSID CLSID_UserPage;
  56. HRESULT CountOwners(IUnknown* punkUserList, UINT *pVal);
  57. HRESULT EnableGuest(VARIANT_BOOL bEnable);
  58. #endif //__USERPAGE_H_