1 /*** Autogenerated by WIDL 6.4 from include/textstor.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __textstor_h__
17 #define __textstor_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __ITextStoreACPSink_FWD_DEFINED__
22 #define __ITextStoreACPSink_FWD_DEFINED__
23 typedef interface ITextStoreACPSink ITextStoreACPSink;
24 #ifdef __cplusplus
25 interface ITextStoreACPSink;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __ITextStoreACP_FWD_DEFINED__
30 #define __ITextStoreACP_FWD_DEFINED__
31 typedef interface ITextStoreACP ITextStoreACP;
32 #ifdef __cplusplus
33 interface ITextStoreACP;
34 #endif /* __cplusplus */
35 #endif
36 
37 /* Headers for imported files */
38 
39 #include <oaidl.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 #define TS_E_INVALIDPOS      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
46 #define TS_E_NOLOCK          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
47 #define TS_E_NOOBJECT        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)
48 #define TS_E_NOSERVICE       MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)
49 #define TS_E_NOINTERFACE     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)
50 #define TS_E_NOSELECTION     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)
51 #define TS_E_NOLAYOUT        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)
52 #define TS_E_INVALIDPOINT    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)
53 #define TS_E_SYNCHRONOUS     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)
54 #define TS_E_READONLY        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)
55 #define TS_E_FORMAT          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x020a)
56 #define TS_S_ASYNC           MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, 0x0300)
57 #define TS_DEFAULT_SELECTION (~0)
58 
59 #define TS_SD_READONLY (0x1)
60 
61 #define TS_SD_LOADING (0x2)
62 
63 #define TS_SS_DISJOINTSEL (0x1)
64 
65 #define TS_SS_REGIONS (0x2)
66 
67 #define TS_SS_TRANSITORY (0x4)
68 
69 #define TS_SS_NOHIDDENTEXT (0x8)
70 
71 #define TS_AS_TEXT_CHANGE (0x1)
72 
73 #define TS_AS_SEL_CHANGE (0x2)
74 
75 #define TS_AS_LAYOUT_CHANGE (0x4)
76 
77 #define TS_AS_ATTR_CHANGE (0x8)
78 
79 #define TS_AS_STATUS_CHANGE (0x10)
80 
81 #define TS_AS_ALL_SINKS ((((TS_AS_TEXT_CHANGE | TS_AS_SEL_CHANGE) | TS_AS_LAYOUT_CHANGE) | TS_AS_ATTR_CHANGE) | TS_AS_STATUS_CHANGE)
82 
83 #define TS_LF_SYNC (0x1)
84 
85 #define TS_LF_READ (0x2)
86 
87 #define TS_LF_READWRITE (0x6)
88 
89 #define TS_CHAR_EMBEDDED (0xfffc)
90 
91 #define TS_CHAR_REGION (0x0)
92 
93 #define TS_CHAR_REPLACEMENT (0xfffd)
94 
95 #define TS_IAS_NOQUERY (0x1)
96 
97 #define TS_IAS_QUERYONLY (0x2)
98 
99 #define TS_ST_CORRECTION (0x1)
100 
101 #define GXFPF_ROUND_NEAREST (0x1)
102 
103 #define GXFPF_NEAREST (0x2)
104 
105 typedef enum __WIDL_textstor_generated_name_0000000F {
106     TS_AE_NONE = 0,
107     TS_AE_START = 1,
108     TS_AE_END = 2
109 } TsActiveSelEnd;
110 typedef enum __WIDL_textstor_generated_name_00000010 {
111     TS_RT_PLAIN = 0,
112     TS_RT_HIDDEN = 1,
113     TS_RT_OPAQUE = 2
114 } TsRunType;
115 typedef GUID TS_ATTRID;
116 typedef struct TS_STATUS {
117     DWORD dwDynamicFlags;
118     DWORD dwStaticFlags;
119 } TS_STATUS;
120 typedef struct TS_TEXTCHANGE {
121     LONG acpStart;
122     LONG acpOldEnd;
123     LONG acpNewEnd;
124 } TS_TEXTCHANGE;
125 typedef struct TS_SELECTIONSTYLE {
126     TsActiveSelEnd ase;
127     WINBOOL fInterimChar;
128 } TS_SELECTIONSTYLE;
129 typedef struct TS_SELECTION_ACP {
130     LONG acpStart;
131     LONG acpEnd;
132     TS_SELECTIONSTYLE style;
133 } TS_SELECTION_ACP;
134 typedef struct TS_RUNINFO {
135     ULONG uCount;
136     TsRunType type;
137 } TS_RUNINFO;
138 typedef struct TS_ATTRVAL {
139     TS_ATTRID idAttr;
140     DWORD dwOverlapId;
141     VARIANT varValue;
142 } TS_ATTRVAL;
143 #define TS_ATTR_FIND_BACKWARDS (0x1)
144 
145 #define TS_ATTR_FIND_WANT_OFFSET (0x2)
146 
147 #define TS_ATTR_FIND_UPDATESTART (0x4)
148 
149 #define TS_ATTR_FIND_WANT_VALUE (0x8)
150 
151 #define TS_ATTR_FIND_WANT_END (0x10)
152 
153 #define TS_ATTR_FIND_HIDDEN (0x20)
154 
155 typedef enum __WIDL_textstor_generated_name_00000011 {
156     TS_LC_CREATE = 0,
157     TS_LC_CHANGE = 1,
158     TS_LC_DESTROY = 2
159 } TsLayoutCode;
160 typedef DWORD TsViewCookie;
161 /*****************************************************************************
162  * ITextStoreACPSink interface
163  */
164 #ifndef __ITextStoreACPSink_INTERFACE_DEFINED__
165 #define __ITextStoreACPSink_INTERFACE_DEFINED__
166 
167 DEFINE_GUID(IID_ITextStoreACPSink, 0x22d44c94, 0xa419, 0x4542, 0xa2,0x72, 0xae,0x26,0x09,0x3e,0xce,0xcf);
168 #if defined(__cplusplus) && !defined(CINTERFACE)
169 MIDL_INTERFACE("22d44c94-a419-4542-a272-ae26093ececf")
170 ITextStoreACPSink : public IUnknown
171 {
172     virtual HRESULT STDMETHODCALLTYPE OnTextChange(
173         DWORD dwFlags,
174         const TS_TEXTCHANGE *pChange) = 0;
175 
176     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
177         ) = 0;
178 
179     virtual HRESULT STDMETHODCALLTYPE OnLayoutChange(
180         TsLayoutCode lcode,
181         TsViewCookie vcView) = 0;
182 
183     virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
184         DWORD dwFlags) = 0;
185 
186     virtual HRESULT STDMETHODCALLTYPE OnAttrsChange(
187         LONG acpStart,
188         LONG acpEnd,
189         ULONG cAttrs,
190         const TS_ATTRID *paAttrs) = 0;
191 
192     virtual HRESULT STDMETHODCALLTYPE OnLockGranted(
193         DWORD dwLockFlags) = 0;
194 
195     virtual HRESULT STDMETHODCALLTYPE OnStartEditTransaction(
196         ) = 0;
197 
198     virtual HRESULT STDMETHODCALLTYPE OnEndEditTransaction(
199         ) = 0;
200 
201 };
202 #ifdef __CRT_UUID_DECL
203 __CRT_UUID_DECL(ITextStoreACPSink, 0x22d44c94, 0xa419, 0x4542, 0xa2,0x72, 0xae,0x26,0x09,0x3e,0xce,0xcf)
204 #endif
205 #else
206 typedef struct ITextStoreACPSinkVtbl {
207     BEGIN_INTERFACE
208 
209     /*** IUnknown methods ***/
210     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
211         ITextStoreACPSink *This,
212         REFIID riid,
213         void **ppvObject);
214 
215     ULONG (STDMETHODCALLTYPE *AddRef)(
216         ITextStoreACPSink *This);
217 
218     ULONG (STDMETHODCALLTYPE *Release)(
219         ITextStoreACPSink *This);
220 
221     /*** ITextStoreACPSink methods ***/
222     HRESULT (STDMETHODCALLTYPE *OnTextChange)(
223         ITextStoreACPSink *This,
224         DWORD dwFlags,
225         const TS_TEXTCHANGE *pChange);
226 
227     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
228         ITextStoreACPSink *This);
229 
230     HRESULT (STDMETHODCALLTYPE *OnLayoutChange)(
231         ITextStoreACPSink *This,
232         TsLayoutCode lcode,
233         TsViewCookie vcView);
234 
235     HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
236         ITextStoreACPSink *This,
237         DWORD dwFlags);
238 
239     HRESULT (STDMETHODCALLTYPE *OnAttrsChange)(
240         ITextStoreACPSink *This,
241         LONG acpStart,
242         LONG acpEnd,
243         ULONG cAttrs,
244         const TS_ATTRID *paAttrs);
245 
246     HRESULT (STDMETHODCALLTYPE *OnLockGranted)(
247         ITextStoreACPSink *This,
248         DWORD dwLockFlags);
249 
250     HRESULT (STDMETHODCALLTYPE *OnStartEditTransaction)(
251         ITextStoreACPSink *This);
252 
253     HRESULT (STDMETHODCALLTYPE *OnEndEditTransaction)(
254         ITextStoreACPSink *This);
255 
256     END_INTERFACE
257 } ITextStoreACPSinkVtbl;
258 
259 interface ITextStoreACPSink {
260     CONST_VTBL ITextStoreACPSinkVtbl* lpVtbl;
261 };
262 
263 #ifdef COBJMACROS
264 #ifndef WIDL_C_INLINE_WRAPPERS
265 /*** IUnknown methods ***/
266 #define ITextStoreACPSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
267 #define ITextStoreACPSink_AddRef(This) (This)->lpVtbl->AddRef(This)
268 #define ITextStoreACPSink_Release(This) (This)->lpVtbl->Release(This)
269 /*** ITextStoreACPSink methods ***/
270 #define ITextStoreACPSink_OnTextChange(This,dwFlags,pChange) (This)->lpVtbl->OnTextChange(This,dwFlags,pChange)
271 #define ITextStoreACPSink_OnSelectionChange(This) (This)->lpVtbl->OnSelectionChange(This)
272 #define ITextStoreACPSink_OnLayoutChange(This,lcode,vcView) (This)->lpVtbl->OnLayoutChange(This,lcode,vcView)
273 #define ITextStoreACPSink_OnStatusChange(This,dwFlags) (This)->lpVtbl->OnStatusChange(This,dwFlags)
274 #define ITextStoreACPSink_OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs) (This)->lpVtbl->OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs)
275 #define ITextStoreACPSink_OnLockGranted(This,dwLockFlags) (This)->lpVtbl->OnLockGranted(This,dwLockFlags)
276 #define ITextStoreACPSink_OnStartEditTransaction(This) (This)->lpVtbl->OnStartEditTransaction(This)
277 #define ITextStoreACPSink_OnEndEditTransaction(This) (This)->lpVtbl->OnEndEditTransaction(This)
278 #else
279 /*** IUnknown methods ***/
280 static FORCEINLINE HRESULT ITextStoreACPSink_QueryInterface(ITextStoreACPSink* This,REFIID riid,void **ppvObject) {
281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
282 }
283 static FORCEINLINE ULONG ITextStoreACPSink_AddRef(ITextStoreACPSink* This) {
284     return This->lpVtbl->AddRef(This);
285 }
286 static FORCEINLINE ULONG ITextStoreACPSink_Release(ITextStoreACPSink* This) {
287     return This->lpVtbl->Release(This);
288 }
289 /*** ITextStoreACPSink methods ***/
290 static FORCEINLINE HRESULT ITextStoreACPSink_OnTextChange(ITextStoreACPSink* This,DWORD dwFlags,const TS_TEXTCHANGE *pChange) {
291     return This->lpVtbl->OnTextChange(This,dwFlags,pChange);
292 }
293 static FORCEINLINE HRESULT ITextStoreACPSink_OnSelectionChange(ITextStoreACPSink* This) {
294     return This->lpVtbl->OnSelectionChange(This);
295 }
296 static FORCEINLINE HRESULT ITextStoreACPSink_OnLayoutChange(ITextStoreACPSink* This,TsLayoutCode lcode,TsViewCookie vcView) {
297     return This->lpVtbl->OnLayoutChange(This,lcode,vcView);
298 }
299 static FORCEINLINE HRESULT ITextStoreACPSink_OnStatusChange(ITextStoreACPSink* This,DWORD dwFlags) {
300     return This->lpVtbl->OnStatusChange(This,dwFlags);
301 }
302 static FORCEINLINE HRESULT ITextStoreACPSink_OnAttrsChange(ITextStoreACPSink* This,LONG acpStart,LONG acpEnd,ULONG cAttrs,const TS_ATTRID *paAttrs) {
303     return This->lpVtbl->OnAttrsChange(This,acpStart,acpEnd,cAttrs,paAttrs);
304 }
305 static FORCEINLINE HRESULT ITextStoreACPSink_OnLockGranted(ITextStoreACPSink* This,DWORD dwLockFlags) {
306     return This->lpVtbl->OnLockGranted(This,dwLockFlags);
307 }
308 static FORCEINLINE HRESULT ITextStoreACPSink_OnStartEditTransaction(ITextStoreACPSink* This) {
309     return This->lpVtbl->OnStartEditTransaction(This);
310 }
311 static FORCEINLINE HRESULT ITextStoreACPSink_OnEndEditTransaction(ITextStoreACPSink* This) {
312     return This->lpVtbl->OnEndEditTransaction(This);
313 }
314 #endif
315 #endif
316 
317 #endif
318 
319 
320 #endif  /* __ITextStoreACPSink_INTERFACE_DEFINED__ */
321 
322 /*****************************************************************************
323  * ITextStoreACP interface
324  */
325 #ifndef __ITextStoreACP_INTERFACE_DEFINED__
326 #define __ITextStoreACP_INTERFACE_DEFINED__
327 
328 DEFINE_GUID(IID_ITextStoreACP, 0x28888fe3, 0xc2a0, 0x483a, 0xa3,0xea, 0x8c,0xb1,0xce,0x51,0xff,0x3d);
329 #if defined(__cplusplus) && !defined(CINTERFACE)
330 MIDL_INTERFACE("28888fe3-c2a0-483a-a3ea-8cb1ce51ff3d")
331 ITextStoreACP : public IUnknown
332 {
333     virtual HRESULT STDMETHODCALLTYPE AdviseSink(
334         REFIID riid,
335         IUnknown *punk,
336         DWORD dwMask) = 0;
337 
338     virtual HRESULT STDMETHODCALLTYPE UnadviseSink(
339         IUnknown *punk) = 0;
340 
341     virtual HRESULT STDMETHODCALLTYPE RequestLock(
342         DWORD dwLockFlags,
343         HRESULT *phrSession) = 0;
344 
345     virtual HRESULT STDMETHODCALLTYPE GetStatus(
346         TS_STATUS *pdcs) = 0;
347 
348     virtual HRESULT STDMETHODCALLTYPE QueryInsert(
349         LONG acpTestStart,
350         LONG acpTestEnd,
351         ULONG cch,
352         LONG *pacpResultStart,
353         LONG *pacpResultEnd) = 0;
354 
355     virtual HRESULT STDMETHODCALLTYPE GetSelection(
356         ULONG ulIndex,
357         ULONG ulCount,
358         TS_SELECTION_ACP *pSelection,
359         ULONG *pcFetched) = 0;
360 
361     virtual HRESULT STDMETHODCALLTYPE SetSelection(
362         ULONG ulCount,
363         const TS_SELECTION_ACP *pSelection) = 0;
364 
365     virtual HRESULT STDMETHODCALLTYPE GetText(
366         LONG acpStart,
367         LONG acpEnd,
368         WCHAR *pchPlain,
369         ULONG cchPlainReq,
370         ULONG *pcchPlainRet,
371         TS_RUNINFO *prgRunInfo,
372         ULONG cRunInfoReq,
373         ULONG *pcRunInfoRet,
374         LONG *pacpNext) = 0;
375 
376     virtual HRESULT STDMETHODCALLTYPE SetText(
377         DWORD dwFlags,
378         LONG acpStart,
379         LONG acpEnd,
380         const WCHAR *pchText,
381         ULONG cch,
382         TS_TEXTCHANGE *pChange) = 0;
383 
384     virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
385         LONG acpStart,
386         LONG acpEnd,
387         IDataObject **ppDataObject) = 0;
388 
389     virtual HRESULT STDMETHODCALLTYPE GetEmbedded(
390         LONG acpPos,
391         REFGUID rguidService,
392         REFIID riid,
393         IUnknown **ppunk) = 0;
394 
395     virtual HRESULT STDMETHODCALLTYPE QueryInsertEmbedded(
396         const GUID *pguidService,
397         const FORMATETC *pFormatEtc,
398         WINBOOL *pfInsertable) = 0;
399 
400     virtual HRESULT STDMETHODCALLTYPE InsertEmbedded(
401         DWORD dwFlags,
402         LONG acpStart,
403         LONG acpEnd,
404         IDataObject *pDataObject,
405         TS_TEXTCHANGE *pChange) = 0;
406 
407     virtual HRESULT STDMETHODCALLTYPE InsertTextAtSelection(
408         DWORD dwFlags,
409         const WCHAR *pchText,
410         ULONG cch,
411         LONG *pacpStart,
412         LONG *pacpEnd,
413         TS_TEXTCHANGE *pChange) = 0;
414 
415     virtual HRESULT STDMETHODCALLTYPE InsertEmbeddedAtSelection(
416         DWORD dwFlags,
417         IDataObject *pDataObject,
418         LONG *pacpStart,
419         LONG *pacpEnd,
420         TS_TEXTCHANGE *pChange) = 0;
421 
422     virtual HRESULT STDMETHODCALLTYPE RequestSupportedAttrs(
423         DWORD dwFlags,
424         ULONG cFilterAttrs,
425         const TS_ATTRID *paFilterAttrs) = 0;
426 
427     virtual HRESULT STDMETHODCALLTYPE RequestAttrsAtPosition(
428         LONG acpPos,
429         ULONG cFilterAttrs,
430         const TS_ATTRID *paFilterAttrs,
431         DWORD dwFlags) = 0;
432 
433     virtual HRESULT STDMETHODCALLTYPE RequestAttrsTransitioningAtPosition(
434         LONG acpPos,
435         ULONG cFilterAttrs,
436         const TS_ATTRID *paFilterAttrs,
437         DWORD dwFlags) = 0;
438 
439     virtual HRESULT STDMETHODCALLTYPE FindNextAttrTransition(
440         LONG acpStart,
441         LONG acpHalt,
442         ULONG cFilterAttrs,
443         const TS_ATTRID *paFilterAttrs,
444         DWORD dwFlags,
445         LONG *pacpNext,
446         WINBOOL *pfFound,
447         LONG *plFoundOffset) = 0;
448 
449     virtual HRESULT STDMETHODCALLTYPE RetrieveRequestedAttrs(
450         ULONG ulCount,
451         TS_ATTRVAL *paAttrVals,
452         ULONG *pcFetched) = 0;
453 
454     virtual HRESULT STDMETHODCALLTYPE GetEndACP(
455         LONG *pacp) = 0;
456 
457     virtual HRESULT STDMETHODCALLTYPE GetActiveView(
458         TsViewCookie *pvcView) = 0;
459 
460     virtual HRESULT STDMETHODCALLTYPE GetACPFromPoint(
461         TsViewCookie vcView,
462         const POINT *ptScreen,
463         DWORD dwFlags,
464         LONG *pacp) = 0;
465 
466     virtual HRESULT STDMETHODCALLTYPE GetTextExt(
467         TsViewCookie vcView,
468         LONG acpStart,
469         LONG acpEnd,
470         RECT *prc,
471         WINBOOL *pfClipped) = 0;
472 
473     virtual HRESULT STDMETHODCALLTYPE GetScreenExt(
474         TsViewCookie vcView,
475         RECT *prc) = 0;
476 
477     virtual HRESULT STDMETHODCALLTYPE GetWnd(
478         TsViewCookie vcView,
479         HWND *phwnd) = 0;
480 
481 };
482 #ifdef __CRT_UUID_DECL
483 __CRT_UUID_DECL(ITextStoreACP, 0x28888fe3, 0xc2a0, 0x483a, 0xa3,0xea, 0x8c,0xb1,0xce,0x51,0xff,0x3d)
484 #endif
485 #else
486 typedef struct ITextStoreACPVtbl {
487     BEGIN_INTERFACE
488 
489     /*** IUnknown methods ***/
490     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
491         ITextStoreACP *This,
492         REFIID riid,
493         void **ppvObject);
494 
495     ULONG (STDMETHODCALLTYPE *AddRef)(
496         ITextStoreACP *This);
497 
498     ULONG (STDMETHODCALLTYPE *Release)(
499         ITextStoreACP *This);
500 
501     /*** ITextStoreACP methods ***/
502     HRESULT (STDMETHODCALLTYPE *AdviseSink)(
503         ITextStoreACP *This,
504         REFIID riid,
505         IUnknown *punk,
506         DWORD dwMask);
507 
508     HRESULT (STDMETHODCALLTYPE *UnadviseSink)(
509         ITextStoreACP *This,
510         IUnknown *punk);
511 
512     HRESULT (STDMETHODCALLTYPE *RequestLock)(
513         ITextStoreACP *This,
514         DWORD dwLockFlags,
515         HRESULT *phrSession);
516 
517     HRESULT (STDMETHODCALLTYPE *GetStatus)(
518         ITextStoreACP *This,
519         TS_STATUS *pdcs);
520 
521     HRESULT (STDMETHODCALLTYPE *QueryInsert)(
522         ITextStoreACP *This,
523         LONG acpTestStart,
524         LONG acpTestEnd,
525         ULONG cch,
526         LONG *pacpResultStart,
527         LONG *pacpResultEnd);
528 
529     HRESULT (STDMETHODCALLTYPE *GetSelection)(
530         ITextStoreACP *This,
531         ULONG ulIndex,
532         ULONG ulCount,
533         TS_SELECTION_ACP *pSelection,
534         ULONG *pcFetched);
535 
536     HRESULT (STDMETHODCALLTYPE *SetSelection)(
537         ITextStoreACP *This,
538         ULONG ulCount,
539         const TS_SELECTION_ACP *pSelection);
540 
541     HRESULT (STDMETHODCALLTYPE *GetText)(
542         ITextStoreACP *This,
543         LONG acpStart,
544         LONG acpEnd,
545         WCHAR *pchPlain,
546         ULONG cchPlainReq,
547         ULONG *pcchPlainRet,
548         TS_RUNINFO *prgRunInfo,
549         ULONG cRunInfoReq,
550         ULONG *pcRunInfoRet,
551         LONG *pacpNext);
552 
553     HRESULT (STDMETHODCALLTYPE *SetText)(
554         ITextStoreACP *This,
555         DWORD dwFlags,
556         LONG acpStart,
557         LONG acpEnd,
558         const WCHAR *pchText,
559         ULONG cch,
560         TS_TEXTCHANGE *pChange);
561 
562     HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
563         ITextStoreACP *This,
564         LONG acpStart,
565         LONG acpEnd,
566         IDataObject **ppDataObject);
567 
568     HRESULT (STDMETHODCALLTYPE *GetEmbedded)(
569         ITextStoreACP *This,
570         LONG acpPos,
571         REFGUID rguidService,
572         REFIID riid,
573         IUnknown **ppunk);
574 
575     HRESULT (STDMETHODCALLTYPE *QueryInsertEmbedded)(
576         ITextStoreACP *This,
577         const GUID *pguidService,
578         const FORMATETC *pFormatEtc,
579         WINBOOL *pfInsertable);
580 
581     HRESULT (STDMETHODCALLTYPE *InsertEmbedded)(
582         ITextStoreACP *This,
583         DWORD dwFlags,
584         LONG acpStart,
585         LONG acpEnd,
586         IDataObject *pDataObject,
587         TS_TEXTCHANGE *pChange);
588 
589     HRESULT (STDMETHODCALLTYPE *InsertTextAtSelection)(
590         ITextStoreACP *This,
591         DWORD dwFlags,
592         const WCHAR *pchText,
593         ULONG cch,
594         LONG *pacpStart,
595         LONG *pacpEnd,
596         TS_TEXTCHANGE *pChange);
597 
598     HRESULT (STDMETHODCALLTYPE *InsertEmbeddedAtSelection)(
599         ITextStoreACP *This,
600         DWORD dwFlags,
601         IDataObject *pDataObject,
602         LONG *pacpStart,
603         LONG *pacpEnd,
604         TS_TEXTCHANGE *pChange);
605 
606     HRESULT (STDMETHODCALLTYPE *RequestSupportedAttrs)(
607         ITextStoreACP *This,
608         DWORD dwFlags,
609         ULONG cFilterAttrs,
610         const TS_ATTRID *paFilterAttrs);
611 
612     HRESULT (STDMETHODCALLTYPE *RequestAttrsAtPosition)(
613         ITextStoreACP *This,
614         LONG acpPos,
615         ULONG cFilterAttrs,
616         const TS_ATTRID *paFilterAttrs,
617         DWORD dwFlags);
618 
619     HRESULT (STDMETHODCALLTYPE *RequestAttrsTransitioningAtPosition)(
620         ITextStoreACP *This,
621         LONG acpPos,
622         ULONG cFilterAttrs,
623         const TS_ATTRID *paFilterAttrs,
624         DWORD dwFlags);
625 
626     HRESULT (STDMETHODCALLTYPE *FindNextAttrTransition)(
627         ITextStoreACP *This,
628         LONG acpStart,
629         LONG acpHalt,
630         ULONG cFilterAttrs,
631         const TS_ATTRID *paFilterAttrs,
632         DWORD dwFlags,
633         LONG *pacpNext,
634         WINBOOL *pfFound,
635         LONG *plFoundOffset);
636 
637     HRESULT (STDMETHODCALLTYPE *RetrieveRequestedAttrs)(
638         ITextStoreACP *This,
639         ULONG ulCount,
640         TS_ATTRVAL *paAttrVals,
641         ULONG *pcFetched);
642 
643     HRESULT (STDMETHODCALLTYPE *GetEndACP)(
644         ITextStoreACP *This,
645         LONG *pacp);
646 
647     HRESULT (STDMETHODCALLTYPE *GetActiveView)(
648         ITextStoreACP *This,
649         TsViewCookie *pvcView);
650 
651     HRESULT (STDMETHODCALLTYPE *GetACPFromPoint)(
652         ITextStoreACP *This,
653         TsViewCookie vcView,
654         const POINT *ptScreen,
655         DWORD dwFlags,
656         LONG *pacp);
657 
658     HRESULT (STDMETHODCALLTYPE *GetTextExt)(
659         ITextStoreACP *This,
660         TsViewCookie vcView,
661         LONG acpStart,
662         LONG acpEnd,
663         RECT *prc,
664         WINBOOL *pfClipped);
665 
666     HRESULT (STDMETHODCALLTYPE *GetScreenExt)(
667         ITextStoreACP *This,
668         TsViewCookie vcView,
669         RECT *prc);
670 
671     HRESULT (STDMETHODCALLTYPE *GetWnd)(
672         ITextStoreACP *This,
673         TsViewCookie vcView,
674         HWND *phwnd);
675 
676     END_INTERFACE
677 } ITextStoreACPVtbl;
678 
679 interface ITextStoreACP {
680     CONST_VTBL ITextStoreACPVtbl* lpVtbl;
681 };
682 
683 #ifdef COBJMACROS
684 #ifndef WIDL_C_INLINE_WRAPPERS
685 /*** IUnknown methods ***/
686 #define ITextStoreACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
687 #define ITextStoreACP_AddRef(This) (This)->lpVtbl->AddRef(This)
688 #define ITextStoreACP_Release(This) (This)->lpVtbl->Release(This)
689 /*** ITextStoreACP methods ***/
690 #define ITextStoreACP_AdviseSink(This,riid,punk,dwMask) (This)->lpVtbl->AdviseSink(This,riid,punk,dwMask)
691 #define ITextStoreACP_UnadviseSink(This,punk) (This)->lpVtbl->UnadviseSink(This,punk)
692 #define ITextStoreACP_RequestLock(This,dwLockFlags,phrSession) (This)->lpVtbl->RequestLock(This,dwLockFlags,phrSession)
693 #define ITextStoreACP_GetStatus(This,pdcs) (This)->lpVtbl->GetStatus(This,pdcs)
694 #define ITextStoreACP_QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd) (This)->lpVtbl->QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd)
695 #define ITextStoreACP_GetSelection(This,ulIndex,ulCount,pSelection,pcFetched) (This)->lpVtbl->GetSelection(This,ulIndex,ulCount,pSelection,pcFetched)
696 #define ITextStoreACP_SetSelection(This,ulCount,pSelection) (This)->lpVtbl->SetSelection(This,ulCount,pSelection)
697 #define ITextStoreACP_GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext) (This)->lpVtbl->GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext)
698 #define ITextStoreACP_SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange) (This)->lpVtbl->SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange)
699 #define ITextStoreACP_GetFormattedText(This,acpStart,acpEnd,ppDataObject) (This)->lpVtbl->GetFormattedText(This,acpStart,acpEnd,ppDataObject)
700 #define ITextStoreACP_GetEmbedded(This,acpPos,rguidService,riid,ppunk) (This)->lpVtbl->GetEmbedded(This,acpPos,rguidService,riid,ppunk)
701 #define ITextStoreACP_QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable) (This)->lpVtbl->QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable)
702 #define ITextStoreACP_InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange) (This)->lpVtbl->InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange)
703 #define ITextStoreACP_InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange)
704 #define ITextStoreACP_InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange) (This)->lpVtbl->InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange)
705 #define ITextStoreACP_RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs) (This)->lpVtbl->RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs)
706 #define ITextStoreACP_RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
707 #define ITextStoreACP_RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags) (This)->lpVtbl->RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags)
708 #define ITextStoreACP_FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset) (This)->lpVtbl->FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset)
709 #define ITextStoreACP_RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched) (This)->lpVtbl->RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched)
710 #define ITextStoreACP_GetEndACP(This,pacp) (This)->lpVtbl->GetEndACP(This,pacp)
711 #define ITextStoreACP_GetActiveView(This,pvcView) (This)->lpVtbl->GetActiveView(This,pvcView)
712 #define ITextStoreACP_GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp) (This)->lpVtbl->GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp)
713 #define ITextStoreACP_GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped) (This)->lpVtbl->GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped)
714 #define ITextStoreACP_GetScreenExt(This,vcView,prc) (This)->lpVtbl->GetScreenExt(This,vcView,prc)
715 #define ITextStoreACP_GetWnd(This,vcView,phwnd) (This)->lpVtbl->GetWnd(This,vcView,phwnd)
716 #else
717 /*** IUnknown methods ***/
718 static FORCEINLINE HRESULT ITextStoreACP_QueryInterface(ITextStoreACP* This,REFIID riid,void **ppvObject) {
719     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
720 }
721 static FORCEINLINE ULONG ITextStoreACP_AddRef(ITextStoreACP* This) {
722     return This->lpVtbl->AddRef(This);
723 }
724 static FORCEINLINE ULONG ITextStoreACP_Release(ITextStoreACP* This) {
725     return This->lpVtbl->Release(This);
726 }
727 /*** ITextStoreACP methods ***/
728 static FORCEINLINE HRESULT ITextStoreACP_AdviseSink(ITextStoreACP* This,REFIID riid,IUnknown *punk,DWORD dwMask) {
729     return This->lpVtbl->AdviseSink(This,riid,punk,dwMask);
730 }
731 static FORCEINLINE HRESULT ITextStoreACP_UnadviseSink(ITextStoreACP* This,IUnknown *punk) {
732     return This->lpVtbl->UnadviseSink(This,punk);
733 }
734 static FORCEINLINE HRESULT ITextStoreACP_RequestLock(ITextStoreACP* This,DWORD dwLockFlags,HRESULT *phrSession) {
735     return This->lpVtbl->RequestLock(This,dwLockFlags,phrSession);
736 }
737 static FORCEINLINE HRESULT ITextStoreACP_GetStatus(ITextStoreACP* This,TS_STATUS *pdcs) {
738     return This->lpVtbl->GetStatus(This,pdcs);
739 }
740 static FORCEINLINE HRESULT ITextStoreACP_QueryInsert(ITextStoreACP* This,LONG acpTestStart,LONG acpTestEnd,ULONG cch,LONG *pacpResultStart,LONG *pacpResultEnd) {
741     return This->lpVtbl->QueryInsert(This,acpTestStart,acpTestEnd,cch,pacpResultStart,pacpResultEnd);
742 }
743 static FORCEINLINE HRESULT ITextStoreACP_GetSelection(ITextStoreACP* This,ULONG ulIndex,ULONG ulCount,TS_SELECTION_ACP *pSelection,ULONG *pcFetched) {
744     return This->lpVtbl->GetSelection(This,ulIndex,ulCount,pSelection,pcFetched);
745 }
746 static FORCEINLINE HRESULT ITextStoreACP_SetSelection(ITextStoreACP* This,ULONG ulCount,const TS_SELECTION_ACP *pSelection) {
747     return This->lpVtbl->SetSelection(This,ulCount,pSelection);
748 }
749 static FORCEINLINE HRESULT ITextStoreACP_GetText(ITextStoreACP* This,LONG acpStart,LONG acpEnd,WCHAR *pchPlain,ULONG cchPlainReq,ULONG *pcchPlainRet,TS_RUNINFO *prgRunInfo,ULONG cRunInfoReq,ULONG *pcRunInfoRet,LONG *pacpNext) {
750     return This->lpVtbl->GetText(This,acpStart,acpEnd,pchPlain,cchPlainReq,pcchPlainRet,prgRunInfo,cRunInfoReq,pcRunInfoRet,pacpNext);
751 }
752 static FORCEINLINE HRESULT ITextStoreACP_SetText(ITextStoreACP* This,DWORD dwFlags,LONG acpStart,LONG acpEnd,const WCHAR *pchText,ULONG cch,TS_TEXTCHANGE *pChange) {
753     return This->lpVtbl->SetText(This,dwFlags,acpStart,acpEnd,pchText,cch,pChange);
754 }
755 static FORCEINLINE HRESULT ITextStoreACP_GetFormattedText(ITextStoreACP* This,LONG acpStart,LONG acpEnd,IDataObject **ppDataObject) {
756     return This->lpVtbl->GetFormattedText(This,acpStart,acpEnd,ppDataObject);
757 }
758 static FORCEINLINE HRESULT ITextStoreACP_GetEmbedded(ITextStoreACP* This,LONG acpPos,REFGUID rguidService,REFIID riid,IUnknown **ppunk) {
759     return This->lpVtbl->GetEmbedded(This,acpPos,rguidService,riid,ppunk);
760 }
761 static FORCEINLINE HRESULT ITextStoreACP_QueryInsertEmbedded(ITextStoreACP* This,const GUID *pguidService,const FORMATETC *pFormatEtc,WINBOOL *pfInsertable) {
762     return This->lpVtbl->QueryInsertEmbedded(This,pguidService,pFormatEtc,pfInsertable);
763 }
764 static FORCEINLINE HRESULT ITextStoreACP_InsertEmbedded(ITextStoreACP* This,DWORD dwFlags,LONG acpStart,LONG acpEnd,IDataObject *pDataObject,TS_TEXTCHANGE *pChange) {
765     return This->lpVtbl->InsertEmbedded(This,dwFlags,acpStart,acpEnd,pDataObject,pChange);
766 }
767 static FORCEINLINE HRESULT ITextStoreACP_InsertTextAtSelection(ITextStoreACP* This,DWORD dwFlags,const WCHAR *pchText,ULONG cch,LONG *pacpStart,LONG *pacpEnd,TS_TEXTCHANGE *pChange) {
768     return This->lpVtbl->InsertTextAtSelection(This,dwFlags,pchText,cch,pacpStart,pacpEnd,pChange);
769 }
770 static FORCEINLINE HRESULT ITextStoreACP_InsertEmbeddedAtSelection(ITextStoreACP* This,DWORD dwFlags,IDataObject *pDataObject,LONG *pacpStart,LONG *pacpEnd,TS_TEXTCHANGE *pChange) {
771     return This->lpVtbl->InsertEmbeddedAtSelection(This,dwFlags,pDataObject,pacpStart,pacpEnd,pChange);
772 }
773 static FORCEINLINE HRESULT ITextStoreACP_RequestSupportedAttrs(ITextStoreACP* This,DWORD dwFlags,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs) {
774     return This->lpVtbl->RequestSupportedAttrs(This,dwFlags,cFilterAttrs,paFilterAttrs);
775 }
776 static FORCEINLINE HRESULT ITextStoreACP_RequestAttrsAtPosition(ITextStoreACP* This,LONG acpPos,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags) {
777     return This->lpVtbl->RequestAttrsAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags);
778 }
779 static FORCEINLINE HRESULT ITextStoreACP_RequestAttrsTransitioningAtPosition(ITextStoreACP* This,LONG acpPos,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags) {
780     return This->lpVtbl->RequestAttrsTransitioningAtPosition(This,acpPos,cFilterAttrs,paFilterAttrs,dwFlags);
781 }
782 static FORCEINLINE HRESULT ITextStoreACP_FindNextAttrTransition(ITextStoreACP* This,LONG acpStart,LONG acpHalt,ULONG cFilterAttrs,const TS_ATTRID *paFilterAttrs,DWORD dwFlags,LONG *pacpNext,WINBOOL *pfFound,LONG *plFoundOffset) {
783     return This->lpVtbl->FindNextAttrTransition(This,acpStart,acpHalt,cFilterAttrs,paFilterAttrs,dwFlags,pacpNext,pfFound,plFoundOffset);
784 }
785 static FORCEINLINE HRESULT ITextStoreACP_RetrieveRequestedAttrs(ITextStoreACP* This,ULONG ulCount,TS_ATTRVAL *paAttrVals,ULONG *pcFetched) {
786     return This->lpVtbl->RetrieveRequestedAttrs(This,ulCount,paAttrVals,pcFetched);
787 }
788 static FORCEINLINE HRESULT ITextStoreACP_GetEndACP(ITextStoreACP* This,LONG *pacp) {
789     return This->lpVtbl->GetEndACP(This,pacp);
790 }
791 static FORCEINLINE HRESULT ITextStoreACP_GetActiveView(ITextStoreACP* This,TsViewCookie *pvcView) {
792     return This->lpVtbl->GetActiveView(This,pvcView);
793 }
794 static FORCEINLINE HRESULT ITextStoreACP_GetACPFromPoint(ITextStoreACP* This,TsViewCookie vcView,const POINT *ptScreen,DWORD dwFlags,LONG *pacp) {
795     return This->lpVtbl->GetACPFromPoint(This,vcView,ptScreen,dwFlags,pacp);
796 }
797 static FORCEINLINE HRESULT ITextStoreACP_GetTextExt(ITextStoreACP* This,TsViewCookie vcView,LONG acpStart,LONG acpEnd,RECT *prc,WINBOOL *pfClipped) {
798     return This->lpVtbl->GetTextExt(This,vcView,acpStart,acpEnd,prc,pfClipped);
799 }
800 static FORCEINLINE HRESULT ITextStoreACP_GetScreenExt(ITextStoreACP* This,TsViewCookie vcView,RECT *prc) {
801     return This->lpVtbl->GetScreenExt(This,vcView,prc);
802 }
803 static FORCEINLINE HRESULT ITextStoreACP_GetWnd(ITextStoreACP* This,TsViewCookie vcView,HWND *phwnd) {
804     return This->lpVtbl->GetWnd(This,vcView,phwnd);
805 }
806 #endif
807 #endif
808 
809 #endif
810 
811 
812 #endif  /* __ITextStoreACP_INTERFACE_DEFINED__ */
813 
814 /* Begin additional prototypes for all interfaces */
815 
816 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
817 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
818 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
819 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
820 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
821 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
822 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
823 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
824 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
825 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
826 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
827 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
828 
829 /* End additional prototypes */
830 
831 #ifdef __cplusplus
832 }
833 #endif
834 
835 #endif /* __textstor_h__ */
836