52 GetObject(hLogo,
sizeof(logoBitmap), &logoBitmap);
53 GetObject(hMask,
sizeof(maskBitmap), &maskBitmap);
55 if (logoBitmap.bmHeight != maskBitmap.bmHeight || logoBitmap.bmWidth != maskBitmap.bmWidth)
86 *pBits++ =
b | (
g << 8) | (
r << 16) | (
alpha << 24);
121 WARN(
"RegOpenKeyEx() failed with error %lu\n", rc);
125 rc =
ReadRegSzKey(ControlKey,
L"SystemStartOptions", &SystemStartOptions);
128 WARN(
"ReadRegSzKey() failed with error %lu\n", rc);
133 CurrentOption = SystemStartOptions;
134 while (CurrentOption)
139 if (
_wcsicmp(CurrentOption,
L"MININT") == 0)
141 TRACE(
"Found 'MININT' boot option\n");
149 if (ControlKey !=
NULL)
153 TRACE(
"IsLiveCD() returning %u\n",
ret);
191 if (bNoShow ==
FALSE)
218 if (pState->Unattend->bEnabled)
219 Locale = pState->Unattend->LocaleID;
248 wsprintf(szBuf,
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\%s", szLCID);
252 dwBufLen =
sizeof(szDispName);
256 if (szDispName[0] ==
'@')
260 if ((szDispName[
i] ==
',') && (szDispName[
i + 1] ==
'-'))
262 for (
j =
i + 2,
k = 0;
j <
wcslen(szDispName)+1;
j++,
k++)
264 szIndex[
k] = szDispName[
j];
266 szDispName[
i - 1] =
'\0';
270 szDispName[
i] = szDispName[
i + 1];
290 dwBufLen =
sizeof(szBuf);
321 swprintf(szLayoutId,
L"%08lx", ulLayoutId);
342 for (
i = 0;
i < nCount;
i++)
345 TRACE(
"Layout: %08lx\n", LayoutId);
349 TRACE(
"Found 1: %08lx --> %08lx\n", LayoutId,
lcid);
355 for (
i = 0;
i < nCount;
i++)
358 TRACE(
"Layout: %08lx\n", LayoutId);
362 TRACE(
"Found 2: %08lx --> %08lx\n", LayoutId,
lcid);
368 TRACE(
"No match found!\n");
378 WCHAR szLayoutId[9], szCurrentLayoutId[9];
387 wcscpy(szCurrentLayoutId,
L"00000409");
390 L"System\\CurrentControlSet\\Control\\Keyboard Layouts",
419 if (
wcscmp(szLayoutId, szCurrentLayoutId) == 0)
457 {LOCALE_IDIGITSUBSTITUTION,
L"NumShape"},
493 L".DEFAULT\\Control Panel\\International",
502 if (pNewLcid ==
NULL)
589 if (lpDrawItem->
CtlID == uCtlID)
603 pState->ImageInfo.cxSource,
604 pState->ImageInfo.cySource,
607 pState->ImageInfo.cxSource,
608 pState->ImageInfo.cySource,
643 if (pState->Unattend->bEnabled)
681 TRACE(
"LCID: 0x%08lx\n", NewLcid);
734 pState->NextPage =
DONE;
787 if (pState->Unattend->bEnabled || (*Installer ==
UNICODE_NULL))
807 pState->NextPage =
DONE;
813 pState->NextPage =
DONE;
832 pState->NextPage =
DONE;
860 ERR(
"Unable to parse Signature\n");
872 ERR(
"Unable to parse UnattendSetupEnabled\n");
878 TRACE(
"Unattended setup is not enabled\n",
Buffer);
901 wcscat(UnattendInf,
L"\\unattend.inf");
903 pState->Unattend = &Unattend;
905 while (pState->NextPage !=
DONE)
907 switch (pState->NextPage)
#define RC_STRING_MAX_SIZE
static LONG ReadRegSzKey(IN HKEY hKey, IN LPCWSTR pszKey, OUT LPWSTR *pValue)
#define IDS_CANCEL_CONFIRM
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
#define RegCloseKey(hKey)
static const BLENDFUNCTION BlendFunc
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define HeapFree(x, y, z)
static void cleanup(void)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
BOOL WINAPI SetThreadLocale(LCID lcid)
BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW lpfnLocaleEnum, DWORD dwFlags)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
LCID WINAPI GetUserDefaultLCID(void)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
_ACRTIMP int __cdecl _wtoi(const wchar_t *)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static const WCHAR Cleanup[]
GLclampf GLclampf GLclampf alpha
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static VOID CreateLanguagesList(HWND hwnd, PSTATE pState)
static VOID CreateKeyboardLayoutList(HWND hItemsList)
static INT_PTR CALLBACK LocaleDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static VOID InitializeDefaultUserLocale(PLCID pNewLcid)
VOID RunLiveCD(PSTATE pState)
struct _LIVECD_UNATTEND LIVECD_UNATTEND
VOID ParseUnattend(LPCWSTR UnattendInf, LIVECD_UNATTEND *pUnattend)
VOID CenterWindow(HWND hWnd)
static INT_PTR CALLBACK StartDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static VOID SetKeyboardLayout(HWND hwnd)
static VOID OnDrawItem(LPDRAWITEMSTRUCT lpDrawItem, PSTATE pState, UINT uCtlID)
static VOID SelectKeyboardForLanguage(HWND hwnd, LCID lcid)
static BOOL CALLBACK LocalesEnumProc(LPTSTR lpLocale)
static VOID InitLogo(PIMGINFO pImgInfo, HWND hwndDlg)
static BOOL GetLayoutName(LPCWSTR szLCID, LPWSTR szName)
static char * NextOption(const char *const ostr)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
BOOL WINAPI GdiAlphaBlend(HDC hdcDst, int xDst, int yDst, int widthDst, int heightDst, HDC hdcSrc, int xSrc, int ySrc, int widthSrc, int heightSrc, BLENDFUNCTION blendFunction)
#define KEY_ENUMERATE_SUB_KEYS
#define MAKELCID(lgid, srtid)
NTSTATUS NTAPI NtSetDefaultLocale(IN BOOLEAN UserProfile, IN LCID DefaultLocaleId)
static const WCHAR szName[]
#define REGSTR_PATH_CURRENT_CONTROL_SET
#define LANGIDFROMLCID(l)
#define SUBLANG_SPANISH_MODERN
BITMAPINFOHEADER bmiHeader
static const WCHAR lang[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
BOOL ExpandInstallerPath(IN LPCTSTR lpInstallerName, OUT LPTSTR lpInstallerPath, IN SIZE_T PathSize)
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
struct tagBITMAPINFO BITMAPINFO
BOOL WINAPI DeleteDC(_In_ HDC)
#define LOCALE_ICURRDIGITS
#define LOCALE_IFIRSTWEEKOFYEAR
#define LOCALE_SSHORTDATE
#define LOCALE_SPOSITIVESIGN
#define LOCALE_SMONDECIMALSEP
#define LOCALE_SMONTHOUSANDSEP
#define LOCALE_NOUSEROVERRIDE
#define LOCALE_STIMEFORMAT
#define LOCALE_IFIRSTDAYOFWEEK
#define LOCALE_SABBREVLANGNAME
#define LOCALE_INEGNUMBER
#define LOCALE_SNEGATIVESIGN
#define LOCALE_SNATIVEDIGITS
#define LOCALE_ICALENDARTYPE
#define LOCALE_SMONGROUPING
#define LOCALE_ITIMEMARKPOSN
#define HKEY_LOCAL_MACHINE
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI GetKeyboardLayoutNameW(_Out_writes_(KL_NAMELENGTH) LPWSTR)
#define GetWindowLongPtrW
#define KLF_SETFORPROCESS
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HWND WINAPI GetDesktopWindow(void)
HKL WINAPI LoadKeyboardLayoutW(_In_ LPCWSTR, _In_ UINT)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
#define SetWindowLongPtrW
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)