ReactOS 0.4.16-dev-588-gf07ea94
msutb.cpp File Reference
#include "precomp.h"
Include dependency graph for msutb.cpp:

Go to the source code of this file.

Classes

struct  LANGBARITEMSTATE
 
class  CMsUtbModule
 
struct  CShellWndThread
 
class  CUTBLangBarDlg
 
class  CUTBCloseLangBarDlg
 
class  CUTBMinimizeLangBarDlg
 
class  CCicLibMenu
 
class  CCicLibMenuItem
 
class  CTipbarAccessible
 
class  CTipbarAccItem
 
class  CTipbarCoInitialize
 
class  CUTBMenuWnd
 
class  CUTBMenuItem
 
class  CModalMenu
 
class  CUTBContextMenu
 
class  CUTBLBarMenu
 
class  CUTBLBarMenuItem
 
class  CTipbarGripper
 
class  CLangBarItemList
 
class  CTrayIconWnd
 
class  CTrayIconItem
 
class  CButtonIconItem
 
class  CMainIconItem
 
class  CLBarItemBase
 
class  CLBarItemButtonBase
 
class  CLBarInatItem
 Language Bar international item. More...
 
class  CTipbarThread
 
class  CTipbarItem
 
class  CTipbarWnd
 

Macros

#define TIMER_ID_DOACCDEFAULTACTION   11
 

Typedefs

typedef struct LANGBARITEMSTATE LANGBARITEMSTATE
 
typedef struct LANGBARITEMSTATEPLANGBARITEMSTATE
 

Enumerations

enum  {
  TIPBAR_ATTACHED = 0x1 , TIPBAR_CHILD = 0x2 , TIPBAR_VERTICAL = 0x4 , TIPBAR_HIGHCONTRAST = 0x10 ,
  TIPBAR_TRAYICON = 0x20 , TIPBAR_UPDATING = 0x400 , TIPBAR_ENSURING = 0x2000 , TIPBAR_NODESKBAND = 0x4000 ,
  TIPBAR_TOOLBARENDED = 0x10000 , TIPBAR_TOPFIT = 0x40000 , TIPBAR_BOTTOMFIT = 0x80000 , TIPBAR_RIGHTFIT = 0x100000 ,
  TIPBAR_LEFTFIT = 0x200000
}
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msutb)
 
BOOL IsSkipRedrawHKL (HKL hSkipKL)
 
BOOL IsBiDiLocalizedSystem (void)
 
BOOL GetFontSig (HWND hWnd, HKL hKL)
 
void InitSkipRedrawHKLArray (void)
 
void UninitSkipRedrawHKLArray (void)
 
HRESULT GetGlobalCompartment (REFGUID rguid, ITfCompartment **ppComp)
 
HRESULT GetGlobalCompartmentDWORD (REFGUID rguid, LPDWORD pdwValue)
 
HRESULT SetGlobalCompartmentDWORD (REFGUID rguid, DWORD dwValue)
 
void TurnOffSpeechIfItsOn (void)
 
void DoCloseLangbar (void)
 
INT GetIconIndexFromhKL (_In_ HKL hKL)
 
BOOL GethKLDesc (_In_ HKL hKL, _Out_ LPWSTR pszDesc, _In_ UINT cchDesc)
 
HRESULT LangBarInsertMenu (_In_ ITfMenu *pMenu, _In_ UINT uId, _In_ LPCWSTR pszText, _In_ BOOL bChecked, _Inout_opt_ HICON hIcon)
 
HRESULT LangBarInsertSeparator (_In_ ITfMenu *pMenu)
 
BOOL IsFELangId (LANGID LangID)
 
BOOL CheckCloseMenuAvailable (void)
 
BOOL IsTransparecyAvailable (void)
 @unimplemented
 
static INT CALLBACK FindEAEnumFontProc (ENUMLOGFONT *pLF, NEWTEXTMETRIC *pTM, INT nFontType, LPARAM lParam)
 
BOOL CheckEAFonts (void)
 Are there East-Asian vertical fonts?
 
BOOL IsDeskBandFromReg ()
 
void SetDeskBandToReg (BOOL bShow)
 
BOOL RegisterComCat (REFCLSID rclsid, REFCATID rcatid, BOOL bRegister)
 
BOOL InitFromReg (void)
 
 STDMETHODIMP_ (BOOL) CButtonIconItem
 @unimplemented
 
 STDMETHODIMP_ (void) CTipbarGripper
 @unimplemented
 
 STDMETHODIMP_ (CCicLibMenu *) CCicLibMenu
 
 STDMETHODIMP_ (CCicLibMenuItem *) CCicLibMenu
 
 STDMETHODIMP_ (BSTR) CUTBMenuWnd
 
 STDMETHODIMP_ (INT) CUTBMenuItem
 @unimplemented
 
LONG MyWaitForInputIdle (DWORD dwThreadId, DWORD dwMilliseconds)
 
 STDMETHODIMP_ (DWORD) CTipbarWnd
 
 STDMETHODIMP_ (LPCWSTR) CTipbarItem
 
BOOL GetTipbarInternal (HWND hWnd, DWORD dwFlags, CDeskBand *pDeskBand)
 
EXTERN_C PCIC_LIBTHREAD WINAPI GetLibTls (VOID)
 
EXTERN_C BOOL WINAPI GetPopupTipbar (HWND hWnd, BOOL fWinLogon)
 
EXTERN_C HRESULT WINAPI SetRegisterLangBand (BOOL bRegister)
 
EXTERN_C VOID WINAPI ClosePopupTipbar (VOID)
 
STDAPI DllRegisterServer (VOID)
 
STDAPI DllUnregisterServer (VOID)
 
STDAPI DllCanUnloadNow (VOID)
 
STDAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
HRESULT APIENTRY MsUtbCoCreateInstance (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
 @implemented
 
EXTERN_C VOID TFUninitLib (VOID)
 
BOOL ProcessAttach (HINSTANCE hinstDLL)
 @implemented
 
VOID ProcessDetach (HINSTANCE hinstDLL)
 @implemented
 
EXTERN_C BOOL WINAPI DllMain (_In_ HINSTANCE hinstDLL, _In_ DWORD dwReason, _Inout_opt_ LPVOID lpvReserved)
 @implemented
 

Variables

HINSTANCE g_hInst = NULL
 
UINT g_wmTaskbarCreated = 0
 
UINT g_uACP = CP_ACP
 
DWORD g_dwOSInfo = 0
 
CRITICAL_SECTION g_cs
 
LONG g_DllRefCount = 0
 
BOOL g_bWinLogon = FALSE
 
BOOL g_fInClosePopupTipbar = FALSE
 
HWND g_hwndParent = NULL
 
CIC_LIBTHREAD g_libTLS = { NULL, NULL }
 
BOOL g_bEnableDeskBand = FALSE
 
BOOL g_bShowTipbar = TRUE
 
BOOL g_bShowDebugMenu = FALSE
 
BOOL g_bNewLook = TRUE
 
BOOL g_bIntelliSense = FALSE
 
BOOL g_bShowCloseMenu = FALSE
 
UINT g_uTimeOutNonIntentional = 60 * 1000
 
UINT g_uTimeOutIntentional = 10 * 60 * 1000
 
UINT g_uTimeOutMax = 60 * 60 * 1000
 
BOOL g_bShowMinimizedBalloon = TRUE
 
POINT g_ptTipbar = { -1, -1 }
 
BOOL g_bExcludeCaptionButtons = TRUE
 
BOOL g_bShowShadow = FALSE
 
BOOL g_fTaskbarTheme = TRUE
 
BOOL g_fVertical = FALSE
 
UINT g_uTimerElapseSTUBSTART = 100
 
UINT g_uTimerElapseSTUBEND = 2 * 1000
 
UINT g_uTimerElapseBACKTOALPHA = 3 * 1000
 
UINT g_uTimerElapseONTHREADITEMCHANGE = 200
 
UINT g_uTimerElapseSETWINDOWPOS = 100
 
UINT g_uTimerElapseONUPDATECALLED = 50
 
UINT g_uTimerElapseSYSCOLORCHANGED = 20
 
UINT g_uTimerElapseDISPLAYCHANGE = 20
 
UINT g_uTimerElapseUPDATEUI = 70
 
UINT g_uTimerElapseSHOWWINDOW = 50
 
UINT g_uTimerElapseMOVETOTRAY = 50
 
UINT g_uTimerElapseTRAYWNDONDELAYMSG = 50
 
UINT g_uTimerElapseDOACCDEFAULTACTION = 200
 
UINT g_uTimerElapseENSUREFOCUS = 50
 
BOOL g_bShowDeskBand = FALSE
 
UINT g_uTimerElapseSHOWDESKBAND = 3 * 1000
 
BOOL g_fPolicyDisableCloseButton = FALSE
 
BOOL g_fPolicyEnableLanguagebarInFullscreen = FALSE
 
DWORD g_dwWndStyle = 0
 
DWORD g_dwMenuStyle = 0
 
DWORD g_dwChildWndStyle = 0
 
BOOL g_fRTL = FALSE
 
CMsUtbModule gModule
 
CTipbarWndg_pTipbarWnd = NULL
 
CTrayIconWndg_pTrayIconWnd = NULL
 
CicArray< HKL > * g_prghklSkipRedrawing = NULL
 

Macro Definition Documentation

◆ TIMER_ID_DOACCDEFAULTACTION

#define TIMER_ID_DOACCDEFAULTACTION   11

Definition at line 82 of file msutb.cpp.

Typedef Documentation

◆ LANGBARITEMSTATE

◆ PLANGBARITEMSTATE

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TIPBAR_ATTACHED 
TIPBAR_CHILD 
TIPBAR_VERTICAL 
TIPBAR_HIGHCONTRAST 
TIPBAR_TRAYICON 
TIPBAR_UPDATING 
TIPBAR_ENSURING 
TIPBAR_NODESKBAND 
TIPBAR_TOOLBARENDED 
TIPBAR_TOPFIT 
TIPBAR_BOTTOMFIT 
TIPBAR_RIGHTFIT 
TIPBAR_LEFTFIT 

Definition at line 1433 of file msutb.cpp.

1434{
1435 TIPBAR_ATTACHED = 0x1,
1436 TIPBAR_CHILD = 0x2,
1437 TIPBAR_VERTICAL = 0x4,
1438 TIPBAR_HIGHCONTRAST = 0x10,
1439 TIPBAR_TRAYICON = 0x20,
1440 TIPBAR_UPDATING = 0x400,
1441 TIPBAR_ENSURING = 0x2000,
1442 TIPBAR_NODESKBAND = 0x4000,
1443 TIPBAR_TOOLBARENDED = 0x10000,
1444 TIPBAR_TOPFIT = 0x40000,
1445 TIPBAR_BOTTOMFIT = 0x80000,
1446 TIPBAR_RIGHTFIT = 0x100000,
1447 TIPBAR_LEFTFIT = 0x200000,
1448};
@ TIPBAR_HIGHCONTRAST
Definition: msutb.cpp:1438
@ TIPBAR_VERTICAL
Definition: msutb.cpp:1437
@ TIPBAR_CHILD
Definition: msutb.cpp:1436
@ TIPBAR_NODESKBAND
Definition: msutb.cpp:1442
@ TIPBAR_TOOLBARENDED
Definition: msutb.cpp:1443
@ TIPBAR_ATTACHED
Definition: msutb.cpp:1435
@ TIPBAR_UPDATING
Definition: msutb.cpp:1440
@ TIPBAR_LEFTFIT
Definition: msutb.cpp:1447
@ TIPBAR_RIGHTFIT
Definition: msutb.cpp:1446
@ TIPBAR_ENSURING
Definition: msutb.cpp:1441
@ TIPBAR_TRAYICON
Definition: msutb.cpp:1439
@ TIPBAR_TOPFIT
Definition: msutb.cpp:1444
@ TIPBAR_BOTTOMFIT
Definition: msutb.cpp:1445

Function Documentation

◆ CheckCloseMenuAvailable()

BOOL CheckCloseMenuAvailable ( void  )

Definition at line 348 of file msutb.cpp.

349{
350 BOOL ret = FALSE;
351 ITfInputProcessorProfiles *pProfiles = NULL;
352 LANGID *pLangIds = NULL;
353 ULONG iItem, cItems;
354
356 return FALSE;
357
359 return TRUE;
360
362 SUCCEEDED(pProfiles->GetLanguageList(&pLangIds, &cItems)))
363 {
364 for (iItem = 0; iItem < cItems; ++iItem)
365 {
366 if (IsFELangId(pLangIds[iItem]))
367 break;
368 }
369
370 ret = (iItem == cItems);
371 }
372
373 if (pLangIds)
374 CoTaskMemFree(pLangIds);
375 if (pProfiles)
376 pProfiles->Release();
377
378 return ret;
379}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define SUCCEEDED(hr)
Definition: intsafe.h:50
USHORT LANGID
Definition: mui.h:9
HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr)
Definition: msctf.c:668
BOOL IsFELangId(LANGID LangID)
Definition: msutb.cpp:334
BOOL g_bShowCloseMenu
Definition: msutb.cpp:49
BOOL g_fPolicyDisableCloseButton
Definition: msutb.cpp:75
uint32_t ULONG
Definition: typedefs.h:59
int ret

Referenced by CUTBContextMenu::CreateMenuUI().

◆ CheckEAFonts()

BOOL CheckEAFonts ( void  )

Are there East-Asian vertical fonts?

Definition at line 397 of file msutb.cpp.

398{
399 BOOL bHasVertical = FALSE;
400 HDC hDC = ::GetDC(NULL);
403 return bHasVertical;
404}
static HDC hDC
Definition: 3dtext.c:33
static HDC
Definition: imagelist.c:88
static INT CALLBACK FindEAEnumFontProc(ENUMLOGFONT *pLF, NEWTEXTMETRIC *pTM, INT nFontType, LPARAM lParam)
Definition: msutb.cpp:388
LONG_PTR LPARAM
Definition: windef.h:208
FONTENUMPROCA FONTENUMPROC
Definition: wingdi.h:2902
#define EnumFonts
Definition: wingdi.h:4452
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by CTipbarWnd::CreateVerticalFont().

◆ ClosePopupTipbar()

EXTERN_C VOID WINAPI ClosePopupTipbar ( VOID  )

Definition at line 6372 of file msutb.cpp.

6373{
6374 TRACE("()\n");
6375
6377 return;
6378
6380
6381 if (g_pTipbarWnd)
6382 {
6387 }
6388
6389 if (g_pTrayIconWnd)
6390 {
6392 delete g_pTrayIconWnd;
6394 }
6395
6397
6399}
void DestroyWnd()
Definition: msutb.cpp:4674
CDeskBand * m_pDeskBand
Definition: msutb.cpp:1494
void DestroyWnd()
Definition: msutb.cpp:3236
ULONG Release()
CTipbarWnd * g_pTipbarWnd
Definition: msutb.cpp:99
void UninitSkipRedrawHKLArray(void)
Definition: msutb.cpp:183
BOOL g_fInClosePopupTipbar
Definition: msutb.cpp:36
CTrayIconWnd * g_pTrayIconWnd
Definition: msutb.cpp:100
#define TRACE(s)
Definition: solgame.cpp:4

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

◆ DllCanUnloadNow()

STDAPI DllCanUnloadNow ( VOID  )

Definition at line 6428 of file msutb.cpp.

6429{
6430 TRACE("()\n");
6431 return gModule.DllCanUnloadNow() && (g_DllRefCount == 0);
6432}
CMsUtbModule gModule
Definition: msutb.cpp:88
LONG g_DllRefCount
Definition: msutb.cpp:34

◆ DllGetClassObject()

STDAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 6439 of file msutb.cpp.

6440{
6441 TRACE("()\n");
6442 return gModule.DllGetClassObject(rclsid, riid, ppv);
6443}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ DllMain()

EXTERN_C BOOL WINAPI DllMain ( _In_ HINSTANCE  hinstDLL,
_In_ DWORD  dwReason,
_Inout_opt_ LPVOID  lpvReserved 
)

@implemented

Definition at line 6505 of file msutb.cpp.

6509{
6510 switch (dwReason)
6511 {
6512 case DLL_PROCESS_ATTACH:
6513 {
6514 TRACE("(%p, %lu, %p)\n", hinstDLL, dwReason, lpvReserved);
6515 if (!ProcessAttach(hinstDLL))
6516 {
6517 ProcessDetach(hinstDLL);
6518 return FALSE;
6519 }
6520 break;
6521 }
6522 case DLL_PROCESS_DETACH:
6523 {
6524 ProcessDetach(hinstDLL);
6525 break;
6526 }
6527 }
6528 return TRUE;
6529}
DWORD dwReason
Definition: misc.cpp:141
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
static IN DWORD IN LPVOID lpvReserved
BOOL ProcessAttach(HINSTANCE hinstDLL)
@implemented
Definition: msutb.cpp:6473
VOID ProcessDetach(HINSTANCE hinstDLL)
@implemented
Definition: msutb.cpp:6495

◆ DllRegisterServer()

STDAPI DllRegisterServer ( VOID  )

Definition at line 6406 of file msutb.cpp.

6407{
6408 TRACE("()\n");
6409 return gModule.DllRegisterServer(FALSE);
6410}

◆ DllUnregisterServer()

STDAPI DllUnregisterServer ( VOID  )

Definition at line 6417 of file msutb.cpp.

6418{
6419 TRACE("()\n");
6420 return gModule.DllUnregisterServer(FALSE);
6421}

◆ DoCloseLangbar()

void DoCloseLangbar ( void  )

Definition at line 246 of file msutb.cpp.

247{
248 ITfLangBarMgr *pLangBarMgr = NULL;
249 HRESULT hr = TF_CreateLangBarMgr(&pLangBarMgr);
250 if (FAILED(hr))
251 return;
252
253 if (pLangBarMgr)
254 {
255 hr = pLangBarMgr->ShowFloating(TF_SFT_HIDDEN);
256 pLangBarMgr->Release();
257 }
258
259 if (SUCCEEDED(hr))
261
262 CicRegKey regKey;
264 TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
266 if (error == ERROR_SUCCESS)
267 ::RegDeleteValue(regKey, TEXT("ctfmon.exe"));
268}
LSTATUS Open(HKEY hKey, LPCTSTR lpSubKey, REGSAM samDesired=KEY_READ)
Definition: cicreg.h:51
#define ERROR_SUCCESS
Definition: deptool.c:10
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
HRESULT ShowFloating([in] DWORD dwFlags)
#define FAILED(hr)
Definition: intsafe.h:51
#define TEXT(s)
Definition: k32.h:26
#define error(str)
Definition: mkdosfs.c:1605
HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm)
Definition: msctf.c:686
void TurnOffSpeechIfItsOn(void)
Definition: msutb.cpp:238
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
HRESULT hr
Definition: shlfolder.c:183
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define RegDeleteValue
Definition: winreg.h:508

Referenced by CUTBContextMenu::SelectMenuItem().

◆ FindEAEnumFontProc()

static INT CALLBACK FindEAEnumFontProc ( ENUMLOGFONT pLF,
NEWTEXTMETRIC pTM,
INT  nFontType,
LPARAM  lParam 
)
static

Definition at line 388 of file msutb.cpp.

389{
390 if ((nFontType != TRUETYPE_FONTTYPE) || (pLF->elfLogFont.lfFaceName[0] != '@'))
391 return TRUE;
392 *(BOOL*)lParam = TRUE;
393 return FALSE;
394}
LPARAM lParam
Definition: combotst.c:139
LOGFONTA elfLogFont
Definition: wingdi.h:2686
CHAR lfFaceName[LF_FACESIZE]
Definition: wingdi.h:1894
#define TRUETYPE_FONTTYPE
Definition: wingdi.h:1109

Referenced by CheckEAFonts().

◆ GetFontSig()

BOOL GetFontSig ( HWND  hWnd,
HKL  hKL 
)

Definition at line 133 of file msutb.cpp.

134{
135 LOCALESIGNATURE Sig;
136 INT size = sizeof(Sig) / sizeof(WCHAR);
138 return FALSE;
139
140 HDC hDC = ::GetDC(hWnd);
142 CHARSETINFO CharSetInfo;
145
146 return !!(CharSetInfo.fs.fsCsb[0] & Sig.lsCsbSupported[0]);
147}
HWND hWnd
Definition: settings.c:17
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
Definition: locale.c:1666
static void CharSet(RTF_Info *info)
Definition: reader.c:2420
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
#define LOWORD(l)
Definition: pedump.c:82
FONTSIGNATURE fs
Definition: wingdi.h:1548
DWORD fsCsb[2]
Definition: wingdi.h:1543
uint32_t DWORD_PTR
Definition: typedefs.h:65
int32_t INT
Definition: typedefs.h:58
int WINAPI GetTextCharsetInfo(_In_ HDC, _Out_opt_ LPFONTSIGNATURE, _In_ DWORD)
#define TCI_SRCCHARSET
Definition: wingdi.h:961
BOOL WINAPI TranslateCharsetInfo(_Inout_ PDWORD, _Out_ LPCHARSETINFO, _In_ DWORD)
#define LOCALE_FONTSIGNATURE
Definition: winnls.h:127
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by CLBarInatItem::OnMenuSelect().

◆ GetGlobalCompartment()

HRESULT GetGlobalCompartment ( REFGUID  rguid,
ITfCompartment **  ppComp 
)

Definition at line 192 of file msutb.cpp.

193{
196 if (FAILED(hr))
197 return hr;
198
199 if (!pCompMgr)
200 return E_FAIL;
201
202 hr = pCompMgr->GetCompartment(rguid, ppComp);
203 pCompMgr->Release();
204 return hr;
205}
#define E_FAIL
Definition: ddrawi.h:102
nsrefcnt Release()
EXTERN_C HRESULT WINAPI TF_GetGlobalCompartment(_Out_ ITfCompartmentMgr **ppCompMgr)
static nsIComponentManager * pCompMgr
Definition: nsembed.c:62

Referenced by GetGlobalCompartmentDWORD(), and SetGlobalCompartmentDWORD().

◆ GetGlobalCompartmentDWORD()

HRESULT GetGlobalCompartmentDWORD ( REFGUID  rguid,
LPDWORD  pdwValue 
)

Definition at line 207 of file msutb.cpp.

208{
209 *pdwValue = 0;
210 ITfCompartment *pComp;
211 HRESULT hr = GetGlobalCompartment(rguid, &pComp);
212 if (SUCCEEDED(hr))
213 {
214 VARIANT vari;
215 hr = pComp->GetValue(&vari);
216 if (hr == S_OK)
217 *pdwValue = V_I4(&vari);
218 pComp->Release();
219 }
220 return hr;
221}
HRESULT GetValue([out] VARIANT *pvarValue)
#define S_OK
Definition: intsafe.h:52
HRESULT GetGlobalCompartment(REFGUID rguid, ITfCompartment **ppComp)
Definition: msutb.cpp:192
#define V_I4(A)
Definition: oleauto.h:247

Referenced by TurnOffSpeechIfItsOn().

◆ GethKLDesc()

BOOL GethKLDesc ( _In_ HKL  hKL,
_Out_ LPWSTR  pszDesc,
_In_ UINT  cchDesc 
)

Definition at line 287 of file msutb.cpp.

288{
289 HKL hGotKL;
290
291 INT iKL, cKLs = TF_MlngInfoCount();
292 for (iKL = 0; iKL < cKLs; ++iKL)
293 {
294 if (TF_GetMlngHKL(iKL, &hGotKL, pszDesc, cchDesc) && hKL == hGotKL)
295 return TRUE;
296 }
297
298 return TF_GetMlngHKL(0, &hGotKL, pszDesc, cchDesc);
299}
EXTERN_C BOOL WINAPI TF_GetMlngHKL(_In_ INT iKL, _Out_opt_ HKL *phKL, _Out_opt_ LPWSTR pszDesc, _In_ INT cchDesc)
Definition: mlng.cpp:664
EXTERN_C INT WINAPI TF_MlngInfoCount(VOID)
Definition: mlng.cpp:614
UINT_PTR HKL
Definition: msctf.idl:143

Referenced by CLBarInatItem::GetText().

◆ GetIconIndexFromhKL()

INT GetIconIndexFromhKL ( _In_ HKL  hKL)

Definition at line 270 of file msutb.cpp.

271{
272 HKL hGotKL;
273
274 INT iKL, cKLs = TF_MlngInfoCount();
275 for (iKL = 0; iKL < cKLs; ++iKL)
276 {
277 if (TF_GetMlngHKL(iKL, &hGotKL, NULL, 0) && hKL == hGotKL)
278 return TF_GetMlngIconIndex(iKL);
279 }
280
281 if (!TF_GetMlngHKL(0, &hGotKL, NULL, 0))
282 return -1;
283
284 return TF_GetMlngIconIndex(0);
285}
EXTERN_C INT WINAPI TF_GetMlngIconIndex(_In_ INT iKL)
Definition: mlng.cpp:640

Referenced by CLBarInatItem::GetIcon(), and CLBarInatItem::InitMenu().

◆ GetLibTls()

Definition at line 6319 of file msutb.cpp.

6320{
6321 TRACE("()\n");
6322 return &g_libTLS;
6323}
CIC_LIBTHREAD g_libTLS
Definition: msutb.cpp:38

◆ GetPopupTipbar()

EXTERN_C BOOL WINAPI GetPopupTipbar ( HWND  hWnd,
BOOL  fWinLogon 
)

Definition at line 6331 of file msutb.cpp.

6332{
6333 TRACE("(%p, %d)\n", hWnd, fWinLogon);
6334
6335 if (!fWinLogon)
6337
6338 return GetTipbarInternal(hWnd, fWinLogon | 0x80000000, NULL);
6339}
BOOL GetTipbarInternal(HWND hWnd, DWORD dwFlags, CDeskBand *pDeskBand)
Definition: msutb.cpp:6268

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

◆ GetTipbarInternal()

BOOL GetTipbarInternal ( HWND  hWnd,
DWORD  dwFlags,
CDeskBand *  pDeskBand 
)

Definition at line 6268 of file msutb.cpp.

6269{
6270 BOOL bParent = !!(dwFlags & 0x80000000);
6271 g_bWinLogon = !!(dwFlags & 0x1);
6272
6273 InitFromReg();
6274
6275 if (!g_bShowTipbar)
6276 return FALSE;
6277
6278 if (bParent)
6279 {
6281 if (!g_pTrayIconWnd)
6282 return FALSE;
6284 }
6285
6287 if (!g_pTipbarWnd || !g_pTipbarWnd->Initialize())
6288 return FALSE;
6289
6290 g_pTipbarWnd->Init(!bParent, pDeskBand);
6291 g_pTipbarWnd->CreateWnd(hWnd);
6292
6293 ::SetWindowText(*g_pTipbarWnd, TEXT("TF_FloatingLangBar_WndTitle"));
6294
6295 DWORD dwOldStatus = 0;
6296 if (!bParent)
6297 {
6299 g_pTipbarWnd->m_pLangBarMgr->ShowFloating(TF_SFT_DESKBAND);
6300 }
6301
6305
6306 if (!bParent && (dwOldStatus & TF_SFT_DESKBAND))
6308
6310 return TRUE;
6311}
#define cicNoThrow
Definition: cicbase.h:34
ITfLangBarMgr_P * m_pLangBarMgr
Definition: msutb.cpp:1478
DWORD m_dwTipbarWndFlags
Definition: msutb.cpp:1468
STDMETHOD() ShowFloating(DWORD dwFlags) override
@unimplemented
Definition: msutb.cpp:5285
void Init(BOOL bChild, CDeskBand *pDeskBand)
@unimplemented
Definition: msutb.cpp:4202
HWND CreateWnd()
Definition: msutb.cpp:3220
HRESULT GetShowFloatingStatus([out] DWORD *pdwFlags)
BOOL InitFromReg(void)
Definition: msutb.cpp:455
BOOL g_bShowTipbar
Definition: msutb.cpp:45
BOOL g_bWinLogon
Definition: msutb.cpp:35
DWORD g_dwWndStyle
Definition: msutb.cpp:77
DWORD g_dwChildWndStyle
Definition: msutb.cpp:79
HWND g_hwndParent
Definition: msutb.cpp:37
DWORD dwStatus
Definition: mediaobj.idl:95
STDMETHOD() GetPrevShowFloatingStatus(DWORD *)=0
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
#define SetWindowText
Definition: winuser.h:5869

Referenced by GetPopupTipbar().

◆ InitFromReg()

BOOL InitFromReg ( void  )

Definition at line 455 of file msutb.cpp.

456{
457 DWORD dwValue;
459
460 CicRegKey regKey1;
461 error = regKey1.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\CTF\\"));
462 if (error == ERROR_SUCCESS)
463 {
464 error = regKey1.QueryDword(TEXT("ShowTipbar"), &dwValue);
465 if (error == ERROR_SUCCESS)
466 g_bShowTipbar = !!dwValue;
467 }
468
469 CicRegKey regKey2;
470 error = regKey2.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\CTF\\MSUTB\\"));
471 if (error == ERROR_SUCCESS)
472 {
473 error = regKey2.QueryDword(TEXT("ShowDebugMenu"), &dwValue);
474 if (error == ERROR_SUCCESS)
475 g_bShowDebugMenu = !!dwValue;
476 error = regKey2.QueryDword(TEXT("NewLook"), &dwValue);
477 if (error == ERROR_SUCCESS)
478 g_bNewLook = !!dwValue;
479 error = regKey2.QueryDword(TEXT("IntelliSense"), &dwValue);
480 if (error == ERROR_SUCCESS)
481 g_bIntelliSense = !!dwValue;
482 error = regKey2.QueryDword(TEXT("ShowCloseMenu"), &dwValue);
483 if (error == ERROR_SUCCESS)
484 g_bShowCloseMenu = !!dwValue;
485 error = regKey2.QueryDword(TEXT("TimeOutNonIntentional"), &dwValue);
486 if (error == ERROR_SUCCESS)
487 g_uTimeOutNonIntentional = 1000 * dwValue;
488 error = regKey2.QueryDword(TEXT("TimeOutIntentional"), &dwValue);
489 if (error == ERROR_SUCCESS)
490 {
491 g_uTimeOutIntentional = 1000 * dwValue;
492 g_uTimeOutMax = 6000 * dwValue;
493 }
494 error = regKey2.QueryDword(TEXT("ShowMinimizedBalloon"), &dwValue);
495 if (error == ERROR_SUCCESS)
496 g_bShowMinimizedBalloon = !!dwValue;
497 error = regKey2.QueryDword(TEXT("Left"), &dwValue);
498 if (error == ERROR_SUCCESS)
499 g_ptTipbar.x = dwValue;
500 error = regKey2.QueryDword(TEXT("Top"), &dwValue);
501 if (error == ERROR_SUCCESS)
502 g_ptTipbar.y = dwValue;
503 error = regKey2.QueryDword(TEXT("ExcludeCaptionButtons"), &dwValue);
504 if (error == ERROR_SUCCESS)
505 g_bExcludeCaptionButtons = !!dwValue;
506 error = regKey2.QueryDword(TEXT("ShowShadow"), &dwValue);
507 if (error == ERROR_SUCCESS)
508 g_bShowShadow = !!dwValue;
509 error = regKey2.QueryDword(TEXT("TaskbarTheme"), &dwValue);
510 if (error == ERROR_SUCCESS)
511 g_fTaskbarTheme = !!dwValue;
512 error = regKey2.QueryDword(TEXT("Vertical"), &dwValue);
513 if (error == ERROR_SUCCESS)
514 g_fVertical = !!dwValue;
515 error = regKey2.QueryDword(TEXT("TimerElapseSTUBSTART"), &dwValue);
516 if (error == ERROR_SUCCESS)
517 g_uTimerElapseSTUBSTART = dwValue;
518 error = regKey2.QueryDword(TEXT("TimerElapseSTUBEND"), &dwValue);
519 if (error == ERROR_SUCCESS)
520 g_uTimerElapseSTUBEND = dwValue;
521 error = regKey2.QueryDword(TEXT("TimerElapseBACKTOALPHA"), &dwValue);
522 if (error == ERROR_SUCCESS)
524 error = regKey2.QueryDword(TEXT("TimerElapseONTHREADITEMCHANGE"), &dwValue);
525 if (error == ERROR_SUCCESS)
527 error = regKey2.QueryDword(TEXT("TimerElapseSETWINDOWPOS"), &dwValue);
528 if (error == ERROR_SUCCESS)
530 error = regKey2.QueryDword(TEXT("TimerElapseONUPDATECALLED"), &dwValue);
531 if (error == ERROR_SUCCESS)
533 error = regKey2.QueryDword(TEXT("TimerElapseSYSCOLORCHANGED"), &dwValue);
534 if (error == ERROR_SUCCESS)
536 error = regKey2.QueryDword(TEXT("TimerElapseDISPLAYCHANGE"), &dwValue);
537 if (error == ERROR_SUCCESS)
539 error = regKey2.QueryDword(TEXT("TimerElapseUPDATEUI"), &dwValue);
540 if (error == ERROR_SUCCESS)
541 g_uTimerElapseUPDATEUI = dwValue;
542 error = regKey2.QueryDword(TEXT("TimerElapseSHOWWINDOW"), &dwValue);
543 if (error == ERROR_SUCCESS)
544 g_uTimerElapseSHOWWINDOW = dwValue;
545 error = regKey2.QueryDword(TEXT("TimerElapseMOVETOTRAY"), &dwValue);
546 if (error == ERROR_SUCCESS)
547 g_uTimerElapseMOVETOTRAY = dwValue;
548 error = regKey2.QueryDword(TEXT("TimerElapseTRAYWNDONDELAYMSG"), &dwValue);
549 if (error == ERROR_SUCCESS)
551 error = regKey2.QueryDword(TEXT("TimerElapseDOACCDEFAULTACTION"), &dwValue);
552 if (error == ERROR_SUCCESS)
554 error = regKey2.QueryDword(TEXT("TimerElapseENSUREFOCUS"), &dwValue);
555 if (error == ERROR_SUCCESS)
558 {
559 error = regKey2.QueryDword(TEXT("ShowDeskBand"), &dwValue);
560 if (error == ERROR_SUCCESS)
561 g_bShowDeskBand = !!dwValue;
562 error = regKey2.QueryDword(TEXT("TimerElapseSHOWWDESKBAND"), &dwValue);
563 if (error == ERROR_SUCCESS)
565 }
566 }
567
568 CicRegKey regKey3;
569 error = regKey3.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Policies\\Microsoft\\MSCTF"));
570 if (error == ERROR_SUCCESS)
571 {
572 error = regKey3.QueryDword(TEXT("DisableCloseButton"), &dwValue);
573 if (error == ERROR_SUCCESS)
574 g_fPolicyDisableCloseButton = !!dwValue;
575 }
576
577 CicRegKey regKey4;
578 error = regKey4.Open(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Policies\\Microsoft\\MSCTF"));
579 if (error == ERROR_SUCCESS)
580 {
581 error = regKey4.QueryDword(TEXT("EnableLanguagebarInFullscreen"), &dwValue);
582 if (error == ERROR_SUCCESS)
584 }
585
587
588 if (g_bNewLook)
589 {
592 if (g_bShowShadow)
596 }
597 else
598 {
602 }
603
606
608 {
612 g_fRTL = TRUE;
613 }
614
615 return TRUE;
616}
#define CIC_OSINFO_XPPLUS
Definition: cicbase.h:51
@ UIF_WINDOW_NOMOUSEMSG
Definition: cicuif.h:503
@ UIF_WINDOW_CHILD
Definition: cicuif.h:494
@ UIF_WINDOW_LAYOUTRTL
Definition: cicuif.h:502
@ UIF_WINDOW_TOPMOST
Definition: cicuif.h:495
@ UIF_WINDOW_TOOLWINDOW
Definition: cicuif.h:496
@ UIF_WINDOW_WORKAREA
Definition: cicuif.h:500
@ UIF_WINDOW_MONITOR
Definition: cicuif.h:501
@ UIF_WINDOW_DLGFRAME
Definition: cicuif.h:497
@ UIF_WINDOW_ENABLETHEMED
Definition: cicuif.h:507
@ UIF_WINDOW_SHADOW
Definition: cicuif.h:499
@ UIF_WINDOW_TOOLTIP
Definition: cicuif.h:498
LSTATUS QueryDword(LPCTSTR pszValueName, LPDWORD pdwValue)
Definition: cicreg.h:61
UINT g_uTimerElapseSHOWWINDOW
Definition: msutb.cpp:68
UINT g_uTimeOutIntentional
Definition: msutb.cpp:51
POINT g_ptTipbar
Definition: msutb.cpp:54
BOOL g_bShowDebugMenu
Definition: msutb.cpp:46
BOOL g_bIntelliSense
Definition: msutb.cpp:48
DWORD g_dwOSInfo
Definition: msutb.cpp:32
BOOL g_bShowShadow
Definition: msutb.cpp:56
UINT g_uTimerElapseENSUREFOCUS
Definition: msutb.cpp:72
DWORD g_dwMenuStyle
Definition: msutb.cpp:78
BOOL g_bShowMinimizedBalloon
Definition: msutb.cpp:53
UINT g_uTimerElapseSYSCOLORCHANGED
Definition: msutb.cpp:65
UINT g_uTimerElapseUPDATEUI
Definition: msutb.cpp:67
UINT g_uTimeOutNonIntentional
Definition: msutb.cpp:50
BOOL g_bEnableDeskBand
Definition: msutb.cpp:42
BOOL g_fPolicyEnableLanguagebarInFullscreen
Definition: msutb.cpp:76
UINT g_uTimerElapseONTHREADITEMCHANGE
Definition: msutb.cpp:62
BOOL g_fTaskbarTheme
Definition: msutb.cpp:57
UINT g_uTimerElapseSTUBEND
Definition: msutb.cpp:60
BOOL g_fVertical
Definition: msutb.cpp:58
UINT g_uTimerElapseTRAYWNDONDELAYMSG
Definition: msutb.cpp:70
UINT g_uTimerElapseDOACCDEFAULTACTION
Definition: msutb.cpp:71
UINT g_uTimerElapseSHOWDESKBAND
Definition: msutb.cpp:74
BOOL g_bNewLook
Definition: msutb.cpp:47
UINT g_uTimerElapseSTUBSTART
Definition: msutb.cpp:59
UINT g_uTimeOutMax
Definition: msutb.cpp:52
BOOL g_bShowDeskBand
Definition: msutb.cpp:73
UINT g_uTimerElapseBACKTOALPHA
Definition: msutb.cpp:61
UINT g_uTimerElapseDISPLAYCHANGE
Definition: msutb.cpp:66
BOOL g_bExcludeCaptionButtons
Definition: msutb.cpp:55
void InitSkipRedrawHKLArray(void)
Definition: msutb.cpp:149
BOOL IsBiDiLocalizedSystem(void)
Definition: msutb.cpp:120
BOOL g_fRTL
Definition: msutb.cpp:80
UINT g_uTimerElapseMOVETOTRAY
Definition: msutb.cpp:69
UINT g_uTimerElapseSETWINDOWPOS
Definition: msutb.cpp:63
UINT g_uTimerElapseONUPDATECALLED
Definition: msutb.cpp:64
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

◆ InitSkipRedrawHKLArray()

void InitSkipRedrawHKLArray ( void  )

Definition at line 149 of file msutb.cpp.

150{
153 return;
154
156 {
157 // Japanese IME will be skipped
158 g_prghklSkipRedrawing->Add((HKL)UlongToHandle(0xE0010411));
159 }
160
161 CicRegKey regKey;
163 TEXT("SOFTWARE\\Microsoft\\CTF\\MSUTB\\SkipRedrawHKL"));
164 if (error != ERROR_SUCCESS)
165 return;
166
167 TCHAR szValueName[256];
168 for (DWORD dwIndex = 0; ; ++dwIndex)
169 {
170 error = regKey.EnumValue(dwIndex, szValueName, _countof(szValueName));
171 if (error != ERROR_SUCCESS)
172 break;
173
174 if (szValueName[0] == TEXT('0') &&
175 (szValueName[1] == TEXT('x') || szValueName[1] == TEXT('X')))
176 {
177 HKL hKL = (HKL)UlongToHandle(_tcstoul(szValueName, NULL, 16));
178 g_prghklSkipRedrawing->Add(hKL); // This hKL will be skipped
179 }
180 }
181}
#define UlongToHandle(ul)
Definition: basetsd.h:97
LSTATUS EnumValue(DWORD dwIndex, LPTSTR lpValueName, DWORD cchValueName)
Definition: cicreg.h:108
#define _tcstoul
Definition: tchar.h:595
CicArray< HKL > * g_prghklSkipRedrawing
Definition: msutb.cpp:102
#define _countof(array)
Definition: sndvol32.h:70
char TCHAR
Definition: xmlstorage.h:189

Referenced by InitFromReg().

◆ IsBiDiLocalizedSystem()

BOOL IsBiDiLocalizedSystem ( void  )

Definition at line 120 of file msutb.cpp.

121{
122 LOCALESIGNATURE Sig;
124 if (!LangID)
125 return FALSE;
126
127 INT size = sizeof(Sig) / sizeof(WCHAR);
129 return FALSE;
130 return (Sig.lsUsb[3] & 0x8000000) != 0;
131}
LANGID WINAPI GetUserDefaultUILanguage(void)
Definition: locale.c:1375
_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

Referenced by InitFromReg().

◆ IsDeskBandFromReg()

BOOL IsDeskBandFromReg ( )

Definition at line 406 of file msutb.cpp.

407{
408 if (!g_bEnableDeskBand || !(g_dwOSInfo & CIC_OSINFO_XPPLUS)) // Desk band is for XP+
409 return FALSE;
410
411 CicRegKey regKey;
412 if (regKey.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\CTF\\MSUTB\\")))
413 {
414 DWORD dwValue = 0;
415 regKey.QueryDword(TEXT("ShowDeskBand"), &dwValue);
416 return !!dwValue;
417 }
418
419 return FALSE;
420}

Referenced by SetRegisterLangBand().

◆ IsFELangId()

BOOL IsFELangId ( LANGID  LangID)

Definition at line 334 of file msutb.cpp.

335{
336 switch (LangID)
337 {
338 case MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED): // Chinese (Simplified)
339 case MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL): // Chinese (Traditional)
340 case MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT): // Japanese
341 case MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT): // Korean
342 return TRUE;
343 default:
344 return FALSE;
345 }
346}
return
Definition: dirsup.c:529
#define MAKELANGID(p, s)
Definition: nls.h:15
#define SUBLANG_CHINESE_TRADITIONAL
Definition: nls.h:208
#define SUBLANG_CHINESE_SIMPLIFIED
Definition: nls.h:209
#define SUBLANG_DEFAULT
Definition: nls.h:168
#define LANG_CHINESE
Definition: nls.h:42
#define LANG_JAPANESE
Definition: nls.h:76
#define LANG_KOREAN
Definition: nls.h:84

Referenced by CheckCloseMenuAvailable().

◆ IsSkipRedrawHKL()

BOOL IsSkipRedrawHKL ( HKL  hSkipKL)

Definition at line 104 of file msutb.cpp.

105{
107 return FALSE; // Japanese HKL will be skipped
109 return FALSE;
110
111 for (size_t iItem = 0; iItem < g_prghklSkipRedrawing->size(); ++iItem)
112 {
113 if ((*g_prghklSkipRedrawing)[iItem] == hSkipKL)
114 return TRUE; // To be skipped
115 }
116
117 return FALSE; // To be not skipped
118}

Referenced by CTipbarWnd::IsHKLToSkipRedrawOnNoItem().

◆ IsTransparecyAvailable()

BOOL IsTransparecyAvailable ( void  )

@unimplemented

Definition at line 382 of file msutb.cpp.

383{
384 return FALSE;
385}

Referenced by CUTBContextMenu::CreateMenuUI().

◆ LangBarInsertMenu()

HRESULT LangBarInsertMenu ( _In_ ITfMenu pMenu,
_In_ UINT  uId,
_In_ LPCWSTR  pszText,
_In_ BOOL  bChecked,
_Inout_opt_ HICON  hIcon 
)

Definition at line 302 of file msutb.cpp.

308{
309 HBITMAP hbmp = NULL, hbmpMask = NULL;
310 if (hIcon)
311 {
313 SIZE iconSize = { 16, 16 };
314 if (!hIconNew)
315 hIconNew = hIcon;
316 if (!cicGetIconBitmaps(hIconNew, &hbmp, &hbmpMask, &iconSize))
317 return E_FAIL;
318 if (hIconNew)
319 ::DestroyIcon(hIconNew);
321 }
322
323 INT cchText = lstrlenW(pszText);
324 DWORD dwFlags = (bChecked ? TF_LBMENUF_CHECKED : 0);
325 return pMenu->AddMenuItem(uId, dwFlags, hbmp, hbmpMask, pszText, cchText, NULL);
326}
HBITMAP hbmp
BOOL cicGetIconBitmaps(HICON hIcon, HBITMAP *hbm1, HBITMAP *hbm2, const SIZE *pSize)
Definition: cicuif.cpp:1375
#define lstrlenW
Definition: compat.h:750
static HBITMAP
Definition: button.c:44
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
#define IMAGE_ICON
Definition: winuser.h:212
#define LR_COPYFROMRESOURCE
Definition: winuser.h:1102
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2024
_In_ int cchText
Definition: winuser.h:4468
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2139

Referenced by CLBarInatItem::InitMenu().

◆ LangBarInsertSeparator()

HRESULT LangBarInsertSeparator ( _In_ ITfMenu pMenu)

Definition at line 328 of file msutb.cpp.

329{
330 return pMenu->AddMenuItem(-1, TF_LBMENUF_SEPARATOR, NULL, NULL, NULL, 0, NULL);
331}

Referenced by CLBarInatItem::InitMenu().

◆ MsUtbCoCreateInstance()

HRESULT APIENTRY MsUtbCoCreateInstance ( REFCLSID  rclsid,
LPUNKNOWN  pUnkOuter,
DWORD  dwClsContext,
REFIID  iid,
LPVOID ppv 
)

@implemented

Definition at line 6447 of file msutb.cpp.

6453{
6458 return cicRealCoCreateInstance(rclsid, pUnkOuter, dwClsContext, iid, ppv);
6459}
EXTERN_C HRESULT cicRealCoCreateInstance(_In_ REFCLSID rclsid, _In_ LPUNKNOWN pUnkOuter, _In_ DWORD dwClsContext, _In_ REFIID iid, _Out_ LPVOID *ppv)
Definition: cicbase.cpp:206
EXTERN_C HRESULT WINAPI TF_CreateCategoryMgr(_Out_ ITfCategoryMgr **ppcat)
EXTERN_C HRESULT WINAPI TF_CreateDisplayAttributeMgr(_Out_ ITfDisplayAttributeMgr **ppdam)
EXTERN_C const CLSID CLSID_TF_CategoryMgr
Definition: msctf.idl:84
EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr
Definition: msctf.idl:85
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96

Referenced by ProcessAttach().

◆ MyWaitForInputIdle()

LONG MyWaitForInputIdle ( DWORD  dwThreadId,
DWORD  dwMilliseconds 
)

Definition at line 4951 of file msutb.cpp.

4952{
4953 if (g_pTipbarWnd && (g_pTipbarWnd->m_dwShowType & TF_SFT_DESKBAND))
4954 return 0;
4955
4957 return STATUS_TIMEOUT;
4958
4959 DWORD dwFlags1 = 0, dwFlags2 = 0;
4960 if (!TF_GetThreadFlags(dwThreadId, &dwFlags1, &dwFlags2, NULL) && dwFlags2)
4961 return -1;
4962
4963 return TF_CheckThreadInputIdle(dwThreadId, dwMilliseconds);
4964}
DWORD m_dwShowType
Definition: msutb.cpp:1470
#define STATUS_TIMEOUT
Definition: d3dkmdt.h:49
DWORD dwThreadId
Definition: fdebug.c:31
EXTERN_C BOOL WINAPI TF_GetThreadFlags(_In_ DWORD dwThreadId, _Out_ LPDWORD pdwFlags1, _Out_ LPDWORD pdwFlags2, _Out_ LPDWORD pdwFlags3)
EXTERN_C LONG WINAPI TF_CheckThreadInputIdle(_In_ DWORD dwThreadId, _In_ DWORD dwMilliseconds)
EXTERN_C BOOL WINAPI TF_IsInMarshaling(_In_ DWORD dwThreadId)

Referenced by CTipbarThread::_UninitItemList().

◆ ProcessAttach()

BOOL ProcessAttach ( HINSTANCE  hinstDLL)

@implemented

Definition at line 6473 of file msutb.cpp.

6474{
6476
6477 g_hInst = hinstDLL;
6478
6480
6482 cicInitUIFLib();
6483
6485
6486 g_wmTaskbarCreated = RegisterWindowMessageW(L"TaskbarCreated");
6487
6488 gModule.Init(ObjectMap, hinstDLL, NULL);
6490
6491 return TRUE;
6492}
EXTERN_C void cicGetOSInfo(LPUINT puACP, LPDWORD pdwOSInfo)
Definition: cicbase.cpp:82
EXTERN_C BOOL TFInitLib(FN_CoCreateInstance fnCoCreateInstance)
Definition: cicbase.cpp:251
void cicInitUIFLib(void)
Definition: cicuif.cpp:5459
static BOOL RegisterClass()
Definition: msutb.cpp:3309
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
UINT g_wmTaskbarCreated
Definition: msutb.cpp:30
CRITICAL_SECTION g_cs
Definition: msutb.cpp:33
HRESULT APIENTRY MsUtbCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
@implemented
Definition: msutb.cpp:6447
UINT g_uACP
Definition: msutb.cpp:31
HINSTANCE g_hInst
Definition: msutb.cpp:29
#define L(x)
Definition: ntvdm.h:50
BOOL WINAPI InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount)
Definition: synch.c:765
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)

Referenced by DllMain().

◆ ProcessDetach()

VOID ProcessDetach ( HINSTANCE  hinstDLL)

@implemented

Definition at line 6495 of file msutb.cpp.

6496{
6497 cicDoneUIFLib();
6498 TFUninitLib();
6500 gModule.Term();
6501}
void cicDoneUIFLib(void)
Definition: cicuif.cpp:5466
EXTERN_C VOID TFUninitLib(VOID)
Definition: msutb.cpp:6467
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

Referenced by DllMain().

◆ RegisterComCat()

BOOL RegisterComCat ( REFCLSID  rclsid,
REFCATID  rcatid,
BOOL  bRegister 
)

Definition at line 429 of file msutb.cpp.

430{
432 return FALSE;
433
434 ICatRegister *pCat;
435 HRESULT hr = ::CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL, CLSCTX_INPROC_SERVER,
436 IID_ICatRegister, (void**)&pCat);
437 if (SUCCEEDED(hr))
438 {
439 if (bRegister)
440 hr = pCat->RegisterClassImplCategories(rclsid, 1, const_cast<CATID*>(&rcatid));
441 else
442 hr = pCat->UnRegisterClassImplCategories(rclsid, 1, const_cast<CATID*>(&rcatid));
443
444 pCat->Release();
445 }
446
448
449 //if (IsIE5())
450 // ::RegDeleteKey(HKEY_CLASSES_ROOT, TEXT("Component Categories\\{00021492-0000-0000-C000-000000000046}\\Enum"));
451
452 return SUCCEEDED(hr);
453}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
Definition: compobj.c:1964
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
Definition: compobj.c:2067
HRESULT RegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])
HRESULT UnRegisterClassImplCategories([in] REFCLSID rclsid, [in] ULONG cCategories, [in, size_is(cCategories)] CATID rgcatid[])

◆ SetDeskBandToReg()

void SetDeskBandToReg ( BOOL  bShow)

Definition at line 422 of file msutb.cpp.

423{
424 CicRegKey regKey;
425 if (regKey.Open(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\CTF\\MSUTB\\"), KEY_ALL_ACCESS))
426 regKey.SetDword(TEXT("ShowDeskBand"), bShow);
427}
LSTATUS SetDword(LPCTSTR pszValueName, DWORD dwValue)
Definition: cicreg.h:67

Referenced by SetRegisterLangBand().

◆ SetGlobalCompartmentDWORD()

HRESULT SetGlobalCompartmentDWORD ( REFGUID  rguid,
DWORD  dwValue 
)

Definition at line 223 of file msutb.cpp.

224{
225 VARIANT vari;
226 ITfCompartment *pComp;
227 HRESULT hr = GetGlobalCompartment(rguid, &pComp);
228 if (SUCCEEDED(hr))
229 {
230 V_VT(&vari) = VT_I4;
231 V_I4(&vari) = dwValue;
232 hr = pComp->SetValue(0, &vari);
233 pComp->Release();
234 }
235 return hr;
236}
@ VT_I4
Definition: compat.h:2298
HRESULT SetValue([in] TfClientId tid, [in] const VARIANT *pvarValue)
#define V_VT(A)
Definition: oleauto.h:211

Referenced by TurnOffSpeechIfItsOn().

◆ SetRegisterLangBand()

EXTERN_C HRESULT WINAPI SetRegisterLangBand ( BOOL  bRegister)

Definition at line 6347 of file msutb.cpp.

6348{
6349 TRACE("(%d)\n", bRegister);
6350
6351 if (!g_bEnableDeskBand || !(g_dwOSInfo & CIC_OSINFO_XPPLUS)) // Desk band is for XP+
6352 return E_FAIL;
6353
6354 BOOL bDeskBand = IsDeskBandFromReg();
6355 if (bDeskBand == bRegister)
6356 return S_OK;
6357
6358 SetDeskBandToReg(bRegister);
6359
6360 if (!RegisterComCat(CLSID_MSUTBDeskBand, CATID_DeskBand, bRegister))
6361 return TF_E_NOLOCK;
6362
6363 return S_OK;
6364}
HRESULT RegisterComCat()
void SetDeskBandToReg(BOOL bShow)
Definition: msutb.cpp:422
BOOL IsDeskBandFromReg()
Definition: msutb.cpp:406

◆ STDMETHODIMP_() [1/8]

STDMETHODIMP_ ( BOOL  )

@unimplemented

@implemented

Definition at line 1699 of file msutb.cpp.

1700{
1701 extern HINSTANCE g_hInst;
1702 ::DialogBoxParam(g_hInst, m_pszDialogName, NULL, DlgProc, (LPARAM)this);
1703 SetDlgShown(FALSE);
1704 _Release();
1705 return TRUE;
1706}
DLGPROC DlgProc
Definition: desk.c:122
#define DialogBoxParam
Definition: winuser.h:5776

◆ STDMETHODIMP_() [2/8]

STDMETHODIMP_ ( BSTR  )

Definition at line 2605 of file msutb.cpp.

2606{
2607 WCHAR szText[64];
2608 LoadStringW(g_hInst, IDS_MENUWND, szText, _countof(szText));
2609 return ::SysAllocString(szText);
2610}
#define IDS_MENUWND
Definition: resource.h:27
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)

◆ STDMETHODIMP_() [3/8]

STDMETHODIMP_ ( CCicLibMenu )

Definition at line 1908 of file msutb.cpp.

1909{
1910 return new(cicNoThrow) CCicLibMenu();
1911}

◆ STDMETHODIMP_() [4/8]

STDMETHODIMP_ ( CCicLibMenuItem )

Definition at line 1913 of file msutb.cpp.

1914{
1915 return new(cicNoThrow) CCicLibMenuItem();
1916}

◆ STDMETHODIMP_() [5/8]

STDMETHODIMP_ ( DWORD  )

Definition at line 5348 of file msutb.cpp.

5349{
5350 return CUIFWindow::GetWndStyle() & ~WS_BORDER;
5351}

◆ STDMETHODIMP_() [6/8]

STDMETHODIMP_ ( INT  )

@unimplemented

Definition at line 2612 of file msutb.cpp.

2613{
2614 return 9;
2615}

◆ STDMETHODIMP_() [7/8]

STDMETHODIMP_ ( LPCWSTR  )

Definition at line 6207 of file msutb.cpp.

6208{
6209 OnUnknown41();
6210
6211 if (!(m_dwItemFlags & 0x1))
6212 {
6213 m_dwItemFlags |= 0x1;
6214
6215 BSTR bstrString;
6216 if (FAILED(m_pLangBarItem->GetTooltipString(&bstrString)))
6217 return NULL;
6218
6219 if (bstrString)
6220 {
6221 OnUnknown53(bstrString);
6222 ::SysFreeString(bstrString);
6223 }
6224 }
6225
6226 LPCWSTR pszToolTip = OnUnknown55();
6227
6228 OnUnknown42();
6229
6230 return pszToolTip;
6231}
OLECHAR * BSTR
Definition: compat.h:2293
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ STDMETHODIMP_() [8/8]

STDMETHODIMP_ ( void  )

@unimplemented

Definition at line 1791 of file msutb.cpp.

1792{
1793 s_bIsDlgShown = bShown;
1794}

◆ TFUninitLib()

EXTERN_C VOID TFUninitLib ( VOID  )

Definition at line 6467 of file msutb.cpp.

6468{
6469 // Do nothing
6470}

Referenced by ProcessDetach().

◆ TurnOffSpeechIfItsOn()

void TurnOffSpeechIfItsOn ( void  )

Definition at line 238 of file msutb.cpp.

239{
240 DWORD dwValue = 0;
242 if (SUCCEEDED(hr) && dwValue)
244}
EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE
Definition: msctf.idl:92
HRESULT SetGlobalCompartmentDWORD(REFGUID rguid, DWORD dwValue)
Definition: msutb.cpp:223
HRESULT GetGlobalCompartmentDWORD(REFGUID rguid, LPDWORD pdwValue)
Definition: msutb.cpp:207

Referenced by DoCloseLangbar(), and GetPopupTipbar().

◆ UninitSkipRedrawHKLArray()

void UninitSkipRedrawHKLArray ( void  )

Definition at line 183 of file msutb.cpp.

184{
186 {
189 }
190}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msutb  )

Variable Documentation

◆ g_bEnableDeskBand

◆ g_bExcludeCaptionButtons

BOOL g_bExcludeCaptionButtons = TRUE

Definition at line 55 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bIntelliSense

BOOL g_bIntelliSense = FALSE

◆ g_bNewLook

BOOL g_bNewLook = TRUE

Definition at line 47 of file msutb.cpp.

Referenced by CTipbarWnd::Init(), and InitFromReg().

◆ g_bShowCloseMenu

BOOL g_bShowCloseMenu = FALSE

Definition at line 49 of file msutb.cpp.

Referenced by CheckCloseMenuAvailable(), and InitFromReg().

◆ g_bShowDebugMenu

BOOL g_bShowDebugMenu = FALSE

Definition at line 46 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bShowDeskBand

BOOL g_bShowDeskBand = FALSE

Definition at line 73 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bShowMinimizedBalloon

BOOL g_bShowMinimizedBalloon = TRUE

Definition at line 53 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bShowShadow

BOOL g_bShowShadow = FALSE

Definition at line 56 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bShowTipbar

BOOL g_bShowTipbar = TRUE

Definition at line 45 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_bWinLogon

BOOL g_bWinLogon = FALSE

Definition at line 35 of file msutb.cpp.

Referenced by CTipbarWnd::_FindThread(), and CUTBContextMenu::ShowPopup().

◆ g_cs

◆ g_DllRefCount

LONG g_DllRefCount = 0

◆ g_dwChildWndStyle

DWORD g_dwChildWndStyle = 0

Definition at line 79 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_dwMenuStyle

DWORD g_dwMenuStyle = 0

◆ g_dwOSInfo

◆ g_dwWndStyle

DWORD g_dwWndStyle = 0

Definition at line 77 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_fInClosePopupTipbar

BOOL g_fInClosePopupTipbar = FALSE

Definition at line 36 of file msutb.cpp.

◆ g_fPolicyDisableCloseButton

BOOL g_fPolicyDisableCloseButton = FALSE

Definition at line 75 of file msutb.cpp.

Referenced by CheckCloseMenuAvailable(), and InitFromReg().

◆ g_fPolicyEnableLanguagebarInFullscreen

BOOL g_fPolicyEnableLanguagebarInFullscreen = FALSE

Definition at line 76 of file msutb.cpp.

Referenced by InitFromReg(), and CTipbarWnd::IsFullScreenWindow().

◆ g_fRTL

BOOL g_fRTL = FALSE

Definition at line 80 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_fTaskbarTheme

BOOL g_fTaskbarTheme = TRUE

Definition at line 57 of file msutb.cpp.

Referenced by CTipbarWnd::CTipbarWnd(), InitFromReg(), and CTipbarWnd::SetVertical().

◆ g_fVertical

BOOL g_fVertical = FALSE

Definition at line 58 of file msutb.cpp.

Referenced by CTipbarWnd::CTipbarWnd(), and InitFromReg().

◆ g_hInst

◆ g_hwndParent

HWND g_hwndParent = NULL

Definition at line 37 of file msutb.cpp.

◆ g_libTLS

CIC_LIBTHREAD g_libTLS = { NULL, NULL }

Definition at line 38 of file msutb.cpp.

Referenced by GetLibTls(), and CTipbarWnd::~CTipbarWnd().

◆ g_prghklSkipRedrawing

CicArray<HKL>* g_prghklSkipRedrawing = NULL

Definition at line 102 of file msutb.cpp.

Referenced by InitSkipRedrawHKLArray(), IsSkipRedrawHKL(), and UninitSkipRedrawHKLArray().

◆ g_pTipbarWnd

◆ g_pTrayIconWnd

◆ g_ptTipbar

POINT g_ptTipbar = { -1, -1 }

Definition at line 54 of file msutb.cpp.

Referenced by CTipbarWnd::CTipbarWnd(), and InitFromReg().

◆ g_uACP

UINT g_uACP = CP_ACP

Definition at line 31 of file msutb.cpp.

Referenced by ProcessAttach().

◆ g_uTimeOutIntentional

UINT g_uTimeOutIntentional = 10 * 60 * 1000

Definition at line 51 of file msutb.cpp.

Referenced by InitFromReg(), and CLangBarItemList::StartDemotingTimer().

◆ g_uTimeOutMax

UINT g_uTimeOutMax = 60 * 60 * 1000

Definition at line 52 of file msutb.cpp.

Referenced by InitFromReg(), and CLangBarItemList::StartDemotingTimer().

◆ g_uTimeOutNonIntentional

UINT g_uTimeOutNonIntentional = 60 * 1000

Definition at line 50 of file msutb.cpp.

Referenced by InitFromReg(), and CLangBarItemList::StartDemotingTimer().

◆ g_uTimerElapseBACKTOALPHA

UINT g_uTimerElapseBACKTOALPHA = 3 * 1000

Definition at line 61 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseDISPLAYCHANGE

UINT g_uTimerElapseDISPLAYCHANGE = 20

Definition at line 66 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseDOACCDEFAULTACTION

UINT g_uTimerElapseDOACCDEFAULTACTION = 200

◆ g_uTimerElapseENSUREFOCUS

UINT g_uTimerElapseENSUREFOCUS = 50

Definition at line 72 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseMOVETOTRAY

UINT g_uTimerElapseMOVETOTRAY = 50

Definition at line 69 of file msutb.cpp.

Referenced by InitFromReg(), and CTipbarWnd::SetShowTrayIcon().

◆ g_uTimerElapseONTHREADITEMCHANGE

UINT g_uTimerElapseONTHREADITEMCHANGE = 200

Definition at line 62 of file msutb.cpp.

Referenced by InitFromReg(), and CTipbarWnd::OnThreadItemChange().

◆ g_uTimerElapseONUPDATECALLED

UINT g_uTimerElapseONUPDATECALLED = 50

Definition at line 64 of file msutb.cpp.

Referenced by InitFromReg(), and CTipbarItem::OnUpdate().

◆ g_uTimerElapseSETWINDOWPOS

UINT g_uTimerElapseSETWINDOWPOS = 100

Definition at line 63 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseSHOWDESKBAND

UINT g_uTimerElapseSHOWDESKBAND = 3 * 1000

Definition at line 74 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseSHOWWINDOW

UINT g_uTimerElapseSHOWWINDOW = 50

Definition at line 68 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseSTUBEND

UINT g_uTimerElapseSTUBEND = 2 * 1000

Definition at line 60 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseSTUBSTART

UINT g_uTimerElapseSTUBSTART = 100

Definition at line 59 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseSYSCOLORCHANGED

UINT g_uTimerElapseSYSCOLORCHANGED = 20

Definition at line 65 of file msutb.cpp.

Referenced by InitFromReg(), CTipbarWnd::SetLangBand(), and CTipbarWnd::SetVertical().

◆ g_uTimerElapseTRAYWNDONDELAYMSG

UINT g_uTimerElapseTRAYWNDONDELAYMSG = 50

Definition at line 70 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_uTimerElapseUPDATEUI

UINT g_uTimerElapseUPDATEUI = 70

Definition at line 67 of file msutb.cpp.

Referenced by InitFromReg().

◆ g_wmTaskbarCreated

UINT g_wmTaskbarCreated = 0

Definition at line 30 of file msutb.cpp.

Referenced by ProcessAttach().

◆ gModule