/* File utils.h Defines utility declarations that facilitate the implementation of the connections ras dialup server ui. Paul Mayfield, 9/29/97 */ #ifndef _rassrvui_utils_h #define _rassrvui_utils_h #include "rassrv.h" // // Global flags that tag the current state of this // machine // #define RASSRVUI_MACHINE_F_Initialized 0x1 #define RASSRVUI_MACHINE_F_Server 0x2 #define RASSRVUI_MACHINE_F_Member 0x4 #define RASSRVUI_MACHINE_F_ShowIcon 0x8 // // Defines the global variables data structure // typedef struct _RASSRVUI_GLOBALS { // // The following should only be accessed when the // csLock is held. // MPR_SERVER_HANDLE hRasServer; DWORD dwMachineFlags; // // The following do not need to be protected by the // csLock as they are initialized at process attach // and thereafter are only read. // HINSTANCE hInstDll; HANDLE hPrivateHeap; LPCTSTR atmRassrvPageData; LPCTSTR atmRassrvPageId; DWORD dwErrorData; // // Locks (some) global variables // CRITICAL_SECTION csLock; } RASSRVUI_GLOBALS; extern RASSRVUI_GLOBALS Globals; // ====================================== // Methods to operate on global variables // ====================================== #define GBL_LOCK EnterCriticalSection(&(Globals.csLock)) #define GBL_UNLOCK LeaveCriticalSection(&(Globals.csLock)) // // Initializes the global variables // DWORD gblInit( IN HINSTANCE hInstDll, OUT RASSRVUI_GLOBALS * Globs); // // Loads the machine flags // DWORD gblLoadMachineFlags( IN RASSRVUI_GLOBALS * Globs); // // Frees resources held by global variables // DWORD gblCleanup( IN RASSRVUI_GLOBALS * Globs); // // Establishes communication with the ras server if // not already established // DWORD gblConnectToRasServer(); /* Enhanced list view callback to report drawing information. 'HwndLv' is ** the handle of the list view control. 'DwItem' is the index of the item ** being drawn. ** ** Returns the address of standard draw information. */ LVXDRAWINFO* LvDrawInfoCallback( IN HWND hwndLv, IN DWORD dwItem ); // ============================================================ // ============================================================ // Special purpose ras server functions. // ============================================================ // ============================================================ // // Allocates and Zeros memory. Returns pointer to allocated memory // or NULL if ERROR_NOT_ENOUGH_MEMORY // PVOID RassrvAlloc ( IN DWORD dwSize, IN BOOL bZero); VOID RassrvFree( IN PVOID pvBuf); // // Adds a new user to the system local user database. // DWORD RasSrvAddUser ( IN PWCHAR pszUserLogonName, IN PWCHAR pszUserComment, IN PWCHAR pszUserPassword); // // Deletes a user from the system local user datbase // DWORD RasSrvDeleteUser( IN PWCHAR pszUserLogonName); // // Changes the full name and password of a user. If // either of pszFullName or pszPassword is null, it is // ignored. // DWORD RasSrvEditUser ( IN PWCHAR pszLogonName, IN OPTIONAL PWCHAR pszFullName, IN OPTIONAL PWCHAR pszPassword); // // Warns the user that he/she is about to swith to mmc // BOOL RassrvWarnMMCSwitch( IN HWND hwndDlg); // // Launches the given console in MMC // DWORD RassrvLaunchMMC( IN DWORD dwConsoleId); // // Returns RASSRVUI_MACHINE_F_* values for the current machine // DWORD RasSrvGetMachineFlags( OUT LPDWORD lpdwFlags); // // Manipulate the enabling/disabling of multilink // DWORD RasSrvGetMultilink( OUT BOOL * bEnabled); DWORD RasSrvSetMultilink( IN BOOL bEnable); // // Manipulate the showing of ras server icons in the task bar // DWORD RasSrvGetIconShow( OUT BOOL * pbEnabled); DWORD RasSrvSetIconShow( IN BOOL bEnable); // // Set the logging level // DWORD RasSrvSetLogLevel( IN DWORD dwLevel); // // Manipulate the forcing of data and password encryption' // DWORD RasSrvGetEncryption( OUT BOOL * pbEncrypted); DWORD RasSrvSetEncryption( IN BOOL bEncrypted); // Displays context sensitive help DWORD RasSrvHelp( IN HWND hwndDlg, // Dialog needing help IN UINT uMsg, // Help message IN WPARAM wParam, // parameter IN LPARAM lParam, // parameter IN const DWORD* pdwMap); // map control id to help id // // Registry helper functions. All string buffers must be // at least 256 chars long. // DWORD RassrvRegGetDw( DWORD * pdwVal, DWORD dwDefault, const PWCHAR pszKeyName, const PWCHAR pszValueName); DWORD RassrvRegSetDw( DWORD dwVal, const PWCHAR pszKeyName, const PWCHAR pszValueName); DWORD RassrvRegGetDwEx( DWORD * pdwVal, DWORD dwDefault, const PWCHAR pszKeyName, const PWCHAR pszValueName, IN BOOL bCreate); DWORD RassrvRegSetDwEx( IN DWORD dwFlag, IN CONST PWCHAR pszKeyName, IN CONST PWCHAR pszValueName, IN BOOL bCreate); DWORD RassrvRegGetStr( PWCHAR pszBuf, PWCHAR pszDefault, const PWCHAR pszKeyName, const PWCHAR pszValueName); DWORD RassrvRegSetStr( PWCHAR pszStr, const PWCHAR pszKeyName, const PWCHAR pszValueName); // Api shows whatever ui is neccessary to inform the user that // he/she should wait while services are started. DWORD RasSrvShowServiceWait( IN HINSTANCE hInst, IN HWND hwndParent, OUT HANDLE * phData); DWORD RasSrvFinishServiceWait ( IN HANDLE hData); // Pops up a warning with the given parent window and reboots // windows DWORD RasSrvReboot( IN HWND hwndParent); #endif