| /* | |
| * Copyright 2010 Justin Chevrier | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| #ifndef DO_NO_IMPORTS | |
| import "oaidl.idl"; | |
| #endif | |
| interface ITfLangBarEventSink; | |
| interface ITfLangBarItemMgr; | |
| interface ITfInputProcessorProfiles; | |
| const ULONG TF_LBI_DESC_MAXLEN = 32; | |
| typedef [uuid(12a1d29f-a065-440c-9746-eb2002c8bd19)] struct TF_LANGBARITEMINFO | |
| { | |
| CLSID clsidService; | |
| GUID guidItem; | |
| DWORD dwStyle; | |
| ULONG ulSort; | |
| WCHAR szDescription[TF_LBI_DESC_MAXLEN]; | |
| } TF_LANGBARITEMINFO; | |
| [ | |
| object, | |
| uuid(73540d69-edeb-4ee9-96c9-23aa30b25916), | |
| pointer_default(unique), | |
| ] | |
| interface ITfLangBarItem : IUnknown | |
| { | |
| HRESULT GetInfo( | |
| [out] TF_LANGBARITEMINFO *pInfo); | |
| HRESULT GetStatus( | |
| [out] DWORD *pdwStatus); | |
| HRESULT Show( | |
| [in] BOOL fShow); | |
| HRESULT GetTooltipString( | |
| [out] BSTR *pbstrToolTip); | |
| } | |
| [ | |
| object, | |
| uuid(583f34d0-de25-11d2-afdd-00105a2799b5), | |
| pointer_default(unique), | |
| ] | |
| interface IEnumTfLangBarItems : IUnknown | |
| { | |
| HRESULT Clone( | |
| [out] IEnumTfLangBarItems **ppEnum); | |
| HRESULT Next( | |
| [in] ULONG ulCount, | |
| [out, size_is(ulCount)] ITfLangBarItem **ppItem, | |
| [in, out, unique] ULONG *pcFetched); | |
| HRESULT Reset(); | |
| HRESULT Skip( | |
| [in] ULONG ulCount); | |
| } | |
| [ | |
| object, | |
| uuid(57dbe1a0-de25-11d2-afdd-00105a2799b5), | |
| pointer_default(unique), | |
| ] | |
| interface ITfLangBarItemSink : IUnknown | |
| { | |
| HRESULT OnUpdate( | |
| [in] DWORD dwFlags); | |
| } | |
| [ | |
| object, | |
| uuid(ba468c55-9956-4fb1-a59d-52a7dd7cc6aa), | |
| pointer_default(unique), | |
| ] | |
| interface ITfLangBarItemMgr : IUnknown | |
| { | |
| HRESULT EnumItems( | |
| [out] IEnumTfLangBarItems **ppEnum); | |
| HRESULT GetItem( | |
| [in] REFGUID rguid, | |
| [out] ITfLangBarItem **ppItem); | |
| HRESULT AddItem( | |
| [in] ITfLangBarItem *punk); | |
| HRESULT RemoveItem( | |
| [in] ITfLangBarItem *punk); | |
| HRESULT AdviseItemSink( | |
| [in] ITfLangBarItemSink *punk, | |
| [out] DWORD *pdwCookie, | |
| [in] REFGUID rguidItem); | |
| HRESULT UnadviseItemSink( | |
| [in] DWORD dwCookie); | |
| HRESULT GetItemFloatingRect( | |
| [in] DWORD dwThreadId, | |
| [in] REFGUID rguid, | |
| [out] RECT *prc); | |
| HRESULT GetItemsStatus( | |
| [in] ULONG ulCount, | |
| [in, size_is(ulCount)] const GUID *prgguid, | |
| [out, size_is(ulCount)] DWORD *pdwStatus); | |
| HRESULT GetItemNum( | |
| [out] ULONG *pulCount); | |
| HRESULT GetItems( | |
| [in] ULONG ulCount, | |
| [out, size_is(ulCount), length_is(*pcFetched)] ITfLangBarItem **ppItem, | |
| [out, size_is(ulCount), length_is(*pcFetched)] TF_LANGBARITEMINFO *pInfo, | |
| [out, size_is(ulCount), length_is(*pcFetched)] DWORD *pdwStatus, | |
| [in, out, unique] ULONG *pcFetched); | |
| HRESULT AdviseItemsSink( | |
| [in] ULONG ulCount, | |
| [in, size_is(ulCount)] ITfLangBarItemSink **ppunk, | |
| [in, size_is(ulCount)] const GUID *pguidItem, | |
| [out, size_is(ulCount)] DWORD *pdwCookie); | |
| HRESULT UnadviseItemsSink( | |
| [in] ULONG ulCount, | |
| [in, size_is(ulCount)] DWORD *pdwCookie); | |
| } | |
| [ | |
| object, | |
| uuid(87955690-e627-11d2-8ddb-00105a2799b5), | |
| pointer_default(unique) | |
| ] | |
| interface ITfLangBarMgr: IUnknown | |
| { | |
| HRESULT AdviseEventSink( | |
| [in] ITfLangBarEventSink *pSink, | |
| [in] HWND hwnd, | |
| [in] DWORD dwflags, | |
| [in] DWORD *pdwCookie); | |
| HRESULT UnAdviseEventSink( | |
| [in] DWORD dwCookie); | |
| HRESULT GetThreadMarshalInterface( | |
| [in] DWORD dwThreadId, | |
| [in] DWORD dwType, | |
| [in] REFIID riid, | |
| [out] IUnknown **ppunk); | |
| HRESULT GetThreadLangBarItemMgr( | |
| [in] DWORD dwThreadId, | |
| [out] ITfLangBarItemMgr **pplbie, | |
| [out] DWORD *pdwThreadid); | |
| HRESULT GetInputProcessorProfiles( | |
| [in] DWORD dwThreadId, | |
| [out] ITfInputProcessorProfiles **ppaip, | |
| [out] DWORD *pdwThreadid); | |
| HRESULT RestoreLastFocus( | |
| [out] DWORD *dwThreadId, | |
| [in] BOOL fPrev); | |
| HRESULT SetModalInput( | |
| [in] ITfLangBarEventSink *pSink, | |
| [in] DWORD dwThreadId, | |
| [in] DWORD dwFlags); | |
| HRESULT ShowFloating( | |
| [in] DWORD dwFlags); | |
| HRESULT GetShowFloatingStatus( | |
| [out] DWORD *pdwFlags); | |
| } | |
| [ | |
| object, | |
| uuid(18a4e900-e0ae-11d2-afdd-00105a2799b5), | |
| pointer_default(unique) | |
| ] | |
| interface ITfLangBarEventSink: IUnknown | |
| { | |
| HRESULT OnSetFocus( | |
| [in] DWORD dwThreadId); | |
| HRESULT OnThreadTerminate( | |
| [in] DWORD dwThreadId); | |
| HRESULT OnThreadItemChange( | |
| [in] DWORD dwThreadId); | |
| HRESULT OnModalInput( | |
| [in] DWORD dwThreadId, | |
| [in] UINT uMsg, | |
| [in] WPARAM wParam, | |
| [in] LPARAM lParam); | |
| HRESULT ShowFloating( | |
| [in] DWORD dwFlags); | |
| HRESULT GetItemFloatingRect( | |
| [in] DWORD dwThreadId, | |
| [in] REFGUID rguid, | |
| [out] RECT *prc); | |
| } |