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);
114 TRACE(
"IsLiveCD()\n");
123 WARN(
"RegOpenKeyEx() failed with error %lu\n", rc);
127 rc =
ReadRegSzKey(ControlKey,
L"SystemStartOptions", &SystemStartOptions);
130 WARN(
"ReadRegSzKey() failed with error %lu\n", rc);
135 CurrentOption = SystemStartOptions;
136 while (CurrentOption)
141 if (
_wcsicmp(CurrentOption,
L"MININT") == 0)
143 TRACE(
"Found 'MININT' boot option\n");
151 if (ControlKey !=
NULL)
155 TRACE(
"IsLiveCD() returning %d\n",
ret);
194 if (bNoShow ==
FALSE)
221 if (pState->Unattend->bEnabled)
222 Locale = pState->Unattend->LocaleID;
251 wsprintf(szBuf,
L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\%s", szLCID);
259 if (szDispName[0] ==
'@')
263 if ((szDispName[
i] ==
',') && (szDispName[
i + 1] ==
'-'))
265 for (
j =
i + 2,
k = 0;
j <
wcslen(szDispName)+1;
j++,
k++)
267 szIndex[
k] = szDispName[
j];
269 szDispName[
i - 1] =
'\0';
273 szDispName[
i] = szDispName[
i + 1];
324 swprintf(szLayoutId,
L"%08lx", ulLayoutId);
340 TRACE(
"LCID: %08lx\n", lcid);
345 for (
i = 0;
i < nCount;
i++)
348 TRACE(
"Layout: %08lx\n", LayoutId);
352 TRACE(
"Found 1: %08lx --> %08lx\n", LayoutId, lcid);
358 for (
i = 0;
i < nCount;
i++)
361 TRACE(
"Layout: %08lx\n", LayoutId);
365 TRACE(
"Found 2: %08lx --> %08lx\n", LayoutId, lcid);
371 TRACE(
"No match found!\n");
381 WCHAR szLayoutId[9], szCurrentLayoutId[9];
390 wcscpy(szCurrentLayoutId,
L"00000409");
393 L"System\\CurrentControlSet\\Control\\Keyboard Layouts",
422 if (
wcscmp(szLayoutId, szCurrentLayoutId) == 0)
460 {LOCALE_IDIGITSUBSTITUTION,
L"NumShape"},
496 L".DEFAULT\\Control Panel\\International",
505 if (pNewLcid ==
NULL)
592 if (lpDrawItem->
CtlID == uCtlID)
606 pState->ImageInfo.cxSource,
607 pState->ImageInfo.cySource,
610 pState->ImageInfo.cxSource,
611 pState->ImageInfo.cySource,
646 if (pState->Unattend->bEnabled)
684 TRACE(
"LCID: 0x%08lx\n", NewLcid);
734 pState->NextPage =
DONE;
778 if (pState->Unattend->bEnabled)
798 pState->NextPage =
DONE;
804 pState->NextPage =
DONE;
823 pState->NextPage =
DONE;
851 ERR(
"Unable to parse Signature\n");
863 ERR(
"Unable to parse UnattendSetupEnabled\n");
869 TRACE(
"Unattended setup is not enabled\n",
Buffer);
892 wcscat(UnattendInf,
L"\\unattend.inf");
894 pState->Unattend = &Unattend;
896 while (pState->NextPage !=
DONE)
898 switch (pState->NextPage)
static const WCHAR szName[]
#define MAKELCID(lgid, srtid)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
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 LOCALE_SMONGROUPING
static BOOL GetLayoutName(LPCWSTR szLCID, LPWSTR szName)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BITMAPINFOHEADER bmiHeader
HDC WINAPI GetDC(_In_opt_ HWND)
static VOID CreateLanguagesList(HWND hwnd, PSTATE pState)
BOOL WINAPI GetKeyboardLayoutNameW(_Out_writes_(KL_NAMELENGTH) LPWSTR)
GLdouble GLdouble GLdouble r
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
#define SUBLANG_SPANISH_MODERN
#define LOCALE_ICALENDARTYPE
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
LCID WINAPI GetUserDefaultLCID(void)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define GetWindowLongPtrW
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_ DWORD _In_ DWORD dwBufLen
VOID RunLiveCD(PSTATE pState)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
static VOID SelectKeyboardForLanguage(HWND hwnd, LCID lcid)
#define LOCALE_INEGNUMBER
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
static LONG ReadRegSzKey(IN HKEY hKey, IN LPCWSTR pszKey, OUT LPWSTR *pValue)
#define LOCALE_NOUSEROVERRIDE
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define LOCALE_ITIMEMARKPOSN
HWND WINAPI GetDesktopWindow(void)
static const BLENDFUNCTION BlendFunc
BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW lpfnLocaleEnum, DWORD dwFlags)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
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 const WCHAR lang[]
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
BOOL WINAPI SystemParametersInfoW(_In_ UINT, _In_ UINT, _Inout_opt_ PVOID, _In_ UINT)
#define LOCALE_SMONDECIMALSEP
GLboolean GLboolean GLboolean b
static VOID OnDrawItem(LPDRAWITEMSTRUCT lpDrawItem, PSTATE pState, UINT uCtlID)
VOID ParseUnattend(LPCWSTR UnattendInf, LIVECD_UNATTEND *pUnattend)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
#define LOCALE_SMONTHOUSANDSEP
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define LOCALE_SABBREVLANGNAME
NTSTATUS NTAPI NtSetDefaultLocale(IN BOOLEAN UserProfile, IN LCID DefaultLocaleId)
#define LOCALE_SPOSITIVESIGN
static VOID InitLogo(PIMGINFO pImgInfo, HWND hwndDlg)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define LOCALE_SNEGATIVESIGN
struct _LIVECD_UNATTEND LIVECD_UNATTEND
#define LOCALE_SSHORTDATE
#define LANGIDFROMLCID(l)
VOID CenterWindow(HWND hWnd)
static const WCHAR Cleanup[]
int _cdecl swprintf(const WCHAR *,...)
#define LOCALE_IFIRSTDAYOFWEEK
static INT_PTR CALLBACK StartDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define LOCALE_IFIRSTWEEKOFYEAR
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
HWND WINAPI GetParent(_In_ HWND)
#define IDS_CANCEL_CONFIRM
static BOOL CALLBACK LocalesEnumProc(LPTSTR lpLocale)
#define LOCALE_ICURRDIGITS
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
BOOL WINAPI DeleteDC(_In_ HDC)
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define KLF_SETFORPROCESS
HKL WINAPI LoadKeyboardLayoutW(_In_ LPCWSTR, _In_ UINT)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static VOID CreateKeyboardLayoutList(HWND hItemsList)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define REGSTR_PATH_CURRENT_CONTROL_SET
GLclampf GLclampf GLclampf alpha
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define LOCALE_SNATIVEDIGITS
char * cleanup(char *str)
static VOID InitializeDefaultUserLocale(PLCID pNewLcid)
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)
#define SetWindowLongPtrW
#define MAKEINTRESOURCEW(i)
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)
GLenum GLenum GLvoid GLvoid * column
#define LOCALE_STIMEFORMAT
static VOID SetKeyboardLayout(HWND hwnd)
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
static char * NextOption(const char *const ostr)
static INT_PTR CALLBACK LocaleDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
struct tagBITMAPINFO BITMAPINFO
#define HKEY_LOCAL_MACHINE
#define RC_STRING_MAX_SIZE
#define KEY_ENUMERATE_SUB_KEYS