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.

99 lines
2.7 KiB

  1. /*++
  2. Copyright(c) 1998,99 Microsoft Corporation
  3. Module Name:
  4. wlbs.h
  5. Abstract:
  6. Windows Load Balancing Service (WLBS)
  7. Notifier object - main module implementing object
  8. Author:
  9. kyrilf
  10. --*/
  11. #pragma once
  12. #include "clusterdlg.h"
  13. #include "host.h"
  14. #include "wlbsparm.h"
  15. #include "ports.h"
  16. #include "resource.h"
  17. #include "netcfgn.h"
  18. #include "ncxclsid.h"
  19. #include "wlbscfg.h"
  20. class CWLBS :
  21. public CComObjectRoot,
  22. public CComCoClass<CWLBS, &CLSID_CWLBS>,
  23. public INetCfgComponentControl,
  24. public INetCfgComponentSetup,
  25. public INetCfgComponentPropertyUi,
  26. public INetCfgComponentNotifyBinding
  27. {
  28. public:
  29. CWLBS(VOID);
  30. ~CWLBS(VOID);
  31. BEGIN_COM_MAP(CWLBS)
  32. COM_INTERFACE_ENTRY(INetCfgComponentControl)
  33. COM_INTERFACE_ENTRY(INetCfgComponentSetup)
  34. COM_INTERFACE_ENTRY(INetCfgComponentPropertyUi)
  35. COM_INTERFACE_ENTRY(INetCfgComponentNotifyBinding)
  36. END_COM_MAP()
  37. // DECLARE_NOT_AGGREGATABLE(CWLBS)
  38. // Remove the comment from the line above if you don't want your object to
  39. // support aggregation. The default is to support it
  40. DECLARE_REGISTRY_RESOURCEID(IDR_REG_WLBS)
  41. // INetCfgComponentControl
  42. STDMETHOD (Initialize) (IN INetCfgComponent* pIComp, IN INetCfg* pINetCfg, IN BOOL fInstalling);
  43. STDMETHOD (ApplyRegistryChanges) ();
  44. STDMETHOD (ApplyPnpChanges) (IN INetCfgPnpReconfigCallback * pICallback);
  45. STDMETHOD (CancelChanges) ();
  46. STDMETHOD (Validate) ();
  47. // INetCfgComponentSetup
  48. STDMETHOD (ReadAnswerFile) (PCWSTR szAnswerFile, PCWSTR szAnswerSections);
  49. STDMETHOD (Upgrade) (DWORD, DWORD);
  50. STDMETHOD (Install) (DWORD);
  51. STDMETHOD (Removing) ();
  52. // INetCfgProperties
  53. STDMETHOD (QueryPropertyUi) (IN IUnknown* pUnk) { return S_OK; }
  54. STDMETHOD (SetContext) (IN IUnknown* pUnk);
  55. STDMETHOD (MergePropPages) (IN OUT DWORD* pdwDefPages, OUT LPBYTE* pahpspPrivate,
  56. OUT UINT* pcPrivate, IN HWND hwndParent, OUT PCWSTR* pszStartPage);
  57. STDMETHOD (ValidateProperties) (HWND hwndSheet);
  58. STDMETHOD (CancelProperties) ();
  59. STDMETHOD (ApplyProperties) ();
  60. // INetCfgNotifyBinding
  61. STDMETHOD (QueryBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  62. STDMETHOD (NotifyBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  63. private:
  64. class CDialogCluster * m_pClusterDlg;
  65. class CDialogHost * m_pHostDlg;
  66. class CDialogPorts * m_pPortsDlg;
  67. CWlbsConfig m_WlbsConfig;
  68. NETCFG_WLBS_CONFIG m_OriginalConfig;
  69. NETCFG_WLBS_CONFIG m_AdapterConfig;
  70. GUID m_AdapterGuid;
  71. public:
  72. LRESULT OnInitDialog(IN HWND hWnd);
  73. LRESULT OnOk(IN HWND hWnd);
  74. LRESULT OnCancel(IN HWND hWnd);
  75. };