You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.4 KiB
78 lines
2.4 KiB
//
|
|
// utb.h
|
|
//
|
|
|
|
#ifndef UTB_H
|
|
#define UTB_H
|
|
|
|
#include "private.h"
|
|
|
|
#ifndef ASFW_ANY
|
|
#define ASFW_ANY ((DWORD)-1)
|
|
#endif
|
|
|
|
typedef void (*REGISTERSYSTEMTHREAD)(DWORD dw, DWORD reserve);
|
|
typedef BOOL (*ALLOWSETFOREGROUNDWINDOW)(DWORD dw);
|
|
ALLOWSETFOREGROUNDWINDOW EnsureAllowSetForeground();
|
|
REGISTERSYSTEMTHREAD EnsureRegSys();
|
|
|
|
HRESULT RegisterLangBarNotifySink(ITfLangBarEventSink *pSink, HWND hwnd, DWORD dwFlags, DWORD *pdwCookie);
|
|
HRESULT UnregisterLangBarNotifySink(DWORD dwCookie);
|
|
|
|
BOOL CALLBACK EnumChildWndProc(HWND hwnd, LPARAM lParam);
|
|
BOOL FindTrayEtc();
|
|
BOOL IsNotifyTrayWnd(HWND hWnd);
|
|
|
|
void LangBarClosed();
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CLangBarMgr
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// If we ever go crazy for perf, this class could be a single static instance,
|
|
// since it has no state. We need to get rid of the ATL CComCoClass and
|
|
// CComObjectRoot to do this.
|
|
class CLangBarMgr :
|
|
public ITfLangBarMgr_P,
|
|
public CComObjectRoot_CreateInstance<CLangBarMgr>
|
|
{
|
|
public:
|
|
CLangBarMgr();
|
|
~CLangBarMgr();
|
|
|
|
BEGIN_COM_MAP_IMMX(CLangBarMgr)
|
|
COM_INTERFACE_ENTRY(ITfLangBarMgr)
|
|
COM_INTERFACE_ENTRY(ITfLangBarMgr_P)
|
|
END_COM_MAP_IMMX()
|
|
|
|
//
|
|
// ITfLangBarManager
|
|
//
|
|
STDMETHODIMP AdviseEventSink(ITfLangBarEventSink *pSink, HWND hwnd, DWORD dwFlags, DWORD *pdwCookie);
|
|
STDMETHODIMP UnadviseEventSink(DWORD dwCookie);
|
|
STDMETHODIMP GetThreadMarshalInterface(DWORD dwThreadId, DWORD dwType, REFIID riid, IUnknown **ppunk);
|
|
STDMETHODIMP GetThreadLangBarItemMgr(DWORD dwThreadId, ITfLangBarItemMgr **pplbi, DWORD *pdwThreadId) ;
|
|
STDMETHODIMP GetInputProcessorProfiles(DWORD dwThreadId, ITfInputProcessorProfiles **ppaip, DWORD *pdwThreadId) ;
|
|
STDMETHODIMP RestoreLastFocus(DWORD *pdwThreadId, BOOL fPrev);
|
|
STDMETHODIMP SetModalInput(ITfLangBarEventSink *pSink, DWORD dwThreadId, DWORD dwFlags);
|
|
STDMETHODIMP ShowFloating(DWORD dwFlags);
|
|
STDMETHODIMP GetShowFloatingStatus(DWORD *pdwFlags);
|
|
|
|
//
|
|
// ITfLangBarManager_P
|
|
//
|
|
STDMETHODIMP GetPrevShowFloatingStatus(DWORD *pdwFlags);
|
|
|
|
static HRESULT s_ShowFloating(DWORD dwFlags);
|
|
static HRESULT s_GetShowFloatingStatus(DWORD *pdwFlags);
|
|
|
|
private:
|
|
static BOOL CheckFloatingBits(DWORD dwBits);
|
|
|
|
DBG_ID_DECLARE;
|
|
};
|
|
|
|
|
|
#endif //UTB_H
|