2 * Copyright 2008 Aric Stewart, CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 import
"textstor.idl";
23 /* import "ctfutb.idl"; */
25 cpp_quote
("#include <winuser.h>")
27 cpp_quote
("#define TF_E_STACKFULL MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
28 cpp_quote
("#define TF_E_DISCONNECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0504)")
29 cpp_quote
("#define TF_E_ALREADY_EXISTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0506)")
30 cpp_quote
("#define TF_E_NOLOCK MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
32 cpp_quote
("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
33 cpp_quote
("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
34 cpp_quote
("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
36 /* GUIDs for Categories */
37 cpp_quote
("EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD;")
38 cpp_quote
("EXTERN_C const GUID GUID_TFCAT_TIP_SPEECH;")
39 cpp_quote
("EXTERN_C const GUID GUID_TFCAT_TIP_HANDWRITING;")
40 cpp_quote
("EXTERN_C const GUID GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER;")
42 typedef [uuid(7213778c
-7bb0
-4270-b050
-6189ee594e97
)] DWORD TfEditCookie
;
43 typedef [uuid(de403c21
-89fd
-4f85
-8b87
-64584d063fbc
)] DWORD TfClientId
;
44 typedef [uuid(88a9c478
-f3ec
-4763-8345-cd9250443f8d
)] DWORD TfGuidAtom
;
46 cpp_quote
("#define TF_MOD_ALT 0x0001")
47 cpp_quote
("#define TF_MOD_CONTROL 0x0002")
48 cpp_quote
("#define TF_MOD_SHIFT 0x0004")
49 cpp_quote
("#define TF_MOD_RALT 0x0008")
50 cpp_quote
("#define TF_MOD_RCONTROL 0x0010")
51 cpp_quote
("#define TF_MOD_RSHIFT 0x0020")
52 cpp_quote
("#define TF_MOD_LALT 0x0040")
53 cpp_quote
("#define TF_MOD_LCONTROL 0x0080")
54 cpp_quote
("#define TF_MOD_LSHIFT 0x0100")
55 cpp_quote
("#define TF_MOD_ON_KEYUP 0x0200")
56 cpp_quote
("#define TF_MOD_IGNORE_ALL_MODIFIER 0x0400")
58 interface ITfDocumentMgr
;
60 interface IEnumTfDocumentMgrs
;
61 interface IEnumTfContexts
;
62 interface ITfFunctionProvider
;
63 interface IEnumTfFunctionProviders
;
64 interface ITfCompartmentMgr
;
65 interface ITfEditSession
;
67 interface ITfContextView
;
68 interface IEnumTfContextViews
;
69 interface ITfProperty
;
70 interface ITfReadOnlyProperty
;
71 interface IEnumTfProperties
;
72 interface ITfRangeBackup
;
73 interface IEnumTfLanguageProfiles
;
74 interface ITfEditRecord
;
75 interface ITfCompositionView
;
76 interface ITfKeyEventSink
;
78 typedef [uuid(e1b5808d
-1e46
-4c19
-84dc
-68c5f5978cc8
)] struct TF_LANGUAGEPROFILE
87 typedef [uuid(77c12f95
-b783
-450d
-879f
-1cd2362c6521
)] struct TF_PRESERVEDKEY
93 typedef [uuid(5a886226
-ae9a
-489b
-b991
-2b1e25ee59a9
)] enum { TF_ANCHOR_START
= 0, TF_ANCHOR_END
= 1 } TfAnchor
;
97 uuid(aa80e801
-2021-11d2
-93e0
-0060b067b86e
),
98 pointer_default(unique)
100 interface ITfThreadMgr
: IUnknown
103 [out] TfClientId
*ptid
);
105 HRESULT Deactivate
();
107 HRESULT CreateDocumentMgr
(
108 [out] ITfDocumentMgr
**ppdim
);
110 HRESULT EnumDocumentMgrs
(
111 [out] IEnumTfDocumentMgrs
**ppEnum
);
114 [out] ITfDocumentMgr
**ppdimFocus
);
117 [in] ITfDocumentMgr
*pdimFocus
);
119 HRESULT AssociateFocus
(
121 [in, unique] ITfDocumentMgr
*pdimNew
,
122 [out] ITfDocumentMgr
**ppdimPrev
);
124 HRESULT IsThreadFocus
(
125 [out] BOOL
*pfThreadFocus
);
127 HRESULT GetFunctionProvider
(
129 [out] ITfFunctionProvider
**ppFuncProv
);
131 HRESULT EnumFunctionProviders
(
132 [out] IEnumTfFunctionProviders
**ppEnum
);
134 HRESULT GetGlobalCompartment
(
135 [out] ITfCompartmentMgr
**ppCompMgr
);
141 uuid(aa80e7f4
-2021-11d2
-93e0
-0060b067b86e
),
142 pointer_default(unique)
144 interface ITfDocumentMgr
: IUnknown
146 HRESULT CreateContext
(
147 [in] TfClientId tidOwner
,
149 [in, unique] IUnknown
*punk
,
150 [out] ITfContext
**ppic
,
151 [out] TfEditCookie
*pecTextStore
);
154 [in] ITfContext
*pic
);
156 const DWORD TF_POPF_ALL
= 0x0001;
162 [out] ITfContext
**ppic
);
165 [out] ITfContext
**ppic
);
167 HRESULT EnumContexts
(
168 [out] IEnumTfContexts
**ppEnum
);
173 uuid(aa80e7fd
-2021-11d2
-93e0
-0060b067b86e
),
174 pointer_default(unique)
176 interface ITfContext
: IUnknown
178 const DWORD TF_ES_ASYNCDONTCARE
= 0x0;
179 const DWORD TF_ES_SYNC
= 0x1;
180 const DWORD TF_ES_READ
= 0x2;
181 const DWORD TF_ES_READWRITE
= 0x6;
182 const DWORD TF_ES_ASYNC
= 0x8;
184 HRESULT RequestEditSession
(
186 [in] ITfEditSession
*pes
,
188 [out] HRESULT *phrSession
);
190 HRESULT InWriteSession
(
192 [out] BOOL
*pfWriteSession
);
194 typedef [uuid(1690be9b
-d3e9
-49f6
-8d8b
-51b905af4c43
)] enum { TF_AE_NONE
, TF_AE_START
, TF_AE_END
} TfActiveSelEnd
;
196 typedef [uuid(36ae42a4
-6989-4bdc
-b48a
-6137b7bf2e42
)] struct TF_SELECTIONSTYLE
202 typedef [uuid(75eb22f2
-b0bf
-46a8
-8006-975a3b6efcf1
)] struct TF_SELECTION
205 TF_SELECTIONSTYLE style
;
208 const ULONG TF_DEFAULT_SELECTION
= TS_DEFAULT_SELECTION
;
210 HRESULT GetSelection
(
211 [in] TfEditCookie ec
,
214 [out, size_is(ulCount
), length_is(*pcFetched
)] TF_SELECTION
*pSelection
,
215 [out] ULONG
*pcFetched
);
217 HRESULT SetSelection
(
218 [in] TfEditCookie ec
,
220 [in, size_is(ulCount
)] const TF_SELECTION
*pSelection
);
223 [in] TfEditCookie ec
,
224 [out] ITfRange
**ppStart
);
227 [in] TfEditCookie ec
,
228 [out] ITfRange
**ppEnd
);
230 typedef [uuid(bc7d979a
-846a
-444d
-afef
-0a9bfa82b961
)] TS_STATUS TF_STATUS
;
231 const DWORD TF_SD_READONLY
= TS_SD_READONLY
;
232 const DWORD TF_SD_LOADING
= TS_SD_LOADING
;
233 const DWORD TF_SS_DISJOINTSEL
= TS_SS_DISJOINTSEL
;
234 const DWORD TF_SS_REGIONS
= TS_SS_REGIONS
;
235 const DWORD TF_SS_TRANSITORY
= TS_SS_TRANSITORY
;
238 HRESULT GetActiveView
(
239 [out] ITfContextView
**ppView
);
242 [out] IEnumTfContextViews
**ppEnum
);
245 [out] TF_STATUS
*pdcs
);
248 [in] REFGUID guidProp
,
249 [out] ITfProperty
**ppProp
);
251 HRESULT GetAppProperty
(
252 [in] REFGUID guidProp
,
253 [out] ITfReadOnlyProperty
**ppProp
);
255 HRESULT TrackProperties
(
256 [in, size_is(cProp
)] const GUID
**prgProp
,
258 [in, size_is(cAppProp
)] const GUID
**prgAppProp
,
260 [out] ITfReadOnlyProperty
**ppProperty
);
262 HRESULT EnumProperties
(
263 [out] IEnumTfProperties
**ppEnum
);
265 HRESULT GetDocumentMgr
(
266 [out] ITfDocumentMgr
**ppDm
);
268 HRESULT CreateRangeBackup
(
269 [in] TfEditCookie ec
,
270 [in] ITfRange
*pRange
,
271 [out] ITfRangeBackup
**ppBackup
);
277 uuid(4ea48a35
-60ae
-446f
-8fd6
-e6a8d82459f7
),
278 pointer_default(unique)
280 interface ITfSource
: IUnknown
284 [in, iid_is(riid
)] IUnknown
*punk
,
285 [out] DWORD
*pdwCookie
);
287 HRESULT UnadviseSink
(
288 [in] DWORD dwCookie
);
294 uuid(1F02B6C5
-7842-4EE6
-8A0B
-9A24183A95CA
),
295 pointer_default(unique)
297 interface ITfInputProcessorProfiles
: IUnknown
300 [in] REFCLSID rclsid
);
303 [in] REFCLSID rclsid
);
305 HRESULT AddLanguageProfile
(
306 [in] REFCLSID rclsid
,
308 [in] REFGUID guidProfile
,
309 [in, size_is(cchDesc
)] const WCHAR
*pchDesc
,
311 [in, size_is(cchFile
)] const WCHAR
*pchIconFile
,
313 [in] ULONG uIconIndex
);
315 HRESULT RemoveLanguageProfile
(
316 [in] REFCLSID rclsid
,
318 [in] REFGUID guidProfile
);
320 HRESULT EnumInputProcessorInfo
(
321 [out] IEnumGUID
**ppEnum
);
323 HRESULT GetDefaultLanguageProfile
(
327 [out] GUID
*pguidProfile
);
329 HRESULT SetDefaultLanguageProfile
(
331 [in] REFCLSID rclsid
,
332 [in] REFGUID guidProfiles
);
334 HRESULT ActivateLanguageProfile
(
335 [in] REFCLSID rclsid
,
337 [in] REFGUID guidProfiles
);
339 HRESULT GetActiveLanguageProfile
(
340 [in] REFCLSID rclsid
,
341 [out] LANGID
*plangid
,
342 [out] GUID
*pguidProfile
);
344 HRESULT GetLanguageProfileDescription
(
345 [in] REFCLSID rclsid
,
347 [in] REFGUID guidProfile
,
348 [out] BSTR *pbstrProfile
);
350 HRESULT GetCurrentLanguage
(
351 [out] LANGID
*plangid
);
353 HRESULT ChangeCurrentLanguage
(
356 HRESULT GetLanguageList
(
357 [out] LANGID
**ppLangId
,
358 [out] ULONG
*pulCount
);
360 HRESULT EnumLanguageProfiles
(
362 [out] IEnumTfLanguageProfiles
**ppEnum
);
364 HRESULT EnableLanguageProfile
(
365 [in] REFCLSID rclsid
,
367 [in] REFGUID guidProfile
,
370 HRESULT IsEnabledLanguageProfile
(
371 [in] REFCLSID rclsid
,
373 [in] REFGUID guidProfile
,
374 [out] BOOL
*pfEnable
);
376 HRESULT EnableLanguageProfileByDefault
(
377 [in] REFCLSID rclsid
,
379 [in] REFGUID guidProfile
,
382 HRESULT SubstituteKeyboardLayout
(
383 [in] REFCLSID rclsid
,
385 [in] REFGUID guidProfile
,
392 uuid(c3acefb5
-f69d
-4905-938f
-fcadcf4be830
),
393 pointer_default(unique)
395 interface ITfCategoryMgr
: IUnknown
397 HRESULT RegisterCategory
([in] REFCLSID rclsid
,
401 HRESULT UnregisterCategory
([in] REFCLSID rclsid
,
405 HRESULT EnumCategoriesInItem
([in] REFGUID rguid
,
406 [out] IEnumGUID
**ppEnum
);
408 HRESULT EnumItemsInCategory
([in] REFGUID rcatid
,
409 [out] IEnumGUID
**ppEnum
);
411 HRESULT FindClosestCategory
([in] REFGUID rguid
,
413 [in, size_is(ulCount
)] const GUID
**ppcatidList
,
416 HRESULT RegisterGUIDDescription
([in] REFCLSID rclsid
,
418 [in, size_is(cch
)] const WCHAR
*pchDesc
,
421 HRESULT UnregisterGUIDDescription
([in] REFCLSID rclsid
,
424 HRESULT GetGUIDDescription
([in] REFGUID rguid
,
425 [out] BSTR *pbstrDesc
);
427 HRESULT RegisterGUIDDWORD
([in] REFCLSID rclsid
,
431 HRESULT UnregisterGUIDDWORD
([in] REFCLSID rclsid
,
434 HRESULT GetGUIDDWORD
([in] REFGUID rguid
,
437 HRESULT RegisterGUID
([in] REFGUID rguid
,
438 [out] TfGuidAtom
*pguidatom
);
440 HRESULT GetGUID
([in] TfGuidAtom guidatom
,
443 HRESULT IsEqualTfGuidAtom
([in] TfGuidAtom guidatom
,
445 [out] BOOL
*pfEqual
);
450 uuid(8127d409
-ccd3
-4683-967a
-b43d5b482bf7
),
451 pointer_default(unique)
453 interface ITfTextEditSink
: IUnknown
456 [in] ITfContext
*pic
,
457 [in] TfEditCookie ecReadOnly
,
458 [in] ITfEditRecord
*pEditRecord
);
463 uuid(5F20AA40
-B57A
-4F34
-96AB
-3576F377CC79
),
464 pointer_default(unique)
466 interface ITfContextOwnerCompositionSink
: IUnknown
468 HRESULT OnStartComposition
(
469 [in] ITfCompositionView
*pComposition
,
472 HRESULT OnUpdateComposition
(
473 [in] ITfCompositionView
*pComposition
,
474 [in] ITfRange
*pRangeNew
);
476 HRESULT OnEndComposition
(
477 [in] ITfCompositionView
*pComposition
);
482 uuid(3d61bf11
-ac5f
-42c8
-a4cb
-931bcc28c744
),
483 pointer_default(unique)
485 interface IEnumTfLanguageProfiles
: IUnknown
488 [out] IEnumTfLanguageProfiles
**ppEnum
);
492 [out, size_is(ulCount
), length_is(*pcFetch
)] TF_LANGUAGEPROFILE
*pProfile
,
493 [out] ULONG
*pcFetch
);
504 uuid(aa80e7f7
-2021-11d2
-93e0
-0060b067b86e
),
505 pointer_default(unique)
507 interface ITfTextInputProcessor
: IUnknown
510 [in] ITfThreadMgr
*ptim
,
511 [in] TfClientId tid
);
513 HRESULT Deactivate
();
518 uuid(aa80e80e
-2021
-11d2
-93e0
-0060b067b86e
),
519 pointer_default(unique)
521 interface ITfThreadMgrEventSink
: IUnknown
523 HRESULT OnInitDocumentMgr
(
524 [in] ITfDocumentMgr
*pdim
);
526 HRESULT OnUninitDocumentMgr
(
527 [in] ITfDocumentMgr
*pdim
);
530 [in] ITfDocumentMgr
*pdimFocus
,
531 [in] ITfDocumentMgr
*pdimPrevFocus
);
533 HRESULT OnPushContext
(
534 [in] ITfContext
*pic
);
536 HRESULT OnPopContext
(
537 [in] ITfContext
*pic
);
543 uuid(aa80e7f0
-2021-11d2
-93e0
-0060b067b86e
),
544 pointer_default(unique)
546 interface ITfKeystrokeMgr
: IUnknown
548 HRESULT AdviseKeyEventSink
(
550 [in] ITfKeyEventSink
*pSink
,
551 [in] BOOL fForeground
);
553 HRESULT UnadviseKeyEventSink
(
554 [in] TfClientId tid
);
556 HRESULT GetForeground
(
557 [out] CLSID
*pclsid
);
562 [out] BOOL
*pfEaten
);
567 [out] BOOL
*pfEaten
);
572 [out] BOOL
*pfEaten
);
577 [out] BOOL
*pfEaten
);
579 HRESULT GetPreservedKey
(
580 [in] ITfContext
*pic
,
581 [in] const TF_PRESERVEDKEY
*pprekey
,
584 HRESULT IsPreservedKey
(
586 [in] const TF_PRESERVEDKEY
*pprekey
,
587 [out] BOOL
*pfRegistered
);
592 [in] const TF_PRESERVEDKEY
*prekey
,
593 [in, size_is(cchDesc
)] const WCHAR
*pchDesc
,
596 HRESULT UnpreserveKey
(
598 [in] const TF_PRESERVEDKEY
*pprekey
);
600 HRESULT SetPreservedKeyDescription
(
602 [in, size_is(cchDesc
)] const WCHAR
*pchDesc
,
605 HRESULT GetPreservedKeyDescription
(
607 [out] BSTR *pbstrDesc
);
609 HRESULT SimulatePreservedKey
(
610 [in] ITfContext
*pic
,
612 [out] BOOL
*pfEaten
);
618 uuid(aa80e7f5
-2021-11d2
-93e0
-0060b067b86e
),
619 pointer_default(unique)
621 interface ITfKeyEventSink
: IUnknown
624 [in] BOOL fForeground
);
626 HRESULT OnTestKeyDown
(
627 [in] ITfContext
*pic
,
630 [out] BOOL
*pfEaten
);
633 [in] ITfContext
*pic
,
636 [out] BOOL
*pfEaten
);
639 [in] ITfContext
*pic
,
642 [out] BOOL
*pfEaten
);
645 [in] ITfContext
*pic
,
648 [out] BOOL
*pfEaten
);
650 HRESULT OnPreservedKey
(
651 [in] ITfContext
*pic
,
653 [out] BOOL
*pfEaten
);
659 uuid(8f1b8ad8
-0b6b
-4874-90c5
-bd76011e8f7c
),
660 pointer_default(unique)
662 interface ITfMessagePump
: IUnknown
664 HRESULT PeekMessageA
(
667 [in] UINT wMsgFilterMin
,
668 [in] UINT wMsgFilterMax
,
669 [in] UINT wRemoveMsg
,
670 [out] BOOL
*pfResult
);
675 [in] UINT wMsgFilterMin
,
676 [in] UINT wMsgFilterMax
,
677 [out] BOOL
*pfResult
);
679 HRESULT PeekMessageW
(
682 [in] UINT wMsgFilterMin
,
683 [in] UINT wMsgFilterMax
,
684 [in] UINT wRemoveMsg
,
685 [out] BOOL
*pfResult
);
690 [in] UINT wMsgFilterMin
,
691 [in] UINT wMsgFilterMax
,
692 [out] BOOL
*pfResult
);
698 uuid(d60a7b49
-1b9f
-4be2
-b702
-47e9dc05dec3
),
699 pointer_default(unique)
701 interface ITfClientId
: IUnknown
704 [in] REFCLSID rclsid
,
705 [out] TfClientId
*ptid
);
710 uuid(43c9fe15
-f494
-4c17
-9de2
-b8a4ac350aa8
),
711 pointer_default(unique)
713 interface ITfLanguageProfileNotifySink
: IUnknown
715 HRESULT OnLanguageChange
(
717 [out] BOOL
*pfAccept
);
719 HRESULT OnLanguageChanged
();
724 uuid(aa80e803
-2021-11d2
-93e0
-0060b067b86e
),
725 pointer_default(unique)
727 interface ITfEditSession
: IUnknown
729 HRESULT DoEditSession
(
730 [in] TfEditCookie ec
);
735 uuid(aa80e7ff
-2021-11d2
-93e0
-0060b067b86e
),
736 pointer_default(unique)
738 interface ITfRange
: IUnknown
740 const WCHAR TF_CHAR_EMBEDDED
= TS_CHAR_EMBEDDED
;
742 typedef [uuid(cf610f06
-2882-46f6
-abe5
-298568b664c4
)] enum { TF_GRAVITY_BACKWARD
= 0, TF_GRAVITY_FORWARD
= 1 } TfGravity
;
744 typedef [uuid(1e512533
-bbdc
-4530-9a8e
-a1dc0af67468
)] enum { TF_SD_BACKWARD
= 0, TF_SD_FORWARD
= 1 } TfShiftDir
;
746 const DWORD TF_HF_OBJECT
= 1;
747 const DWORD TF_TF_MOVESTART
= 1;
748 const DWORD TF_TF_IGNOREEND
= 2;
749 const DWORD TF_ST_CORRECTION
= 1;
750 const DWORD TF_IE_CORRECTION
= 1;
752 typedef [uuid(49930d51
-7d93
-448c
-a48c
-fea5dac192b1
)] struct TF_HALTCOND
754 ITfRange
*pHaltRange
;
760 [in] TfEditCookie ec
,
762 [out, size_is(cchMax
), length_is(*pcch
)] WCHAR
*pchText
,
767 [in] TfEditCookie ec
,
769 [in, size_is(cch
), unique] const WCHAR
*pchText
,
772 HRESULT GetFormattedText
(
773 [in] TfEditCookie ec
,
774 [out] IDataObject
**ppDataObject
);
777 [in] TfEditCookie ec
,
778 [in] REFGUID rguidService
,
780 [out, iid_is(riid
)] IUnknown
**ppunk
);
782 HRESULT InsertEmbedded
(
783 [in] TfEditCookie ec
,
785 [in] IDataObject
*pDataObject
);
788 [in] TfEditCookie ec
,
791 [in, unique] const TF_HALTCOND
*pHalt
);
794 [in] TfEditCookie ec
,
797 [in, unique] const TF_HALTCOND
*pHalt
);
799 HRESULT ShiftStartToRange
(
800 [in] TfEditCookie ec
,
801 [in] ITfRange
*pRange
,
804 HRESULT ShiftEndToRange
(
805 [in] TfEditCookie ec
,
806 [in] ITfRange
*pRange
,
809 HRESULT ShiftStartRegion
(
810 [in] TfEditCookie ec
,
812 [out] BOOL
*pfNoRegion
);
814 HRESULT ShiftEndRegion
(
815 [in] TfEditCookie ec
,
817 [out] BOOL
*pfNoRegion
);
820 [in] TfEditCookie ec
,
821 [out] BOOL
*pfEmpty
);
824 [in] TfEditCookie ec
,
827 HRESULT IsEqualStart
(
828 [in] TfEditCookie ec
,
829 [in] ITfRange
*pWith
,
831 [out] BOOL
*pfEqual
);
834 [in] TfEditCookie ec
,
835 [in] ITfRange
*pWith
,
837 [out] BOOL
*pfEqual
);
839 HRESULT CompareStart
(
840 [in] TfEditCookie ec
,
841 [in] ITfRange
*pWith
,
843 [out] LONG *plResult
);
846 [in] TfEditCookie ec
,
847 [in] ITfRange
*pWith
,
849 [out] LONG *plResult
);
851 HRESULT AdjustForInsert
(
852 [in] TfEditCookie ec
,
853 [in] ULONG cchInsert
,
854 [out] BOOL
*pfInsertOk
);
857 [out] TfGravity
*pgStart
,
858 [out] TfGravity
*pgEnd
);
861 [in] TfEditCookie ec
,
862 [in] TfGravity gStart
,
863 [in] TfGravity gEnd
);
866 [out] ITfRange
**ppClone
);
869 [out] ITfContext
**ppContext
);