48 GetObject(hLogo,
sizeof(logoBitmap), &logoBitmap);
49 GetObject(hMask,
sizeof(maskBitmap), &maskBitmap);
51 if (logoBitmap.bmHeight != maskBitmap.bmHeight || logoBitmap.bmWidth != maskBitmap.bmWidth)
82 *pBits++ =
b | (
g << 8) | (
r << 16) | (
alpha << 24);
111 TRACE(
"IsLiveCD()\n");
120 WARN(
"RegOpenKeyEx() failed with error %lu\n", rc);
124 rc =
ReadRegSzKey(ControlKey,
L"SystemStartOptions", &SystemStartOptions);
127 WARN(
"ReadRegSzKey() failed with error %lu\n", rc);
132 CurrentOption = SystemStartOptions;
133 while (CurrentOption)
138 if (
_wcsicmp(CurrentOption,
L"MININT") == 0)
140 TRACE(
"Found 'MININT' boot option\n");
148 if (ControlKey !=
NULL)
152 TRACE(
"IsLiveCD() returning %d\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);
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];
321 swprintf(szLayoutId,
L"%08lx", ulLayoutId);
337 TRACE(
"LCID: %08lx\n", lcid);
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);
731 pState->NextPage =
DONE;
775 if (pState->Unattend->bEnabled)
795 pState->NextPage =
DONE;
801 pState->NextPage =
DONE;
820 pState->NextPage =
DONE;
848 ERR(
"Unable to parse Signature\n");
860 ERR(
"Unable to parse UnattendSetupEnabled\n");
866 TRACE(
"Unattended setup is not enabled\n",
Buffer);
889 wcscat(UnattendInf,
L"\\unattend.inf");
891 pState->Unattend = &Unattend;
893 while (pState->NextPage !=
DONE)
895 switch (pState->NextPage)
#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
LONG WINAPI RegCloseKey(HKEY hKey)
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[]
#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)
static const WCHAR szName[]
#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)
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