ReactOS 0.4.16-dev-2498-g8632030
CLBarInatItem Class Reference

Language Bar international item. More...

Inheritance diagram for CLBarInatItem:
Collaboration diagram for CLBarInatItem:

Public Member Functions

 CLBarInatItem (DWORD dwThreadId)
 
STDMETHOD() InitMenu (ITfMenu *pMenu) override
 
STDMETHOD() OnMenuSelect (INT nCommandId)
 
STDMETHOD() GetIcon (HICON *phIcon) override
 
STDMETHOD() GetText (BSTR *pbstr) override
 
STDMETHOD() OnMenuSelect (UINT wID) override
 
- Public Member Functions inherited from CLBarItemButtonBase
 CLBarItemButtonBase ()
 
 ~CLBarItemButtonBase () override
 
STDMETHOD() QueryInterface (REFIID riid, void **ppvObject) override
 
 STDMETHOD_ (ULONG, AddRef)() override
 
 STDMETHOD_ (ULONG, Release)() override
 
STDMETHOD() GetInfo (TF_LANGBARITEMINFO *pInfo) override
 
STDMETHOD() GetStatus (DWORD *pdwStatus) override
 
STDMETHOD() Show (BOOL fShow) override
 
STDMETHOD() GetTooltipString (BSTR *pbstrToolTip) override
 
STDMETHOD() OnClick (TfLBIClick click, POINT pt, LPCRECT prc) override
 @unimplemented
 
STDMETHOD() InitMenu (ITfMenu *pMenu) override
 
STDMETHOD() OnMenuSelect (UINT wID) override
 
STDMETHOD() GetIcon (HICON *phIcon) override
 
STDMETHOD() GetText (BSTR *pbstr) override
 
STDMETHOD() AdviseSink (REFIID riid, IUnknown *punk, DWORD *pdwCookie) override
 
STDMETHOD() UnadviseSink (DWORD dwCookie) override
 
- Public Member Functions inherited from CLBarItemBase
 CLBarItemBase ()
 
virtual ~CLBarItemBase ()
 
HRESULT ShowInternal (BOOL bShow, BOOL bUpdate)
 
void InitNuiInfo (REFIID clsidService, REFGUID guidItem, DWORD dwStyle, DWORD ulSort, LPCWSTR Source)
 
HRESULT GetInfo (TF_LANGBARITEMINFO *pInfo)
 
HRESULT GetStatus (DWORD *pdwStatus)
 
HRESULT Show (BOOL fShow)
 
HRESULT GetTooltipString (BSTR *pbstrToolTip)
 
HRESULT AdviseSink (REFIID riid, IUnknown *punk, DWORD *pdwCookie)
 
HRESULT UnadviseSink (DWORD dwCookie)
 
HRESULT GetInfo ([out] TF_LANGBARITEMINFO *pInfo)
 
HRESULT GetStatus ([out] DWORD *pdwStatus)
 
HRESULT Show ([in] BOOL fShow)
 
HRESULT GetTooltipString ([out] BSTR *pbstrToolTip)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
- Public Member Functions inherited from ITfLangBarItemButton
HRESULT OnClick ([in] TfLBIClick click, [in] POINT pt, [in] const RECT *prcArea)
 
HRESULT InitMenu ([in] ITfMenu *pMenu)
 
HRESULT OnMenuSelect ([in] UINT wID)
 
HRESULT GetIcon ([out] HICON *phIcon)
 
HRESULT GetText ([out] BSTR *pbstrText)
 
HRESULT AdviseSink ([in] REFIID riid, [in, iid_is(riid)] IUnknown *punk, [out] DWORD *pdwCookie)
 
HRESULT UnadviseSink ([in] DWORD dwCookie)
 

Protected Attributes

HKL m_hKL
 
DWORD m_dwThreadId
 
- Protected Attributes inherited from CLBarItemBase
DWORD m_dwItemStatus
 
TF_LANGBARITEMINFO m_NewUIInfo
 
WCHAR m_szToolTipText [256]
 
LONG m_cRefs
 
ITfLangBarItemSinkm_pLangBarItemSink
 

Additional Inherited Members

- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Attributes inherited from CLBarItemButtonBase
HICON m_hIcon
 

Detailed Description

Language Bar international item.

Definition at line 1276 of file msutb.cpp.

Constructor & Destructor Documentation

◆ CLBarInatItem()

CLBarInatItem::CLBarInatItem ( DWORD  dwThreadId)

Definition at line 3762 of file msutb.cpp.

3763{
3764 WCHAR szText[256];
3765 ::LoadStringW(g_hInst, IDS_LANGUAGE, szText, _countof(szText));
3766 InitNuiInfo(CLSID_SYSTEMLANGBARITEM, GUID_LBI_INATITEM, 0x20001, 0, szText);
3767
3772
3775}
#define IDS_LANGUAGEBUTTON
Definition: resource.h:19
#define IDS_LANGUAGE
Definition: resource.h:18
DWORD m_dwThreadId
Definition: msutb.cpp:1280
WCHAR m_szToolTipText[256]
Definition: msutb.cpp:1209
void InitNuiInfo(REFIID clsidService, REFGUID guidItem, DWORD dwStyle, DWORD ulSort, LPCWSTR Source)
Definition: msutb.cpp:3503
HRESULT ShowInternal(BOOL bShow, BOOL bUpdate)
Definition: msutb.cpp:3518
DWORD dwThreadId
Definition: fdebug.c:31
EXTERN_C VOID WINAPI TF_InitMlngInfo(VOID)
Definition: mlng.cpp:588
EXTERN_C INT WINAPI TF_MlngInfoCount(VOID)
Definition: mlng.cpp:608
HINSTANCE g_hInst
Definition: msutb.cpp:29
#define LoadStringW
Definition: utils.h:64
#define _countof(array)
Definition: sndvol32.h:70
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149
HKL WINAPI GetKeyboardLayout(_In_ DWORD)
__wchar_t WCHAR
Definition: xmlstorage.h:180

Member Function Documentation

◆ GetIcon()

STDMETHODIMP CLBarInatItem::GetIcon ( HICON phIcon)
override

Implements ITfLangBarItemButton.

Definition at line 3777 of file msutb.cpp.

3778{
3779 HICON hIcon = NULL;
3780 INT iIndex = GetIconIndexFromhKL(m_hKL);
3781 if (iIndex != -1)
3782 hIcon = TF_InatExtractIcon(iIndex);
3783 *phIcon = hIcon;
3784 return S_OK;
3785}
#define NULL
Definition: types.h:112
#define S_OK
Definition: intsafe.h:52
EXTERN_C HICON WINAPI TF_InatExtractIcon(_In_ INT iKL)
Definition: mlng.cpp:623
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
INT GetIconIndexFromhKL(_In_ HKL hKL)
Definition: msutb.cpp:270
int32_t INT
Definition: typedefs.h:58

◆ GetText()

STDMETHODIMP CLBarInatItem::GetText ( BSTR pbstr)
override

Implements ITfLangBarItemButton.

Definition at line 3787 of file msutb.cpp.

3788{
3789 if (!pbstr)
3790 return E_INVALIDARG;
3791
3792 WCHAR szText[256];
3793 if (!GethKLDesc(m_hKL, szText, _countof(szText)))
3794 return GetText(pbstr);
3795
3796 *pbstr = ::SysAllocString(szText);
3797 return S_OK;
3798}
STDMETHOD() GetText(BSTR *pbstr) override
Definition: msutb.cpp:3787
#define E_INVALIDARG
Definition: ddrawi.h:101
BOOL GethKLDesc(_In_ HKL hKL, _Out_ LPWSTR pszDesc, _In_ UINT cchDesc)
Definition: msutb.cpp:287
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238

Referenced by GetText().

◆ InitMenu()

STDMETHODIMP CLBarInatItem::InitMenu ( ITfMenu pMenu)
override

Implements ITfLangBarItemButton.

Definition at line 3800 of file msutb.cpp.

3801{
3803
3804 INT iKL, cKLs = TF_MlngInfoCount();
3805 for (iKL = 0; iKL < cKLs; ++iKL)
3806 {
3807 HKL hKL;
3808 WCHAR szDesc[128];
3809 if (TF_GetMlngHKL(iKL, &hKL, szDesc, _countof(szDesc)))
3810 {
3811 HICON hIcon = NULL;
3812 INT iIndex = GetIconIndexFromhKL(hKL);
3813 if (iIndex != -1)
3814 hIcon = TF_InatExtractIcon(iIndex);
3815
3816 LangBarInsertMenu(pMenu, iKL, szDesc, (hKL == m_hKL), hIcon);
3817 }
3818 }
3819
3821 if (g_pTipbarWnd &&
3824 (dwStatus & (TF_SFT_DESKBAND | TF_SFT_MINIMIZED)))
3825 {
3827
3828 WCHAR szText[256];
3830 LangBarInsertMenu(pMenu, 2000, szText, FALSE, NULL);
3831 }
3832
3833 return S_OK;
3834}
#define IDS_RESTORELANGBAR2
Definition: resource.h:26
ITfLangBarMgr_P * m_pLangBarMgr
Definition: msutb.cpp:1479
#define FALSE
Definition: types.h:117
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT GetShowFloatingStatus([out] DWORD *pdwFlags)
#define SUCCEEDED(hr)
Definition: intsafe.h:50
EXTERN_C BOOL WINAPI TF_GetMlngHKL(_In_ INT iKL, _Out_opt_ HKL *phKL, _Out_opt_ LPWSTR pszDesc, _In_ INT cchDesc)
Definition: mlng.cpp:658
UINT_PTR HKL
Definition: msctf.idl:125
HRESULT LangBarInsertMenu(_In_ ITfMenu *pMenu, _In_ UINT uId, _In_ LPCWSTR pszText, _In_ BOOL bChecked, _Inout_opt_ HICON hIcon)
Definition: msutb.cpp:302
CTipbarWnd * g_pTipbarWnd
Definition: msutb.cpp:99
HRESULT LangBarInsertSeparator(_In_ ITfMenu *pMenu)
Definition: msutb.cpp:328
DWORD dwStatus
Definition: mediaobj.idl:95

◆ OnMenuSelect() [1/2]

STDMETHODIMP CLBarInatItem::OnMenuSelect ( INT  nCommandId)

Definition at line 3836 of file msutb.cpp.

3837{
3838 HKL hKL;
3839
3840 if (nCommandId == 2000)
3841 {
3842 if (g_pTipbarWnd)
3843 {
3845 if (pLangBarMgr)
3846 pLangBarMgr->ShowFloating(TF_SFT_SHOWNORMAL);
3847 }
3848 }
3849 else if (TF_GetMlngHKL(nCommandId, &hKL, NULL, 0))
3850 {
3852 HWND hwndFore = ::GetForegroundWindow();
3854 {
3855 BOOL FontSig = GetFontSig(hwndFore, hKL);
3856 ::PostMessage(hwndFore, WM_INPUTLANGCHANGEREQUEST, FontSig, (LPARAM)hKL);
3857 }
3858 }
3859
3860 return S_OK;
3861}
DWORD m_dwTipbarWndFlags
Definition: msutb.cpp:1469
void RestoreLastFocus(DWORD *pdwThreadId, BOOL fPrev)
Definition: msutb.cpp:5079
unsigned int BOOL
Definition: ntddk_ex.h:94
HRESULT ShowFloating([in] DWORD dwFlags)
LONG_PTR LPARAM
Definition: minwindef.h:175
@ TIPBAR_CHILD
Definition: msutb.cpp:1437
BOOL GetFontSig(HWND hWnd, HKL hKL)
Definition: msutb.cpp:133
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
HWND WINAPI GetForegroundWindow(void)
Definition: ntwrapper.h:392
#define PostMessage
Definition: winuser.h:5998

◆ OnMenuSelect() [2/2]

STDMETHODIMP CLBarItemButtonBase::OnMenuSelect ( UINT  wID)
override

Implements ITfLangBarItemButton.

Definition at line 1264 of file msutb.cpp.

3708{
3709 return E_NOTIMPL;
3710}
#define E_NOTIMPL
Definition: ddrawi.h:99

Member Data Documentation

◆ m_dwThreadId

DWORD CLBarInatItem::m_dwThreadId
protected

Definition at line 1280 of file msutb.cpp.

Referenced by CLBarInatItem(), and OnMenuSelect().

◆ m_hKL

HKL CLBarInatItem::m_hKL
protected

Definition at line 1279 of file msutb.cpp.

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


The documentation for this class was generated from the following file: