// // ICSInst.h // #include #pragma once // Public functions // BOOL IsOtherNATAlreadyInstalled(LPTSTR pszOtherNatDescription, int cchOtherNatDescription); typedef enum { ICS_NOACTION = 0, ICS_INSTALL, ICS_UNINSTALL, ICS_ENABLE, ICS_DISABLE, ICS_UPDATEBINDINGS, ICS_CLIENTSETUP } ICSOPTION; class CICSInst { public: CICSInst(); ~CICSInst(); BOOL InitICSAPI(); ICSOPTION m_option; LPTSTR m_pszHostName; BOOL m_bInstalledElsewhere; BOOL m_bShowTrayIcon; void DoInstallOption(BOOL* pfRebootRequired, UINT ipaInternal); void Install(BOOL* pfRebootRequired, UINT ipaInternal); void UpdateBindings(BOOL* pfRebootRequired, UINT ipaInternal); void Uninstall(BOOL* pfRebootRequired); BOOL IsInstalled(); BOOL IsEnabled(); BOOL IsInstalledElsewhere(); void SetInternetConnection(); BOOL GetICSConnections(LPTSTR szExternalConnection, LPTSTR szInternalConnection); void SetHomeConnection(UINT ipaInternal); BOOL IsHomeConnectionValid(); BOOL Enable(); BOOL Disable(); void SetupClient(); private: void UpdateIcsTrayIcon(); };