ReactOS 0.4.16-dev-1247-g7d8d8a6
utils.cpp File Reference
#include <stdlib.h>
#include <windows.h>
#include <sddl.h>
#include <imm.h>
#include <cguid.h>
#include <tchar.h>
#include <msctf.h>
#include <msctf_undoc.h>
#include <ctffunc.h>
#include <shlwapi.h>
#include <strsafe.h>
#include <cicarray.h>
#include <cicreg.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 WIN32_LEAN_AND_MEAN
 
#define WIN32_NO_STATUS
 
#define COBJMACROS
 
#define INITGUID
 
#define _EXTYPES_H
 
#define StringFromGUID2T   StringFromGUID2A
 
#define debugstr_t   debugstr_a
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msctf)
 
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)
 
VOID ProcessDetach (HINSTANCE hinstDLL)
 

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

◆ _EXTYPES_H

#define _EXTYPES_H

Definition at line 14 of file utils.cpp.

◆ COBJMACROS

#define COBJMACROS

Definition at line 12 of file utils.cpp.

◆ debugstr_t

#define debugstr_t   debugstr_a

Definition at line 197 of file utils.cpp.

◆ INITGUID

#define INITGUID

Definition at line 13 of file utils.cpp.

◆ StringFromGUID2T

#define StringFromGUID2T   StringFromGUID2A

Definition at line 196 of file utils.cpp.

◆ WIN32_LEAN_AND_MEAN

#define WIN32_LEAN_AND_MEAN

Definition at line 10 of file utils.cpp.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 11 of file utils.cpp.

Function Documentation

◆ CheckAnchorStores()

VOID CheckAnchorStores ( VOID  )

@implemented

Definition at line 721 of file utils.cpp.

722{
723 HKEY hKey;
725 error = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\CTF"), 0, KEY_READ, &hKey);
726 if (error != ERROR_SUCCESS)
727 return;
728
729 DWORD dwData = 0, cbData = sizeof(dwData);
730 error = RegQueryValueEx(hKey, TEXT("EnableAnchorContext"), NULL, NULL, (PBYTE)&dwData, &cbData);
731 if (error == ERROR_SUCCESS && cbData == sizeof(DWORD) && dwData == 1)
733
735}
BOOL g_fNoITextStoreAnchor
Definition: utils.cpp:54
#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 200 of file utils.cpp.

201{
202 STARTUPINFO si;
204 CicSystemModulePath ModPath;
205 TCHAR szCommandLine[2 * MAX_PATH];
206
207 ModPath.Init(pszExeFile, bSysWinDir);
208 if (!ModPath.m_cchPath)
209 {
210 ERR("%s\n", debugstr_t(pszExeFile));
211 return FALSE;
212 }
213
214 StringCchCopy(szCommandLine, _countof(szCommandLine), pszCmdLine);
215
216 ZeroMemory(&si, sizeof(si));
217 si.cb = sizeof(si);
218 si.wShowWindow = nCmdShow;
220 if (!CreateProcess(ModPath.m_szPath, szCommandLine, NULL, NULL, FALSE,
222 {
223 ERR("%s, %s\n", debugstr_t(ModPath.m_szPath), debugstr_t(szCommandLine));
224 return FALSE;
225 }
226
227 CloseHandle(pi.hProcess);
228 CloseHandle(pi.hThread);
229 return TRUE;
230}
#define debugstr_t
Definition: utils.cpp:197
#define ERR(fmt,...)
Definition: precomp.h:57
#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 172 of file utils.cpp.

176{
177 StringCchCopy(pszBuff, cchBuff, pszName);
178 StringCchCat(pszBuff, cchBuff, g_szUserUnique);
179}
TCHAR g_szUserUnique[MAX_PATH]
Definition: utils.cpp:73
#define StringCchCat
Definition: strsafe.h:317

Referenced by ProcessAttach(), and TF_IsCtfmonRunning().

◆ GetUserSIDString()

LPTSTR GetUserSIDString ( void  )

@implemented

Definition at line 99 of file utils.cpp.

100{
101 HANDLE hToken = NULL;
103 if (!hToken)
104 return NULL;
105
106 DWORD dwLengthNeeded = 0;
107 GetTokenInformation(hToken, TokenUser, NULL, 0, &dwLengthNeeded);
108 PTOKEN_USER pTokenUser = (PTOKEN_USER)cicMemAllocClear(dwLengthNeeded);
109 if (!pTokenUser)
110 {
111 CloseHandle(hToken);
112 return NULL;
113 }
114
115 LPTSTR StringSid = NULL;
116 if (!GetTokenInformation(hToken, TokenUser, pTokenUser, dwLengthNeeded, &dwLengthNeeded) ||
117 !ConvertSidToStringSid(pTokenUser->User.Sid, &StringSid))
118 {
119 if (StringSid)
120 {
121 LocalFree(StringSid);
122 StringSid = NULL;
123 }
124 }
125
126 cicMemFree(pTokenUser);
127 CloseHandle(hToken);
128 return StringSid;
129}
static void cicMemFree(LPVOID ptr)
Definition: cicbase.h:27
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 737 of file utils.cpp.

738{
739 CicRegKey regKey1;
741
742 error = regKey1.Open(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\CTF\\SystemShared\\"));
743 if (error == ERROR_SUCCESS)
744 {
745 DWORD dwValue;
746 error = regKey1.QueryDword(TEXT("CUAS"), &dwValue);
747 if (error == ERROR_SUCCESS)
748 g_fCUAS = !!dwValue;
749 }
750
751 g_szCUASImeFile[0] = TEXT('\0');
752
753 if (!g_fCUAS)
754 return;
755
756 TCHAR szImeFile[16];
757 CicRegKey regKey2;
758 error = regKey2.Open(HKEY_LOCAL_MACHINE,
759 TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\IMM"));
760 if (error == ERROR_SUCCESS)
761 {
762 error = regKey2.QuerySz(TEXT("IME File"), szImeFile, _countof(szImeFile));
763 if (error == ERROR_SUCCESS)
764 {
765 g_szCUASImeFile[_countof(g_szCUASImeFile) - 1] = TEXT('\0'); // Avoid buffer overrun
767 }
768 }
769}
TCHAR g_szCUASImeFile[16]
Definition: utils.cpp:52
BOOL g_fCUAS
Definition: utils.cpp:51
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 598 of file utils.cpp.

599{
600 CicRegKey regKey;
601 TCHAR szLanguage[2], szLayout[2];
603
604 szLanguage[0] = szLayout[0] = TEXT('3');
605 szLanguage[1] = szLayout[1] = TEXT('\0');
606
607 error = regKey.Open(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Toggle"));
608 if (error == ERROR_SUCCESS)
609 {
610 error = regKey.QuerySz(TEXT("Language Hotkey"), szLanguage, _countof(szLanguage));
611 if (error != ERROR_SUCCESS)
612 {
614 {
615 error = regKey.QuerySz(TEXT("Hotkey"), szLanguage, _countof(szLanguage));
616 if (error != ERROR_SUCCESS)
617 szLanguage[0] = TEXT('1');
618 }
619 else
620 {
621 error = regKey.QuerySz(NULL, szLanguage, _countof(szLanguage));
622 if (error != ERROR_SUCCESS)
623 szLanguage[0] = TEXT('1');
624 }
625
627 szLanguage[0] = TEXT('1');
628 }
629
630 error = regKey.QuerySz(TEXT("Layout Hotkey"), szLayout, _countof(szLayout));
631 if (error != ERROR_SUCCESS)
632 {
633 szLayout[0] = TEXT('1');
634 if (szLanguage[0] != TEXT('2'))
635 szLayout[0] = TEXT('2');
637 szLayout[0] = TEXT('3');
638 }
639
640 szLanguage[1] = TEXT('\0');
641 szLayout[1] = TEXT('\0');
642 }
643
644 if (szLanguage[0] == szLayout[0])
645 {
646 if (szLanguage[0] == TEXT('1'))
647 szLayout[0] = TEXT('2');
648 else if (szLanguage[0] == TEXT('2'))
649 szLayout[0] = TEXT('1');
650 else
651 szLayout[0] = TEXT('3');
652 }
653
655
656 switch (szLanguage[0])
657 {
658 case TEXT('2'):
662 break;
663
664 case TEXT('3'):
668 break;
669
670 case TEXT('4'):
674 break;
675
676 case TEXT('1'):
677 default:
681 break;
682 }
683
684 switch (szLayout[0])
685 {
686 case TEXT('2'):
690 break;
691
692 case TEXT('3'):
696 break;
697
698 case TEXT('4'):
702 break;
703
704 case TEXT('1'):
705 default:
709 break;
710 }
711
713
714 TRACE("HotKey: %c, %c\n", szLanguage[0], szLayout[0]);
715 return TRUE;
716}
DWORD g_dwOSInfo
Definition: utils.cpp:46
UINT g_uKeyTipHotKeyVKey
Definition: utils.cpp:93
UINT g_uLangHotKeyVKey2
Definition: utils.cpp:91
UINT g_uLangHotKeyModifiers
Definition: utils.cpp:89
UINT g_uKeyTipHotKeyVKey2
Definition: utils.cpp:94
UINT g_uKeyTipHotKeyModifiers
Definition: utils.cpp:92
UINT g_uLangHotKeyVKey
Definition: utils.cpp:90
CRITICAL_SECTION g_csInDllMain
Definition: utils.cpp:41
#define CIC_OSINFO_NT
Definition: cicbase.h:44
LCID WINAPI GetSystemDefaultLCID(void)
Definition: locale.c:1230
#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:2222
#define VK_NUMPAD0
Definition: winuser.h:2258
#define VK_SHIFT
Definition: winuser.h:2221
#define VK_OEM_3
Definition: winuser.h:2335
int WINAPI GetSystemMetrics(_In_ int)
#define VK_MENU
Definition: winuser.h:2223

Referenced by ProcessAttach().

◆ InitUniqueString()

BOOL InitUniqueString ( void  )

@implemented

Definition at line 152 of file utils.cpp.

153{
154 g_szUserUnique[0] = TEXT('\0');
155
157 HDESK hDesk = GetThreadDesktop(dwThreadId);
158
159 DWORD nLengthNeeded;
161 if (hDesk && GetUserObjectInformation(hDesk, UOI_NAME, szName, _countof(szName), &nLengthNeeded))
163
164 if (!InitUserSidString())
165 return FALSE;
166
168 return TRUE;
169}
BOOL InitUserSidString(void)
Definition: utils.cpp:134
TCHAR g_szUserSidString[MAX_PATH]
Definition: utils.cpp:72
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:5880

Referenced by ProcessAttach().

◆ InitUserSidString()

BOOL InitUserSidString ( void  )

@implemented

Definition at line 134 of file utils.cpp.

135{
137 return TRUE;
138
139 LPTSTR pszUserSID = GetUserSIDString();
140 if (!pszUserSID)
141 return FALSE;
142
145 LocalFree(pszUserSID);
146 return TRUE;
147}
LPTSTR GetUserSIDString(void)
Definition: utils.cpp:99
BOOL g_fUserSidString
Definition: utils.cpp:71

Referenced by InitUniqueString().

◆ ProcessAttach()

BOOL ProcessAttach ( HINSTANCE  hinstDLL)

@unimplemented

Definition at line 779 of file utils.cpp.

780{
782
786
788 g_hInst = hinstDLL;
791 if (g_dwTLSIndex == (DWORD)-1)
792 return FALSE;
793
794 g_msgPrivate = ::RegisterWindowMessageA("MSUIM.Msg.Private");
795 g_msgSetFocus = ::RegisterWindowMessageA("MSUIM.Msg.SetFocus");
796 g_msgThreadTerminate = ::RegisterWindowMessageA("MSUIM.Msg.ThreadTerminate");
797 g_msgThreadItemChange = ::RegisterWindowMessageA("MSUIM.Msg.ThreadItemChange");
798 g_msgLBarModal = ::RegisterWindowMessageA("MSUIM.Msg.LangBarModal");
799 g_msgRpcSendReceive = ::RegisterWindowMessageA("MSUIM.Msg.RpcSendReceive");
800 g_msgThreadMarshal = ::RegisterWindowMessageA("MSUIM.Msg.ThreadMarshal");
801 g_msgCheckThreadInputIdel = ::RegisterWindowMessageA("MSUIM.Msg.CheckThreadInputIdel");
802 g_msgStubCleanUp = ::RegisterWindowMessageA("MSUIM.Msg.StubCleanUp");
803 g_msgShowFloating = ::RegisterWindowMessageA("MSUIM.Msg.ShowFloating");
804 g_msgLBUpdate = ::RegisterWindowMessageA("MSUIM.Msg.LBUpdate");
805 g_msgNuiMgrDirtyUpdate = ::RegisterWindowMessageA("MSUIM.Msg.MuiMgrDirtyUpdate");
806 if (!g_msgPrivate ||
807 !g_msgSetFocus ||
816 !g_msgLBUpdate ||
818 {
819 return FALSE;
820 }
821
823 TRACE("cicGetOSInfo: %u, 0x%lX\n", g_uACP, g_dwOSInfo);
824
826
827 //FIXME
828
830
831 //FIXME
832
833 InitCUASFlag();
834
835 //FIXME
836
840
841 //FIXME
842
844
845 //FIXME
846
848
849 return TRUE;
850}
UINT g_msgPrivate
Definition: utils.cpp:57
VOID InitCUASFlag(VOID)
Definition: utils.cpp:737
VOID CheckAnchorStores(VOID)
Definition: utils.cpp:721
HKL g_hklDefault
Definition: utils.cpp:47
UINT g_msgLBUpdate
Definition: utils.cpp:67
UINT g_msgCheckThreadInputIdel
Definition: utils.cpp:64
BOOL g_bOnWow64
Definition: utils.cpp:44
UINT g_msgThreadMarshal
Definition: utils.cpp:63
BOOL gfSharedMemory
Definition: utils.cpp:49
CRITICAL_SECTION g_csDelayLoad
Definition: utils.cpp:42
CRITICAL_SECTION g_cs
Definition: utils.cpp:40
UINT g_msgStubCleanUp
Definition: utils.cpp:65
UINT g_msgShowFloating
Definition: utils.cpp:66
UINT g_msgNuiMgrDirtyUpdate
Definition: utils.cpp:68
UINT g_msgRpcSendReceive
Definition: utils.cpp:62
void GetDesktopUniqueName(_In_ LPCTSTR pszName, _Out_ LPTSTR pszBuff, _In_ UINT cchBuff)
Definition: utils.cpp:172
UINT g_uACP
Definition: utils.cpp:45
UINT g_msgThreadTerminate
Definition: utils.cpp:59
BOOL InitLangChangeHotKey(VOID)
Definition: utils.cpp:598
UINT g_msgSetFocus
Definition: utils.cpp:58
TCHAR g_szAsmListCache[MAX_PATH]
Definition: utils.cpp:74
BOOL InitUniqueString(void)
Definition: utils.cpp:152
TCHAR g_szTimListCache[MAX_PATH]
Definition: utils.cpp:75
UINT g_msgThreadItemChange
Definition: utils.cpp:60
BOOL gf_CRT_INIT
Definition: utils.cpp:38
DWORD g_dwTLSIndex
Definition: utils.cpp:48
UINT g_msgLBarModal
Definition: utils.cpp:61
HINSTANCE g_hInst
Definition: utils.cpp:43
TCHAR g_szLayoutsCache[MAX_PATH]
Definition: utils.cpp:76
EXTERN_C BOOL cicIsWow64(VOID)
Definition: cicbase.cpp:58
EXTERN_C void cicGetOSInfo(LPUINT puACP, LPDWORD pdwOSInfo)
Definition: cicbase.cpp:82
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 855 of file utils.cpp.

856{
857 if (!gf_CRT_INIT)
858 {
860 return;
861 }
862
863 if (gfSharedMemory)
864 {
865 if (g_cRefDll != -1 )
866 TFUninitLib();
867 //FIXME
868 }
869
870 UninitINAT();
871
872 //FIXME
873
874 //TF_UninitThreadSystem();
875
876 //FIXME
877
878 if (g_dwTLSIndex != (DWORD)-1)
879 {
881 g_dwTLSIndex = (DWORD)-1;
882 }
883
884 //FIXME
885
886 if (gfSharedMemory)
887 {
891 //FIXME
894 //FIXME
896 }
897
899
903
905}
CicMutex g_mutexLBES
Definition: utils.cpp:79
EXTERN_C VOID TFUninitLib(VOID)
Definition: utils.cpp:771
CicMutex g_mutexLayouts
Definition: utils.cpp:82
CicMutex g_mutexAsm
Definition: utils.cpp:81
LONG g_cRefDll
Definition: utils.cpp:50
CicMutex g_mutexTMD
Definition: utils.cpp:83
CicMutex g_mutexCompart
Definition: utils.cpp:80
CicFileMappingStatic g_SharedMemory
Definition: utils.cpp:86
BOOL g_fDllProcessDetached
Definition: utils.cpp:39
void Uninit()
Definition: cicmutex.h:31
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
VOID UninitINAT(VOID)
@implemented
Definition: mlng.cpp:355
#define DWORD
Definition: nt_native.h:44
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

◆ RunCPLSetting()

static BOOL RunCPLSetting ( LPCTSTR  pszCmdLine)
inlinestatic

Definition at line 233 of file utils.cpp.

234{
235 if (!pszCmdLine)
236 return FALSE;
237
238 return FullPathExec(TEXT("rundll32.exe"), pszCmdLine, SW_SHOWMINNOACTIVE, FALSE);
239}
BOOL FullPathExec(LPCTSTR pszExeFile, LPCTSTR pszCmdLine, UINT nCmdShow, BOOL bSysWinDir)
Definition: utils.cpp:200
#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 369 of file utils.cpp.

370{
371 FIXME("(%p, %p)\n", hwnd, pszXML);
372 return E_NOTIMPL;
373}
#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 181 of file utils.cpp.

182{
183 pszGUID[0] = ANSI_NULL;
184
185 WCHAR szWide[40];
186 szWide[0] = UNICODE_NULL;
187 BOOL ret = StringFromGUID2(rguid, szWide, _countof(szWide));
188 ::WideCharToMultiByte(CP_ACP, 0, szWide, -1, pszGUID, cchGUID, NULL, NULL);
189 return ret;
190}
#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
unsigned int BOOL
Definition: ntddk_ex.h:94
#define UNICODE_NULL
#define ANSI_NULL
int ret
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ TF_CheckThreadInputIdle()

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

Definition at line 395 of file utils.cpp.

396{
397 FIXME("(%lu, %lu)\n", dwThreadId, dwMilliseconds);
398 return -1;
399}

◆ TF_ClearLangBarAddIns()

EXTERN_C HRESULT WINAPI TF_ClearLangBarAddIns ( _In_ REFGUID  guid)

Definition at line 407 of file utils.cpp.

408{
409 FIXME("(%p)\n", guid);
410 return E_NOTIMPL;
411}
GUID guid
Definition: version.c:147

◆ TF_CreateCategoryMgr()

EXTERN_C HRESULT WINAPI TF_CreateCategoryMgr ( _Out_ ITfCategoryMgr **  ppcat)

Definition at line 264 of file utils.cpp.

265{
266 FIXME("(%p)\n", ppcat);
267 if (ppcat)
268 *ppcat = NULL;
269 return E_NOTIMPL;
270}

Referenced by MsUtbCoCreateInstance().

◆ TF_CreateCicLoadMutex()

EXTERN_C HANDLE WINAPI TF_CreateCicLoadMutex ( _Out_ LPBOOL  pfWinLogon)

Definition at line 278 of file utils.cpp.

279{
280 FIXME("(%p)\n", pfWinLogon);
281 if (pfWinLogon == NULL)
282 return NULL;
283 *pfWinLogon = FALSE;
284 return NULL;
285}

Referenced by InitApp().

◆ TF_CreateDisplayAttributeMgr()

EXTERN_C HRESULT WINAPI TF_CreateDisplayAttributeMgr ( _Out_ ITfDisplayAttributeMgr **  ppdam)

Definition at line 293 of file utils.cpp.

294{
295 FIXME("(%p)\n", ppdam);
296 *ppdam = NULL;
297 return E_NOTIMPL;
298}

Referenced by MsUtbCoCreateInstance().

◆ TF_CUASAppFix()

EXTERN_C HRESULT WINAPI TF_CUASAppFix ( _In_ LPCSTR  pszName)

Definition at line 381 of file utils.cpp.

382{
383 if (!pszName || lstrcmpiA(pszName, "DelayFirstActivateKeyboardLayout") != 0)
384 return E_INVALIDARG;
386 return S_OK;
387}
DWORD g_dwAppCompatibility
Definition: utils.cpp:53
#define E_INVALIDARG
Definition: ddrawi.h:101
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4224
#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 306 of file utils.cpp.

307{
308 FIXME("()\n");
309 return TRUE;
310}

Referenced by DllMain(), and ProcessDetach().

◆ TF_GetGlobalCompartment()

EXTERN_C HRESULT WINAPI TF_GetGlobalCompartment ( _Out_ ITfCompartmentMgr **  ppCompMgr)

Definition at line 318 of file utils.cpp.

319{
320 FIXME("(%p)\n", ppCompMgr);
321 *ppCompMgr = NULL;
322 return E_NOTIMPL;
323}

Referenced by GetGlobalCompartment().

◆ TF_GetInputScope()

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

Definition at line 356 of file utils.cpp.

357{
358 FIXME("(%p, %p)\n", hWnd, ppInputScope);
359 *ppInputScope = NULL;
360 return E_NOTIMPL;
361}
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 331 of file utils.cpp.

332{
333 FIXME("(0x%X, %p, %d)\n", LangID, pszText, cchText);
334 return NULL;
335}
_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:4541

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 247 of file utils.cpp.

252{
253 FIXME("(%lu, %p, %p, %p)\n", dwThreadId, pdwFlags1, pdwFlags2, pdwFlags3);
254 *pdwFlags1 = *pdwFlags2 = *pdwFlags3 = 0;
255 return FALSE;
256}

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

◆ TF_InitSystem()

EXTERN_C BOOL WINAPI TF_InitSystem ( VOID  )

Definition at line 455 of file utils.cpp.

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

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

◆ TF_InvalidAssemblyListCache()

EXTERN_C HRESULT WINAPI TF_InvalidAssemblyListCache ( VOID  )

Definition at line 419 of file utils.cpp.

420{
421 FIXME("()\n");
422 return E_NOTIMPL;
423}

Referenced by CRegWatcher::RegImxTimerProc().

◆ TF_IsCtfmonRunning()

EXTERN_C BOOL WINAPI TF_IsCtfmonRunning ( VOID  )

Definition at line 582 of file utils.cpp.

583{
585 GetDesktopUniqueName(TEXT("CtfmonInstMutex"), szName, _countof(szName));
586
588 if (!hMutex)
589 return FALSE;
590
592 return TRUE;
593}
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 344 of file utils.cpp.

345{
346 FIXME("()\n");
347 return FALSE;
348}

◆ TF_IsInMarshaling()

EXTERN_C BOOL WINAPI TF_IsInMarshaling ( _In_ DWORD  dwThreadId)

Definition at line 431 of file utils.cpp.

432{
433 FIXME("(%lu)\n", dwThreadId);
434 return FALSE;
435}

◆ TF_PostAllThreadMsg()

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

Definition at line 443 of file utils.cpp.

444{
445 FIXME("(%p, 0x%X)\n", wParam, dwFlags);
446 return E_NOTIMPL;
447}
WPARAM wParam
Definition: combotst.c:138
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

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 479 of file utils.cpp.

483{
484 TRACE("(%s, %s, 0x%lX)\n", debugstr_guid(&rguid), debugstr_w(pszFilePath), dwFlags);
485
486 if (!pszFilePath || IsEqualGUID(rguid, GUID_NULL))
487 {
488 ERR("E_INVALIDARG\n");
489 return E_INVALIDARG;
490 }
491
492 TCHAR szBuff[MAX_PATH], szGUID[40];
493 StringCchCopy(szBuff, _countof(szBuff), TEXT("SOFTWARE\\Microsoft\\CTF\\LangBarAddIn\\"));
494 StringFromGUID2T(rguid, szGUID, _countof(szGUID));
495 StringCchCat(szBuff, _countof(szBuff), szGUID);
496
497 CicRegKey regKey;
498 HKEY hBaseKey = ((dwFlags & 1) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER);
499 LSTATUS error = regKey.Create(hBaseKey, szBuff);
500 if (error == ERROR_SUCCESS)
501 {
502 error = regKey.SetSzW(L"FilePath", pszFilePath);
503 if (error == ERROR_SUCCESS)
504 error = regKey.SetDword(TEXT("Enable"), !!(dwFlags & 4));
505 }
506
507 return ((error == ERROR_SUCCESS) ? S_OK : E_FAIL);
508}
#define StringFromGUID2T
Definition: utils.cpp:196
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 debugstr_guid
Definition: kernel32.h:35
#define debugstr_w
Definition: kernel32.h:32
#define GUID_NULL
Definition: ks.h:106
#define L(x)
Definition: ntvdm.h:50
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

◆ TF_RunInputCPL()

EXTERN_C HRESULT WINAPI TF_RunInputCPL ( VOID  )

Definition at line 552 of file utils.cpp.

553{
554 CicSystemModulePath ModPath;
555 TCHAR szCmdLine[2 * MAX_PATH];
556
557 TRACE("()\n");
558
559 // NOTE: We don't support Win95/98/Me
561 ModPath.Init(TEXT("input.dll"), FALSE);
562 else
563 ModPath.Init(TEXT("input.cpl"), FALSE);
564
565 if (!ModPath.m_cchPath)
566 return E_FAIL;
567
568 StringCchPrintf(szCmdLine, _countof(szCmdLine),
569 TEXT("rundll32.exe shell32.dll,Control_RunDLL %s"), ModPath.m_szPath);
570 if (!RunCPLSetting(szCmdLine))
571 return E_FAIL;
572
573 return S_OK;
574}
static BOOL RunCPLSetting(LPCTSTR pszCmdLine)
Definition: utils.cpp:233
#define CIC_OSINFO_XPPLUS
Definition: cicbase.h:51
#define StringCchPrintf
Definition: strsafe.h:517

Referenced by CUTBContextMenu::SelectMenuItem().

◆ TF_UninitSystem()

EXTERN_C BOOL WINAPI TF_UninitSystem ( VOID  )

Definition at line 467 of file utils.cpp.

468{
469 FIXME("()\n");
470 return FALSE;
471}

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

◆ TF_UnregisterLangBarAddIn()

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

Definition at line 516 of file utils.cpp.

519{
520 TRACE("(%s, 0x%lX)\n", debugstr_guid(&rguid), dwFlags);
521
522 if (IsEqualGUID(rguid, GUID_NULL))
523 {
524 ERR("E_INVALIDARG\n");
525 return E_INVALIDARG;
526 }
527
528 TCHAR szSubKey[MAX_PATH];
529 StringCchCopy(szSubKey, _countof(szSubKey), TEXT("SOFTWARE\\Microsoft\\CTF\\LangBarAddIn\\"));
530
531 CicRegKey regKey;
532 HKEY hBaseKey = ((dwFlags & 1) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER);
533 LSTATUS error = regKey.Open(hBaseKey, szSubKey, KEY_ALL_ACCESS);
534 HRESULT hr = E_FAIL;
535 if (error == ERROR_SUCCESS)
536 {
537 TCHAR szGUID[40];
538 StringFromGUID2T(rguid, szGUID, _countof(szGUID));
539 regKey.RecurseDeleteKey(szGUID);
540 hr = S_OK;
541 }
542
543 return hr;
544}
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 771 of file utils.cpp.

772{
773 // Do nothing
774}

Referenced by ProcessDetach().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msctf  )

Variable Documentation

◆ g_bOnWow64

BOOL g_bOnWow64 = FALSE

Definition at line 44 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_cRefDll

LONG g_cRefDll = -1

Definition at line 50 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_cs

Definition at line 40 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_csDelayLoad

CRITICAL_SECTION g_csDelayLoad

Definition at line 42 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_csInDllMain

CRITICAL_SECTION g_csInDllMain

Definition at line 41 of file utils.cpp.

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

◆ g_dwAppCompatibility

DWORD g_dwAppCompatibility = 0

Definition at line 53 of file utils.cpp.

Referenced by TF_CUASAppFix().

◆ g_dwOSInfo

DWORD g_dwOSInfo = 0

Definition at line 46 of file utils.cpp.

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

◆ g_dwTLSIndex

DWORD g_dwTLSIndex = (DWORD)-1

Definition at line 48 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ g_fCUAS

BOOL g_fCUAS = FALSE

Definition at line 51 of file utils.cpp.

Referenced by InitCUASFlag().

◆ g_fDllProcessDetached

BOOL g_fDllProcessDetached = FALSE

Definition at line 39 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_fNoITextStoreAnchor

BOOL g_fNoITextStoreAnchor = TRUE

Definition at line 54 of file utils.cpp.

Referenced by CheckAnchorStores().

◆ g_fUserSidString

BOOL g_fUserSidString = FALSE

Definition at line 71 of file utils.cpp.

Referenced by InitUserSidString().

◆ g_hInst

HINSTANCE g_hInst = NULL

Definition at line 43 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_hklDefault

HKL g_hklDefault = NULL

Definition at line 47 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgCheckThreadInputIdel

UINT g_msgCheckThreadInputIdel = 0

Definition at line 64 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgLBarModal

UINT g_msgLBarModal = 0

Definition at line 61 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgLBUpdate

UINT g_msgLBUpdate = 0

Definition at line 67 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgNuiMgrDirtyUpdate

UINT g_msgNuiMgrDirtyUpdate = 0

Definition at line 68 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgPrivate

UINT g_msgPrivate = 0

Definition at line 57 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgRpcSendReceive

UINT g_msgRpcSendReceive = 0

Definition at line 62 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgSetFocus

UINT g_msgSetFocus = 0

Definition at line 58 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgShowFloating

UINT g_msgShowFloating = 0

Definition at line 66 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgStubCleanUp

UINT g_msgStubCleanUp = 0

Definition at line 65 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadItemChange

UINT g_msgThreadItemChange = 0

Definition at line 60 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadMarshal

UINT g_msgThreadMarshal = 0

Definition at line 63 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_msgThreadTerminate

UINT g_msgThreadTerminate = 0

Definition at line 59 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_mutexAsm

CicMutex g_mutexAsm

Definition at line 81 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexCompart

CicMutex g_mutexCompart

Definition at line 80 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexLayouts

CicMutex g_mutexLayouts

Definition at line 82 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexLBES

CicMutex g_mutexLBES

Definition at line 79 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_mutexTMD

CicMutex g_mutexTMD

Definition at line 83 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_SharedMemory

CicFileMappingStatic g_SharedMemory

Definition at line 86 of file utils.cpp.

Referenced by ProcessDetach().

◆ g_szAsmListCache

TCHAR g_szAsmListCache[MAX_PATH] = { 0 }

Definition at line 74 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szCUASImeFile

TCHAR g_szCUASImeFile[16] = { 0 }

Definition at line 52 of file utils.cpp.

Referenced by InitCUASFlag().

◆ g_szLayoutsCache

TCHAR g_szLayoutsCache[MAX_PATH] = { 0 }

Definition at line 76 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szTimListCache

TCHAR g_szTimListCache[MAX_PATH] = { 0 }

Definition at line 75 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_szUserSidString

TCHAR g_szUserSidString[MAX_PATH] = { 0 }

Definition at line 72 of file utils.cpp.

Referenced by InitUniqueString(), and InitUserSidString().

◆ g_szUserUnique

TCHAR g_szUserUnique[MAX_PATH] = { 0 }

Definition at line 73 of file utils.cpp.

Referenced by GetDesktopUniqueName(), and InitUniqueString().

◆ g_uACP

UINT g_uACP = CP_ACP

Definition at line 45 of file utils.cpp.

Referenced by ProcessAttach().

◆ g_uKeyTipHotKeyModifiers

UINT g_uKeyTipHotKeyModifiers = 0

Definition at line 92 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uKeyTipHotKeyVKey

UINT g_uKeyTipHotKeyVKey = 0

Definition at line 93 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uKeyTipHotKeyVKey2

UINT g_uKeyTipHotKeyVKey2 = 0

Definition at line 94 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyModifiers

UINT g_uLangHotKeyModifiers = 0

Definition at line 89 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyVKey

UINT g_uLangHotKeyVKey = 0

Definition at line 90 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ g_uLangHotKeyVKey2

UINT g_uLangHotKeyVKey2 = 0

Definition at line 91 of file utils.cpp.

Referenced by InitLangChangeHotKey().

◆ gf_CRT_INIT

BOOL gf_CRT_INIT = FALSE

Definition at line 38 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().

◆ gfSharedMemory

BOOL gfSharedMemory = FALSE

Definition at line 49 of file utils.cpp.

Referenced by ProcessAttach(), and ProcessDetach().