blob: 1a4125be67a2eaaeba0fe84d7ca478bf1b64747f [file] [log] [blame]
/*
* 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);
}