/*++ Copyright (C) Microsoft Corporation, 1997 - 1999 Module Name: event.hxx Abstract: Header file for firing Events using LCE. Author: Gopal Parupudi [Notes:] optional-notes Revision History: GopalP 10/31/1997 Start. --*/ // // Enumerated types // enum SENS_EVENT_TYPE { SENS_EVENT_NETALIVE = 0, SENS_EVENT_REACH, SENS_EVENT_LOGON, SENS_EVENT_LOGOFF, SENS_EVENT_STARTUP, SENS_EVENT_STARTSHELL, SENS_EVENT_POSTSHELL, SENS_EVENT_SESSION_DISCONNECT, SENS_EVENT_SESSION_RECONNECT, SENS_EVENT_SHUTDOWN, SENS_EVENT_LOCK, SENS_EVENT_UNLOCK, SENS_EVENT_STARTSCREENSAVER, SENS_EVENT_STOPSCREENSAVER, SENS_EVENT_POWER_ON_ACPOWER, SENS_EVENT_POWER_ON_BATTERYPOWER, SENS_EVENT_POWER_BATTERY_LOW, SENS_EVENT_POWER_STATUS_CHANGE, SENS_EVENT_PNP_DEVICE_ARRIVED, SENS_EVENT_PNP_DEVICE_REMOVED, SENS_EVENT_RAS_STARTED, SENS_EVENT_RAS_STOPPED, SENS_EVENT_RAS_CONNECT, SENS_EVENT_RAS_DISCONNECT, SENS_EVENT_RAS_DISCONNECT_PENDING, SENS_EVENT_LAN_CONNECT, SENS_EVENT_LAN_DISCONNECT }; enum CONNECTIVITY_TYPE { TYPE_LAN = 1, TYPE_WAN, TYPE_LAN_AND_WAN, TYPE_DELAY_LAN }; // // Typedefs // #if !defined(SENS_CHICAGO) typedef struct _LOGON_INFO { ULONG Size; ULONG Flags; PWSTR UserName; PWSTR Domain; PWSTR WindowStation; HANDLE hToken; HDESK hDesktop; DWORD dwSessionId; } SENS_LOGON_INFO; #else typedef struct _LOGON_INFO { ULONG Size; ULONG Flags; PWSTR UserName; PWSTR Domain; PWSTR WindowStation; HANDLE hToken; HDESK hDesktop; } SENS_LOGON_INFO; #endif // SENS_CHICAGO typedef struct _SENSEVENT_NETALIVE { SENS_EVENT_TYPE eType; BOOL bAlive; QOCINFO QocInfo; LPWSTR strConnection; } SENSEVENT_NETALIVE, *PSENSEVENT_NETALIVE; typedef struct _SENSEVENT_REACH { SENS_EVENT_TYPE eType; BOOL bReachable; PWCHAR Destination; QOCINFO QocInfo; LPWSTR strConnection; } SENSEVENT_REACH, *PSENSEVENT_REACH; typedef struct _SENSEVENT_WINLOGON { SENS_EVENT_TYPE eType; SENS_LOGON_INFO Info; } SENSEVENT_WINLOGON, *PSENSEVENT_WINLOGON; typedef struct _SENSEVENT_POWER { SENS_EVENT_TYPE eType; SYSTEM_POWER_STATUS PowerStatus; } SENSEVENT_POWER, *PSENSEVENT_POWER; typedef struct _SENSEVENT_PNP { SENS_EVENT_TYPE eType; DWORD Size; DWORD DevType; DWORD Resource; DWORD Flags; } SENSEVENT_PNP, *PSENSEVENT_PNP; typedef struct _SENSEVENT_RAS { SENS_EVENT_TYPE eType; DWORD hConnection; } SENSEVENT_RAS, *PSENSEVENT_RAS; typedef struct _SENSEVENT_LAN { SENS_EVENT_TYPE eType; LPWSTR Name; NETCON_STATUS Status; NETCON_MEDIATYPE Type; } SENSEVENT_LAN, *PSENSEVENT_LAN; // // Functions // void EvaluateConnectivity( IN CONNECTIVITY_TYPE Type ); PVOID AllocateEventData( PVOID EventData ); void FreeEventData( PVOID EventData ); void SensFireEvent( IN PVOID EventData ); DWORD WINAPI SensFireEventHelper( IN PVOID EventData ); HRESULT SensFireNetEventHelper( PSENSEVENT_NETALIVE pData ); HRESULT SensFireWinlogonEventHelper( LPWSTR strArg, DWORD dwSessionId, SENS_EVENT_TYPE eType ); HRESULT SensFireReachabilityEventHelper( PSENSEVENT_REACH pData ); HRESULT SensFirePowerEventHelper( SYSTEM_POWER_STATUS PowerStatus, SENS_EVENT_TYPE eType );