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.

64 lines
2.1 KiB

  1. #pragma once
  2. #include <ncxclsid.h>
  3. #include <notifval.h>
  4. #include "resource.h"
  5. // What type of config change the user/system is performing
  6. enum BridgeConfigAction {eBrdgActUnknown, eBrdgActInstall, eBrdgActRemove, eBrdgActPropertyUI};
  7. class CBridgeNO :
  8. public CComObjectRoot,
  9. public CComCoClass<CBridgeNO, &CLSID_CBridgeObj>,
  10. public INetCfgComponentControl,
  11. public INetCfgComponentSetup,
  12. public INetCfgComponentNotifyBinding,
  13. public INetCfgComponentNotifyGlobal
  14. {
  15. public:
  16. CBridgeNO(VOID);
  17. ~CBridgeNO(VOID);
  18. BEGIN_COM_MAP(CBridgeNO)
  19. COM_INTERFACE_ENTRY(INetCfgComponentControl)
  20. COM_INTERFACE_ENTRY(INetCfgComponentSetup)
  21. COM_INTERFACE_ENTRY(INetCfgComponentNotifyBinding)
  22. COM_INTERFACE_ENTRY(INetCfgComponentNotifyGlobal)
  23. END_COM_MAP()
  24. DECLARE_REGISTRY_RESOURCEID(IDR_REG_BRIDGECFG)
  25. // INetCfgComponentControl
  26. STDMETHOD (Initialize) (
  27. IN INetCfgComponent* pIComp,
  28. IN INetCfg* pINetCfg,
  29. IN BOOL fInstalling);
  30. STDMETHOD (ApplyRegistryChanges) ();
  31. STDMETHOD (ApplyPnpChanges) (
  32. IN INetCfgPnpReconfigCallback* pICallback);
  33. STDMETHOD (CancelChanges) ();
  34. // INetCfgComponentSetup
  35. STDMETHOD (ReadAnswerFile) (PCWSTR szAnswerFile,
  36. PCWSTR szAnswerSections);
  37. STDMETHOD (Upgrade) (DWORD, DWORD) {return S_OK;}
  38. STDMETHOD (Install) (DWORD);
  39. STDMETHOD (Removing) ();
  40. // INetCfgNotifyBinding
  41. STDMETHOD (QueryBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  42. STDMETHOD (NotifyBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  43. // INetCfgNotifyGlobal
  44. STDMETHOD (GetSupportedNotifications) (DWORD* pdwNotificationFlag );
  45. STDMETHOD (SysQueryBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  46. STDMETHOD (SysNotifyBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
  47. STDMETHOD (SysNotifyComponent) (DWORD dwChangeFlag, INetCfgComponent* pncc);
  48. private:
  49. INetCfgComponent* m_pncc;
  50. INetCfg* m_pnc;
  51. BridgeConfigAction m_eApplyAction;
  52. };