1735 lines
42 KiB
Plaintext
1735 lines
42 KiB
Plaintext
/*
|
|
* Copyright 2008 Aric Stewart, CodeWeavers
|
|
*
|
|
* 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";
|
|
import "comcat.idl";
|
|
import "textstor.idl";
|
|
import "ctfutb.idl";
|
|
#endif
|
|
cpp_quote("#include <winuser.h>")
|
|
|
|
cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
|
|
cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
|
|
cpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
|
|
cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
|
|
|
|
cpp_quote("HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim);")
|
|
cpp_quote("HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim);")
|
|
cpp_quote("HRESULT WINAPI TF_CreateInputProcessorProfiles(ITfInputProcessorProfiles **ppipr);")
|
|
cpp_quote("HRESULT WINAPI TF_CreateLangBarMgr(ITfLangBarMgr **pppbm);")
|
|
cpp_quote("HRESULT WINAPI TF_CreateLangBarItemMgr(ITfLangBarItemMgr **pplbim);")
|
|
cpp_quote("HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void);")
|
|
|
|
cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")
|
|
cpp_quote("DEFINE_GUID(GUID_PROP_ATTRIBUTE,0x34b45670,0x7526,0x11d2,0xa1,0x47,0x00,0x10,0x5a,0x27,0x99,0xb5);")
|
|
cpp_quote("EXTERN_C const GUID GUID_PROP_LANGID;")
|
|
cpp_quote("EXTERN_C const GUID GUID_PROP_READING;")
|
|
cpp_quote("EXTERN_C const GUID GUID_PROP_COMPOSING;")
|
|
|
|
cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;")
|
|
|
|
/* GUIDs for Compartments */
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_HANDWRITING_OPENCLOSE;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_DISABLED;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_OPENCLOSE;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_SPEECH_GLOBALSTATE;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_PERSISTMENUENABLED;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_EMPTYCONTEXT;")
|
|
cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_TIPUISTATUS;")
|
|
|
|
/* GUIDs for Categories */
|
|
cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
|
|
cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
|
|
cpp_quote("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
|
|
cpp_quote("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
|
|
|
|
typedef [uuid(7213778c-7bb0-4270-b050-6189ee594e97)] DWORD TfEditCookie;
|
|
typedef [uuid(de403c21-89fd-4f85-8b87-64584d063fbc)] DWORD TfClientId;
|
|
typedef [uuid(88a9c478-f3ec-4763-8345-cd9250443f8d)] DWORD TfGuidAtom;
|
|
|
|
cpp_quote("#define TF_MOD_ALT 0x0001")
|
|
cpp_quote("#define TF_MOD_CONTROL 0x0002")
|
|
cpp_quote("#define TF_MOD_SHIFT 0x0004")
|
|
cpp_quote("#define TF_MOD_RALT 0x0008")
|
|
cpp_quote("#define TF_MOD_RCONTROL 0x0010")
|
|
cpp_quote("#define TF_MOD_RSHIFT 0x0020")
|
|
cpp_quote("#define TF_MOD_LALT 0x0040")
|
|
cpp_quote("#define TF_MOD_LCONTROL 0x0080")
|
|
cpp_quote("#define TF_MOD_LSHIFT 0x0100")
|
|
cpp_quote("#define TF_MOD_ON_KEYUP 0x0200")
|
|
cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
|
|
|
|
cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR 0x0001")
|
|
cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x0002")
|
|
|
|
cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
|
|
|
|
interface ITfDocumentMgr;
|
|
interface ITfContext;
|
|
interface IEnumTfDocumentMgrs;
|
|
interface IEnumTfContexts;
|
|
interface ITfCompartmentMgr;
|
|
interface ITfEditSession;
|
|
interface ITfRange;
|
|
interface ITfProperty;
|
|
interface ITfReadOnlyProperty;
|
|
interface IEnumTfLanguageProfiles;
|
|
interface ITfCompositionView;
|
|
interface ITfKeyEventSink;
|
|
|
|
cpp_quote("#if 0")
|
|
typedef [uuid(4f5d560f-5ab5-4dde-8c4d-404592857ab0)] UINT_PTR HKL;
|
|
cpp_quote("#endif")
|
|
|
|
typedef [uuid(e26d9e1d-691e-4f29-90d7-338dcf1f8cef)] struct TF_PERSISTENT_PROPERTY_HEADER_ACP
|
|
{
|
|
GUID guidType;
|
|
LONG ichStart;
|
|
LONG cch;
|
|
ULONG cb;
|
|
DWORD dwPrivate;
|
|
CLSID clsidTIP;
|
|
} TF_PERSISTENT_PROPERTY_HEADER_ACP;
|
|
|
|
typedef [uuid(e1b5808d-1e46-4c19-84dc-68c5f5978cc8)] struct TF_LANGUAGEPROFILE
|
|
{
|
|
CLSID clsid;
|
|
LANGID langid;
|
|
GUID catid;
|
|
BOOL fActive;
|
|
GUID guidProfile;
|
|
} TF_LANGUAGEPROFILE;
|
|
|
|
typedef [uuid(77c12f95-b783-450d-879f-1cd2362c6521)] struct TF_PRESERVEDKEY
|
|
{
|
|
UINT uVKey;
|
|
UINT uModifiers;
|
|
} TF_PRESERVEDKEY;
|
|
|
|
typedef [uuid(5a886226-ae9a-489b-b991-2b1e25ee59a9)] enum { TF_ANCHOR_START = 0, TF_ANCHOR_END = 1 } TfAnchor;
|
|
|
|
[
|
|
object,
|
|
uuid(101d6610-0990-11d3-8df0-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfFunctionProvider : IUnknown
|
|
{
|
|
HRESULT GetType(
|
|
[out] GUID *guid);
|
|
|
|
HRESULT GetDescription(
|
|
[out] BSTR *desc);
|
|
|
|
HRESULT GetFunction(
|
|
[in] REFGUID guid,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown **func);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(e4b24db0-0990-11d3-8df0-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfFunctionProviders : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfFunctionProviders **ret);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG count,
|
|
[out, size_is(count), length_is(*fetched)] ITfFunctionProvider **prov,
|
|
[out] ULONG *fetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG count);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e801-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfThreadMgr: IUnknown
|
|
{
|
|
HRESULT Activate(
|
|
[out] TfClientId *ptid);
|
|
|
|
HRESULT Deactivate();
|
|
|
|
HRESULT CreateDocumentMgr(
|
|
[out] ITfDocumentMgr **ppdim);
|
|
|
|
HRESULT EnumDocumentMgrs(
|
|
[out] IEnumTfDocumentMgrs **ppEnum);
|
|
|
|
HRESULT GetFocus(
|
|
[out] ITfDocumentMgr **ppdimFocus);
|
|
|
|
HRESULT SetFocus(
|
|
[in] ITfDocumentMgr *pdimFocus);
|
|
|
|
HRESULT AssociateFocus(
|
|
[in] HWND hwnd,
|
|
[in, unique] ITfDocumentMgr *pdimNew,
|
|
[out] ITfDocumentMgr **ppdimPrev);
|
|
|
|
HRESULT IsThreadFocus(
|
|
[out] BOOL *pfThreadFocus);
|
|
|
|
HRESULT GetFunctionProvider(
|
|
[in] REFCLSID clsid,
|
|
[out] ITfFunctionProvider **ppFuncProv);
|
|
|
|
HRESULT EnumFunctionProviders(
|
|
[out] IEnumTfFunctionProviders **ppEnum);
|
|
|
|
HRESULT GetGlobalCompartment(
|
|
[out] ITfCompartmentMgr **ppCompMgr);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(d7540241-f9a1-4364-befc-dbcd2c4395b7),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCompositionView : IUnknown
|
|
{
|
|
HRESULT GetOwnerClsid([out] CLSID *pclsid);
|
|
|
|
HRESULT GetRange([out] ITfRange **ppRange);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e7f4-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfDocumentMgr: IUnknown
|
|
{
|
|
HRESULT CreateContext(
|
|
[in] TfClientId tidOwner,
|
|
[in] DWORD dwFlags,
|
|
[in, unique] IUnknown *punk,
|
|
[out] ITfContext **ppic,
|
|
[out] TfEditCookie *pecTextStore);
|
|
|
|
HRESULT Push(
|
|
[in] ITfContext *pic);
|
|
|
|
const DWORD TF_POPF_ALL = 0x0001;
|
|
|
|
HRESULT Pop(
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetTop(
|
|
[out] ITfContext **ppic);
|
|
|
|
HRESULT GetBase(
|
|
[out] ITfContext **ppic);
|
|
|
|
HRESULT EnumContexts(
|
|
[out] IEnumTfContexts **ppEnum);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(2433bf8e-0f9b-435c-ba2c-180611978c30),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContextView : IUnknown
|
|
{
|
|
HRESULT GetRangeFromPoint(
|
|
[in] TfEditCookie cookie,
|
|
[in] const POINT *pt,
|
|
[in] DWORD flags,
|
|
[out] ITfRange **range);
|
|
|
|
HRESULT GetTextExt(
|
|
[in] TfEditCookie cookie,
|
|
[in] ITfRange *range,
|
|
[out] RECT *rect,
|
|
[out] BOOL *clipped);
|
|
|
|
HRESULT GetScreenExt(
|
|
[out] RECT *rect);
|
|
|
|
HRESULT GetWnd(
|
|
[out] HWND *hwnd);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(f0c0f8dd-cf38-44e1-bb0f-68cf0d551c78),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfContextViews : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfContextViews **ret);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG count,
|
|
[out, size_is(count), length_is(*fetched)] ITfContextView **views,
|
|
[out] ULONG *fetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG count);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(19188cb0-aca9-11d2-afc5-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfProperties : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfProperties **ret);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG count,
|
|
[out, size_is(count), length_is(*fetched)] ITfProperty **props,
|
|
[out] ULONG *fetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG count);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(463a506d-6992-49d2-9b88-93d55e70bb16),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfRangeBackup : IUnknown
|
|
{
|
|
HRESULT Restore(
|
|
[in] TfEditCookie cookie,
|
|
[in] ITfRange *range);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e7fd-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContext : IUnknown
|
|
{
|
|
const DWORD TF_ES_ASYNCDONTCARE = 0x0;
|
|
const DWORD TF_ES_SYNC = 0x1;
|
|
const DWORD TF_ES_READ = 0x2;
|
|
const DWORD TF_ES_READWRITE = 0x6;
|
|
const DWORD TF_ES_ASYNC = 0x8;
|
|
|
|
HRESULT RequestEditSession(
|
|
[in] TfClientId tid,
|
|
[in] ITfEditSession *pes,
|
|
[in] DWORD dwFlags,
|
|
[out] HRESULT *phrSession);
|
|
|
|
HRESULT InWriteSession(
|
|
[in] TfClientId tid,
|
|
[out] BOOL *pfWriteSession);
|
|
|
|
typedef [uuid(1690be9b-d3e9-49f6-8d8b-51b905af4c43)] enum { TF_AE_NONE, TF_AE_START, TF_AE_END } TfActiveSelEnd;
|
|
|
|
typedef [uuid(36ae42a4-6989-4bdc-b48a-6137b7bf2e42)] struct TF_SELECTIONSTYLE
|
|
{
|
|
TfActiveSelEnd ase;
|
|
BOOL fInterimChar;
|
|
} TF_SELECTIONSTYLE;
|
|
|
|
typedef [uuid(75eb22f2-b0bf-46a8-8006-975a3b6efcf1)] struct TF_SELECTION
|
|
{
|
|
ITfRange *range;
|
|
TF_SELECTIONSTYLE style;
|
|
} TF_SELECTION;
|
|
|
|
const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION;
|
|
|
|
HRESULT GetSelection(
|
|
[in] TfEditCookie ec,
|
|
[in] ULONG ulIndex,
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] TF_SELECTION *pSelection,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT SetSelection(
|
|
[in] TfEditCookie ec,
|
|
[in] ULONG ulCount,
|
|
[in, size_is(ulCount)] const TF_SELECTION *pSelection);
|
|
|
|
HRESULT GetStart(
|
|
[in] TfEditCookie ec,
|
|
[out] ITfRange **ppStart);
|
|
|
|
HRESULT GetEnd(
|
|
[in] TfEditCookie ec,
|
|
[out] ITfRange **ppEnd);
|
|
|
|
typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS;
|
|
const DWORD TF_SD_READONLY = TS_SD_READONLY;
|
|
const DWORD TF_SD_LOADING = TS_SD_LOADING;
|
|
const DWORD TF_SS_DISJOINTSEL = TS_SS_DISJOINTSEL;
|
|
const DWORD TF_SS_REGIONS = TS_SS_REGIONS;
|
|
const DWORD TF_SS_TRANSITORY = TS_SS_TRANSITORY;
|
|
|
|
|
|
HRESULT GetActiveView(
|
|
[out] ITfContextView **ppView);
|
|
|
|
HRESULT EnumViews(
|
|
[out] IEnumTfContextViews **ppEnum);
|
|
|
|
HRESULT GetStatus(
|
|
[out] TF_STATUS *pdcs);
|
|
|
|
HRESULT GetProperty(
|
|
[in] REFGUID guidProp,
|
|
[out] ITfProperty **ppProp);
|
|
|
|
HRESULT GetAppProperty(
|
|
[in] REFGUID guidProp,
|
|
[out] ITfReadOnlyProperty **ppProp);
|
|
|
|
HRESULT TrackProperties(
|
|
[in, size_is(cProp)] const GUID **prgProp,
|
|
[in] ULONG cProp,
|
|
[in, size_is(cAppProp)] const GUID **prgAppProp,
|
|
[in] ULONG cAppProp,
|
|
[out] ITfReadOnlyProperty **ppProperty);
|
|
|
|
HRESULT EnumProperties(
|
|
[out] IEnumTfProperties **ppEnum);
|
|
|
|
HRESULT GetDocumentMgr(
|
|
[out] ITfDocumentMgr **ppDm);
|
|
|
|
HRESULT CreateRangeBackup(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[out] ITfRangeBackup **ppBackup);
|
|
}
|
|
|
|
const DWORD TF_INVALID_COOKIE = 0xffffffff;
|
|
|
|
[
|
|
object,
|
|
uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfSource : IUnknown
|
|
{
|
|
HRESULT AdviseSink(
|
|
[in] REFIID riid,
|
|
[in, iid_is(riid)] IUnknown *punk,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT UnadviseSink(
|
|
[in] DWORD dwCookie);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(1F02B6C5-7842-4EE6-8A0B-9A24183A95CA),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfInputProcessorProfiles : IUnknown
|
|
{
|
|
HRESULT Register(
|
|
[in] REFCLSID rclsid);
|
|
|
|
HRESULT Unregister(
|
|
[in] REFCLSID rclsid);
|
|
|
|
HRESULT AddLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in, size_is(cchDesc)] const WCHAR *pchDesc,
|
|
[in] ULONG cchDesc,
|
|
[in, size_is(cchFile)] const WCHAR *pchIconFile,
|
|
[in] ULONG cchFile,
|
|
[in] ULONG uIconIndex);
|
|
|
|
HRESULT RemoveLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile);
|
|
|
|
HRESULT EnumInputProcessorInfo(
|
|
[out] IEnumGUID **ppEnum);
|
|
|
|
HRESULT GetDefaultLanguageProfile(
|
|
[in] LANGID langid,
|
|
[in] REFGUID catid,
|
|
[out] CLSID *pclsid,
|
|
[out] GUID *pguidProfile);
|
|
|
|
HRESULT SetDefaultLanguageProfile(
|
|
[in] LANGID langid,
|
|
[in] REFCLSID rclsid,
|
|
[in] REFGUID guidProfiles);
|
|
|
|
HRESULT ActivateLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfiles);
|
|
|
|
HRESULT GetActiveLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[out] LANGID *plangid,
|
|
[out] GUID *pguidProfile);
|
|
|
|
HRESULT GetLanguageProfileDescription(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[out] BSTR *pbstrProfile);
|
|
|
|
HRESULT GetCurrentLanguage(
|
|
[out] LANGID *plangid);
|
|
|
|
HRESULT ChangeCurrentLanguage(
|
|
[in] LANGID langid);
|
|
|
|
HRESULT GetLanguageList(
|
|
[out] LANGID **ppLangId,
|
|
[out] ULONG *pulCount);
|
|
|
|
HRESULT EnumLanguageProfiles(
|
|
[in] LANGID langid,
|
|
[out] IEnumTfLanguageProfiles **ppEnum);
|
|
|
|
HRESULT EnableLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in] BOOL fEnable);
|
|
|
|
HRESULT IsEnabledLanguageProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[out] BOOL *pfEnable);
|
|
|
|
HRESULT EnableLanguageProfileByDefault(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in] BOOL fEnable);
|
|
|
|
HRESULT SubstituteKeyboardLayout(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in] HKL hKL);
|
|
}
|
|
|
|
typedef [uuid(44d2825a-10e5-43b2-877f-6cb2f43b7e7e)]
|
|
struct TF_INPUTPROCESSORPROFILE {
|
|
DWORD dwProfileType;
|
|
LANGID langid;
|
|
CLSID clsid;
|
|
GUID guidProfile;
|
|
GUID catid;
|
|
HKL hklSubstitute;
|
|
DWORD dwCaps;
|
|
HKL hkl;
|
|
DWORD dwFlags;
|
|
} TF_INPUTPROCESSORPROFILE;
|
|
|
|
[
|
|
object,
|
|
uuid(71c6e74d-0f28-11d8-a82a-00065b84435c),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfInputProcessorProfiles : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfInputProcessorProfiles **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetch)] TF_INPUTPROCESSORPROFILE *pProfile,
|
|
[out] ULONG *pcFetch);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(71c6e74c-0f28-11d8-a82a-00065b84435c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfInputProcessorProfileMgr : IUnknown
|
|
{
|
|
HRESULT ActivateProfile(
|
|
[in] DWORD dwProfileType,
|
|
[in] LANGID langid,
|
|
[in] REFCLSID clsid,
|
|
[in] REFGUID guidProfile,
|
|
[in] HKL hkl,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT DeactivateProfile(
|
|
[in] DWORD dwProfileType,
|
|
[in] LANGID langid,
|
|
[in] REFCLSID clsid,
|
|
[in] REFGUID guidProfile,
|
|
[in] HKL hkl,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetProfile(
|
|
[in] DWORD dwProfileType,
|
|
[in] LANGID langid,
|
|
[in] REFCLSID clsid,
|
|
[in] REFGUID guidProfile,
|
|
[in] HKL hkl,
|
|
[out] TF_INPUTPROCESSORPROFILE *pProfile);
|
|
|
|
|
|
HRESULT EnumProfiles(
|
|
[in] LANGID langid,
|
|
[out] IEnumTfInputProcessorProfiles **ppEnum);
|
|
|
|
HRESULT ReleaseInputProcessor(
|
|
[in] REFCLSID rclsid,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT RegisterProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in, size_is(cchDesc)] const WCHAR *pchDesc,
|
|
[in] ULONG cchDesc,
|
|
[in, size_is(cchFile)] const WCHAR *pchIconFile,
|
|
[in] ULONG cchFile,
|
|
[in] ULONG uIconIndex,
|
|
[in] HKL hklsubstitute,
|
|
[in] DWORD dwPreferredLayout,
|
|
[in] BOOL bEnabledByDefault,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT UnregisterProfile(
|
|
[in] REFCLSID rclsid,
|
|
[in] LANGID langid,
|
|
[in] REFGUID guidProfile,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetActiveProfile(
|
|
[in] REFGUID catid,
|
|
[out] TF_INPUTPROCESSORPROFILE *pProfile);
|
|
}
|
|
|
|
typedef [uuid(c4cc07f1-80cc-4a7b-bc54-98512782cbe3)]
|
|
enum {
|
|
TF_LS_NONE = 0,
|
|
TF_LS_SOLID = 1,
|
|
TF_LS_DOT = 2,
|
|
TF_LS_DASH = 3,
|
|
TF_LS_SQUIGGLE = 4
|
|
} TF_DA_LINESTYLE;
|
|
|
|
typedef [uuid(d9b92e21-084a-401b-9c64-1e6dad91a1ab)]
|
|
enum {
|
|
TF_CT_NONE = 0,
|
|
TF_CT_SYSCOLOR = 1,
|
|
TF_CT_COLORREF = 2
|
|
} TF_DA_COLORTYPE;
|
|
|
|
typedef [uuid(90d0cb5e-6520-4a0f-b47c-c39bd955f0d6)]
|
|
struct TF_DA_COLOR {
|
|
TF_DA_COLORTYPE type;
|
|
[switch_type(TF_DA_COLORTYPE), switch_is(type)]
|
|
union {
|
|
[case(TF_CT_SYSCOLOR)] int nIndex;
|
|
[case(TF_CT_COLORREF)] COLORREF cr;
|
|
};
|
|
} TF_DA_COLOR;
|
|
|
|
typedef [uuid(33d2fe4b-6c24-4f67-8d75-3bc1819e4126)]
|
|
enum {
|
|
TF_ATTR_INPUT = 0,
|
|
TF_ATTR_TARGET_CONVERTED = 1,
|
|
TF_ATTR_CONVERTED = 2,
|
|
TF_ATTR_TARGET_NOTCONVERTED = 3,
|
|
TF_ATTR_INPUT_ERROR = 4,
|
|
TF_ATTR_FIXEDCONVERTED = 5,
|
|
TF_ATTR_OTHER = -1
|
|
} TF_DA_ATTR_INFO;
|
|
|
|
typedef [uuid(1bf1c305-419b-4182-a4d2-9bfadc3f021f)]
|
|
struct TF_DISPLAYATTRIBUTE {
|
|
TF_DA_COLOR crText;
|
|
TF_DA_COLOR crBk;
|
|
TF_DA_LINESTYLE lsStyle;
|
|
BOOL fBoldLine;
|
|
TF_DA_COLOR crLine;
|
|
TF_DA_ATTR_INFO bAttr;
|
|
} TF_DISPLAYATTRIBUTE;
|
|
|
|
[
|
|
object,
|
|
uuid(70528852-2f26-4aea-8c96-215150578932),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfDisplayAttributeInfo : IUnknown
|
|
{
|
|
HRESULT GetGUID([out] GUID *pguid);
|
|
|
|
HRESULT GetDescription([out] BSTR *pbstrDesc);
|
|
|
|
HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda);
|
|
|
|
HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda);
|
|
|
|
HRESULT Reset();
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(7cef04d7-cb75-4e80-a7ab-5f5bc7d332de),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfDisplayAttributeInfo : IUnknown
|
|
{
|
|
HRESULT Clone([out] IEnumTfDisplayAttributeInfo **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] ITfDisplayAttributeInfo **rgInfo,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip([in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(8ded7393-5db1-475c-9e71-a39111b0ff67),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfDisplayAttributeMgr : IUnknown
|
|
{
|
|
HRESULT OnUpdateInfo();
|
|
|
|
HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum);
|
|
|
|
HRESULT GetDisplayAttributeInfo(
|
|
[in] REFGUID guid,
|
|
[out] ITfDisplayAttributeInfo **ppInfo,
|
|
[out] CLSID *pclsidOwner);
|
|
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(c3acefb5-f69d-4905-938f-fcadcf4be830),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCategoryMgr : IUnknown
|
|
{
|
|
HRESULT RegisterCategory([in] REFCLSID rclsid,
|
|
[in] REFGUID rcatid,
|
|
[in] REFGUID rguid);
|
|
|
|
HRESULT UnregisterCategory([in] REFCLSID rclsid,
|
|
[in] REFGUID rcatid,
|
|
[in] REFGUID rguid);
|
|
|
|
HRESULT EnumCategoriesInItem([in] REFGUID rguid,
|
|
[out] IEnumGUID **ppEnum);
|
|
|
|
HRESULT EnumItemsInCategory([in] REFGUID rcatid,
|
|
[out] IEnumGUID **ppEnum);
|
|
|
|
HRESULT FindClosestCategory([in] REFGUID rguid,
|
|
[out] GUID *pcatid,
|
|
[in, size_is(ulCount)] const GUID **ppcatidList,
|
|
[in] ULONG ulCount);
|
|
|
|
HRESULT RegisterGUIDDescription([in] REFCLSID rclsid,
|
|
[in] REFGUID rguid,
|
|
[in, size_is(cch)] const WCHAR *pchDesc,
|
|
[in] ULONG cch);
|
|
|
|
HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid,
|
|
[in] REFGUID rguid);
|
|
|
|
HRESULT GetGUIDDescription([in] REFGUID rguid,
|
|
[out] BSTR *pbstrDesc);
|
|
|
|
HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid,
|
|
[in] REFGUID rguid,
|
|
[in] DWORD dw);
|
|
|
|
HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid,
|
|
[in] REFGUID rguid);
|
|
|
|
HRESULT GetGUIDDWORD([in] REFGUID rguid,
|
|
[out] DWORD *pdw);
|
|
|
|
HRESULT RegisterGUID([in] REFGUID rguid,
|
|
[out] TfGuidAtom *pguidatom);
|
|
|
|
HRESULT GetGUID([in] TfGuidAtom guidatom,
|
|
[out] GUID *pguid);
|
|
|
|
HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom,
|
|
[in] REFGUID rguid,
|
|
[out] BOOL *pfEqual);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(f99d3f40-8e32-11d2-bf46-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfRanges : IUnknown
|
|
{
|
|
HRESULT Clone([out] IEnumTfRanges **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(42d4d099-7c1a-4a89-b836-6c6f22160df0),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfEditRecord : IUnknown
|
|
{
|
|
const DWORD TF_GTP_INCL_TEXT = 0x1;
|
|
|
|
HRESULT GetSelectionStatus(
|
|
[out] BOOL *changed);
|
|
|
|
HRESULT GetTextAndPropertyUpdates(
|
|
[in] DWORD flags,
|
|
[in, size_is(count)] const GUID **props,
|
|
[in] ULONG count,
|
|
[out] IEnumTfRanges **ret);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(8127d409-ccd3-4683-967a-b43d5b482bf7),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfTextEditSink : IUnknown
|
|
{
|
|
HRESULT OnEndEdit(
|
|
[in] ITfContext *pic,
|
|
[in] TfEditCookie ecReadOnly,
|
|
[in] ITfEditRecord *pEditRecord);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(5F20AA40-B57A-4F34-96AB-3576F377CC79),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContextOwnerCompositionSink : IUnknown
|
|
{
|
|
HRESULT OnStartComposition(
|
|
[in] ITfCompositionView *pComposition,
|
|
[out] BOOL *pfOk);
|
|
|
|
HRESULT OnUpdateComposition(
|
|
[in] ITfCompositionView *pComposition,
|
|
[in] ITfRange *pRangeNew);
|
|
|
|
HRESULT OnEndComposition(
|
|
[in] ITfCompositionView *pComposition);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfActiveLanguageProfileNotifySink : IUnknown
|
|
{
|
|
HRESULT OnActivated(
|
|
[in] REFCLSID clsid,
|
|
[in] REFGUID guidProfile,
|
|
[in] BOOL fActivated);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfLanguageProfiles : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfLanguageProfiles **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile,
|
|
[out] ULONG *pcFetch);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(aa80e7f7-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfTextInputProcessor : IUnknown
|
|
{
|
|
HRESULT Activate(
|
|
[in] ITfThreadMgr *ptim,
|
|
[in] TfClientId tid);
|
|
|
|
HRESULT Deactivate();
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e80e-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfThreadMgrEventSink : IUnknown
|
|
{
|
|
HRESULT OnInitDocumentMgr(
|
|
[in] ITfDocumentMgr *pdim);
|
|
|
|
HRESULT OnUninitDocumentMgr(
|
|
[in] ITfDocumentMgr *pdim);
|
|
|
|
HRESULT OnSetFocus(
|
|
[in] ITfDocumentMgr *pdimFocus,
|
|
[in] ITfDocumentMgr *pdimPrevFocus);
|
|
|
|
HRESULT OnPushContext(
|
|
[in] ITfContext *pic);
|
|
|
|
HRESULT OnPopContext(
|
|
[in] ITfContext *pic);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(aa80e7f0-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfKeystrokeMgr : IUnknown
|
|
{
|
|
HRESULT AdviseKeyEventSink(
|
|
[in] TfClientId tid,
|
|
[in] ITfKeyEventSink *pSink,
|
|
[in] BOOL fForeground);
|
|
|
|
HRESULT UnadviseKeyEventSink(
|
|
[in] TfClientId tid);
|
|
|
|
HRESULT GetForeground(
|
|
[out] CLSID *pclsid);
|
|
|
|
HRESULT TestKeyDown(
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT TestKeyUp(
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT KeyDown(
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT KeyUp(
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT GetPreservedKey(
|
|
[in] ITfContext *pic,
|
|
[in] const TF_PRESERVEDKEY *pprekey,
|
|
[out] GUID *pguid);
|
|
|
|
HRESULT IsPreservedKey(
|
|
[in] REFGUID rguid,
|
|
[in] const TF_PRESERVEDKEY *pprekey,
|
|
[out] BOOL *pfRegistered);
|
|
|
|
HRESULT PreserveKey(
|
|
[in] TfClientId tid,
|
|
[in] REFGUID rguid,
|
|
[in] const TF_PRESERVEDKEY *prekey,
|
|
[in, size_is(cchDesc)] const WCHAR *pchDesc,
|
|
[in] ULONG cchDesc);
|
|
|
|
HRESULT UnpreserveKey(
|
|
[in] REFGUID rguid,
|
|
[in] const TF_PRESERVEDKEY *pprekey);
|
|
|
|
HRESULT SetPreservedKeyDescription(
|
|
[in] REFGUID rguid,
|
|
[in, size_is(cchDesc)] const WCHAR *pchDesc,
|
|
[in] ULONG cchDesc);
|
|
|
|
HRESULT GetPreservedKeyDescription(
|
|
[in] REFGUID rguid,
|
|
[out] BSTR *pbstrDesc);
|
|
|
|
HRESULT SimulatePreservedKey(
|
|
[in] ITfContext *pic,
|
|
[in] REFGUID rguid,
|
|
[out] BOOL *pfEaten);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(aa80e7f5-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfKeyEventSink : IUnknown
|
|
{
|
|
HRESULT OnSetFocus(
|
|
[in] BOOL fForeground);
|
|
|
|
HRESULT OnTestKeyDown(
|
|
[in] ITfContext *pic,
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT OnTestKeyUp(
|
|
[in] ITfContext *pic,
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT OnKeyDown(
|
|
[in] ITfContext *pic,
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT OnKeyUp(
|
|
[in] ITfContext *pic,
|
|
[in] WPARAM wParam,
|
|
[in] LPARAM lParam,
|
|
[out] BOOL *pfEaten);
|
|
|
|
HRESULT OnPreservedKey(
|
|
[in] ITfContext *pic,
|
|
[in] REFGUID rguid,
|
|
[out] BOOL *pfEaten);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfMessagePump : IUnknown
|
|
{
|
|
HRESULT PeekMessageA(
|
|
[out] LPMSG pMsg,
|
|
[in] HWND hwnd,
|
|
[in] UINT wMsgFilterMin,
|
|
[in] UINT wMsgFilterMax,
|
|
[in] UINT wRemoveMsg,
|
|
[out] BOOL *pfResult);
|
|
|
|
HRESULT GetMessageA(
|
|
[out] LPMSG pMsg,
|
|
[in] HWND hwnd,
|
|
[in] UINT wMsgFilterMin,
|
|
[in] UINT wMsgFilterMax,
|
|
[out] BOOL *pfResult);
|
|
|
|
HRESULT PeekMessageW(
|
|
[out] LPMSG pMsg,
|
|
[in] HWND hwnd,
|
|
[in] UINT wMsgFilterMin,
|
|
[in] UINT wMsgFilterMax,
|
|
[in] UINT wRemoveMsg,
|
|
[out] BOOL *pfResult);
|
|
|
|
HRESULT GetMessageW(
|
|
[out] LPMSG pMsg,
|
|
[in] HWND hwnd,
|
|
[in] UINT wMsgFilterMin,
|
|
[in] UINT wMsgFilterMax,
|
|
[out] BOOL *pfResult);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(d60a7b49-1b9f-4be2-b702-47e9dc05dec3),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfClientId : IUnknown
|
|
{
|
|
HRESULT GetClientId(
|
|
[in] REFCLSID rclsid,
|
|
[out] TfClientId *ptid);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(43c9fe15-f494-4c17-9de2-b8a4ac350aa8),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfLanguageProfileNotifySink : IUnknown
|
|
{
|
|
HRESULT OnLanguageChange(
|
|
[in] LANGID langid,
|
|
[out] BOOL *pfAccept);
|
|
|
|
HRESULT OnLanguageChanged();
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e803-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfEditSession : IUnknown
|
|
{
|
|
HRESULT DoEditSession(
|
|
[in] TfEditCookie ec);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e7ff-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfRange : IUnknown
|
|
{
|
|
const WCHAR TF_CHAR_EMBEDDED = TS_CHAR_EMBEDDED;
|
|
|
|
typedef [uuid(cf610f06-2882-46f6-abe5-298568b664c4)] enum { TF_GRAVITY_BACKWARD = 0, TF_GRAVITY_FORWARD = 1 } TfGravity;
|
|
|
|
typedef [uuid(1e512533-bbdc-4530-9a8e-a1dc0af67468)] enum { TF_SD_BACKWARD = 0, TF_SD_FORWARD = 1 } TfShiftDir;
|
|
|
|
const DWORD TF_HF_OBJECT = 1;
|
|
const DWORD TF_TF_MOVESTART = 1;
|
|
const DWORD TF_TF_IGNOREEND = 2;
|
|
const DWORD TF_ST_CORRECTION = 1;
|
|
const DWORD TF_IE_CORRECTION = 1;
|
|
|
|
typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND
|
|
{
|
|
ITfRange *pHaltRange;
|
|
TfAnchor aHaltPos;
|
|
DWORD dwFlags;
|
|
} TF_HALTCOND;
|
|
|
|
HRESULT GetText(
|
|
[in] TfEditCookie ec,
|
|
[in] DWORD dwFlags,
|
|
[out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText,
|
|
[in] ULONG cchMax,
|
|
[out] ULONG *pcch);
|
|
|
|
HRESULT SetText(
|
|
[in] TfEditCookie ec,
|
|
[in] DWORD dwFlags,
|
|
[in, size_is(cch), unique] const WCHAR *pchText,
|
|
[in] LONG cch);
|
|
|
|
HRESULT GetFormattedText(
|
|
[in] TfEditCookie ec,
|
|
[out] IDataObject **ppDataObject);
|
|
|
|
HRESULT GetEmbedded(
|
|
[in] TfEditCookie ec,
|
|
[in] REFGUID rguidService,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown **ppunk);
|
|
|
|
HRESULT InsertEmbedded(
|
|
[in] TfEditCookie ec,
|
|
[in] DWORD dwFlags,
|
|
[in] IDataObject *pDataObject);
|
|
|
|
HRESULT ShiftStart(
|
|
[in] TfEditCookie ec,
|
|
[in] LONG cchReq,
|
|
[out] LONG *pcch,
|
|
[in, unique] const TF_HALTCOND *pHalt);
|
|
|
|
HRESULT ShiftEnd(
|
|
[in] TfEditCookie ec,
|
|
[in] LONG cchReq,
|
|
[out] LONG *pcch,
|
|
[in, unique] const TF_HALTCOND *pHalt);
|
|
|
|
HRESULT ShiftStartToRange(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[in] TfAnchor aPos);
|
|
|
|
HRESULT ShiftEndToRange(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[in] TfAnchor aPos);
|
|
|
|
HRESULT ShiftStartRegion(
|
|
[in] TfEditCookie ec,
|
|
[in] TfShiftDir dir,
|
|
[out] BOOL *pfNoRegion);
|
|
|
|
HRESULT ShiftEndRegion(
|
|
[in] TfEditCookie ec,
|
|
[in] TfShiftDir dir,
|
|
[out] BOOL *pfNoRegion);
|
|
|
|
HRESULT IsEmpty(
|
|
[in] TfEditCookie ec,
|
|
[out] BOOL *pfEmpty);
|
|
|
|
HRESULT Collapse(
|
|
[in] TfEditCookie ec,
|
|
[in] TfAnchor aPos);
|
|
|
|
HRESULT IsEqualStart(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pWith,
|
|
[in] TfAnchor aPos,
|
|
[out] BOOL *pfEqual);
|
|
|
|
HRESULT IsEqualEnd(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pWith,
|
|
[in] TfAnchor aPos,
|
|
[out] BOOL *pfEqual);
|
|
|
|
HRESULT CompareStart(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pWith,
|
|
[in] TfAnchor aPos,
|
|
[out] LONG *plResult);
|
|
|
|
HRESULT CompareEnd(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pWith,
|
|
[in] TfAnchor aPos,
|
|
[out] LONG *plResult);
|
|
|
|
HRESULT AdjustForInsert(
|
|
[in] TfEditCookie ec,
|
|
[in] ULONG cchInsert,
|
|
[out] BOOL *pfInsertOk);
|
|
|
|
HRESULT GetGravity(
|
|
[out] TfGravity *pgStart,
|
|
[out] TfGravity *pgEnd);
|
|
|
|
HRESULT SetGravity(
|
|
[in] TfEditCookie ec,
|
|
[in] TfGravity gStart,
|
|
[in] TfGravity gEnd);
|
|
|
|
HRESULT Clone(
|
|
[out] ITfRange **ppClone);
|
|
|
|
HRESULT GetContext(
|
|
[out] ITfContext **ppContext);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(057a6296-029b-4154-b79a-0d461d4ea94c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfRangeACP : ITfRange
|
|
{
|
|
HRESULT GetExtent([out] LONG *pacpAnchor,
|
|
[out] LONG *pcch);
|
|
|
|
HRESULT SetExtent([in] LONG acpAnchor,
|
|
[in] LONG cch);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(55ce16ba-3014-41c1-9ceb-fade1446ac6c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfInsertAtSelection : IUnknown
|
|
{
|
|
const DWORD TF_IAS_NOQUERY = 0x1;
|
|
const DWORD TF_IAS_QUERYONLY = 0x2;
|
|
const DWORD TF_IAS_NO_DEFAULT_COMPOSITION = 0x80000000;
|
|
|
|
HRESULT InsertTextAtSelection(
|
|
[in] TfEditCookie ec,
|
|
[in] DWORD dwFlags,
|
|
[in, size_is(cch)] const WCHAR *pchText,
|
|
[in] LONG cch,
|
|
[out] ITfRange **ppRange);
|
|
|
|
HRESULT InsertEmbeddedAtSelection(
|
|
[in] TfEditCookie ec,
|
|
[in] DWORD dwFlags,
|
|
[in] IDataObject *pDataObject,
|
|
[out] ITfRange **ppRange);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(6834b120-88cb-11d2-bf45-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfPropertyStore : IUnknown
|
|
{
|
|
const DWORD TF_TU_CORRECTION = 0x1;
|
|
|
|
HRESULT GetType([out] GUID *pguid);
|
|
|
|
HRESULT GetDataType([out] DWORD *pdwReserved);
|
|
|
|
HRESULT GetData([out] VARIANT *pvarValue);
|
|
|
|
HRESULT OnTextUpdated(
|
|
[in] DWORD dwFlags,
|
|
[in] ITfRange *pRangeNew,
|
|
[out] BOOL *pfAccept);
|
|
|
|
HRESULT Shrink(
|
|
[in] ITfRange *pRangeNew,
|
|
[out] BOOL *pfFree);
|
|
|
|
HRESULT Divide(
|
|
[in] ITfRange *pRangeThis,
|
|
[in] ITfRange *pRangeNew,
|
|
[out] ITfPropertyStore **ppPropStore);
|
|
|
|
HRESULT Clone(
|
|
[out] ITfPropertyStore **pPropStore);
|
|
|
|
HRESULT GetPropertyRangeCreator(
|
|
[out] CLSID *pclsid);
|
|
|
|
HRESULT Serialize(
|
|
[in] IStream *pStream,
|
|
[out] ULONG *pcb);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(5efd22Ba-7838-46cb-88e2-cadb14124f8f),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumITfCompositionView : IUnknown
|
|
{
|
|
HRESULT Clone([out] IEnumITfCompositionView **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] ITfCompositionView **rgCompositionView,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip([in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(20168d64-5a8f-4a5a-b7bd-cfa29f4D0fd9),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfComposition : IUnknown
|
|
{
|
|
HRESULT GetRange([out] ITfRange **ppRange);
|
|
|
|
HRESULT ShiftStart(
|
|
[in] TfEditCookie ecWrite,
|
|
[in] ITfRange *pNewStart);
|
|
|
|
HRESULT ShiftEnd(
|
|
[in] TfEditCookie ecWrite,
|
|
[in] ITfRange *pNewEnd);
|
|
|
|
HRESULT EndComposition([in] TfEditCookie ecWrite);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(a781718c-579a-4b15-a280-32b8577acc5e),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCompositionSink : IUnknown
|
|
{
|
|
HRESULT OnCompositionTerminated(
|
|
[in] TfEditCookie ecWrite,
|
|
[in] ITfComposition *pComposition);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(d40C8aae-aC92-4fc7-9a11-0ee0e23aa39b),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContextComposition : IUnknown
|
|
{
|
|
HRESULT StartComposition(
|
|
[in] TfEditCookie ecWrite,
|
|
[in] ITfRange *pCompositionRange,
|
|
[in] ITfCompositionSink *pSink,
|
|
[out] ITfComposition **ppComposition);
|
|
|
|
HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum);
|
|
|
|
HRESULT FindComposition(
|
|
[in] TfEditCookie ecRead,
|
|
[in] ITfRange *pTestRange,
|
|
[out] IEnumITfCompositionView **ppEnum);
|
|
|
|
HRESULT TakeOwnership(
|
|
[in] TfEditCookie ecWrite,
|
|
[in] ITfCompositionView *pComposition,
|
|
[in] ITfCompositionSink *pSink,
|
|
[out] ITfComposition **ppComposition);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(86462810-593b-4916-9764-19c08e9ce110),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContextOwnerCompositionServices : ITfContextComposition
|
|
{
|
|
HRESULT TerminateComposition([in] ITfCompositionView *pComposition);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(4ef89150-0807-11d3-8df0-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfPersistentPropertyLoaderACP : IUnknown
|
|
{
|
|
HRESULT LoadProperty(
|
|
[in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
|
|
[out] IStream **ppStream);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(b23eb630-3e1c-11d3-a745-0050040ab407),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfContextOwnerServices : IUnknown
|
|
{
|
|
HRESULT OnLayoutChange();
|
|
|
|
HRESULT OnStatusChange([in] DWORD dwFlags);
|
|
|
|
HRESULT OnAttributeChange([in] REFGUID rguidAttribute);
|
|
|
|
HRESULT Serialize(
|
|
[in] ITfProperty *pProp,
|
|
[in] ITfRange *pRange,
|
|
[out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
|
|
[in] IStream *pStream);
|
|
|
|
HRESULT Unserialize(
|
|
[in] ITfProperty *pProp,
|
|
[in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr,
|
|
[in] IStream *pStream,
|
|
[in] ITfPersistentPropertyLoaderACP *pLoader);
|
|
|
|
HRESULT ForceLoadProperty([in] ITfProperty *pProp);
|
|
|
|
HRESULT CreateRange(
|
|
[in] LONG acpStart,
|
|
[in] LONG acpEnd,
|
|
[out] ITfRangeACP **ppRange);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(17d49a3d-f8b8-4b2f-b254-52319dd64c53),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfReadOnlyProperty : IUnknown
|
|
{
|
|
HRESULT GetType([out] GUID *pguid);
|
|
|
|
HRESULT EnumRanges(
|
|
[in] TfEditCookie ec,
|
|
[out] IEnumTfRanges **ppEnum,
|
|
[in] ITfRange *pTargetRange);
|
|
|
|
HRESULT GetValue(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[out] VARIANT *pvarValue);
|
|
|
|
HRESULT GetContext([out] ITfContext **ppContext);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(e2449660-9542-11d2-bf46-00105a2799b5),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfProperty : ITfReadOnlyProperty
|
|
{
|
|
HRESULT FindRange(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[out] ITfRange **ppRange,
|
|
[in] TfAnchor aPos);
|
|
|
|
HRESULT SetValueStore(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[in] ITfPropertyStore *pPropStore);
|
|
|
|
HRESULT SetValue(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange,
|
|
[in] const VARIANT *pvarValue);
|
|
|
|
HRESULT Clear(
|
|
[in] TfEditCookie ec,
|
|
[in] ITfRange *pRange);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(bb08f7a9-607a-4384-8623-056892b64371),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCompartment : IUnknown
|
|
{
|
|
HRESULT SetValue(
|
|
[in] TfClientId tid,
|
|
[in] const VARIANT *pvarValue);
|
|
|
|
HRESULT GetValue(
|
|
[out] VARIANT *pvarValue);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(7dcf57ac-18ad-438b-824d-979bffb74b7c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCompartmentMgr : IUnknown
|
|
{
|
|
HRESULT GetCompartment(
|
|
[in] REFGUID rguid,
|
|
[out] ITfCompartment **ppcomp);
|
|
|
|
HRESULT ClearCompartment(
|
|
[in] TfClientId tid,
|
|
[in] REFGUID rguid);
|
|
|
|
HRESULT EnumCompartments(
|
|
[out] IEnumGUID **ppEnum);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(743abd5f-f26d-48df-8cc5-238492419b64),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfCompartmentEventSink : IUnknown
|
|
{
|
|
HRESULT OnChange(
|
|
[in] REFGUID rguid);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(8f1a7ea6-1654-4502-a86e-b2902344d507),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfContexts : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfContexts **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] ITfContext **rgContext,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(aa80e808-2021-11d2-93e0-0060b067b86e),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumTfDocumentMgrs : IUnknown
|
|
{
|
|
HRESULT Clone(
|
|
[out] IEnumTfDocumentMgrs **ppEnum);
|
|
|
|
HRESULT Next(
|
|
[in] ULONG ulCount,
|
|
[out, size_is(ulCount), length_is(*pcFetched)] ITfDocumentMgr **rgDocumentMgr,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG ulCount);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(73131f9c-56a9-49dd-b0ee-d046633f7528),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfSourceSingle : IUnknown
|
|
{
|
|
HRESULT AdviseSingleSink(
|
|
[in] TfClientId tid,
|
|
[in] REFIID riid,
|
|
[in, iid_is(riid)] IUnknown *punk);
|
|
|
|
HRESULT UnadviseSingleSink(
|
|
[in] TfClientId tid,
|
|
[in] REFIID riid);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(c0f1db0c-3a20-405c-a303-96b6010a885f),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfThreadFocusSink : IUnknown
|
|
{
|
|
HRESULT OnSetThreadFocus();
|
|
|
|
HRESULT OnKillThreadFocus();
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfInputProcessorProfileActivationSink : IUnknown
|
|
{
|
|
HRESULT OnActivated(
|
|
[in] DWORD dwProfileType,
|
|
[in] LANGID langid,
|
|
[in] REFCLSID clsid,
|
|
[in] REFGUID catid,
|
|
[in] REFGUID guidProfile,
|
|
[in] HKL hkl,
|
|
[in] DWORD dwFlags);
|
|
}
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfMouseSink : IUnknown
|
|
{
|
|
HRESULT OnMouseEvent(
|
|
[in] ULONG uEdge,
|
|
[in] ULONG uQuadrant,
|
|
[in] DWORD dwBtnStatus,
|
|
[out] BOOL *pfEaten);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfMouseTracker : IUnknown
|
|
{
|
|
HRESULT AdviseMouseSink(
|
|
[in] ITfRange *range,
|
|
[in] ITfMouseSink *pSink,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT UnadviseMouseSink([in] DWORD dwCookie);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITfMouseTrackerACP : IUnknown
|
|
{
|
|
HRESULT AdviseMouseSink(
|
|
[in] ITfRangeACP *range,
|
|
[in] ITfMouseSink *pSink,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT UnadviseMouseSink([in] DWORD dwCookie);
|
|
}
|