217 lines
3.7 KiB
C
217 lines
3.7 KiB
C
/****************************** Module Header ******************************\
|
|
* Module Name: winutil.h
|
|
*
|
|
* Copyright (c) 1991, Microsoft Corporation
|
|
*
|
|
* Define windows utility functions
|
|
*
|
|
* History:
|
|
* 12-09-91 Davidc Created.
|
|
\***************************************************************************/
|
|
|
|
|
|
//
|
|
// Exported function prototypes
|
|
//
|
|
|
|
HWND
|
|
CreateAniOnControl(
|
|
HWND hDlg,
|
|
DWORD ControlId,
|
|
DWORD AniId);
|
|
|
|
VOID
|
|
SetupSystemMenu(
|
|
HWND hwnd
|
|
);
|
|
|
|
|
|
VOID
|
|
CentreWindow(
|
|
HWND hwnd
|
|
);
|
|
|
|
BOOL
|
|
SetPasswordFocus(
|
|
HWND hDlg
|
|
);
|
|
|
|
VOID
|
|
SetupCursor(
|
|
BOOL fWait
|
|
);
|
|
|
|
BOOL
|
|
FormatTime(
|
|
IN PTIME Time,
|
|
OUT PWCHAR Buffer,
|
|
IN ULONG BufferLength,
|
|
IN USHORT Flags
|
|
);
|
|
|
|
//
|
|
// Define flags used by FormatTime routine
|
|
//
|
|
#define FT_TIME 1
|
|
#define FT_DATE 2
|
|
#define FT_LTR 4
|
|
#define FT_RTL 8
|
|
|
|
BOOL
|
|
DuplicateUnicodeString(
|
|
PUNICODE_STRING OutString,
|
|
PUNICODE_STRING InString
|
|
);
|
|
|
|
LPTSTR
|
|
UnicodeStringToString(
|
|
PUNICODE_STRING UnicodeString
|
|
);
|
|
|
|
BOOL
|
|
StringToUnicodeString(
|
|
PUNICODE_STRING UnicodeString,
|
|
LPTSTR String
|
|
);
|
|
|
|
BOOL
|
|
OpenIniFileUserMapping(
|
|
PGLOBALS pGlobals
|
|
);
|
|
|
|
VOID
|
|
CloseIniFileUserMapping(
|
|
PGLOBALS pGlobals
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndGetDlgItemText(
|
|
HWND hDlg,
|
|
int iItem
|
|
);
|
|
|
|
BOOL
|
|
ReadWinlogonBoolValue (
|
|
LPTSTR lpValueName,
|
|
BOOL bDefault);
|
|
|
|
BOOL
|
|
HandleComboBoxOK(
|
|
HWND hDlg,
|
|
int ComboBoxId
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndGetPrivateProfileString(
|
|
LPCTSTR lpAppName,
|
|
LPCTSTR lpKeyName,
|
|
LPCTSTR lpDefault,
|
|
LPCTSTR lpFileName
|
|
);
|
|
|
|
#define AllocAndGetProfileString(App, Key, Def) \
|
|
AllocAndGetPrivateProfileString(App, Key, Def, NULL)
|
|
|
|
|
|
BOOL
|
|
WritePrivateProfileInt(
|
|
LPCTSTR lpAppName,
|
|
LPCTSTR lpKeyName,
|
|
UINT Value,
|
|
LPCTSTR lpFileName
|
|
);
|
|
|
|
#define WriteProfileInt(App, Key, Value) \
|
|
WritePrivateProfileInt(App, Key, Value, NULL)
|
|
|
|
|
|
LPTSTR
|
|
AllocAndExpandEnvironmentStrings(
|
|
LPCTSTR lpszSrc
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndRegEnumKey(
|
|
HKEY hKey,
|
|
DWORD iSubKey
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndRegQueryValueEx(
|
|
HKEY hKey,
|
|
LPTSTR lpValueName,
|
|
LPDWORD lpReserved,
|
|
LPDWORD lpType
|
|
);
|
|
|
|
LPWSTR
|
|
EncodeMultiSzW(
|
|
IN LPWSTR MultiSz
|
|
);
|
|
|
|
|
|
//
|
|
// Memory macros
|
|
//
|
|
|
|
#define Alloc(c) ((PVOID)LocalAlloc(LPTR, c))
|
|
#define ReAlloc(p, c) ((PVOID)LocalReAlloc(p, c, LPTR | LMEM_MOVEABLE))
|
|
#define Free(p) ((VOID)LocalFree(p))
|
|
|
|
|
|
//
|
|
// Define a winlogon debug print routine
|
|
//
|
|
|
|
#define WLPrint(s) KdPrint(("WINLOGON: ")); \
|
|
KdPrint(s); \
|
|
KdPrint(("\n"));
|
|
|
|
INT_PTR TimeoutMessageBox(
|
|
HWND hwnd,
|
|
PGLOBALS pGlobals,
|
|
UINT IdText,
|
|
UINT IdCaption,
|
|
UINT wType,
|
|
TIMEOUT Timeout);
|
|
|
|
INT_PTR
|
|
DisplayForceLogoffWarning(
|
|
HWND hwnd,
|
|
PGLOBALS pGlobals,
|
|
UINT wType,
|
|
TIMEOUT Timeout
|
|
);
|
|
|
|
INT_PTR TimeoutMessageBoxlpstr(
|
|
HWND hwnd,
|
|
PGLOBALS pGlobals,
|
|
LPTSTR Text,
|
|
LPTSTR Caption,
|
|
UINT wType,
|
|
TIMEOUT Timeout);
|
|
|
|
#define TIMEOUT_VALUE_MASK (0x0fffffff)
|
|
#define TIMEOUT_NOTIFY_MASK (0x10000000)
|
|
|
|
#define TIMEOUT_VALUE(t) (t & TIMEOUT_VALUE_MASK)
|
|
#define TIMEOUT_NOTIFY(t) (t & TIMEOUT_NOTIFY_MASK)
|
|
|
|
#define TIMEOUT_SS_NOTIFY (TIMEOUT_NOTIFY_MASK)
|
|
#define TIMEOUT_CURRENT (TIMEOUT_VALUE_MASK) // Use existing timeout
|
|
#define TIMEOUT_NONE (0) // Disable input timeout
|
|
|
|
|
|
PWSTR
|
|
DupString(PWSTR pszString);
|
|
|
|
PWSTR
|
|
DupUnicodeString(PUNICODE_STRING pString);
|
|
|
|
// Utility function used by both logon and unlock code to enable or
|
|
// disable the domain combo box based on whether a UPN user name is
|
|
// typed into the username edit box
|
|
void EnableDomainForUPN(HWND hwndUsername, HWND hwndDomain);
|
|
|
|
BOOL ForceNoDomainUI();
|