ReactOS 0.4.16-dev-1537-g4e425b5
utils.cpp File Reference
#include "precomp.h"
#include <sddl.h>
#include <imm.h>
#include <ctffunc.h>
#include <shlwapi.h>
#include <cicmutex.h>
#include <cicfmap.h>
#include "mlng.h"
#include <wine/debug.h>
Include dependency graph for utils.cpp:

Go to the source code of this file.

Macros

#define StringFromGUID2T   StringFromGUID2A
 
#define debugstr_t   debugstr_a
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msctf)
 
void __cxa_pure_virtual (void)
 
LPTSTR GetUserSIDString (void)
 
BOOL InitUserSidString (void)
 
BOOL InitUniqueString (void)
 
void GetDesktopUniqueName (_In_ LPCTSTR pszName, _Out_ LPTSTR pszBuff, _In_ UINT cchBuff)
 
BOOL StringFromGUID2A (REFGUID rguid, LPSTR pszGUID, INT cchGUID)
 
BOOL FullPathExec (LPCTSTR pszExeFile, LPCTSTR pszCmdLine, UINT nCmdShow, BOOL bSysWinDir)
 
static BOOL RunCPLSetting (LPCTSTR pszCmdLine)
 
EXTERN_C BOOL WINAPI TF_GetThreadFlags (_In_ DWORD dwThreadId, _Out_ LPDWORD pdwFlags1, _Out_ LPDWORD pdwFlags2, _Out_ LPDWORD pdwFlags3)
 
EXTERN_C HRESULT WINAPI TF_CreateCategoryMgr (_Out_ ITfCategoryMgr **ppcat)
 
EXTERN_C HANDLE WINAPI TF_CreateCicLoadMutex (_Out_ LPBOOL pfWinLogon)
 
EXTERN_C HRESULT WINAPI TF_CreateDisplayAttributeMgr (_Out_ ITfDisplayAttributeMgr **ppdam)
 
EXTERN_C BOOL WINAPI TF_DllDetachInOther (VOID)
 
EXTERN_C HRESULT WINAPI TF_GetGlobalCompartment (_Out_ ITfCompartmentMgr **ppCompMgr)
 
EXTERN_C HICON WINAPI TF_GetLangIcon (_In_ LANGID LangID, _Out_ PWSTR pszText, _In_ INT cchText)
 
EXTERN_C BOOL WINAPI TF_IsFullScreenWindowAcitvated (VOID)
 
EXTERN_C HRESULT WINAPI TF_GetInputScope (_In_opt_ HWND hWnd, _Out_ ITfInputScope **ppInputScope)
 
EXTERN_C HRESULT WINAPI SetInputScopeXML (_In_opt_ HWND hwnd, _In_opt_ PCWSTR pszXML)
 
EXTERN_C HRESULT WINAPI TF_CUASAppFix (_In_ LPCSTR pszName)
 
EXTERN_C LONG WINAPI TF_CheckThreadInputIdle (_In_ DWORD dwThreadId, _In_ DWORD dwMilliseconds)
 
EXTERN_C HRESULT WINAPI TF_ClearLangBarAddIns (_In_ REFGUID guid)
 
EXTERN_C HRESULT WINAPI TF_InvalidAssemblyListCache (VOID)
 
EXTERN_C BOOL WINAPI TF_IsInMarshaling (_In_ DWORD dwThreadId)
 
EXTERN_C HRESULT WINAPI TF_PostAllThreadMsg (_In_opt_ WPARAM wParam, _In_ DWORD dwFlags)
 
EXTERN_C BOOL WINAPI TF_InitSystem (VOID)
 
EXTERN_C BOOL WINAPI TF_UninitSystem (VOID)
 
EXTERN_C HRESULT WINAPI TF_RegisterLangBarAddIn (_In_ REFGUID rguid, _In_ LPCWSTR pszFilePath, _In_ DWORD dwFlags)
 
EXTERN_C HRESULT WINAPI TF_UnregisterLangBarAddIn (_In_ REFGUID rguid, _In_ DWORD dwFlags)
 
EXTERN_C HRESULT WINAPI TF_RunInputCPL (VOID)
 
EXTERN_C BOOL WINAPI TF_IsCtfmonRunning (VOID)
 
BOOL InitLangChangeHotKey (VOID)
 
VOID CheckAnchorStores (VOID)
 
VOID InitCUASFlag (VOID)
 
EXTERN_C VOID TFUninitLib (VOID)
 
BOOL ProcessAttach (HINSTANCE hinstDLL)
 @unimplemented
 
VOID ProcessDetach (HINSTANCE hinstDLL)
 @unimplemented
 

Variables

BOOL gf_CRT_INIT = FALSE
 
BOOL g_fDllProcessDetached = FALSE
 
CRITICAL_SECTION g_cs
 
CRITICAL_SECTION g_csInDllMain
 
CRITICAL_SECTION g_csDelayLoad
 
HINSTANCE g_hInst = NULL
 
BOOL g_bOnWow64 = FALSE
 
UINT g_uACP = CP_ACP
 
DWORD g_dwOSInfo = 0
 
HKL g_hklDefault = NULL
 
DWORD g_dwTLSIndex = (DWORD)-1
 
BOOL gfSharedMemory = FALSE
 
LONG g_cRefDll = -1
 
BOOL g_fCUAS = FALSE
 
TCHAR g_szCUASImeFile [16] = { 0 }
 
DWORD g_dwAppCompatibility = 0
 
BOOL g_fNoITextStoreAnchor = TRUE
 
UINT g_msgPrivate = 0
 
UINT g_msgSetFocus = 0
 
UINT g_msgThreadTerminate = 0
 
UINT g_msgThreadItemChange = 0
 
UINT g_msgLBarModal = 0
 
UINT g_msgRpcSendReceive = 0
 
UINT g_msgThreadMarshal = 0
 
UINT g_msgCheckThreadInputIdel = 0
 
UINT g_msgStubCleanUp = 0
 
UINT g_msgShowFloating = 0
 
UINT g_msgLBUpdate = 0
 
UINT g_msgNuiMgrDirtyUpdate = 0
 
BOOL g_fUserSidString = FALSE
 
TCHAR g_szUserSidString [MAX_PATH] = { 0 }
 
TCHAR g_szUserUnique [MAX_PATH] = { 0 }
 
TCHAR g_szAsmListCache [MAX_PATH] = { 0 }
 
TCHAR g_szTimListCache [MAX_PATH] = { 0 }
 
TCHAR g_szLayoutsCache [MAX_PATH] = { 0 }
 
CicMutex g_mutexLBES
 
CicMutex g_mutexCompart
 
CicMutex g_mutexAsm
 
CicMutex g_mutexLayouts
 
CicMutex g_mutexTMD
 
CicFileMappingStatic g_SharedMemory
 
UINT g_uLangHotKeyModifiers = 0
 
UINT g_uLangHotKeyVKey = 0
 
UINT g_uLangHotKeyVKey2 = 0
 
UINT g_uKeyTipHotKeyModifiers = 0
 
UINT g_uKeyTipHotKeyVKey = 0
 
UINT g_uKeyTipHotKeyVKey2 = 0
 

Macro Definition Documentation

◆ debugstr_t

#define debugstr_t   debugstr_a

Definition at line 189 of file utils.cpp.

◆ StringFromGUID2T

#define StringFromGUID2T   StringFromGUID2A

Definition at line 188 of file utils.cpp.

Function Documentation

◆ __cxa_pure_virtual()

void __cxa_pure_virtual ( void  )

Definition at line 82 of file utils.cpp.

83{
84 ERR("__cxa_pure_virtual\n");
85 DebugBreak();
86}
#define ERR(fmt,...)
Definition: precomp.h:57
void WINAPI DebugBreak(void)

◆ CheckAnchorStores()

VOID CheckAnchorStores ( VOID  )

@implemented

Definition at line 710 of file utils.cpp.

711{
712 HKEY hKey;
714 error = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\CTF"), 0, KEY_READ, &hKey);
715 if (error != ERROR_SUCCESS)
716 return;
717
718 DWORD dwData = 0, cbData = sizeof(dwData);
719 error = RegQueryValueEx(hKey, TEXT("EnableAnchorContext"), NULL, NULL, (PBYTE)&dwData, &cbData);
720 if (error == ERROR_SUCCESS && cbData == sizeof(DWORD) && dwData == 1)
722
724}
BOOL g_fNoITextStoreAnchor
Definition: utils.cpp:39
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
unsigned long DWORD
Definition: ntddk_ex.h:95
FxAutoRegKey hKey
#define TEXT(s)
Definition: k32.h:28
#define error(str)
Definition: mkdosfs.c:1605
static HANDLE ULONG_PTR dwData
Definition: file.c:35
#define KEY_READ
Definition: nt_native.h:1023
BYTE * PBYTE
Definition: pedump.c:66
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define RegOpenKeyEx
Definition: winreg.h:520
#define RegQueryValueEx
Definition: winreg.h:524

Referenced by ProcessAttach().

◆ FullPathExec()

BOOL FullPathExec ( LPCTSTR  pszExeFile,
LPCTSTR  pszCmdLine,
UINT  nCmdShow,
BOOL  bSysWinDir 
)

Definition at line 192 of file utils.cpp.

193{
194 STARTUPINFO si;
196 CicSystemModulePath ModPath;
197 TCHAR szCommandLine[2 * MAX_PATH];
198
199 ModPath.Init(pszExeFile, bSysWinDir);
200 if (!ModPath.m_cchPath)
201 {
202 ERR("%s\n", debugstr_t(pszExeFile));
203 return FALSE;
204 }
205
206 StringCchCopy(szCommandLine, _countof(szCommandLine), pszCmdLine);
207
208 ZeroMemory(&si, sizeof(si));
209 si.cb = sizeof(si);
210 si.wShowWindow = nCmdShow;
212 if (!CreateProcess(ModPath.m_szPath, szCommandLine, NULL, NULL, FALSE,
214 {
215 ERR("%s, %s\n", debugstr_t(ModPath.m_szPath), debugstr_t(szCommandLine));
216 return FALSE;
217 }
218
219 CloseHandle(pi.hProcess);
220 CloseHandle(pi.hThread);
221 return TRUE;
222}
#define debugstr_t
Definition: utils.cpp:189
#define TRUE
Definition: types.h:120
#define CloseHandle
Definition: compat.h:739
#define MAX_PATH
Definition: compat.h:34
static refpint_t pi[]
Definition: server.c:96
#define _countof(array)
Definition: sndvol32.h:70
#define StringCchCopy
Definition: strsafe.h:139
DWORD dwFlags
Definition: winbase.h:877
DWORD cb
Definition: winbase.h:866
WORD wShowWindow
Definition: winbase.h:878
#define CreateProcess
Definition: winbase.h:3799
#define NORMAL_PRIORITY_CLASS
Definition: winbase.h:191
#define ZeroMemory
Definition: winbase.h:1753
#define STARTF_USESHOWWINDOW
Definition: winbase.h:524
char TCHAR
Definition: xmlstorage.h:189

Referenced by RunCPLSetting().

◆ GetDesktopUniqueName()

void GetDesktopUniqueName ( _In_ LPCTSTR  pszName,
_Out_ LPTSTR  pszBuff,
_In_ UINT  cchBuff 
)

Definition at line 164 of file utils.cpp.

168{
169 StringCchCopy(pszBuff, cchBuff, pszName);
170 StringCchCat(pszBuff, cchBuff, g_szUserUnique);
171}
TCHAR g_szUserUnique[MAX_PATH]
Definition: utils.cpp:58
#define StringCchCat
Definition: strsafe.h:317

Referenced by ProcessAttach(), and TF_IsCtfmonRunning().

◆ GetUserSIDString()

LPTSTR GetUserSIDString ( void  )

@implemented

Definition at line 91 of file utils.cpp.

92{
93 HANDLE hToken = NULL;
95 if (!hToken)
96 return NULL;
97
98 DWORD dwLengthNeeded = 0;
99 GetTokenInformation(hToken, TokenUser, NULL, 0, &dwLengthNeeded);
100 PTOKEN_USER pTokenUser = (PTOKEN_USER)cicMemAllocClear(dwLengthNeeded);
101 if (!pTokenUser)
102 {
103 CloseHandle(hToken);
104 return NULL;
105 }
106
107 LPTSTR StringSid = NULL;
108 if (!GetTokenInformation(hToken, TokenUser, pTokenUser, dwLengthNeeded, &dwLengthNeeded) ||
109 !ConvertSidToStringSid(pTokenUser->User.Sid, &StringSid))
110 {
111 if (StringSid)
112 {
113 LocalFree(StringSid);
114 StringSid = NULL;
115 }
116 }
117
118 cicMemFree(pTokenUser);
119 CloseHandle(hToken);
120 return StringSid;
121}
static void cicMemFree(LPVOID ptr)
Definition: cicbase.h:20
static LPVOID cicMemAllocClear(SIZE_T size)
Definition: cicbase.h:15
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
Definition: security.c:411
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
Definition: security.c:294
#define GetCurrentProcess()
Definition: compat.h:759
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define ConvertSidToStringSid
Definition: sddl.h:160
SID_AND_ATTRIBUTES User
Definition: setypes.h:1022
struct _TOKEN_USER * PTOKEN_USER
#define TOKEN_QUERY
Definition: setypes.h:940
@ TokenUser
Definition: setypes.h:978
CHAR * LPTSTR
Definition: xmlstorage.h:192

Referenced by InitUserSidString().

◆ InitCUASFlag()

VOID InitCUASFlag ( VOID  )

Definition at line 726 of file utils.cpp.

727{
728 CicRegKey regKey1;
730
731 error = regKey1.Open(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\CTF\\SystemShared\\"));
732 if (error == ERROR_SUCCESS)
733 {
734 DWORD dwValue;
735 error = regKey1.QueryDword(TEXT("CUAS"), &dwValue);
736 if (error == ERROR_SUCCESS)
737 g_fCUAS = !!dwValue;
738 }
739
740 g_szCUASImeFile[0] = TEXT('\0');
741
742 if (!g_fCUAS)
743 return;
744
745 TCHAR szImeFile[16];
746 CicRegKey regKey2;
747 error = regKey2.Open(HKEY_LOCAL_MACHINE,
748 TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\IMM"));
749 if (error == ERROR_SUCCESS)
750 {
751 error = regKey2.QuerySz(TEXT("IME File"), szImeFile, _countof(szImeFile));
752 if (error == ERROR_SUCCESS)
753 {
754 g_szCUASImeFile[_countof(g_szCUASImeFile) - 1] = TEXT('\0'); // Avoid buffer overrun
756 }
757 }
758}
TCHAR g_szCUASImeFile[16]
Definition: utils.cpp:37
BOOL g_fCUAS
Definition: utils.cpp:36
LSTATUS QuerySz(LPCTSTR pszValueName, LPTSTR pszValue, DWORD cchValueMax)
Definition: cicreg.h:84
LSTATUS Open(HKEY hKey, LPCTSTR lpSubKey, REGSAM samDesired=KEY_READ)
Definition: cicreg.h:51
LSTATUS QueryDword(LPCTSTR pszValueName, LPDWORD pdwValue)
Definition: cicreg.h:61

Referenced by ProcessAttach().

◆ InitLangChangeHotKey()

BOOL InitLangChangeHotKey ( VOID  )

@implemented

Definition at line 587 of file utils.cpp.

588{
589 CicRegKey regKey;
590 TCHAR szLanguage[2], szLayout[2];
592
593 szLanguage[0] = szLayout[0] = TEXT('3');
594 szLanguage[1] = szLayout[1] = TEXT('\0');
595
596 error = regKey.Open(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Toggle"));
597 if (error == ERROR_SUCCESS)
598 {
599 error = regKey.QuerySz(TEXT("Language Hotkey"), szLanguage, _countof(szLanguage));
600 if (error != ERROR_SUCCESS)
601 {
603 {
604 error = regKey.QuerySz(TEXT("Hotkey"), szLanguage, _countof(szLanguage));
605 if (error != ERROR_SUCCESS)
606 szLanguage[0] = TEXT('1');
607 }
608 else
609 {
610 error = regKey.QuerySz(NULL, szLanguage, _countof(szLanguage));
611 if (error != ERROR_SUCCESS)
612 szLanguage[0] = TEXT('1');
613 }
614
616 szLanguage[0] = TEXT('1');
617 }
618
619 error = regKey.QuerySz(TEXT("Layout Hotkey"), szLayout, _countof(szLayout));
620 if (error != ERROR_SUCCESS)
621 {
622 szLayout[0] = TEXT('1');
623 if (szLanguage[0] != TEXT('2'))
624 szLayout[0] = TEXT('2');
626 szLayout[0] = TEXT('3');
627 }
628
629 szLanguage[1] = TEXT('\0');
630 szLayout[1] = TEXT('\0');
631 }
632
633 if (szLanguage[0] == szLayout[0])
634 {
635 if (szLanguage[0] == TEXT('1'))
636 szLayout[0] = TEXT('2');
637 else if (szLanguage[0] == TEXT('2'))
638 szLayout[0] = TEXT('1');
639 else
640 szLayout[0] = TEXT('3');
641 }
642
644
645 switch (szLanguage[0])
646 {
647 case TEXT('2'):
651 break;
652
653 case TEXT('3'):
657 break;
658
659 case TEXT('4'):
663 break;
664
665 case TEXT('1'):
666 default:
670 break;
671 }
672
673 switch (szLayout[0])
674 {
675 case TEXT('2'):
679 break;
680
681 case TEXT('3'):
685 break;
686
687 case TEXT('4'):
691 break;
692
693 case TEXT('1'):
694 default:
698 break;
699 }
700
702
703 TRACE("HotKey: %c, %c\n", szLanguage[0], szLayout[0]);
704 return TRUE;
705}
DWORD g_dwOSInfo
Definition: utils.cpp:31
UINT g_uKeyTipHotKeyVKey
Definition: utils.cpp:78
UINT g_uLangHotKeyVKey2
Definition: utils.cpp:76
UINT g_uLangHotKeyModifiers
Definition: utils.cpp:74
UINT g_uKeyTipHotKeyVKey2
Definition: utils.cpp:79
UINT g_uKeyTipHotKeyModifiers
Definition: utils.cpp:77
UINT g_uLangHotKeyVKey
Definition: utils.cpp:75
CRITICAL_SECTION g_csInDllMain
Definition: utils.cpp:26
#define CIC_OSINFO_NT
Definition: cicbase.h:56
LCID WINAPI GetSystemDefaultLCID(void)
Definition: locale.c:1235
#define MOD_ALT
Definition: imm.h:184
#define MOD_SHIFT
Definition: imm.h:186
#define MOD_CONTROL
Definition: imm.h:185
#define LANG_CHINESE
Definition: nls.h:42
#define PRIMARYLANGID(l)
Definition: nls.h:16
#define TRACE(s)
Definition: solgame.cpp:4
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define SM_MIDEASTENABLED
Definition: winuser.h:1045
#define VK_CONTROL
Definition: winuser.h:2239
#define VK_NUMPAD0
Definition: winuser.h:2275
#define VK_SHIFT
Definition: winuser.h:2238
#define VK_OEM_3
Definition: winuser.h:2352
int WINAPI GetSystemMetrics(_In_ int)
#define VK_MENU
Definition: winuser.h:2240

Referenced by ProcessAttach().

◆ InitUniqueString()

BOOL InitUniqueString ( void  )

@implemented

Definition at line 144 of file utils.cpp.

145{
146 g_szUserUnique[0] = TEXT('\0');
147
149 HDESK hDesk = GetThreadDesktop(dwThreadId);
150
151 DWORD nLengthNeeded;
153 if (hDesk && GetUserObjectInformation(hDesk, UOI_NAME, szName, _countof(szName), &nLengthNeeded))
155
156 if (!InitUserSidString())
157 return FALSE;
158
160 return TRUE;
161}
BOOL InitUserSidString(void)
Definition: utils.cpp:126
TCHAR g_szUserSidString[MAX_PATH]
Definition: utils.cpp:57
DWORD dwThreadId
Definition: fdebug.c:31
static const WCHAR szName[]
Definition: powrprof.c:45
DWORD WINAPI GetCurrentThreadId(void)
Definition: thread.c:459
HDESK WINAPI GetThreadDesktop(_In_ DWORD)
#define UOI_NAME
Definition: winuser.h:1095
#define GetUserObjectInformation
Definition: winuser.h:5906

Referenced by ProcessAttach().

◆ InitUserSidString()

BOOL InitUserSidString ( void  )

@implemented

Definition at line 126 of file utils.cpp.

127{
129 return TRUE;
130
131 LPTSTR pszUserSID = GetUserSIDString();
132 if (!pszUserSID)
133 return FALSE;
134
137 LocalFree(pszUserSID);
138 return TRUE;
139}
LPTSTR GetUserSIDString(void)
Definition: utils.cpp:91
BOOL g_fUserSidString
Definition: utils.cpp:56

Referenced by InitUniqueString().

◆ ProcessAttach()

BOOL ProcessAttach ( HINSTANCE  hinstDLL)

@unimplemented

Definition at line 766 of file utils.cpp.

767{
769
773
775 g_hInst = hinstDLL;
778 if (g_dwTLSIndex == (DWORD)-1)
779 return FALSE;
780
781 g_msgPrivate = ::RegisterWindowMessageA("MSUIM.Msg.Private");
782 g_msgSetFocus = ::RegisterWindowMessageA("MSUIM.Msg.SetFocus");
783 g_msgThreadTerminate = ::RegisterWindowMessageA("MSUIM.Msg.ThreadTerminate");
784 g_msgThreadItemChange = ::RegisterWindowMessageA("MSUIM.Msg.ThreadItemChange");
785 g_msgLBarModal = ::RegisterWindowMessageA("MSUIM.Msg.LangBarModal");
786 g_msgRpcSendReceive = ::RegisterWindowMessageA("MSUIM.Msg.RpcSendReceive");
787 g_msgThreadMarshal = ::RegisterWindowMessageA("MSUIM.Msg.ThreadMarshal");
788 g_msgCheckThreadInputIdel = ::RegisterWindowMessageA("MSUIM.Msg.CheckThreadInputIdel");
789 g_msgStubCleanUp = ::RegisterWindowMessageA("MSUIM.Msg.StubCleanUp");
790 g_msgShowFloating = ::RegisterWindowMessageA("MSUIM.Msg.ShowFloating");
791 g_msgLBUpdate = ::RegisterWindowMessageA("MSUIM.Msg.LBUpdate");
792 g_msgNuiMgrDirtyUpdate = ::RegisterWindowMessageA("MSUIM.Msg.MuiMgrDirtyUpdate");
793 if (!g_msgPrivate ||
794 !g_msgSetFocus ||
803 !g_msgLBUpdate ||
805 {
806 return FALSE;
807 }
808
810 TRACE("cicGetOSInfo: %u, 0x%lX\n", g_uACP, g_dwOSInfo);
811
813
814 //FIXME
815
817
818 //FIXME
819
820 InitCUASFlag();
821
822 //FIXME
823
827
828 //FIXME
829
831
832 //FIXME
833
835
836 return TRUE;
837}
UINT g_msgPrivate
Definition: utils.cpp:42
VOID InitCUASFlag(VOID)
Definition: utils.cpp:726
VOID CheckAnchorStores(VOID)
Definition: utils.cpp:710
HKL g_hklDefault
Definition: utils.cpp:32
UINT g_msgLBUpdate
Definition: utils.cpp:52
UINT g_msgCheckThreadInputIdel
Definition: utils.cpp:49
BOOL g_bOnWow64
Definition: utils.cpp:29
UINT g_msgThreadMarshal
Definition: utils.cpp:48
BOOL gfSharedMemory
Definition: utils.cpp:34
CRITICAL_SECTION g_csDelayLoad
Definition: utils.cpp:27
CRITICAL_SECTION g_cs
Definition: utils.cpp:25
UINT g_msgStubCleanUp
Definition: utils.cpp:50
UINT g_msgShowFloating
Definition: utils.cpp:51
UINT g_msgNuiMgrDirtyUpdate
Definition: utils.cpp:53
UINT g_msgRpcSendReceive
Definition: utils.cpp:47
void GetDesktopUniqueName(_In_ LPCTSTR pszName, _Out_ LPTSTR pszBuff, _In_ UINT cchBuff)
Definition: utils.cpp:164
UINT g_uACP
Definition: utils.cpp:30
UINT g_msgThreadTerminate
Definition: utils.cpp:44
BOOL InitLangChangeHotKey(VOID)
Definition: utils.cpp:587
UINT g_msgSetFocus
Definition: utils.cpp:43
TCHAR g_szAsmListCache[MAX_PATH]
Definition: utils.cpp:59
BOOL InitUniqueString(void)
Definition: utils.cpp:144
TCHAR g_szTimListCache[MAX_PATH]
Definition: utils.cpp:60
UINT g_msgThreadItemChange
Definition: utils.cpp:45
BOOL gf_CRT_INIT
Definition: utils.cpp:23
DWORD g_dwTLSIndex
Definition: utils.cpp:33
UINT g_msgLBarModal
Definition: utils.cpp:46
HINSTANCE g_hInst
Definition: utils.cpp:28
TCHAR g_szLayoutsCache[MAX_PATH]
Definition: utils.cpp:61
EXTERN_C BOOL cicIsWow64(VOID)
Definition: cicbase.cpp:77
EXTERN_C void cicGetOSInfo(LPUINT puACP, LPDWORD pdwOSInfo)
Definition: cicbase.cpp:101
DWORD WINAPI DECLSPEC_HOTPATCH TlsAlloc(void)
Definition: thread.c:657
BOOL WINAPI InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount)
Definition: synch.c:765
HKL WINAPI GetKeyboardLayout(_In_ DWORD)
UINT WINAPI RegisterWindowMessageA(_In_ LPCSTR)

◆ ProcessDetach()

VOID ProcessDetach ( HINSTANCE  hinstDLL)

@unimplemented

Definition at line 840 of file utils.cpp.

841{
842 if (!gf_CRT_INIT)
843 {
845 return;
846 }
847
848 if (gfSharedMemory)
849 {
850 if (g_cRefDll != -1 )
851 TFUninitLib();
852 //FIXME
853 }
854
855 UninitINAT();
856
857 //FIXME
858
859 //TF_UninitThreadSystem();
860
861 //FIXME
862
863 if (g_dwTLSIndex != (DWORD)-1)
864 {
866 g_dwTLSIndex = (DWORD)-1;
867 }
868
869 //FIXME
870
871 if (gfSharedMemory)
872 {
876 //FIXME
879 //FIXME
881 }
882
884
888
890}
CicMutex g_mutexLBES
Definition: utils.cpp:64
EXTERN_C VOID TFUninitLib(VOID)
Definition: utils.cpp:760
CicMutex g_mutexLayouts
Definition: utils.cpp:67
CicMutex g_mutexAsm
Definition: utils.cpp:66
LONG g_cRefDll
Definition: utils.cpp:35
CicMutex g_mutexTMD
Definition: utils.cpp:68
CicMutex g_mutexCompart
Definition: utils.cpp:65
CicFileMappingStatic g_SharedMemory
Definition: utils.cpp:71
BOOL g_fDllProcessDetached
Definition: utils.cpp:24
void Uninit()
Definition: cicmutex.h:31
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
VOID UninitINAT(VOID)
@implemented
Definition: mlng.cpp:348
#define DWORD
Definition: nt_native.h:44
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

◆ RunCPLSetting()

static BOOL RunCPLSetting ( LPCTSTR  pszCmdLine)
inlinestatic

Definition at line 225 of file utils.cpp.

226{
227 if (!pszCmdLine)
228 return FALSE;
229
230 return FullPathExec(TEXT("rundll32.exe"), pszCmdLine, SW_SHOWMINNOACTIVE, FALSE);
231}
BOOL FullPathExec(LPCTSTR pszExeFile, LPCTSTR pszCmdLine, UINT nCmdShow, BOOL bSysWinDir)
Definition: utils.cpp:192
#define SW_SHOWMINNOACTIVE
Definition: winuser.h:788

Referenced by TF_RunInputCPL().

◆ SetInputScopeXML()

EXTERN_C HRESULT WINAPI SetInputScopeXML ( _In_opt_ HWND  hwnd,
_In_opt_ PCWSTR  pszXML 
)

Definition at line 358 of file utils.cpp.

359{
360 FIXME("(%p, %p)\n", hwnd, pszXML);
361 return E_NOTIMPL;
362}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ StringFromGUID2A()

BOOL StringFromGUID2A ( REFGUID  rguid,
LPSTR  pszGUID,
INT  cchGUID 
)

Definition at line 173 of file utils.cpp.

174{
175 pszGUID[0] = ANSI_NULL;
176
177 WCHAR szWide[40];
178 szWide[0] = UNICODE_NULL;
179 BOOL ret = StringFromGUID2(rguid, szWide, _countof(szWide));
180 ::WideCharToMultiByte(CP_ACP, 0, szWide, -1, pszGUID, cchGUID, NULL, NULL);
181 return ret;
182}
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
Definition: compobj.c:2434
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
#define UNICODE_NULL
#define ANSI_NULL
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ TF_CheckThreadInputIdle()

EXTERN_C LONG WINAPI TF_CheckThreadInputIdle ( _In_ DWORD  dwThreadId,
_In_ DWORD  dwMilliseconds 
)

Definition at line 384 of file utils.cpp.

385{
386 FIXME("(%lu, %lu)\n", dwThreadId, dwMilliseconds);
387 return -1;
388}

◆ TF_ClearLangBarAddIns()

EXTERN_C HRESULT WINAPI TF_ClearLangBarAddIns ( _In_ REFGUID  guid)

Definition at line 396 of file utils.cpp.

397{
398 FIXME("(%p)\n", guid);
399 return E_NOTIMPL;
400}
GUID guid
Definition: version.c:147

◆ TF_CreateCategoryMgr()

EXTERN_C HRESULT WINAPI TF_CreateCategoryMgr ( _Out_ ITfCategoryMgr **  ppcat)

Definition at line 256 of file utils.cpp.

257{
258 TRACE("(%p)\n", ppcat);
259 return CategoryMgr_Constructor(NULL, (IUnknown **)ppcat);
260}
EXTERN_C HRESULT CategoryMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)

Referenced by MsUtbCoCreateInstance().

◆ TF_CreateCicLoadMutex()

EXTERN_C HANDLE WINAPI TF_CreateCicLoadMutex ( _Out_ LPBOOL  pfWinLogon)

Definition at line 268 of file utils.cpp.

269{
270 FIXME("(%p)\n", pfWinLogon);
271 if (!pfWinLogon)
272 return NULL;
273 *pfWinLogon = FALSE;
274 return NULL;
275}

Referenced by InitApp().

◆ TF_CreateDisplayAttributeMgr()

EXTERN_C HRESULT WINAPI TF_CreateDisplayAttributeMgr ( _Out_ ITfDisplayAttributeMgr **  ppdam)

Definition at line 283 of file utils.cpp.

284{
285 TRACE("(%p)\n", ppdam);
287}
EXTERN_C HRESULT DisplayAttributeMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)

Referenced by MsUtbCoCreateInstance().

◆ TF_CUASAppFix()

EXTERN_C HRESULT WINAPI TF_CUASAppFix ( _In_ LPCSTR  pszName)

Definition at line 370 of file utils.cpp.

371{
372 if (!pszName || lstrcmpiA(pszName, "DelayFirstActivateKeyboardLayout") != 0)
373 return E_INVALIDARG;
375 return S_OK;
376}
DWORD g_dwAppCompatibility
Definition: utils.cpp:38
#define E_INVALIDARG
Definition: ddrawi.h:101
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4227
#define S_OK
Definition: intsafe.h:52
#define CTF_COMPAT_DELAY_FIRST_ACTIVATE
Definition: mlng.h:10

◆ TF_DllDetachInOther()

EXTERN_C BOOL WINAPI TF_DllDetachInOther ( VOID  )

Definition at line 295 of file utils.cpp.

296{
297 FIXME("()\n");
298 return TRUE;
299}

Referenced by DllMain(), and ProcessDetach().

◆ TF_GetGlobalCompartment()

EXTERN_C HRESULT WINAPI TF_GetGlobalCompartment ( _Out_ ITfCompartmentMgr **  ppCompMgr)

Definition at line 307 of file utils.cpp.

308{
309 FIXME("(%p)\n", ppCompMgr);
310 *ppCompMgr = NULL;
311 return E_NOTIMPL;
312}

Referenced by GetGlobalCompartment().

◆ TF_GetInputScope()

EXTERN_C HRESULT WINAPI TF_GetInputScope ( _In_opt_ HWND  hWnd,
_Out_ ITfInputScope **  ppInputScope 
)

Definition at line 345 of file utils.cpp.

346{
347 FIXME("(%p, %p)\n", hWnd, ppInputScope);
348 *ppInputScope = NULL;
349 return E_NOTIMPL;
350}
HWND hWnd
Definition: settings.c:17

◆ TF_GetLangIcon()

EXTERN_C HICON WINAPI TF_GetLangIcon ( _In_ LANGID  LangID,
_Out_ PWSTR  pszText,
_In_ INT  cchText 
)

Definition at line 320 of file utils.cpp.

321{
322 FIXME("(0x%X, %p, %d)\n", LangID, pszText, cchText);
323 return NULL;
324}
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
Definition: wdfusb.h:1083
_In_ int cchText
Definition: winuser.h:4567

Referenced by CTrayIconWnd::SetMainIcon().

◆ TF_GetThreadFlags()

EXTERN_C BOOL WINAPI TF_GetThreadFlags ( _In_ DWORD  dwThreadId,
_Out_ LPDWORD  pdwFlags1,
_Out_ LPDWORD  pdwFlags2,
_Out_ LPDWORD  pdwFlags3 
)

Definition at line 239 of file utils.cpp.

244{
245 FIXME("(%lu, %p, %p, %p)\n", dwThreadId, pdwFlags1, pdwFlags2, pdwFlags3);
246 *pdwFlags1 = *pdwFlags2 = *pdwFlags3 = 0;
247 return FALSE;
248}

Referenced by CTipbarWnd::_FindThread(), and CTipbarThread::Init().

◆ TF_InitSystem()

EXTERN_C BOOL WINAPI TF_InitSystem ( VOID  )

Definition at line 444 of file utils.cpp.

445{
446 FIXME("()\n");
447 return FALSE;
448}

Referenced by InitApp(), and CLoaderWnd::WindowProc().

◆ TF_InvalidAssemblyListCache()

EXTERN_C HRESULT WINAPI TF_InvalidAssemblyListCache ( VOID  )

Definition at line 408 of file utils.cpp.

409{
410 FIXME("()\n");
411 return E_NOTIMPL;
412}

Referenced by CRegWatcher::RegImxTimerProc().

◆ TF_IsCtfmonRunning()

EXTERN_C BOOL WINAPI TF_IsCtfmonRunning ( VOID  )

Definition at line 571 of file utils.cpp.

572{
574 GetDesktopUniqueName(TEXT("CtfmonInstMutex"), szName, _countof(szName));
575
577 if (!hMutex)
578 return FALSE;
579
581 return TRUE;
582}
HANDLE hMutex
Definition: mutex.c:11
#define MUTEX_ALL_ACCESS
Definition: winbase.h:166
#define OpenMutex
Definition: winbase.h:3929

◆ TF_IsFullScreenWindowAcitvated()

EXTERN_C BOOL WINAPI TF_IsFullScreenWindowAcitvated ( VOID  )

Definition at line 333 of file utils.cpp.

334{
335 FIXME("()\n");
336 return FALSE;
337}

◆ TF_IsInMarshaling()

EXTERN_C BOOL WINAPI TF_IsInMarshaling ( _In_ DWORD  dwThreadId)

Definition at line 420 of file utils.cpp.

421{
422 FIXME("(%lu)\n", dwThreadId);
423 return FALSE;
424}

◆ TF_PostAllThreadMsg()

EXTERN_C HRESULT WINAPI TF_PostAllThreadMsg ( _In_opt_ WPARAM  wParam,
_In_ DWORD  dwFlags 
)

Definition at line 432 of file utils.cpp.

433{
434 FIXME("(%p, 0x%X)\n", wParam, dwFlags);
435 return E_NOTIMPL;
436}
WPARAM wParam
Definition: combotst.c:138
LPCWSTR LPCWSTR LPCWSTR DWORD dwFlags
Definition: env.c:37

Referenced by CRegWatcher::KbdToggleTimerProc(), CRegWatcher::RegImxTimerProc(), and CRegWatcher::SysColorTimerProc().

◆ TF_RegisterLangBarAddIn()

EXTERN_C HRESULT WINAPI TF_RegisterLangBarAddIn ( _In_ REFGUID  rguid,
_In_ LPCWSTR  pszFilePath,
_In_ DWORD  dwFlags 
)

Definition at line 468 of file utils.cpp.

472{
473 TRACE("(%s, %s, 0x%lX)\n", debugstr_guid(&rguid), debugstr_w(pszFilePath), dwFlags);
474
475 if (!pszFilePath || rguid == GUID_NULL)
476 {
477 ERR("E_INVALIDARG\n");
478 return E_INVALIDARG;
479 }
480
481 TCHAR szBuff[MAX_PATH], szGUID[40];
482 StringCchCopy(szBuff, _countof(szBuff), TEXT("SOFTWARE\\Microsoft\\CTF\\LangBarAddIn\\"));
483 StringFromGUID2T(rguid, szGUID, _countof(szGUID));
484 StringCchCat(szBuff, _countof(szBuff), szGUID);
485
486 CicRegKey regKey;
487 HKEY hBaseKey = ((dwFlags & 1) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER);
488 LSTATUS error = regKey.Create(hBaseKey, szBuff);
489 if (error == ERROR_SUCCESS)
490 {
491 error = regKey.SetSzW(L"FilePath", pszFilePath);
492 if (error == ERROR_SUCCESS)
493 error = regKey.SetDword(TEXT("Enable"), !!(dwFlags & 4));
494 }
495
496 return ((error == ERROR_SUCCESS) ? S_OK : E_FAIL);
497}
#define StringFromGUID2T
Definition: utils.cpp:188
LSTATUS SetDword(LPCTSTR pszValueName, DWORD dwValue)
Definition: cicreg.h:67
LSTATUS Create(HKEY hKey, LPCTSTR lpSubKey)
Definition: cicreg.h:56
LSTATUS SetSzW(LPCWSTR pszValueName, LPCWSTR pszValue)
Definition: cicreg.h:78
#define E_FAIL
Definition: ddrawi.h:102
#define L(x)
Definition: resources.c:13
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_w
Definition: kernel32.h:32
#define GUID_NULL
Definition: ks.h:106

◆ TF_RunInputCPL()

EXTERN_C HRESULT WINAPI TF_RunInputCPL ( VOID  )

Definition at line 541 of file utils.cpp.

542{
543 CicSystemModulePath ModPath;
544 TCHAR szCmdLine[2 * MAX_PATH];
545
546 TRACE("()\n");
547
548 // NOTE: We don't support Win95/98/Me
550 ModPath.Init(TEXT("input.dll"), FALSE);
551 else
552 ModPath.Init(TEXT("input.cpl"), FALSE);
553
554 if (!ModPath.m_cchPath)
555 return E_FAIL;
556
557 StringCchPrintf(szCmdLine, _countof(szCmdLine),
558 TEXT("rundll32.exe shell32.dll,Control_RunDLL %s"), ModPath.m_szPath);
559 if (!RunCPLSetting(szCmdLine))
560 return E_FAIL;
561
562 return S_OK;
563}
static BOOL RunCPLSetting(LPCTSTR pszCmdLine)
Definition: utils.cpp:225
#define CIC_OSINFO_XPPLUS
Definition: cicbase.h:63
#define StringCchPrintf
Definition: strsafe.h:517

Referenced by CUTBContextMenu::SelectMenuItem().

◆ TF_UninitSystem()

EXTERN_C BOOL WINAPI TF_UninitSystem ( VOID  )

Definition at line 456 of file utils.cpp.

457{
458 FIXME("()\n");
459 return FALSE;
460}

Referenced by _tWinMain(), and CLoaderWnd::WindowProc().

◆ TF_UnregisterLangBarAddIn()

EXTERN_C HRESULT WINAPI TF_UnregisterLangBarAddIn ( _In_ REFGUID  rguid,
_In_ DWORD  dwFlags 
)

Definition at line 505 of file utils.cpp.

508{
509 TRACE("(%s, 0x%lX)\n", debugstr_guid(&rguid), dwFlags);
510
511 if (rguid == GUID_NULL)
512 {
513 ERR("E_INVALIDARG\n");
514 return E_INVALIDARG;
515 }
516
517 TCHAR szSubKey[MAX_PATH];
518 StringCchCopy(szSubKey, _countof(szSubKey), TEXT("SOFTWARE\\Microsoft\\CTF\\LangBarAddIn\\"));
519
520 CicRegKey regKey;
521 HKEY hBaseKey = ((dwFlags & 1) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER);
522 LSTATUS error = regKey.Open(hBaseKey, szSubKey, KEY_ALL_ACCESS);
523 HRESULT hr = E_FAIL;
524 if (error == ERROR_SUCCESS)
525 {
526 TCHAR szGUID[40];
527 StringFromGUID2T(rguid, szGUID, _countof(szGUID));
528 regKey.RecurseDeleteKey(szGUID);
529 hr = S_OK;
530 }
531
532 return hr;
533}
LSTATUS RecurseDeleteKey(LPCTSTR lpSubKey)
Definition: cicreg.h:113
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
HRESULT hr
Definition: shlfolder.c:183

◆ TFUninitLib()

EXTERN_C VOID TFUninitLib ( VOID  )

Definition at line 760 of file utils.cpp.

761{
762 // Do nothing
763}

Referenced by ProcessDetach().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msctf  )

Variable Documentation

◆ g_bOnWow64

BOOL g_bOnWow64 = FALSE

Definition at line 29 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_cRefDll

LONG g_cRefDll = -1

Definition at line 35 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_cs

Definition at line 25 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_csDelayLoad

CRITICAL_SECTION g_csDelayLoad

Definition at line 27 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_csInDllMain

CRITICAL_SECTION g_csInDllMain

Definition at line 26 of file utils.cpp.

Referenced by InitLangChangeHotKey(), ProcessAttach(), and ProcessDetach().

◆ g_dwAppCompatibility

DWORD g_dwAppCompatibility = 0

Definition at line 38 of file utils.cpp.

Referenced by TF_CUASAppFix().

◆ g_dwOSInfo

DWORD g_dwOSInfo = 0

Definition at line 31 of file utils.cpp.

Referenced by InitLangChangeHotKey(), ProcessAttach(), and TF_RunInputCPL().

◆ g_dwTLSIndex

DWORD g_dwTLSIndex = (DWORD)-1

Definition at line 33 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_fCUAS

BOOL g_fCUAS = FALSE

Definition at line 36 of file utils.cpp.

Referenced by InitCUASFlag().

◆ g_fDllProcessDetached

BOOL g_fDllProcessDetached = FALSE

Definition at line 24 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_fNoITextStoreAnchor

BOOL g_fNoITextStoreAnchor = TRUE

Definition at line 39 of file utils.cpp.

Referenced by CheckAnchorStores().

◆ g_fUserSidString

BOOL g_fUserSidString = FALSE

Definition at line 56 of file utils.cpp.

Referenced by InitUserSidString().

◆ g_hInst

HINSTANCE g_hInst = NULL

Definition at line 28 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_hklDefault

HKL g_hklDefault = NULL

Definition at line 32 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgCheckThreadInputIdel

UINT g_msgCheckThreadInputIdel = 0

Definition at line 49 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgLBarModal

UINT g_msgLBarModal = 0

Definition at line 46 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgLBUpdate

UINT g_msgLBUpdate = 0

Definition at line 52 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgNuiMgrDirtyUpdate

UINT g_msgNuiMgrDirtyUpdate = 0

Definition at line 53 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgPrivate

UINT g_msgPrivate = 0

Definition at line 42 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgRpcSendReceive

UINT g_msgRpcSendReceive = 0

Definition at line 47 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgSetFocus

UINT g_msgSetFocus = 0

Definition at line 43 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgShowFloating

UINT g_msgShowFloating = 0

Definition at line 51 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgStubCleanUp

UINT g_msgStubCleanUp = 0

Definition at line 50 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadItemChange

UINT g_msgThreadItemChange = 0

Definition at line 45 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadMarshal

UINT g_msgThreadMarshal = 0

Definition at line 48 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadTerminate

UINT g_msgThreadTerminate = 0

Definition at line 44 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_mutexAsm

CicMutex g_mutexAsm

Definition at line 66 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexCompart

CicMutex g_mutexCompart

Definition at line 65 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexLayouts

CicMutex g_mutexLayouts

Definition at line 67 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexLBES

CicMutex g_mutexLBES

Definition at line 64 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexTMD

CicMutex g_mutexTMD

Definition at line 68 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_SharedMemory

CicFileMappingStatic g_SharedMemory

Definition at line 71 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_szAsmListCache

TCHAR g_szAsmListCache[MAX_PATH] = { 0 }

Definition at line 59 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szCUASImeFile

TCHAR g_szCUASImeFile[16] = { 0 }

Definition at line 37 of file utils.cpp.

Referenced by InitCUASFlag().

◆ g_szLayoutsCache

TCHAR g_szLayoutsCache[MAX_PATH] = { 0 }

Definition at line 61 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szTimListCache

TCHAR g_szTimListCache[MAX_PATH] = { 0 }

Definition at line 60 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szUserSidString

TCHAR g_szUserSidString[MAX_PATH] = { 0 }

Definition at line 57 of file utils.cpp.

Referenced by InitUniqueString(), and InitUserSidString().

◆ g_szUserUnique

TCHAR g_szUserUnique[MAX_PATH] = { 0 }

Definition at line 58 of file utils.cpp.

Referenced by GetDesktopUniqueName(), and InitUniqueString().

◆ g_uACP

UINT g_uACP = CP_ACP

Definition at line 30 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_uKeyTipHotKeyModifiers

UINT g_uKeyTipHotKeyModifiers = 0

Definition at line 77 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uKeyTipHotKeyVKey

UINT g_uKeyTipHotKeyVKey = 0

Definition at line 78 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uKeyTipHotKeyVKey2

UINT g_uKeyTipHotKeyVKey2 = 0

Definition at line 79 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyModifiers

UINT g_uLangHotKeyModifiers = 0

Definition at line 74 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyVKey

UINT g_uLangHotKeyVKey = 0

Definition at line 75 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyVKey2

UINT g_uLangHotKeyVKey2 = 0

Definition at line 76 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ gf_CRT_INIT

BOOL gf_CRT_INIT = FALSE

Definition at line 23 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ gfSharedMemory

BOOL gfSharedMemory = FALSE

Definition at line 34 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().