Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985/* * 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_IMPORTSimport "oaidl.idl";import "comcat.idl";import "textstor.idl";import "ctfutb.idl";#endifcpp_quote("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")cpp_quote("#define TF_E_COMPOSITION_REJECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0508)")cpp_quote("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")cpp_quote("#define TF_E_EMPTYCONTEXT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0509)")cpp_quote("#define TF_E_FORMAT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x020A)")cpp_quote("#define TF_E_INVALIDPOINT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)")cpp_quote("#define TF_E_INVALIDPOS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)")cpp_quote("#define TF_E_INVALIDVIEW MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0505)")cpp_quote("#define TF_E_LOCKED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0500)")cpp_quote("#define TF_E_NOINTERFACE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)")cpp_quote("#define TF_E_NOLAYOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)")cpp_quote("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")cpp_quote("#define TF_E_NOOBJECT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)")cpp_quote("#define TF_E_NOPROVIDER MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0503)")cpp_quote("#define TF_E_NOSELECTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)")cpp_quote("#define TF_E_NOSERVICE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)")cpp_quote("#define TF_E_NOTOWNEDRANGE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0502)")cpp_quote("#define TF_E_RANGE_NOT_COVERED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0507)")cpp_quote("#define TF_E_READONLY MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)")cpp_quote("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")cpp_quote("#define TF_E_SYNCHRONOUS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)")cpp_quote("#define TF_S_ASYNC MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0x0300)")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateThreadMgr(_Out_ ITfThreadMgr **pptim);")cpp_quote("EXTERN_C HRESULT WINAPI TF_GetThreadMgr(_Out_ ITfThreadMgr **pptim);")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateInputProcessorProfiles(_Out_ ITfInputProcessorProfiles **ppipr);")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateLangBarMgr(_Out_ ITfLangBarMgr **pppbm);")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateLangBarItemMgr(_Out_ ITfLangBarItemMgr **pplbim);")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateCategoryMgr(_Out_ ITfCategoryMgr **ppcat);")cpp_quote("EXTERN_C HRESULT WINAPI TF_CreateDisplayAttributeMgr(_Out_ ITfDisplayAttributeMgr **ppdam);")cpp_quote("EXTERN_C const GUID GUID_PROP_TEXTOWNER;")cpp_quote("EXTERN_C const GUID GUID_PROP_ATTRIBUTE;")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;interface ITfPersistentPropertyLoaderACP;interface ITfRangeACP;interface ITfCleanupContextSink;interface ITfTextLayoutSink;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(3e90ade3-7594-4cb0-bb58-69628f5f458c), pointer_default(unique)]interface ITfThreadMgrEx : ITfThreadMgr{ HRESULT ActivateEx( [out] TfClientId *id, [in] DWORD flags); HRESULT GetActiveFlags( [out] DWORD *flags);}[ 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(aa80e901-2021-11d2-93e0-0060b067b86e), pointer_default(unique)]interface ITextStoreACPServices : IUnknown{ HRESULT Serialize( [in] ITfProperty *prop, [in] ITfRange *range, [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *header, [in] IStream *stream); HRESULT Unserialize( [in] ITfProperty *prop, [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *header, [in] IStream *stream, [in] ITfPersistentPropertyLoaderACP *loader); HRESULT ForceLoadProperty( [in] ITfProperty *prop); HRESULT CreateRange( [in] LONG start, [in] LONG end, [out] ITfRangeACP **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(AA80E80C-2021-11D2-93E0-0060B067B86E), pointer_default(unique)]interface ITfContextOwner : IUnknown{ HRESULT GetACPFromPoint( [in] const POINT *ptScreen, [in] DWORD dwFlags, [out] LONG *pacp); HRESULT GetTextExt( [in] LONG acpStart, [in] LONG acpEnd, [out] RECT *prc, [out] BOOL *pfClipped); HRESULT GetScreenExt( [out] RECT *prc); HRESULT GetStatus( [out] TF_STATUS *pdcs); HRESULT GetWnd( [out] HWND *phwnd); HRESULT GetAttribute( [in] REFGUID rguidAttribute, [out] VARIANT *pvarValue);}[ 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(1cd4c13b-1c36-4191-a70a-7f3e611f367d), pointer_default(unique)]interface ITfKeyTraceEventSink : IUnknown{ HRESULT OnKeyTraceDown( [in] WPARAM wParam, [in] LPARAM lParam); HRESULT OnKeyTraceUp( [in] WPARAM wParam, [in] LPARAM lParam);}[ object, local, uuid(ea1ea136-19df-11d7-a6d2-00065b84435c), pointer_default(unique)]interface ITfUIElementSink : IUnknown{ HRESULT BeginUIElement( [in] DWORD id, [in, out] BOOL *show); HRESULT UpdateUIElement( [in] DWORD id); HRESULT EndUIElement( [in] DWORD id);}[ 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(01689689-7acb-4e9b-ab7c-7ea46b12b522), pointer_default(unique)]interface ITfCleanupContextSink : IUnknown{ HRESULT OnCleanupContext( [in] TfEditCookie ecWrite, [in] ITfContext *pic);}[ 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, local, uuid(ea1ea137-19df-11d7-a6d2-00065b84435c), pointer_default(unique)]interface ITfUIElement : IUnknown{ HRESULT GetDescription( [out] BSTR *description); HRESULT GetGUID( [out] GUID *guid); HRESULT Show( [in] BOOL show); HRESULT IsShown( [out] BOOL *show);}[ object, local, uuid(887aa91e-acba-4931-84da-3c5208cf543f), pointer_default(unique)]interface IEnumTfUIElements : IUnknown{ HRESULT Clone( [out] IEnumTfUIElements **enum_elements); HRESULT Next( [in] ULONG count, [out, size_is(count), length_is(fetched)] ITfUIElement **element, [out] ULONG fetched); HRESULT Reset(); HRESULT Skip( [in] ULONG count);}[ object, local, uuid(ea1ea135-19df-11d7-a6d2-00065b84435c), pointer_default(unique)]interface ITfUIElementMgr : IUnknown{ HRESULT BeginUIElement( [in] ITfUIElement *element, [in, out] BOOL *show, [out] DWORD *id); HRESULT UpdateUIElement( [in] DWORD id); HRESULT EndUIElement( [in] DWORD id); HRESULT GetUIElement( [in] DWORD id, [out] ITfUIElement **element); HRESULT EnumUIElements( [out] IEnumTfUIElements **enum_elements);}[ 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);}[ object, local, uuid(a615096f-1c57-4813-8a15-55ee6e5a839c), pointer_default(unique)]interface ITfTransitoryExtensionSink : IUnknown{ HRESULT OnTransitoryExtensionUpdated( [in] ITfContext *pic, [in] TfEditCookie ecReadOnly, [in] ITfRange *pResultRange, [in] ITfRange *pCompositionRange, [out] BOOL *pfDeleteResultRange);}[ object, uuid(2af2d06a-dd5b-4927-a0b4-54f19c91fade), pointer_default(unique)]interface ITfTextLayoutSink : IUnknown{ typedef [uuid(603553cf-9edd-4cc1-9ecc-069e4a427734)] enum { TF_LC_CREATE = 0, TF_LC_CHANGE = 1, TF_LC_DESTROY = 2 } TfLayoutCode; HRESULT OnLayoutChange( [in] ITfContext *pic, [in] TfLayoutCode lcode, [in] ITfContextView *pView);}