11 #define WM_NOTIFYICONMSG (WM_USER + 248) 110 memset(&tnid, 0,
sizeof(tnid));
128 memset(&tnid, 0,
sizeof(tnid));
141 memset(&tnid, 0,
sizeof(tnid));
230 if (szDispName[0] ==
'@')
236 if ((szDispName[
i] ==
',') && (szDispName[
i + 1] ==
'-'))
240 szIndex[
k] = szDispName[
j];
242 szDispName[
i - 1] =
'\0';
245 else szDispName[
i] = szDispName[
i + 1];
295 _ultot(uLayoutNum, szLayoutNum, 10);
322 for (dwIndex = 0; ; dwIndex++)
324 dwSize =
sizeof(szLayoutNum);
381 _ultot(Ret + 1, szLayoutNum, 10);
389 _ultot(Ret - 1, szLayoutNum, 10);
420 static HMENU hRightPopupMenu;
421 static UINT s_uTaskbarRestart;
467 HMENU hLeftPopupMenu;
496 shInputDll.
cbSize =
sizeof(shInputDll);
499 shInputDll.
lpFile =
_T(
"rundll32.exe");
500 shInputDll.
lpParameters =
_T(
"shell32.dll,Control_RunDLL input.dll");
516 if (
wParam == SPI_SETDEFAULTINPUTLANG)
520 if (
wParam == SPI_SETNONCLIENTMETRICS)
538 if(
Message == s_uTaskbarRestart)
599 hwnd =
CreateWindow(
szKbSwitcherName,
NULL, 0, 0, 0, 1, 1,
HWND_DESKTOP,
NULL,
hInstance,
NULL);
static HICON CreateTrayIcon(LPTSTR szLCID)
LANGID WINAPI GetUserDefaultUILanguage(void)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define LOCALE_SISO639LANGNAME
HDC WINAPI GetDC(_In_opt_ HWND)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
#define HKEY_CURRENT_USER
LRESULT UpdateLanguageDisplayCurrent(HWND hwnd, WPARAM wParam)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define ExpandEnvironmentStrings
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
DWORD WINAPI GetLastError(VOID)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
static VOID AddTrayIcon(HWND hwnd)
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_ DWORD _In_ DWORD dwBufLen
BOOL(WINAPI * PKBSWITCHSETHOOKS)(VOID)
DWORD WINAPI GetSysColor(_In_ int)
PKBSWITCHDELETEHOOKS KbSwitchDeleteHooks
#define LoadKeyboardLayout
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
LONG WINAPI RegCloseKey(HKEY hKey)
#define CLIP_DEFAULT_PRECIS
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
DWORD WINAPI GetWindowThreadProcessId(HWND, PDWORD)
size_t __cdecl _tcslen(const _TCHAR *str)
#define COLOR_HIGHLIGHTTEXT
NOTIFYICONDATAA NOTIFYICONDATA
INT WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT nCmdShow)
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
BOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout)
VOID(WINAPI * PKBSWITCHDELETEHOOKS)(VOID)
static BOOL GetLayoutName(LPTSTR szLayoutNum, LPTSTR szName, SIZE_T NameLength)
HICON WINAPI CreateIconIndirect(_In_ PICONINFO)
#define WM_WINDOW_ACTIVATE
static VOID UpdateTrayIcon(HWND hwnd, LPTSTR szLCID, LPTSTR szName)
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC, _In_ LPARAM)
#define OUT_DEFAULT_PRECIS
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
static BOOL GetLayoutID(LPTSTR szLayoutNum, LPTSTR szLCID, SIZE_T LCIDLength)
BOOL WINAPI RegisterShellHookWindow(_In_ HWND)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define RegisterWindowMessage
static VOID ActivateLayout(HWND hwnd, ULONG uLayoutNum)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
PKBSWITCHSETHOOKS KbSwitchSetHooks
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)
int CDECL _ttoi(const _TCHAR *str)
PKEYBOARD_LAYOUT GetKeyboardLayout()
static HMENU BuildLeftPopupMenu(VOID)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
HMENU WINAPI CreatePopupMenu(void)
static const WCHAR szName[]
VOID GetLayoutIDByHkl(HKL hKl, LPTSTR szLayoutID, SIZE_T LayoutIDLength)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
#define GetProcAddress(x, y)
static VOID DelTrayIcon(HWND hwnd)
#define ERROR_ALREADY_EXISTS
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_Out_opt_ PICONINFO IconInfo
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
LRESULT UpdateLanguageDisplay(HWND hwnd, HKL hKl)
#define HKEY_LOCAL_MACHINE
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
ULONG GetNextLayout(VOID)