1 /*** Autogenerated by WIDL 6.4 from include/msinkaut.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 __msinkaut_h__
17 #define __msinkaut_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IInkExtendedProperty_FWD_DEFINED__
22 #define __IInkExtendedProperty_FWD_DEFINED__
23 typedef interface IInkExtendedProperty IInkExtendedProperty;
24 #ifdef __cplusplus
25 interface IInkExtendedProperty;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IInkExtendedProperties_FWD_DEFINED__
30 #define __IInkExtendedProperties_FWD_DEFINED__
31 typedef interface IInkExtendedProperties IInkExtendedProperties;
32 #ifdef __cplusplus
33 interface IInkExtendedProperties;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IInkDrawingAttributes_FWD_DEFINED__
38 #define __IInkDrawingAttributes_FWD_DEFINED__
39 typedef interface IInkDrawingAttributes IInkDrawingAttributes;
40 #ifdef __cplusplus
41 interface IInkDrawingAttributes;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IInkRectangle_FWD_DEFINED__
46 #define __IInkRectangle_FWD_DEFINED__
47 typedef interface IInkRectangle IInkRectangle;
48 #ifdef __cplusplus
49 interface IInkRectangle;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IInkTablet_FWD_DEFINED__
54 #define __IInkTablet_FWD_DEFINED__
55 typedef interface IInkTablet IInkTablet;
56 #ifdef __cplusplus
57 interface IInkTablet;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IInkCursorButton_FWD_DEFINED__
62 #define __IInkCursorButton_FWD_DEFINED__
63 typedef interface IInkCursorButton IInkCursorButton;
64 #ifdef __cplusplus
65 interface IInkCursorButton;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IInkCursorButtons_FWD_DEFINED__
70 #define __IInkCursorButtons_FWD_DEFINED__
71 typedef interface IInkCursorButtons IInkCursorButtons;
72 #ifdef __cplusplus
73 interface IInkCursorButtons;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IInkCursor_FWD_DEFINED__
78 #define __IInkCursor_FWD_DEFINED__
79 typedef interface IInkCursor IInkCursor;
80 #ifdef __cplusplus
81 interface IInkCursor;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IInkTransform_FWD_DEFINED__
86 #define __IInkTransform_FWD_DEFINED__
87 typedef interface IInkTransform IInkTransform;
88 #ifdef __cplusplus
89 interface IInkTransform;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __IInkRecognitionAlternates_FWD_DEFINED__
94 #define __IInkRecognitionAlternates_FWD_DEFINED__
95 typedef interface IInkRecognitionAlternates IInkRecognitionAlternates;
96 #ifdef __cplusplus
97 interface IInkRecognitionAlternates;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __IInkRecognitionAlternate_FWD_DEFINED__
102 #define __IInkRecognitionAlternate_FWD_DEFINED__
103 typedef interface IInkRecognitionAlternate IInkRecognitionAlternate;
104 #ifdef __cplusplus
105 interface IInkRecognitionAlternate;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __IInkRecognitionResult_FWD_DEFINED__
110 #define __IInkRecognitionResult_FWD_DEFINED__
111 typedef interface IInkRecognitionResult IInkRecognitionResult;
112 #ifdef __cplusplus
113 interface IInkRecognitionResult;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IInkStrokeDisp_FWD_DEFINED__
118 #define __IInkStrokeDisp_FWD_DEFINED__
119 typedef interface IInkStrokeDisp IInkStrokeDisp;
120 #ifdef __cplusplus
121 interface IInkStrokeDisp;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __IInkCustomStrokes_FWD_DEFINED__
126 #define __IInkCustomStrokes_FWD_DEFINED__
127 typedef interface IInkCustomStrokes IInkCustomStrokes;
128 #ifdef __cplusplus
129 interface IInkCustomStrokes;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __IInkDisp_FWD_DEFINED__
134 #define __IInkDisp_FWD_DEFINED__
135 typedef interface IInkDisp IInkDisp;
136 #ifdef __cplusplus
137 interface IInkDisp;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __IInkStrokes_FWD_DEFINED__
142 #define __IInkStrokes_FWD_DEFINED__
143 typedef interface IInkStrokes IInkStrokes;
144 #ifdef __cplusplus
145 interface IInkStrokes;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __IInkRenderer_FWD_DEFINED__
150 #define __IInkRenderer_FWD_DEFINED__
151 typedef interface IInkRenderer IInkRenderer;
152 #ifdef __cplusplus
153 interface IInkRenderer;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __IInkCursors_FWD_DEFINED__
158 #define __IInkCursors_FWD_DEFINED__
159 typedef interface IInkCursors IInkCursors;
160 #ifdef __cplusplus
161 interface IInkCursors;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __IInkCollector_FWD_DEFINED__
166 #define __IInkCollector_FWD_DEFINED__
167 typedef interface IInkCollector IInkCollector;
168 #ifdef __cplusplus
169 interface IInkCollector;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef ___IInkCollectorEvents_FWD_DEFINED__
174 #define ___IInkCollectorEvents_FWD_DEFINED__
175 typedef interface _IInkCollectorEvents _IInkCollectorEvents;
176 #ifdef __cplusplus
177 interface _IInkCollectorEvents;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __InkCollector_FWD_DEFINED__
182 #define __InkCollector_FWD_DEFINED__
183 #ifdef __cplusplus
184 typedef class InkCollector InkCollector;
185 #else
186 typedef struct InkCollector InkCollector;
187 #endif /* defined __cplusplus */
188 #endif /* defined __InkCollector_FWD_DEFINED__ */
189 
190 /* Headers for imported files */
191 
192 #include <oaidl.h>
193 #include <ocidl.h>
194 #include <tpcshrd.h>
195 
196 #ifdef __cplusplus
197 extern "C" {
198 #endif
199 
200 typedef enum InkRasterOperation {
201     IRO_Black = 1,
202     IRO_NotMergePen = 2,
203     IRO_MaskNotPen = 3,
204     IRO_NotCopyPen = 4,
205     IRO_MaskPenNot = 5,
206     IRO_Not = 6,
207     IRO_XOrPen = 7,
208     IRO_NotMaskPen = 8,
209     IRO_MaskPen = 9,
210     IRO_NotXOrPen = 10,
211     IRO_NoOperation = 11,
212     IRO_MergeNotPen = 12,
213     IRO_CopyPen = 13,
214     IRO_MergePenNot = 14,
215     IRO_MergePen = 15,
216     IRO_White = 16
217 } InkRasterOperation;
218 typedef enum InkPenTip {
219     IPT_Ball = 0,
220     IPT_Rectangle = 1
221 } InkPenTip;
222 typedef enum TabletHardwareCapabilities {
223     THWC_Integrated = 0x1,
224     THWC_CursorMustTouch = 0x2,
225     THWC_HardProximity = 0x4,
226     THWC_CursorsHavePhysicalIds = 0x8
227 } TabletHardwareCapabilities;
228 typedef enum TabletPropertyMetricUnit {
229     TPMU_Default = 0,
230     TPMU_Inches = 1,
231     TPMU_Centimeters = 2,
232     TPMU_Degrees = 3,
233     TPMU_Radians = 4,
234     TPMU_Seconds = 5,
235     TPMU_Pounds = 6,
236     TPMU_Grams = 7
237 } TabletPropertyMetricUnit;
238 typedef enum InkCursorButtonState {
239     ICBS_Unavailable = 0,
240     ICBS_Up = 1,
241     ICBS_Down = 2
242 } InkCursorButtonState;
243 typedef enum InkRecognitionConfidence {
244     IRC_Strong = 0,
245     IRC_Intermediate = 1,
246     IRC_Poor = 2
247 } InkRecognitionConfidence;
248 typedef enum InkBoundingBoxMode {
249     IBBM_Default = 0,
250     IBBM_NoCurveFit = 1,
251     IBBM_CurveFit = 2,
252     IBBM_PointsOnly = 3,
253     IBBM_Union = 4
254 } InkBoundingBoxMode;
255 typedef enum InkExtractFlags {
256     IEF_CopyFromOriginal = 0,
257     IEF_RemoveFromOriginal = 1,
258     IEF_Default = IEF_RemoveFromOriginal
259 } InkExtractFlags;
260 typedef enum InkPersistenceFormat {
261     IPF_InkSerializedFormat = 0,
262     IPF_Base64InkSerializedFormat = 1,
263     IPF_GIF = 2,
264     IPF_Base64GIF = 3
265 } InkPersistenceFormat;
266 typedef enum InkPersistenceCompressionMode {
267     IPCM_Default = 0,
268     IPCM_MaximumCompression = 1,
269     IPCM_NoCompression = 2
270 } InkPersistenceCompressionMode;
271 typedef enum InkClipboardFormats {
272     ICF_None = 0x0,
273     ICF_InkSerializedFormat = 0x1,
274     ICF_SketchInk = 0x2,
275     ICF_TextInk = 0x6,
276     ICF_EnhancedMetafile = 0x8,
277     ICF_Metafile = 0x20,
278     ICF_Bitmap = 0x40,
279     ICF_PasteMask = 0x7,
280     ICF_CopyMask = 0x7f,
281     ICF_Default = ICF_CopyMask
282 } InkClipboardFormats;
283 typedef enum InkClipboardModes {
284     ICB_Copy = 0x0,
285     ICB_Cut = 0x1,
286     ICB_ExtractOnly = 0x30,
287     ICB_DelayedCopy = 0x20,
288     ICB_Default = ICB_Copy
289 } InkClipboardModes;
290 typedef enum InkCollectionMode {
291     ICM_InkOnly = 0,
292     ICM_GestureOnly = 1,
293     ICM_InkAndGesture = 2
294 } InkCollectionMode;
295 typedef enum InkMousePointer {
296     IMP_Default = 0,
297     IMP_Arrow = 1,
298     IMP_Crosshair = 2,
299     IMP_Ibeam = 3,
300     IMP_SizeNESW = 4,
301     IMP_SizeNS = 5,
302     IMP_SizeNWSE = 6,
303     IMP_SizeWE = 7,
304     IMP_UpArrow = 8,
305     IMP_Hourglass = 9,
306     IMP_NoDrop = 10,
307     IMP_ArrowHourglass = 11,
308     IMP_ArrowQuestion = 12,
309     IMP_SizeAll = 13,
310     IMP_Hand = 14,
311     IMP_Custom = 99
312 } InkMousePointer;
313 typedef enum InkApplicationGesture {
314     IAG_AllGestures = 0x0,
315     IAG_NoGesture = 0xf000,
316     IAG_Scratchout = 0xf001,
317     IAG_Triangle = 0xf002,
318     IAG_Square = 0xf003,
319     IAG_Star = 0xf004,
320     IAG_Check = 0xf005,
321     IAG_Curlicue = 0xf010,
322     IAG_DoubleCurlicue = 0xf011,
323     IAG_Circle = 0xf020,
324     IAG_DoubleCircle = 0xf021,
325     IAG_SemiCircleLeft = 0xf028,
326     IAG_SemiCircleRight = 0xf029,
327     IAG_ChevronUp = 0xf030,
328     IAG_ChevronDown = 0xf031,
329     IAG_ChevronLeft = 0xf032,
330     IAG_ChevronRight = 0xf033,
331     IAG_ArrowUp = 0xf038,
332     IAG_ArrowDown = 0xf039,
333     IAG_ArrowLeft = 0xf03a,
334     IAG_ArrowRight = 0xf03b,
335     IAG_Up = 0xf058,
336     IAG_Down = 0xf059,
337     IAG_Left = 0xf05a,
338     IAG_Right = 0xf05b,
339     IAG_UpDown = 0xf060,
340     IAG_DownUp = 0xf061,
341     IAG_LeftRight = 0xf062,
342     IAG_RightLeft = 0xf063,
343     IAG_UpLeftLong = 0xf064,
344     IAG_UpRightLong = 0xf065,
345     IAG_DownLeftLong = 0xf066,
346     IAG_DownRightLong = 0xf067,
347     IAG_UpLeft = 0xf068,
348     IAG_UpRight = 0xf069,
349     IAG_DownLeft = 0xf06a,
350     IAG_DownRight = 0xf06b,
351     IAG_LeftUp = 0xf06c,
352     IAG_LeftDown = 0xf06d,
353     IAG_RightUp = 0xf06e,
354     IAG_RightDown = 0xf06f,
355     IAG_Exclamation = 0xf0a4,
356     IAG_Tap = 0xf0f0,
357     IAG_DoubleTap = 0xf0f1
358 } InkApplicationGesture;
359 typedef enum InkCollectorEventInterest {
360     ICEI_DefaultEvents = -1,
361     ICEI_CursorDown = ICEI_DefaultEvents + 1,
362     ICEI_Stroke = ICEI_CursorDown + 1,
363     ICEI_NewPackets = ICEI_Stroke + 1,
364     ICEI_NewInAirPackets = ICEI_NewPackets + 1,
365     ICEI_CursorButtonDown = ICEI_NewInAirPackets + 1,
366     ICEI_CursorButtonUp = ICEI_CursorButtonDown + 1,
367     ICEI_CursorInRange = ICEI_CursorButtonUp + 1,
368     ICEI_CursorOutOfRange = ICEI_CursorInRange + 1,
369     ICEI_SystemGesture = ICEI_CursorOutOfRange + 1,
370     ICEI_TabletAdded = ICEI_SystemGesture + 1,
371     ICEI_TabletRemoved = ICEI_TabletAdded + 1,
372     ICEI_MouseDown = ICEI_TabletRemoved + 1,
373     ICEI_MouseMove = ICEI_MouseDown + 1,
374     ICEI_MouseUp = ICEI_MouseMove + 1,
375     ICEI_MouseWheel = ICEI_MouseUp + 1,
376     ICEI_DblClick = ICEI_MouseWheel + 1,
377     ICEI_AllEvents = ICEI_DblClick + 1
378 } InkCollectorEventInterest;
379 typedef enum DISPID_InkCollectorEvent {
380     DISPID_ICEStroke = 1,
381     DISPID_ICECursorDown = DISPID_ICEStroke + 1,
382     DISPID_ICENewPackets = DISPID_ICECursorDown + 1,
383     DISPID_ICENewInAirPackets = DISPID_ICENewPackets + 1,
384     DISPID_ICECursorButtonDown = DISPID_ICENewInAirPackets + 1,
385     DISPID_ICECursorButtonUp = DISPID_ICECursorButtonDown + 1,
386     DISPID_ICECursorInRange = DISPID_ICECursorButtonUp + 1,
387     DISPID_ICECursorOutOfRange = DISPID_ICECursorInRange + 1,
388     DISPID_ICESystemGesture = DISPID_ICECursorOutOfRange + 1,
389     DISPID_ICEGesture = DISPID_ICESystemGesture + 1,
390     DISPID_ICETabletAdded = DISPID_ICEGesture + 1,
391     DISPID_ICETabletRemoved = DISPID_ICETabletAdded + 1,
392     DISPID_IOEPainting = DISPID_ICETabletRemoved + 1,
393     DISPID_IOEPainted = DISPID_IOEPainting + 1,
394     DISPID_IOESelectionChanging = DISPID_IOEPainted + 1,
395     DISPID_IOESelectionChanged = DISPID_IOESelectionChanging + 1,
396     DISPID_IOESelectionMoving = DISPID_IOESelectionChanged + 1,
397     DISPID_IOESelectionMoved = DISPID_IOESelectionMoving + 1,
398     DISPID_IOESelectionResizing = DISPID_IOESelectionMoved + 1,
399     DISPID_IOESelectionResized = DISPID_IOESelectionResizing + 1,
400     DISPID_IOEStrokesDeleting = DISPID_IOESelectionResized + 1,
401     DISPID_IOEStrokesDeleted = DISPID_IOEStrokesDeleting + 1,
402     DISPID_IPEChangeUICues = DISPID_IOEStrokesDeleted + 1,
403     DISPID_IPEClick = DISPID_IPEChangeUICues + 1,
404     DISPID_IPEDblClick = DISPID_IPEClick + 1,
405     DISPID_IPEInvalidated = DISPID_IPEDblClick + 1,
406     DISPID_IPEMouseDown = DISPID_IPEInvalidated + 1,
407     DISPID_IPEMouseEnter = DISPID_IPEMouseDown + 1,
408     DISPID_IPEMouseHover = DISPID_IPEMouseEnter + 1,
409     DISPID_IPEMouseLeave = DISPID_IPEMouseHover + 1,
410     DISPID_IPEMouseMove = DISPID_IPEMouseLeave + 1,
411     DISPID_IPEMouseUp = DISPID_IPEMouseMove + 1,
412     DISPID_IPEMouseWheel = DISPID_IPEMouseUp + 1,
413     DISPID_IPESizeModeChanged = DISPID_IPEMouseWheel + 1,
414     DISPID_IPEStyleChanged = DISPID_IPESizeModeChanged + 1,
415     DISPID_IPESystemColorsChanged = DISPID_IPEStyleChanged + 1,
416     DISPID_IPEKeyDown = DISPID_IPESystemColorsChanged + 1,
417     DISPID_IPEKeyPress = DISPID_IPEKeyDown + 1,
418     DISPID_IPEKeyUp = DISPID_IPEKeyPress + 1,
419     DISPID_IPEResize = DISPID_IPEKeyUp + 1,
420     DISPID_IPESizeChanged = DISPID_IPEResize + 1
421 } DISPID_InkCollectorEvent;
422 #ifndef __IInkDisp_FWD_DEFINED__
423 #define __IInkDisp_FWD_DEFINED__
424 typedef interface IInkDisp IInkDisp;
425 #ifdef __cplusplus
426 interface IInkDisp;
427 #endif /* __cplusplus */
428 #endif
429 
430 #ifndef __IInkStrokes_FWD_DEFINED__
431 #define __IInkStrokes_FWD_DEFINED__
432 typedef interface IInkStrokes IInkStrokes;
433 #ifdef __cplusplus
434 interface IInkStrokes;
435 #endif /* __cplusplus */
436 #endif
437 
438 #ifndef __IInkRecognitionAlternate_FWD_DEFINED__
439 #define __IInkRecognitionAlternate_FWD_DEFINED__
440 typedef interface IInkRecognitionAlternate IInkRecognitionAlternate;
441 #ifdef __cplusplus
442 interface IInkRecognitionAlternate;
443 #endif /* __cplusplus */
444 #endif
445 
446 /*****************************************************************************
447  * IInkExtendedProperty interface
448  */
449 #ifndef __IInkExtendedProperty_INTERFACE_DEFINED__
450 #define __IInkExtendedProperty_INTERFACE_DEFINED__
451 
452 DEFINE_GUID(IID_IInkExtendedProperty, 0xdb489209, 0xb7c3, 0x411d, 0x90,0xf6, 0x15,0x48,0xcf,0xff,0x27,0x1e);
453 #if defined(__cplusplus) && !defined(CINTERFACE)
454 MIDL_INTERFACE("db489209-b7c3-411d-90f6-1548cfff271e")
455 IInkExtendedProperty : public IDispatch
456 {
457     virtual HRESULT STDMETHODCALLTYPE get_Guid(
458         BSTR *Guid) = 0;
459 
460     virtual HRESULT STDMETHODCALLTYPE get_Data(
461         VARIANT *Data) = 0;
462 
463     virtual HRESULT STDMETHODCALLTYPE put_Data(
464         VARIANT Data) = 0;
465 
466 };
467 #ifdef __CRT_UUID_DECL
468 __CRT_UUID_DECL(IInkExtendedProperty, 0xdb489209, 0xb7c3, 0x411d, 0x90,0xf6, 0x15,0x48,0xcf,0xff,0x27,0x1e)
469 #endif
470 #else
471 typedef struct IInkExtendedPropertyVtbl {
472     BEGIN_INTERFACE
473 
474     /*** IUnknown methods ***/
475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
476         IInkExtendedProperty *This,
477         REFIID riid,
478         void **ppvObject);
479 
480     ULONG (STDMETHODCALLTYPE *AddRef)(
481         IInkExtendedProperty *This);
482 
483     ULONG (STDMETHODCALLTYPE *Release)(
484         IInkExtendedProperty *This);
485 
486     /*** IDispatch methods ***/
487     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
488         IInkExtendedProperty *This,
489         UINT *pctinfo);
490 
491     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
492         IInkExtendedProperty *This,
493         UINT iTInfo,
494         LCID lcid,
495         ITypeInfo **ppTInfo);
496 
497     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
498         IInkExtendedProperty *This,
499         REFIID riid,
500         LPOLESTR *rgszNames,
501         UINT cNames,
502         LCID lcid,
503         DISPID *rgDispId);
504 
505     HRESULT (STDMETHODCALLTYPE *Invoke)(
506         IInkExtendedProperty *This,
507         DISPID dispIdMember,
508         REFIID riid,
509         LCID lcid,
510         WORD wFlags,
511         DISPPARAMS *pDispParams,
512         VARIANT *pVarResult,
513         EXCEPINFO *pExcepInfo,
514         UINT *puArgErr);
515 
516     /*** IInkExtendedProperty methods ***/
517     HRESULT (STDMETHODCALLTYPE *get_Guid)(
518         IInkExtendedProperty *This,
519         BSTR *Guid);
520 
521     HRESULT (STDMETHODCALLTYPE *get_Data)(
522         IInkExtendedProperty *This,
523         VARIANT *Data);
524 
525     HRESULT (STDMETHODCALLTYPE *put_Data)(
526         IInkExtendedProperty *This,
527         VARIANT Data);
528 
529     END_INTERFACE
530 } IInkExtendedPropertyVtbl;
531 
532 interface IInkExtendedProperty {
533     CONST_VTBL IInkExtendedPropertyVtbl* lpVtbl;
534 };
535 
536 #ifdef COBJMACROS
537 #ifndef WIDL_C_INLINE_WRAPPERS
538 /*** IUnknown methods ***/
539 #define IInkExtendedProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
540 #define IInkExtendedProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
541 #define IInkExtendedProperty_Release(This) (This)->lpVtbl->Release(This)
542 /*** IDispatch methods ***/
543 #define IInkExtendedProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
544 #define IInkExtendedProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
545 #define IInkExtendedProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
546 #define IInkExtendedProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
547 /*** IInkExtendedProperty methods ***/
548 #define IInkExtendedProperty_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
549 #define IInkExtendedProperty_get_Data(This,Data) (This)->lpVtbl->get_Data(This,Data)
550 #define IInkExtendedProperty_put_Data(This,Data) (This)->lpVtbl->put_Data(This,Data)
551 #else
552 /*** IUnknown methods ***/
553 static FORCEINLINE HRESULT IInkExtendedProperty_QueryInterface(IInkExtendedProperty* This,REFIID riid,void **ppvObject) {
554     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
555 }
556 static FORCEINLINE ULONG IInkExtendedProperty_AddRef(IInkExtendedProperty* This) {
557     return This->lpVtbl->AddRef(This);
558 }
559 static FORCEINLINE ULONG IInkExtendedProperty_Release(IInkExtendedProperty* This) {
560     return This->lpVtbl->Release(This);
561 }
562 /*** IDispatch methods ***/
563 static FORCEINLINE HRESULT IInkExtendedProperty_GetTypeInfoCount(IInkExtendedProperty* This,UINT *pctinfo) {
564     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
565 }
566 static FORCEINLINE HRESULT IInkExtendedProperty_GetTypeInfo(IInkExtendedProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
567     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
568 }
569 static FORCEINLINE HRESULT IInkExtendedProperty_GetIDsOfNames(IInkExtendedProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
570     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
571 }
572 static FORCEINLINE HRESULT IInkExtendedProperty_Invoke(IInkExtendedProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
573     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
574 }
575 /*** IInkExtendedProperty methods ***/
576 static FORCEINLINE HRESULT IInkExtendedProperty_get_Guid(IInkExtendedProperty* This,BSTR *Guid) {
577     return This->lpVtbl->get_Guid(This,Guid);
578 }
579 static FORCEINLINE HRESULT IInkExtendedProperty_get_Data(IInkExtendedProperty* This,VARIANT *Data) {
580     return This->lpVtbl->get_Data(This,Data);
581 }
582 static FORCEINLINE HRESULT IInkExtendedProperty_put_Data(IInkExtendedProperty* This,VARIANT Data) {
583     return This->lpVtbl->put_Data(This,Data);
584 }
585 #endif
586 #endif
587 
588 #endif
589 
590 
591 #endif  /* __IInkExtendedProperty_INTERFACE_DEFINED__ */
592 
593 /*****************************************************************************
594  * IInkExtendedProperties interface
595  */
596 #ifndef __IInkExtendedProperties_INTERFACE_DEFINED__
597 #define __IInkExtendedProperties_INTERFACE_DEFINED__
598 
599 DEFINE_GUID(IID_IInkExtendedProperties, 0x89f2a8be, 0x95a9, 0x4530, 0x8b,0x8f, 0x88,0xe9,0x71,0xe3,0xe2,0x5f);
600 #if defined(__cplusplus) && !defined(CINTERFACE)
601 MIDL_INTERFACE("89f2a8be-95a9-4530-8b8f-88e971e3e25f")
602 IInkExtendedProperties : public IDispatch
603 {
604     virtual HRESULT STDMETHODCALLTYPE get_Count(
605         LONG *Count) = 0;
606 
607     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
608         IUnknown **_NewEnum) = 0;
609 
610     virtual HRESULT STDMETHODCALLTYPE Item(
611         VARIANT Identifier,
612         IInkExtendedProperty **Item) = 0;
613 
614     virtual HRESULT STDMETHODCALLTYPE Add(
615         BSTR Guid,
616         VARIANT Data,
617         IInkExtendedProperty **InkExtendedProperty) = 0;
618 
619     virtual HRESULT STDMETHODCALLTYPE Remove(
620         VARIANT Identifier) = 0;
621 
622     virtual HRESULT STDMETHODCALLTYPE Clear(
623         ) = 0;
624 
625     virtual HRESULT STDMETHODCALLTYPE DoesPropertyExist(
626         BSTR Guid,
627         VARIANT_BOOL *DoesPropertyExist) = 0;
628 
629 };
630 #ifdef __CRT_UUID_DECL
631 __CRT_UUID_DECL(IInkExtendedProperties, 0x89f2a8be, 0x95a9, 0x4530, 0x8b,0x8f, 0x88,0xe9,0x71,0xe3,0xe2,0x5f)
632 #endif
633 #else
634 typedef struct IInkExtendedPropertiesVtbl {
635     BEGIN_INTERFACE
636 
637     /*** IUnknown methods ***/
638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
639         IInkExtendedProperties *This,
640         REFIID riid,
641         void **ppvObject);
642 
643     ULONG (STDMETHODCALLTYPE *AddRef)(
644         IInkExtendedProperties *This);
645 
646     ULONG (STDMETHODCALLTYPE *Release)(
647         IInkExtendedProperties *This);
648 
649     /*** IDispatch methods ***/
650     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
651         IInkExtendedProperties *This,
652         UINT *pctinfo);
653 
654     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
655         IInkExtendedProperties *This,
656         UINT iTInfo,
657         LCID lcid,
658         ITypeInfo **ppTInfo);
659 
660     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
661         IInkExtendedProperties *This,
662         REFIID riid,
663         LPOLESTR *rgszNames,
664         UINT cNames,
665         LCID lcid,
666         DISPID *rgDispId);
667 
668     HRESULT (STDMETHODCALLTYPE *Invoke)(
669         IInkExtendedProperties *This,
670         DISPID dispIdMember,
671         REFIID riid,
672         LCID lcid,
673         WORD wFlags,
674         DISPPARAMS *pDispParams,
675         VARIANT *pVarResult,
676         EXCEPINFO *pExcepInfo,
677         UINT *puArgErr);
678 
679     /*** IInkExtendedProperties methods ***/
680     HRESULT (STDMETHODCALLTYPE *get_Count)(
681         IInkExtendedProperties *This,
682         LONG *Count);
683 
684     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
685         IInkExtendedProperties *This,
686         IUnknown **_NewEnum);
687 
688     HRESULT (STDMETHODCALLTYPE *Item)(
689         IInkExtendedProperties *This,
690         VARIANT Identifier,
691         IInkExtendedProperty **Item);
692 
693     HRESULT (STDMETHODCALLTYPE *Add)(
694         IInkExtendedProperties *This,
695         BSTR Guid,
696         VARIANT Data,
697         IInkExtendedProperty **InkExtendedProperty);
698 
699     HRESULT (STDMETHODCALLTYPE *Remove)(
700         IInkExtendedProperties *This,
701         VARIANT Identifier);
702 
703     HRESULT (STDMETHODCALLTYPE *Clear)(
704         IInkExtendedProperties *This);
705 
706     HRESULT (STDMETHODCALLTYPE *DoesPropertyExist)(
707         IInkExtendedProperties *This,
708         BSTR Guid,
709         VARIANT_BOOL *DoesPropertyExist);
710 
711     END_INTERFACE
712 } IInkExtendedPropertiesVtbl;
713 
714 interface IInkExtendedProperties {
715     CONST_VTBL IInkExtendedPropertiesVtbl* lpVtbl;
716 };
717 
718 #ifdef COBJMACROS
719 #ifndef WIDL_C_INLINE_WRAPPERS
720 /*** IUnknown methods ***/
721 #define IInkExtendedProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
722 #define IInkExtendedProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
723 #define IInkExtendedProperties_Release(This) (This)->lpVtbl->Release(This)
724 /*** IDispatch methods ***/
725 #define IInkExtendedProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
726 #define IInkExtendedProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
727 #define IInkExtendedProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
728 #define IInkExtendedProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
729 /*** IInkExtendedProperties methods ***/
730 #define IInkExtendedProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
731 #define IInkExtendedProperties_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
732 #define IInkExtendedProperties_Item(This,Identifier,Item) (This)->lpVtbl->Item(This,Identifier,Item)
733 #define IInkExtendedProperties_Add(This,Guid,Data,InkExtendedProperty) (This)->lpVtbl->Add(This,Guid,Data,InkExtendedProperty)
734 #define IInkExtendedProperties_Remove(This,Identifier) (This)->lpVtbl->Remove(This,Identifier)
735 #define IInkExtendedProperties_Clear(This) (This)->lpVtbl->Clear(This)
736 #define IInkExtendedProperties_DoesPropertyExist(This,Guid,DoesPropertyExist) (This)->lpVtbl->DoesPropertyExist(This,Guid,DoesPropertyExist)
737 #else
738 /*** IUnknown methods ***/
739 static FORCEINLINE HRESULT IInkExtendedProperties_QueryInterface(IInkExtendedProperties* This,REFIID riid,void **ppvObject) {
740     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
741 }
742 static FORCEINLINE ULONG IInkExtendedProperties_AddRef(IInkExtendedProperties* This) {
743     return This->lpVtbl->AddRef(This);
744 }
745 static FORCEINLINE ULONG IInkExtendedProperties_Release(IInkExtendedProperties* This) {
746     return This->lpVtbl->Release(This);
747 }
748 /*** IDispatch methods ***/
749 static FORCEINLINE HRESULT IInkExtendedProperties_GetTypeInfoCount(IInkExtendedProperties* This,UINT *pctinfo) {
750     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
751 }
752 static FORCEINLINE HRESULT IInkExtendedProperties_GetTypeInfo(IInkExtendedProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
753     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
754 }
755 static FORCEINLINE HRESULT IInkExtendedProperties_GetIDsOfNames(IInkExtendedProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
756     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
757 }
758 static FORCEINLINE HRESULT IInkExtendedProperties_Invoke(IInkExtendedProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
759     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
760 }
761 /*** IInkExtendedProperties methods ***/
762 static FORCEINLINE HRESULT IInkExtendedProperties_get_Count(IInkExtendedProperties* This,LONG *Count) {
763     return This->lpVtbl->get_Count(This,Count);
764 }
765 static FORCEINLINE HRESULT IInkExtendedProperties_get__NewEnum(IInkExtendedProperties* This,IUnknown **_NewEnum) {
766     return This->lpVtbl->get__NewEnum(This,_NewEnum);
767 }
768 static FORCEINLINE HRESULT IInkExtendedProperties_Item(IInkExtendedProperties* This,VARIANT Identifier,IInkExtendedProperty **Item) {
769     return This->lpVtbl->Item(This,Identifier,Item);
770 }
771 static FORCEINLINE HRESULT IInkExtendedProperties_Add(IInkExtendedProperties* This,BSTR Guid,VARIANT Data,IInkExtendedProperty **InkExtendedProperty) {
772     return This->lpVtbl->Add(This,Guid,Data,InkExtendedProperty);
773 }
774 static FORCEINLINE HRESULT IInkExtendedProperties_Remove(IInkExtendedProperties* This,VARIANT Identifier) {
775     return This->lpVtbl->Remove(This,Identifier);
776 }
777 static FORCEINLINE HRESULT IInkExtendedProperties_Clear(IInkExtendedProperties* This) {
778     return This->lpVtbl->Clear(This);
779 }
780 static FORCEINLINE HRESULT IInkExtendedProperties_DoesPropertyExist(IInkExtendedProperties* This,BSTR Guid,VARIANT_BOOL *DoesPropertyExist) {
781     return This->lpVtbl->DoesPropertyExist(This,Guid,DoesPropertyExist);
782 }
783 #endif
784 #endif
785 
786 #endif
787 
788 
789 #endif  /* __IInkExtendedProperties_INTERFACE_DEFINED__ */
790 
791 /*****************************************************************************
792  * IInkDrawingAttributes interface
793  */
794 #ifndef __IInkDrawingAttributes_INTERFACE_DEFINED__
795 #define __IInkDrawingAttributes_INTERFACE_DEFINED__
796 
797 DEFINE_GUID(IID_IInkDrawingAttributes, 0xbf519b75, 0x0a15, 0x4623, 0xad,0xc9, 0xc0,0x0d,0x43,0x6a,0x80,0x92);
798 #if defined(__cplusplus) && !defined(CINTERFACE)
799 MIDL_INTERFACE("bf519b75-0a15-4623-adc9-c00d436a8092")
800 IInkDrawingAttributes : public IDispatch
801 {
802     virtual HRESULT STDMETHODCALLTYPE get_Color(
803         LONG *CurrentColor) = 0;
804 
805     virtual HRESULT STDMETHODCALLTYPE put_Color(
806         LONG NewColor) = 0;
807 
808     virtual HRESULT STDMETHODCALLTYPE get_Width(
809         float *CurrentWidth) = 0;
810 
811     virtual HRESULT STDMETHODCALLTYPE put_Width(
812         float NewWidth) = 0;
813 
814     virtual HRESULT STDMETHODCALLTYPE get_Height(
815         float *CurrentHeight) = 0;
816 
817     virtual HRESULT STDMETHODCALLTYPE put_Height(
818         float NewHeight) = 0;
819 
820     virtual HRESULT STDMETHODCALLTYPE get_FitToCurve(
821         VARIANT_BOOL *Flag) = 0;
822 
823     virtual HRESULT STDMETHODCALLTYPE put_FitToCurve(
824         VARIANT_BOOL Flag) = 0;
825 
826     virtual HRESULT STDMETHODCALLTYPE get_IgnorePressure(
827         VARIANT_BOOL *Flag) = 0;
828 
829     virtual HRESULT STDMETHODCALLTYPE put_IgnorePressure(
830         VARIANT_BOOL Flag) = 0;
831 
832     virtual HRESULT STDMETHODCALLTYPE get_AntiAliased(
833         VARIANT_BOOL *Flag) = 0;
834 
835     virtual HRESULT STDMETHODCALLTYPE put_AntiAliased(
836         VARIANT_BOOL Flag) = 0;
837 
838     virtual HRESULT STDMETHODCALLTYPE get_Transparency(
839         LONG *CurrentTransparency) = 0;
840 
841     virtual HRESULT STDMETHODCALLTYPE put_Transparency(
842         LONG NewTransparency) = 0;
843 
844     virtual HRESULT STDMETHODCALLTYPE get_RasterOperation(
845         InkRasterOperation *CurrentRasterOperation) = 0;
846 
847     virtual HRESULT STDMETHODCALLTYPE put_RasterOperation(
848         InkRasterOperation NewRasterOperation) = 0;
849 
850     virtual HRESULT STDMETHODCALLTYPE get_PenTip(
851         InkPenTip *CurrentPenTip) = 0;
852 
853     virtual HRESULT STDMETHODCALLTYPE put_PenTip(
854         InkPenTip NewPenTip) = 0;
855 
856     virtual HRESULT STDMETHODCALLTYPE get_ExtendedProperties(
857         IInkExtendedProperties **Properties) = 0;
858 
859     virtual HRESULT STDMETHODCALLTYPE Clone(
860         IInkDrawingAttributes **DrawingAttributes) = 0;
861 
862 };
863 #ifdef __CRT_UUID_DECL
864 __CRT_UUID_DECL(IInkDrawingAttributes, 0xbf519b75, 0x0a15, 0x4623, 0xad,0xc9, 0xc0,0x0d,0x43,0x6a,0x80,0x92)
865 #endif
866 #else
867 typedef struct IInkDrawingAttributesVtbl {
868     BEGIN_INTERFACE
869 
870     /*** IUnknown methods ***/
871     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
872         IInkDrawingAttributes *This,
873         REFIID riid,
874         void **ppvObject);
875 
876     ULONG (STDMETHODCALLTYPE *AddRef)(
877         IInkDrawingAttributes *This);
878 
879     ULONG (STDMETHODCALLTYPE *Release)(
880         IInkDrawingAttributes *This);
881 
882     /*** IDispatch methods ***/
883     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
884         IInkDrawingAttributes *This,
885         UINT *pctinfo);
886 
887     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
888         IInkDrawingAttributes *This,
889         UINT iTInfo,
890         LCID lcid,
891         ITypeInfo **ppTInfo);
892 
893     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
894         IInkDrawingAttributes *This,
895         REFIID riid,
896         LPOLESTR *rgszNames,
897         UINT cNames,
898         LCID lcid,
899         DISPID *rgDispId);
900 
901     HRESULT (STDMETHODCALLTYPE *Invoke)(
902         IInkDrawingAttributes *This,
903         DISPID dispIdMember,
904         REFIID riid,
905         LCID lcid,
906         WORD wFlags,
907         DISPPARAMS *pDispParams,
908         VARIANT *pVarResult,
909         EXCEPINFO *pExcepInfo,
910         UINT *puArgErr);
911 
912     /*** IInkDrawingAttributes methods ***/
913     HRESULT (STDMETHODCALLTYPE *get_Color)(
914         IInkDrawingAttributes *This,
915         LONG *CurrentColor);
916 
917     HRESULT (STDMETHODCALLTYPE *put_Color)(
918         IInkDrawingAttributes *This,
919         LONG NewColor);
920 
921     HRESULT (STDMETHODCALLTYPE *get_Width)(
922         IInkDrawingAttributes *This,
923         float *CurrentWidth);
924 
925     HRESULT (STDMETHODCALLTYPE *put_Width)(
926         IInkDrawingAttributes *This,
927         float NewWidth);
928 
929     HRESULT (STDMETHODCALLTYPE *get_Height)(
930         IInkDrawingAttributes *This,
931         float *CurrentHeight);
932 
933     HRESULT (STDMETHODCALLTYPE *put_Height)(
934         IInkDrawingAttributes *This,
935         float NewHeight);
936 
937     HRESULT (STDMETHODCALLTYPE *get_FitToCurve)(
938         IInkDrawingAttributes *This,
939         VARIANT_BOOL *Flag);
940 
941     HRESULT (STDMETHODCALLTYPE *put_FitToCurve)(
942         IInkDrawingAttributes *This,
943         VARIANT_BOOL Flag);
944 
945     HRESULT (STDMETHODCALLTYPE *get_IgnorePressure)(
946         IInkDrawingAttributes *This,
947         VARIANT_BOOL *Flag);
948 
949     HRESULT (STDMETHODCALLTYPE *put_IgnorePressure)(
950         IInkDrawingAttributes *This,
951         VARIANT_BOOL Flag);
952 
953     HRESULT (STDMETHODCALLTYPE *get_AntiAliased)(
954         IInkDrawingAttributes *This,
955         VARIANT_BOOL *Flag);
956 
957     HRESULT (STDMETHODCALLTYPE *put_AntiAliased)(
958         IInkDrawingAttributes *This,
959         VARIANT_BOOL Flag);
960 
961     HRESULT (STDMETHODCALLTYPE *get_Transparency)(
962         IInkDrawingAttributes *This,
963         LONG *CurrentTransparency);
964 
965     HRESULT (STDMETHODCALLTYPE *put_Transparency)(
966         IInkDrawingAttributes *This,
967         LONG NewTransparency);
968 
969     HRESULT (STDMETHODCALLTYPE *get_RasterOperation)(
970         IInkDrawingAttributes *This,
971         InkRasterOperation *CurrentRasterOperation);
972 
973     HRESULT (STDMETHODCALLTYPE *put_RasterOperation)(
974         IInkDrawingAttributes *This,
975         InkRasterOperation NewRasterOperation);
976 
977     HRESULT (STDMETHODCALLTYPE *get_PenTip)(
978         IInkDrawingAttributes *This,
979         InkPenTip *CurrentPenTip);
980 
981     HRESULT (STDMETHODCALLTYPE *put_PenTip)(
982         IInkDrawingAttributes *This,
983         InkPenTip NewPenTip);
984 
985     HRESULT (STDMETHODCALLTYPE *get_ExtendedProperties)(
986         IInkDrawingAttributes *This,
987         IInkExtendedProperties **Properties);
988 
989     HRESULT (STDMETHODCALLTYPE *Clone)(
990         IInkDrawingAttributes *This,
991         IInkDrawingAttributes **DrawingAttributes);
992 
993     END_INTERFACE
994 } IInkDrawingAttributesVtbl;
995 
996 interface IInkDrawingAttributes {
997     CONST_VTBL IInkDrawingAttributesVtbl* lpVtbl;
998 };
999 
1000 #ifdef COBJMACROS
1001 #ifndef WIDL_C_INLINE_WRAPPERS
1002 /*** IUnknown methods ***/
1003 #define IInkDrawingAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1004 #define IInkDrawingAttributes_AddRef(This) (This)->lpVtbl->AddRef(This)
1005 #define IInkDrawingAttributes_Release(This) (This)->lpVtbl->Release(This)
1006 /*** IDispatch methods ***/
1007 #define IInkDrawingAttributes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1008 #define IInkDrawingAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1009 #define IInkDrawingAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1010 #define IInkDrawingAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1011 /*** IInkDrawingAttributes methods ***/
1012 #define IInkDrawingAttributes_get_Color(This,CurrentColor) (This)->lpVtbl->get_Color(This,CurrentColor)
1013 #define IInkDrawingAttributes_put_Color(This,NewColor) (This)->lpVtbl->put_Color(This,NewColor)
1014 #define IInkDrawingAttributes_get_Width(This,CurrentWidth) (This)->lpVtbl->get_Width(This,CurrentWidth)
1015 #define IInkDrawingAttributes_put_Width(This,NewWidth) (This)->lpVtbl->put_Width(This,NewWidth)
1016 #define IInkDrawingAttributes_get_Height(This,CurrentHeight) (This)->lpVtbl->get_Height(This,CurrentHeight)
1017 #define IInkDrawingAttributes_put_Height(This,NewHeight) (This)->lpVtbl->put_Height(This,NewHeight)
1018 #define IInkDrawingAttributes_get_FitToCurve(This,Flag) (This)->lpVtbl->get_FitToCurve(This,Flag)
1019 #define IInkDrawingAttributes_put_FitToCurve(This,Flag) (This)->lpVtbl->put_FitToCurve(This,Flag)
1020 #define IInkDrawingAttributes_get_IgnorePressure(This,Flag) (This)->lpVtbl->get_IgnorePressure(This,Flag)
1021 #define IInkDrawingAttributes_put_IgnorePressure(This,Flag) (This)->lpVtbl->put_IgnorePressure(This,Flag)
1022 #define IInkDrawingAttributes_get_AntiAliased(This,Flag) (This)->lpVtbl->get_AntiAliased(This,Flag)
1023 #define IInkDrawingAttributes_put_AntiAliased(This,Flag) (This)->lpVtbl->put_AntiAliased(This,Flag)
1024 #define IInkDrawingAttributes_get_Transparency(This,CurrentTransparency) (This)->lpVtbl->get_Transparency(This,CurrentTransparency)
1025 #define IInkDrawingAttributes_put_Transparency(This,NewTransparency) (This)->lpVtbl->put_Transparency(This,NewTransparency)
1026 #define IInkDrawingAttributes_get_RasterOperation(This,CurrentRasterOperation) (This)->lpVtbl->get_RasterOperation(This,CurrentRasterOperation)
1027 #define IInkDrawingAttributes_put_RasterOperation(This,NewRasterOperation) (This)->lpVtbl->put_RasterOperation(This,NewRasterOperation)
1028 #define IInkDrawingAttributes_get_PenTip(This,CurrentPenTip) (This)->lpVtbl->get_PenTip(This,CurrentPenTip)
1029 #define IInkDrawingAttributes_put_PenTip(This,NewPenTip) (This)->lpVtbl->put_PenTip(This,NewPenTip)
1030 #define IInkDrawingAttributes_get_ExtendedProperties(This,Properties) (This)->lpVtbl->get_ExtendedProperties(This,Properties)
1031 #define IInkDrawingAttributes_Clone(This,DrawingAttributes) (This)->lpVtbl->Clone(This,DrawingAttributes)
1032 #else
1033 /*** IUnknown methods ***/
1034 static FORCEINLINE HRESULT IInkDrawingAttributes_QueryInterface(IInkDrawingAttributes* This,REFIID riid,void **ppvObject) {
1035     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1036 }
1037 static FORCEINLINE ULONG IInkDrawingAttributes_AddRef(IInkDrawingAttributes* This) {
1038     return This->lpVtbl->AddRef(This);
1039 }
1040 static FORCEINLINE ULONG IInkDrawingAttributes_Release(IInkDrawingAttributes* This) {
1041     return This->lpVtbl->Release(This);
1042 }
1043 /*** IDispatch methods ***/
1044 static FORCEINLINE HRESULT IInkDrawingAttributes_GetTypeInfoCount(IInkDrawingAttributes* This,UINT *pctinfo) {
1045     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1046 }
1047 static FORCEINLINE HRESULT IInkDrawingAttributes_GetTypeInfo(IInkDrawingAttributes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1048     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1049 }
1050 static FORCEINLINE HRESULT IInkDrawingAttributes_GetIDsOfNames(IInkDrawingAttributes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1051     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1052 }
1053 static FORCEINLINE HRESULT IInkDrawingAttributes_Invoke(IInkDrawingAttributes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1054     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1055 }
1056 /*** IInkDrawingAttributes methods ***/
1057 static FORCEINLINE HRESULT IInkDrawingAttributes_get_Color(IInkDrawingAttributes* This,LONG *CurrentColor) {
1058     return This->lpVtbl->get_Color(This,CurrentColor);
1059 }
1060 static FORCEINLINE HRESULT IInkDrawingAttributes_put_Color(IInkDrawingAttributes* This,LONG NewColor) {
1061     return This->lpVtbl->put_Color(This,NewColor);
1062 }
1063 static FORCEINLINE HRESULT IInkDrawingAttributes_get_Width(IInkDrawingAttributes* This,float *CurrentWidth) {
1064     return This->lpVtbl->get_Width(This,CurrentWidth);
1065 }
1066 static FORCEINLINE HRESULT IInkDrawingAttributes_put_Width(IInkDrawingAttributes* This,float NewWidth) {
1067     return This->lpVtbl->put_Width(This,NewWidth);
1068 }
1069 static FORCEINLINE HRESULT IInkDrawingAttributes_get_Height(IInkDrawingAttributes* This,float *CurrentHeight) {
1070     return This->lpVtbl->get_Height(This,CurrentHeight);
1071 }
1072 static FORCEINLINE HRESULT IInkDrawingAttributes_put_Height(IInkDrawingAttributes* This,float NewHeight) {
1073     return This->lpVtbl->put_Height(This,NewHeight);
1074 }
1075 static FORCEINLINE HRESULT IInkDrawingAttributes_get_FitToCurve(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1076     return This->lpVtbl->get_FitToCurve(This,Flag);
1077 }
1078 static FORCEINLINE HRESULT IInkDrawingAttributes_put_FitToCurve(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1079     return This->lpVtbl->put_FitToCurve(This,Flag);
1080 }
1081 static FORCEINLINE HRESULT IInkDrawingAttributes_get_IgnorePressure(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1082     return This->lpVtbl->get_IgnorePressure(This,Flag);
1083 }
1084 static FORCEINLINE HRESULT IInkDrawingAttributes_put_IgnorePressure(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1085     return This->lpVtbl->put_IgnorePressure(This,Flag);
1086 }
1087 static FORCEINLINE HRESULT IInkDrawingAttributes_get_AntiAliased(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1088     return This->lpVtbl->get_AntiAliased(This,Flag);
1089 }
1090 static FORCEINLINE HRESULT IInkDrawingAttributes_put_AntiAliased(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1091     return This->lpVtbl->put_AntiAliased(This,Flag);
1092 }
1093 static FORCEINLINE HRESULT IInkDrawingAttributes_get_Transparency(IInkDrawingAttributes* This,LONG *CurrentTransparency) {
1094     return This->lpVtbl->get_Transparency(This,CurrentTransparency);
1095 }
1096 static FORCEINLINE HRESULT IInkDrawingAttributes_put_Transparency(IInkDrawingAttributes* This,LONG NewTransparency) {
1097     return This->lpVtbl->put_Transparency(This,NewTransparency);
1098 }
1099 static FORCEINLINE HRESULT IInkDrawingAttributes_get_RasterOperation(IInkDrawingAttributes* This,InkRasterOperation *CurrentRasterOperation) {
1100     return This->lpVtbl->get_RasterOperation(This,CurrentRasterOperation);
1101 }
1102 static FORCEINLINE HRESULT IInkDrawingAttributes_put_RasterOperation(IInkDrawingAttributes* This,InkRasterOperation NewRasterOperation) {
1103     return This->lpVtbl->put_RasterOperation(This,NewRasterOperation);
1104 }
1105 static FORCEINLINE HRESULT IInkDrawingAttributes_get_PenTip(IInkDrawingAttributes* This,InkPenTip *CurrentPenTip) {
1106     return This->lpVtbl->get_PenTip(This,CurrentPenTip);
1107 }
1108 static FORCEINLINE HRESULT IInkDrawingAttributes_put_PenTip(IInkDrawingAttributes* This,InkPenTip NewPenTip) {
1109     return This->lpVtbl->put_PenTip(This,NewPenTip);
1110 }
1111 static FORCEINLINE HRESULT IInkDrawingAttributes_get_ExtendedProperties(IInkDrawingAttributes* This,IInkExtendedProperties **Properties) {
1112     return This->lpVtbl->get_ExtendedProperties(This,Properties);
1113 }
1114 static FORCEINLINE HRESULT IInkDrawingAttributes_Clone(IInkDrawingAttributes* This,IInkDrawingAttributes **DrawingAttributes) {
1115     return This->lpVtbl->Clone(This,DrawingAttributes);
1116 }
1117 #endif
1118 #endif
1119 
1120 #endif
1121 
1122 
1123 #endif  /* __IInkDrawingAttributes_INTERFACE_DEFINED__ */
1124 
1125 /*****************************************************************************
1126  * IInkRectangle interface
1127  */
1128 #ifndef __IInkRectangle_INTERFACE_DEFINED__
1129 #define __IInkRectangle_INTERFACE_DEFINED__
1130 
1131 DEFINE_GUID(IID_IInkRectangle, 0x9794ff82, 0x6071, 0x4717, 0x8a,0x8b, 0x6a,0xc7,0xc6,0x4a,0x68,0x6e);
1132 #if defined(__cplusplus) && !defined(CINTERFACE)
1133 MIDL_INTERFACE("9794ff82-6071-4717-8a8b-6ac7c64a686e")
1134 IInkRectangle : public IDispatch
1135 {
1136     virtual HRESULT STDMETHODCALLTYPE get_Top(
1137         LONG *Units) = 0;
1138 
1139     virtual HRESULT STDMETHODCALLTYPE put_Top(
1140         LONG Units) = 0;
1141 
1142     virtual HRESULT STDMETHODCALLTYPE get_Left(
1143         LONG *Units) = 0;
1144 
1145     virtual HRESULT STDMETHODCALLTYPE put_Left(
1146         LONG Units) = 0;
1147 
1148     virtual HRESULT STDMETHODCALLTYPE get_Bottom(
1149         LONG *Units) = 0;
1150 
1151     virtual HRESULT STDMETHODCALLTYPE put_Bottom(
1152         LONG Units) = 0;
1153 
1154     virtual HRESULT STDMETHODCALLTYPE get_Right(
1155         LONG *Units) = 0;
1156 
1157     virtual HRESULT STDMETHODCALLTYPE put_Right(
1158         LONG Units) = 0;
1159 
1160     virtual HRESULT STDMETHODCALLTYPE get_Data(
1161         RECT *Rect) = 0;
1162 
1163     virtual HRESULT STDMETHODCALLTYPE put_Data(
1164         RECT Rect) = 0;
1165 
1166     virtual HRESULT STDMETHODCALLTYPE GetRectangle(
1167         LONG *Top,
1168         LONG *Left,
1169         LONG *Bottom,
1170         LONG *Right) = 0;
1171 
1172     virtual HRESULT STDMETHODCALLTYPE SetRectangle(
1173         LONG Top,
1174         LONG Left,
1175         LONG Bottom,
1176         LONG Right) = 0;
1177 
1178 };
1179 #ifdef __CRT_UUID_DECL
1180 __CRT_UUID_DECL(IInkRectangle, 0x9794ff82, 0x6071, 0x4717, 0x8a,0x8b, 0x6a,0xc7,0xc6,0x4a,0x68,0x6e)
1181 #endif
1182 #else
1183 typedef struct IInkRectangleVtbl {
1184     BEGIN_INTERFACE
1185 
1186     /*** IUnknown methods ***/
1187     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1188         IInkRectangle *This,
1189         REFIID riid,
1190         void **ppvObject);
1191 
1192     ULONG (STDMETHODCALLTYPE *AddRef)(
1193         IInkRectangle *This);
1194 
1195     ULONG (STDMETHODCALLTYPE *Release)(
1196         IInkRectangle *This);
1197 
1198     /*** IDispatch methods ***/
1199     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1200         IInkRectangle *This,
1201         UINT *pctinfo);
1202 
1203     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1204         IInkRectangle *This,
1205         UINT iTInfo,
1206         LCID lcid,
1207         ITypeInfo **ppTInfo);
1208 
1209     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1210         IInkRectangle *This,
1211         REFIID riid,
1212         LPOLESTR *rgszNames,
1213         UINT cNames,
1214         LCID lcid,
1215         DISPID *rgDispId);
1216 
1217     HRESULT (STDMETHODCALLTYPE *Invoke)(
1218         IInkRectangle *This,
1219         DISPID dispIdMember,
1220         REFIID riid,
1221         LCID lcid,
1222         WORD wFlags,
1223         DISPPARAMS *pDispParams,
1224         VARIANT *pVarResult,
1225         EXCEPINFO *pExcepInfo,
1226         UINT *puArgErr);
1227 
1228     /*** IInkRectangle methods ***/
1229     HRESULT (STDMETHODCALLTYPE *get_Top)(
1230         IInkRectangle *This,
1231         LONG *Units);
1232 
1233     HRESULT (STDMETHODCALLTYPE *put_Top)(
1234         IInkRectangle *This,
1235         LONG Units);
1236 
1237     HRESULT (STDMETHODCALLTYPE *get_Left)(
1238         IInkRectangle *This,
1239         LONG *Units);
1240 
1241     HRESULT (STDMETHODCALLTYPE *put_Left)(
1242         IInkRectangle *This,
1243         LONG Units);
1244 
1245     HRESULT (STDMETHODCALLTYPE *get_Bottom)(
1246         IInkRectangle *This,
1247         LONG *Units);
1248 
1249     HRESULT (STDMETHODCALLTYPE *put_Bottom)(
1250         IInkRectangle *This,
1251         LONG Units);
1252 
1253     HRESULT (STDMETHODCALLTYPE *get_Right)(
1254         IInkRectangle *This,
1255         LONG *Units);
1256 
1257     HRESULT (STDMETHODCALLTYPE *put_Right)(
1258         IInkRectangle *This,
1259         LONG Units);
1260 
1261     HRESULT (STDMETHODCALLTYPE *get_Data)(
1262         IInkRectangle *This,
1263         RECT *Rect);
1264 
1265     HRESULT (STDMETHODCALLTYPE *put_Data)(
1266         IInkRectangle *This,
1267         RECT Rect);
1268 
1269     HRESULT (STDMETHODCALLTYPE *GetRectangle)(
1270         IInkRectangle *This,
1271         LONG *Top,
1272         LONG *Left,
1273         LONG *Bottom,
1274         LONG *Right);
1275 
1276     HRESULT (STDMETHODCALLTYPE *SetRectangle)(
1277         IInkRectangle *This,
1278         LONG Top,
1279         LONG Left,
1280         LONG Bottom,
1281         LONG Right);
1282 
1283     END_INTERFACE
1284 } IInkRectangleVtbl;
1285 
1286 interface IInkRectangle {
1287     CONST_VTBL IInkRectangleVtbl* lpVtbl;
1288 };
1289 
1290 #ifdef COBJMACROS
1291 #ifndef WIDL_C_INLINE_WRAPPERS
1292 /*** IUnknown methods ***/
1293 #define IInkRectangle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1294 #define IInkRectangle_AddRef(This) (This)->lpVtbl->AddRef(This)
1295 #define IInkRectangle_Release(This) (This)->lpVtbl->Release(This)
1296 /*** IDispatch methods ***/
1297 #define IInkRectangle_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1298 #define IInkRectangle_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1299 #define IInkRectangle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1300 #define IInkRectangle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1301 /*** IInkRectangle methods ***/
1302 #define IInkRectangle_get_Top(This,Units) (This)->lpVtbl->get_Top(This,Units)
1303 #define IInkRectangle_put_Top(This,Units) (This)->lpVtbl->put_Top(This,Units)
1304 #define IInkRectangle_get_Left(This,Units) (This)->lpVtbl->get_Left(This,Units)
1305 #define IInkRectangle_put_Left(This,Units) (This)->lpVtbl->put_Left(This,Units)
1306 #define IInkRectangle_get_Bottom(This,Units) (This)->lpVtbl->get_Bottom(This,Units)
1307 #define IInkRectangle_put_Bottom(This,Units) (This)->lpVtbl->put_Bottom(This,Units)
1308 #define IInkRectangle_get_Right(This,Units) (This)->lpVtbl->get_Right(This,Units)
1309 #define IInkRectangle_put_Right(This,Units) (This)->lpVtbl->put_Right(This,Units)
1310 #define IInkRectangle_get_Data(This,Rect) (This)->lpVtbl->get_Data(This,Rect)
1311 #define IInkRectangle_put_Data(This,Rect) (This)->lpVtbl->put_Data(This,Rect)
1312 #define IInkRectangle_GetRectangle(This,Top,Left,Bottom,Right) (This)->lpVtbl->GetRectangle(This,Top,Left,Bottom,Right)
1313 #define IInkRectangle_SetRectangle(This,Top,Left,Bottom,Right) (This)->lpVtbl->SetRectangle(This,Top,Left,Bottom,Right)
1314 #else
1315 /*** IUnknown methods ***/
1316 static FORCEINLINE HRESULT IInkRectangle_QueryInterface(IInkRectangle* This,REFIID riid,void **ppvObject) {
1317     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1318 }
1319 static FORCEINLINE ULONG IInkRectangle_AddRef(IInkRectangle* This) {
1320     return This->lpVtbl->AddRef(This);
1321 }
1322 static FORCEINLINE ULONG IInkRectangle_Release(IInkRectangle* This) {
1323     return This->lpVtbl->Release(This);
1324 }
1325 /*** IDispatch methods ***/
1326 static FORCEINLINE HRESULT IInkRectangle_GetTypeInfoCount(IInkRectangle* This,UINT *pctinfo) {
1327     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1328 }
1329 static FORCEINLINE HRESULT IInkRectangle_GetTypeInfo(IInkRectangle* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1330     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1331 }
1332 static FORCEINLINE HRESULT IInkRectangle_GetIDsOfNames(IInkRectangle* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1333     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1334 }
1335 static FORCEINLINE HRESULT IInkRectangle_Invoke(IInkRectangle* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1336     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1337 }
1338 /*** IInkRectangle methods ***/
1339 static FORCEINLINE HRESULT IInkRectangle_get_Top(IInkRectangle* This,LONG *Units) {
1340     return This->lpVtbl->get_Top(This,Units);
1341 }
1342 static FORCEINLINE HRESULT IInkRectangle_put_Top(IInkRectangle* This,LONG Units) {
1343     return This->lpVtbl->put_Top(This,Units);
1344 }
1345 static FORCEINLINE HRESULT IInkRectangle_get_Left(IInkRectangle* This,LONG *Units) {
1346     return This->lpVtbl->get_Left(This,Units);
1347 }
1348 static FORCEINLINE HRESULT IInkRectangle_put_Left(IInkRectangle* This,LONG Units) {
1349     return This->lpVtbl->put_Left(This,Units);
1350 }
1351 static FORCEINLINE HRESULT IInkRectangle_get_Bottom(IInkRectangle* This,LONG *Units) {
1352     return This->lpVtbl->get_Bottom(This,Units);
1353 }
1354 static FORCEINLINE HRESULT IInkRectangle_put_Bottom(IInkRectangle* This,LONG Units) {
1355     return This->lpVtbl->put_Bottom(This,Units);
1356 }
1357 static FORCEINLINE HRESULT IInkRectangle_get_Right(IInkRectangle* This,LONG *Units) {
1358     return This->lpVtbl->get_Right(This,Units);
1359 }
1360 static FORCEINLINE HRESULT IInkRectangle_put_Right(IInkRectangle* This,LONG Units) {
1361     return This->lpVtbl->put_Right(This,Units);
1362 }
1363 static FORCEINLINE HRESULT IInkRectangle_get_Data(IInkRectangle* This,RECT *Rect) {
1364     return This->lpVtbl->get_Data(This,Rect);
1365 }
1366 static FORCEINLINE HRESULT IInkRectangle_put_Data(IInkRectangle* This,RECT Rect) {
1367     return This->lpVtbl->put_Data(This,Rect);
1368 }
1369 static FORCEINLINE HRESULT IInkRectangle_GetRectangle(IInkRectangle* This,LONG *Top,LONG *Left,LONG *Bottom,LONG *Right) {
1370     return This->lpVtbl->GetRectangle(This,Top,Left,Bottom,Right);
1371 }
1372 static FORCEINLINE HRESULT IInkRectangle_SetRectangle(IInkRectangle* This,LONG Top,LONG Left,LONG Bottom,LONG Right) {
1373     return This->lpVtbl->SetRectangle(This,Top,Left,Bottom,Right);
1374 }
1375 #endif
1376 #endif
1377 
1378 #endif
1379 
1380 
1381 #endif  /* __IInkRectangle_INTERFACE_DEFINED__ */
1382 
1383 /*****************************************************************************
1384  * IInkTablet interface
1385  */
1386 #ifndef __IInkTablet_INTERFACE_DEFINED__
1387 #define __IInkTablet_INTERFACE_DEFINED__
1388 
1389 DEFINE_GUID(IID_IInkTablet, 0x2de25eaa, 0x6ef8, 0x42d5, 0xae,0xe9, 0x18,0x5b,0xc8,0x1b,0x91,0x2d);
1390 #if defined(__cplusplus) && !defined(CINTERFACE)
1391 MIDL_INTERFACE("2de25eaa-6ef8-42d5-aee9-185bc81b912d")
1392 IInkTablet : public IDispatch
1393 {
1394     virtual HRESULT STDMETHODCALLTYPE get_Name(
1395         BSTR *Name) = 0;
1396 
1397     virtual HRESULT STDMETHODCALLTYPE get_PlugAndPlayId(
1398         BSTR *Id) = 0;
1399 
1400     virtual HRESULT STDMETHODCALLTYPE get_MaximumInputRectangle(
1401         IInkRectangle **Rectangle) = 0;
1402 
1403     virtual HRESULT STDMETHODCALLTYPE get_HardwareCapabilities(
1404         TabletHardwareCapabilities *Capabilities) = 0;
1405 
1406     virtual HRESULT STDMETHODCALLTYPE IsPacketPropertySupported(
1407         BSTR packetPropertyName,
1408         VARIANT_BOOL *Supported) = 0;
1409 
1410     virtual HRESULT STDMETHODCALLTYPE GetPropertyMetrics(
1411         BSTR propertyName,
1412         LONG *Minimum,
1413         LONG *Maximum,
1414         TabletPropertyMetricUnit *Units,
1415         float *Resolution) = 0;
1416 
1417 };
1418 #ifdef __CRT_UUID_DECL
1419 __CRT_UUID_DECL(IInkTablet, 0x2de25eaa, 0x6ef8, 0x42d5, 0xae,0xe9, 0x18,0x5b,0xc8,0x1b,0x91,0x2d)
1420 #endif
1421 #else
1422 typedef struct IInkTabletVtbl {
1423     BEGIN_INTERFACE
1424 
1425     /*** IUnknown methods ***/
1426     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1427         IInkTablet *This,
1428         REFIID riid,
1429         void **ppvObject);
1430 
1431     ULONG (STDMETHODCALLTYPE *AddRef)(
1432         IInkTablet *This);
1433 
1434     ULONG (STDMETHODCALLTYPE *Release)(
1435         IInkTablet *This);
1436 
1437     /*** IDispatch methods ***/
1438     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1439         IInkTablet *This,
1440         UINT *pctinfo);
1441 
1442     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1443         IInkTablet *This,
1444         UINT iTInfo,
1445         LCID lcid,
1446         ITypeInfo **ppTInfo);
1447 
1448     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1449         IInkTablet *This,
1450         REFIID riid,
1451         LPOLESTR *rgszNames,
1452         UINT cNames,
1453         LCID lcid,
1454         DISPID *rgDispId);
1455 
1456     HRESULT (STDMETHODCALLTYPE *Invoke)(
1457         IInkTablet *This,
1458         DISPID dispIdMember,
1459         REFIID riid,
1460         LCID lcid,
1461         WORD wFlags,
1462         DISPPARAMS *pDispParams,
1463         VARIANT *pVarResult,
1464         EXCEPINFO *pExcepInfo,
1465         UINT *puArgErr);
1466 
1467     /*** IInkTablet methods ***/
1468     HRESULT (STDMETHODCALLTYPE *get_Name)(
1469         IInkTablet *This,
1470         BSTR *Name);
1471 
1472     HRESULT (STDMETHODCALLTYPE *get_PlugAndPlayId)(
1473         IInkTablet *This,
1474         BSTR *Id);
1475 
1476     HRESULT (STDMETHODCALLTYPE *get_MaximumInputRectangle)(
1477         IInkTablet *This,
1478         IInkRectangle **Rectangle);
1479 
1480     HRESULT (STDMETHODCALLTYPE *get_HardwareCapabilities)(
1481         IInkTablet *This,
1482         TabletHardwareCapabilities *Capabilities);
1483 
1484     HRESULT (STDMETHODCALLTYPE *IsPacketPropertySupported)(
1485         IInkTablet *This,
1486         BSTR packetPropertyName,
1487         VARIANT_BOOL *Supported);
1488 
1489     HRESULT (STDMETHODCALLTYPE *GetPropertyMetrics)(
1490         IInkTablet *This,
1491         BSTR propertyName,
1492         LONG *Minimum,
1493         LONG *Maximum,
1494         TabletPropertyMetricUnit *Units,
1495         float *Resolution);
1496 
1497     END_INTERFACE
1498 } IInkTabletVtbl;
1499 
1500 interface IInkTablet {
1501     CONST_VTBL IInkTabletVtbl* lpVtbl;
1502 };
1503 
1504 #ifdef COBJMACROS
1505 #ifndef WIDL_C_INLINE_WRAPPERS
1506 /*** IUnknown methods ***/
1507 #define IInkTablet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1508 #define IInkTablet_AddRef(This) (This)->lpVtbl->AddRef(This)
1509 #define IInkTablet_Release(This) (This)->lpVtbl->Release(This)
1510 /*** IDispatch methods ***/
1511 #define IInkTablet_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1512 #define IInkTablet_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1513 #define IInkTablet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1514 #define IInkTablet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1515 /*** IInkTablet methods ***/
1516 #define IInkTablet_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
1517 #define IInkTablet_get_PlugAndPlayId(This,Id) (This)->lpVtbl->get_PlugAndPlayId(This,Id)
1518 #define IInkTablet_get_MaximumInputRectangle(This,Rectangle) (This)->lpVtbl->get_MaximumInputRectangle(This,Rectangle)
1519 #define IInkTablet_get_HardwareCapabilities(This,Capabilities) (This)->lpVtbl->get_HardwareCapabilities(This,Capabilities)
1520 #define IInkTablet_IsPacketPropertySupported(This,packetPropertyName,Supported) (This)->lpVtbl->IsPacketPropertySupported(This,packetPropertyName,Supported)
1521 #define IInkTablet_GetPropertyMetrics(This,propertyName,Minimum,Maximum,Units,Resolution) (This)->lpVtbl->GetPropertyMetrics(This,propertyName,Minimum,Maximum,Units,Resolution)
1522 #else
1523 /*** IUnknown methods ***/
1524 static FORCEINLINE HRESULT IInkTablet_QueryInterface(IInkTablet* This,REFIID riid,void **ppvObject) {
1525     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1526 }
1527 static FORCEINLINE ULONG IInkTablet_AddRef(IInkTablet* This) {
1528     return This->lpVtbl->AddRef(This);
1529 }
1530 static FORCEINLINE ULONG IInkTablet_Release(IInkTablet* This) {
1531     return This->lpVtbl->Release(This);
1532 }
1533 /*** IDispatch methods ***/
1534 static FORCEINLINE HRESULT IInkTablet_GetTypeInfoCount(IInkTablet* This,UINT *pctinfo) {
1535     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1536 }
1537 static FORCEINLINE HRESULT IInkTablet_GetTypeInfo(IInkTablet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1538     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1539 }
1540 static FORCEINLINE HRESULT IInkTablet_GetIDsOfNames(IInkTablet* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1541     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1542 }
1543 static FORCEINLINE HRESULT IInkTablet_Invoke(IInkTablet* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1544     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1545 }
1546 /*** IInkTablet methods ***/
1547 static FORCEINLINE HRESULT IInkTablet_get_Name(IInkTablet* This,BSTR *Name) {
1548     return This->lpVtbl->get_Name(This,Name);
1549 }
1550 static FORCEINLINE HRESULT IInkTablet_get_PlugAndPlayId(IInkTablet* This,BSTR *Id) {
1551     return This->lpVtbl->get_PlugAndPlayId(This,Id);
1552 }
1553 static FORCEINLINE HRESULT IInkTablet_get_MaximumInputRectangle(IInkTablet* This,IInkRectangle **Rectangle) {
1554     return This->lpVtbl->get_MaximumInputRectangle(This,Rectangle);
1555 }
1556 static FORCEINLINE HRESULT IInkTablet_get_HardwareCapabilities(IInkTablet* This,TabletHardwareCapabilities *Capabilities) {
1557     return This->lpVtbl->get_HardwareCapabilities(This,Capabilities);
1558 }
1559 static FORCEINLINE HRESULT IInkTablet_IsPacketPropertySupported(IInkTablet* This,BSTR packetPropertyName,VARIANT_BOOL *Supported) {
1560     return This->lpVtbl->IsPacketPropertySupported(This,packetPropertyName,Supported);
1561 }
1562 static FORCEINLINE HRESULT IInkTablet_GetPropertyMetrics(IInkTablet* This,BSTR propertyName,LONG *Minimum,LONG *Maximum,TabletPropertyMetricUnit *Units,float *Resolution) {
1563     return This->lpVtbl->GetPropertyMetrics(This,propertyName,Minimum,Maximum,Units,Resolution);
1564 }
1565 #endif
1566 #endif
1567 
1568 #endif
1569 
1570 
1571 #endif  /* __IInkTablet_INTERFACE_DEFINED__ */
1572 
1573 /*****************************************************************************
1574  * IInkCursorButton interface
1575  */
1576 #ifndef __IInkCursorButton_INTERFACE_DEFINED__
1577 #define __IInkCursorButton_INTERFACE_DEFINED__
1578 
1579 DEFINE_GUID(IID_IInkCursorButton, 0x85ef9417, 0x1d59, 0x49b2, 0xa1,0x3c, 0x70,0x2c,0x85,0x43,0x08,0x94);
1580 #if defined(__cplusplus) && !defined(CINTERFACE)
1581 MIDL_INTERFACE("85ef9417-1d59-49b2-a13c-702c85430894")
1582 IInkCursorButton : public IDispatch
1583 {
1584     virtual HRESULT STDMETHODCALLTYPE get_Name(
1585         BSTR *Name) = 0;
1586 
1587     virtual HRESULT STDMETHODCALLTYPE get_Id(
1588         BSTR *Id) = 0;
1589 
1590     virtual HRESULT STDMETHODCALLTYPE get_State(
1591         InkCursorButtonState *CurrentState) = 0;
1592 
1593 };
1594 #ifdef __CRT_UUID_DECL
1595 __CRT_UUID_DECL(IInkCursorButton, 0x85ef9417, 0x1d59, 0x49b2, 0xa1,0x3c, 0x70,0x2c,0x85,0x43,0x08,0x94)
1596 #endif
1597 #else
1598 typedef struct IInkCursorButtonVtbl {
1599     BEGIN_INTERFACE
1600 
1601     /*** IUnknown methods ***/
1602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1603         IInkCursorButton *This,
1604         REFIID riid,
1605         void **ppvObject);
1606 
1607     ULONG (STDMETHODCALLTYPE *AddRef)(
1608         IInkCursorButton *This);
1609 
1610     ULONG (STDMETHODCALLTYPE *Release)(
1611         IInkCursorButton *This);
1612 
1613     /*** IDispatch methods ***/
1614     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1615         IInkCursorButton *This,
1616         UINT *pctinfo);
1617 
1618     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1619         IInkCursorButton *This,
1620         UINT iTInfo,
1621         LCID lcid,
1622         ITypeInfo **ppTInfo);
1623 
1624     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1625         IInkCursorButton *This,
1626         REFIID riid,
1627         LPOLESTR *rgszNames,
1628         UINT cNames,
1629         LCID lcid,
1630         DISPID *rgDispId);
1631 
1632     HRESULT (STDMETHODCALLTYPE *Invoke)(
1633         IInkCursorButton *This,
1634         DISPID dispIdMember,
1635         REFIID riid,
1636         LCID lcid,
1637         WORD wFlags,
1638         DISPPARAMS *pDispParams,
1639         VARIANT *pVarResult,
1640         EXCEPINFO *pExcepInfo,
1641         UINT *puArgErr);
1642 
1643     /*** IInkCursorButton methods ***/
1644     HRESULT (STDMETHODCALLTYPE *get_Name)(
1645         IInkCursorButton *This,
1646         BSTR *Name);
1647 
1648     HRESULT (STDMETHODCALLTYPE *get_Id)(
1649         IInkCursorButton *This,
1650         BSTR *Id);
1651 
1652     HRESULT (STDMETHODCALLTYPE *get_State)(
1653         IInkCursorButton *This,
1654         InkCursorButtonState *CurrentState);
1655 
1656     END_INTERFACE
1657 } IInkCursorButtonVtbl;
1658 
1659 interface IInkCursorButton {
1660     CONST_VTBL IInkCursorButtonVtbl* lpVtbl;
1661 };
1662 
1663 #ifdef COBJMACROS
1664 #ifndef WIDL_C_INLINE_WRAPPERS
1665 /*** IUnknown methods ***/
1666 #define IInkCursorButton_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1667 #define IInkCursorButton_AddRef(This) (This)->lpVtbl->AddRef(This)
1668 #define IInkCursorButton_Release(This) (This)->lpVtbl->Release(This)
1669 /*** IDispatch methods ***/
1670 #define IInkCursorButton_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1671 #define IInkCursorButton_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1672 #define IInkCursorButton_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1673 #define IInkCursorButton_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1674 /*** IInkCursorButton methods ***/
1675 #define IInkCursorButton_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
1676 #define IInkCursorButton_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
1677 #define IInkCursorButton_get_State(This,CurrentState) (This)->lpVtbl->get_State(This,CurrentState)
1678 #else
1679 /*** IUnknown methods ***/
1680 static FORCEINLINE HRESULT IInkCursorButton_QueryInterface(IInkCursorButton* This,REFIID riid,void **ppvObject) {
1681     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1682 }
1683 static FORCEINLINE ULONG IInkCursorButton_AddRef(IInkCursorButton* This) {
1684     return This->lpVtbl->AddRef(This);
1685 }
1686 static FORCEINLINE ULONG IInkCursorButton_Release(IInkCursorButton* This) {
1687     return This->lpVtbl->Release(This);
1688 }
1689 /*** IDispatch methods ***/
1690 static FORCEINLINE HRESULT IInkCursorButton_GetTypeInfoCount(IInkCursorButton* This,UINT *pctinfo) {
1691     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1692 }
1693 static FORCEINLINE HRESULT IInkCursorButton_GetTypeInfo(IInkCursorButton* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1694     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1695 }
1696 static FORCEINLINE HRESULT IInkCursorButton_GetIDsOfNames(IInkCursorButton* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1697     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1698 }
1699 static FORCEINLINE HRESULT IInkCursorButton_Invoke(IInkCursorButton* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1700     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1701 }
1702 /*** IInkCursorButton methods ***/
1703 static FORCEINLINE HRESULT IInkCursorButton_get_Name(IInkCursorButton* This,BSTR *Name) {
1704     return This->lpVtbl->get_Name(This,Name);
1705 }
1706 static FORCEINLINE HRESULT IInkCursorButton_get_Id(IInkCursorButton* This,BSTR *Id) {
1707     return This->lpVtbl->get_Id(This,Id);
1708 }
1709 static FORCEINLINE HRESULT IInkCursorButton_get_State(IInkCursorButton* This,InkCursorButtonState *CurrentState) {
1710     return This->lpVtbl->get_State(This,CurrentState);
1711 }
1712 #endif
1713 #endif
1714 
1715 #endif
1716 
1717 
1718 #endif  /* __IInkCursorButton_INTERFACE_DEFINED__ */
1719 
1720 /*****************************************************************************
1721  * IInkCursorButtons interface
1722  */
1723 #ifndef __IInkCursorButtons_INTERFACE_DEFINED__
1724 #define __IInkCursorButtons_INTERFACE_DEFINED__
1725 
1726 DEFINE_GUID(IID_IInkCursorButtons, 0x3671cc40, 0xb624, 0x4671, 0x9f,0xa0, 0xdb,0x11,0x9d,0x95,0x2d,0x54);
1727 #if defined(__cplusplus) && !defined(CINTERFACE)
1728 MIDL_INTERFACE("3671cc40-b624-4671-9fa0-db119d952d54")
1729 IInkCursorButtons : public IDispatch
1730 {
1731     virtual HRESULT STDMETHODCALLTYPE get_Count(
1732         LONG *Count) = 0;
1733 
1734     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
1735         IUnknown **_NewEnum) = 0;
1736 
1737     virtual HRESULT STDMETHODCALLTYPE Item(
1738         VARIANT Identifier,
1739         IInkCursorButton **Button) = 0;
1740 
1741 };
1742 #ifdef __CRT_UUID_DECL
1743 __CRT_UUID_DECL(IInkCursorButtons, 0x3671cc40, 0xb624, 0x4671, 0x9f,0xa0, 0xdb,0x11,0x9d,0x95,0x2d,0x54)
1744 #endif
1745 #else
1746 typedef struct IInkCursorButtonsVtbl {
1747     BEGIN_INTERFACE
1748 
1749     /*** IUnknown methods ***/
1750     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1751         IInkCursorButtons *This,
1752         REFIID riid,
1753         void **ppvObject);
1754 
1755     ULONG (STDMETHODCALLTYPE *AddRef)(
1756         IInkCursorButtons *This);
1757 
1758     ULONG (STDMETHODCALLTYPE *Release)(
1759         IInkCursorButtons *This);
1760 
1761     /*** IDispatch methods ***/
1762     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1763         IInkCursorButtons *This,
1764         UINT *pctinfo);
1765 
1766     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1767         IInkCursorButtons *This,
1768         UINT iTInfo,
1769         LCID lcid,
1770         ITypeInfo **ppTInfo);
1771 
1772     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1773         IInkCursorButtons *This,
1774         REFIID riid,
1775         LPOLESTR *rgszNames,
1776         UINT cNames,
1777         LCID lcid,
1778         DISPID *rgDispId);
1779 
1780     HRESULT (STDMETHODCALLTYPE *Invoke)(
1781         IInkCursorButtons *This,
1782         DISPID dispIdMember,
1783         REFIID riid,
1784         LCID lcid,
1785         WORD wFlags,
1786         DISPPARAMS *pDispParams,
1787         VARIANT *pVarResult,
1788         EXCEPINFO *pExcepInfo,
1789         UINT *puArgErr);
1790 
1791     /*** IInkCursorButtons methods ***/
1792     HRESULT (STDMETHODCALLTYPE *get_Count)(
1793         IInkCursorButtons *This,
1794         LONG *Count);
1795 
1796     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
1797         IInkCursorButtons *This,
1798         IUnknown **_NewEnum);
1799 
1800     HRESULT (STDMETHODCALLTYPE *Item)(
1801         IInkCursorButtons *This,
1802         VARIANT Identifier,
1803         IInkCursorButton **Button);
1804 
1805     END_INTERFACE
1806 } IInkCursorButtonsVtbl;
1807 
1808 interface IInkCursorButtons {
1809     CONST_VTBL IInkCursorButtonsVtbl* lpVtbl;
1810 };
1811 
1812 #ifdef COBJMACROS
1813 #ifndef WIDL_C_INLINE_WRAPPERS
1814 /*** IUnknown methods ***/
1815 #define IInkCursorButtons_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1816 #define IInkCursorButtons_AddRef(This) (This)->lpVtbl->AddRef(This)
1817 #define IInkCursorButtons_Release(This) (This)->lpVtbl->Release(This)
1818 /*** IDispatch methods ***/
1819 #define IInkCursorButtons_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1820 #define IInkCursorButtons_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1821 #define IInkCursorButtons_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1822 #define IInkCursorButtons_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1823 /*** IInkCursorButtons methods ***/
1824 #define IInkCursorButtons_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
1825 #define IInkCursorButtons_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
1826 #define IInkCursorButtons_Item(This,Identifier,Button) (This)->lpVtbl->Item(This,Identifier,Button)
1827 #else
1828 /*** IUnknown methods ***/
1829 static FORCEINLINE HRESULT IInkCursorButtons_QueryInterface(IInkCursorButtons* This,REFIID riid,void **ppvObject) {
1830     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1831 }
1832 static FORCEINLINE ULONG IInkCursorButtons_AddRef(IInkCursorButtons* This) {
1833     return This->lpVtbl->AddRef(This);
1834 }
1835 static FORCEINLINE ULONG IInkCursorButtons_Release(IInkCursorButtons* This) {
1836     return This->lpVtbl->Release(This);
1837 }
1838 /*** IDispatch methods ***/
1839 static FORCEINLINE HRESULT IInkCursorButtons_GetTypeInfoCount(IInkCursorButtons* This,UINT *pctinfo) {
1840     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1841 }
1842 static FORCEINLINE HRESULT IInkCursorButtons_GetTypeInfo(IInkCursorButtons* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1843     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1844 }
1845 static FORCEINLINE HRESULT IInkCursorButtons_GetIDsOfNames(IInkCursorButtons* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1846     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1847 }
1848 static FORCEINLINE HRESULT IInkCursorButtons_Invoke(IInkCursorButtons* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1849     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1850 }
1851 /*** IInkCursorButtons methods ***/
1852 static FORCEINLINE HRESULT IInkCursorButtons_get_Count(IInkCursorButtons* This,LONG *Count) {
1853     return This->lpVtbl->get_Count(This,Count);
1854 }
1855 static FORCEINLINE HRESULT IInkCursorButtons_get__NewEnum(IInkCursorButtons* This,IUnknown **_NewEnum) {
1856     return This->lpVtbl->get__NewEnum(This,_NewEnum);
1857 }
1858 static FORCEINLINE HRESULT IInkCursorButtons_Item(IInkCursorButtons* This,VARIANT Identifier,IInkCursorButton **Button) {
1859     return This->lpVtbl->Item(This,Identifier,Button);
1860 }
1861 #endif
1862 #endif
1863 
1864 #endif
1865 
1866 
1867 #endif  /* __IInkCursorButtons_INTERFACE_DEFINED__ */
1868 
1869 /*****************************************************************************
1870  * IInkCursor interface
1871  */
1872 #ifndef __IInkCursor_INTERFACE_DEFINED__
1873 #define __IInkCursor_INTERFACE_DEFINED__
1874 
1875 DEFINE_GUID(IID_IInkCursor, 0xad30c630, 0x40c5, 0x4350, 0x84,0x05, 0x9c,0x71,0x01,0x2f,0xc5,0x58);
1876 #if defined(__cplusplus) && !defined(CINTERFACE)
1877 MIDL_INTERFACE("ad30c630-40c5-4350-8405-9c71012fc558")
1878 IInkCursor : public IDispatch
1879 {
1880     virtual HRESULT STDMETHODCALLTYPE get_Name(
1881         BSTR *Name) = 0;
1882 
1883     virtual HRESULT STDMETHODCALLTYPE get_Id(
1884         LONG *Id) = 0;
1885 
1886     virtual HRESULT STDMETHODCALLTYPE get_Inverted(
1887         VARIANT_BOOL *Status) = 0;
1888 
1889     virtual HRESULT STDMETHODCALLTYPE get_DrawingAttributes(
1890         IInkDrawingAttributes **Attributes) = 0;
1891 
1892     virtual HRESULT STDMETHODCALLTYPE putref_DrawingAttributes(
1893         IInkDrawingAttributes *Attributes) = 0;
1894 
1895     virtual HRESULT STDMETHODCALLTYPE get_Tablet(
1896         IInkTablet **Tablet) = 0;
1897 
1898     virtual HRESULT STDMETHODCALLTYPE get_Buttons(
1899         IInkCursorButtons **Buttons) = 0;
1900 
1901 };
1902 #ifdef __CRT_UUID_DECL
1903 __CRT_UUID_DECL(IInkCursor, 0xad30c630, 0x40c5, 0x4350, 0x84,0x05, 0x9c,0x71,0x01,0x2f,0xc5,0x58)
1904 #endif
1905 #else
1906 typedef struct IInkCursorVtbl {
1907     BEGIN_INTERFACE
1908 
1909     /*** IUnknown methods ***/
1910     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1911         IInkCursor *This,
1912         REFIID riid,
1913         void **ppvObject);
1914 
1915     ULONG (STDMETHODCALLTYPE *AddRef)(
1916         IInkCursor *This);
1917 
1918     ULONG (STDMETHODCALLTYPE *Release)(
1919         IInkCursor *This);
1920 
1921     /*** IDispatch methods ***/
1922     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1923         IInkCursor *This,
1924         UINT *pctinfo);
1925 
1926     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1927         IInkCursor *This,
1928         UINT iTInfo,
1929         LCID lcid,
1930         ITypeInfo **ppTInfo);
1931 
1932     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1933         IInkCursor *This,
1934         REFIID riid,
1935         LPOLESTR *rgszNames,
1936         UINT cNames,
1937         LCID lcid,
1938         DISPID *rgDispId);
1939 
1940     HRESULT (STDMETHODCALLTYPE *Invoke)(
1941         IInkCursor *This,
1942         DISPID dispIdMember,
1943         REFIID riid,
1944         LCID lcid,
1945         WORD wFlags,
1946         DISPPARAMS *pDispParams,
1947         VARIANT *pVarResult,
1948         EXCEPINFO *pExcepInfo,
1949         UINT *puArgErr);
1950 
1951     /*** IInkCursor methods ***/
1952     HRESULT (STDMETHODCALLTYPE *get_Name)(
1953         IInkCursor *This,
1954         BSTR *Name);
1955 
1956     HRESULT (STDMETHODCALLTYPE *get_Id)(
1957         IInkCursor *This,
1958         LONG *Id);
1959 
1960     HRESULT (STDMETHODCALLTYPE *get_Inverted)(
1961         IInkCursor *This,
1962         VARIANT_BOOL *Status);
1963 
1964     HRESULT (STDMETHODCALLTYPE *get_DrawingAttributes)(
1965         IInkCursor *This,
1966         IInkDrawingAttributes **Attributes);
1967 
1968     HRESULT (STDMETHODCALLTYPE *putref_DrawingAttributes)(
1969         IInkCursor *This,
1970         IInkDrawingAttributes *Attributes);
1971 
1972     HRESULT (STDMETHODCALLTYPE *get_Tablet)(
1973         IInkCursor *This,
1974         IInkTablet **Tablet);
1975 
1976     HRESULT (STDMETHODCALLTYPE *get_Buttons)(
1977         IInkCursor *This,
1978         IInkCursorButtons **Buttons);
1979 
1980     END_INTERFACE
1981 } IInkCursorVtbl;
1982 
1983 interface IInkCursor {
1984     CONST_VTBL IInkCursorVtbl* lpVtbl;
1985 };
1986 
1987 #ifdef COBJMACROS
1988 #ifndef WIDL_C_INLINE_WRAPPERS
1989 /*** IUnknown methods ***/
1990 #define IInkCursor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1991 #define IInkCursor_AddRef(This) (This)->lpVtbl->AddRef(This)
1992 #define IInkCursor_Release(This) (This)->lpVtbl->Release(This)
1993 /*** IDispatch methods ***/
1994 #define IInkCursor_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1995 #define IInkCursor_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1996 #define IInkCursor_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1997 #define IInkCursor_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1998 /*** IInkCursor methods ***/
1999 #define IInkCursor_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
2000 #define IInkCursor_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
2001 #define IInkCursor_get_Inverted(This,Status) (This)->lpVtbl->get_Inverted(This,Status)
2002 #define IInkCursor_get_DrawingAttributes(This,Attributes) (This)->lpVtbl->get_DrawingAttributes(This,Attributes)
2003 #define IInkCursor_putref_DrawingAttributes(This,Attributes) (This)->lpVtbl->putref_DrawingAttributes(This,Attributes)
2004 #define IInkCursor_get_Tablet(This,Tablet) (This)->lpVtbl->get_Tablet(This,Tablet)
2005 #define IInkCursor_get_Buttons(This,Buttons) (This)->lpVtbl->get_Buttons(This,Buttons)
2006 #else
2007 /*** IUnknown methods ***/
2008 static FORCEINLINE HRESULT IInkCursor_QueryInterface(IInkCursor* This,REFIID riid,void **ppvObject) {
2009     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2010 }
2011 static FORCEINLINE ULONG IInkCursor_AddRef(IInkCursor* This) {
2012     return This->lpVtbl->AddRef(This);
2013 }
2014 static FORCEINLINE ULONG IInkCursor_Release(IInkCursor* This) {
2015     return This->lpVtbl->Release(This);
2016 }
2017 /*** IDispatch methods ***/
2018 static FORCEINLINE HRESULT IInkCursor_GetTypeInfoCount(IInkCursor* This,UINT *pctinfo) {
2019     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2020 }
2021 static FORCEINLINE HRESULT IInkCursor_GetTypeInfo(IInkCursor* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2022     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2023 }
2024 static FORCEINLINE HRESULT IInkCursor_GetIDsOfNames(IInkCursor* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2025     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2026 }
2027 static FORCEINLINE HRESULT IInkCursor_Invoke(IInkCursor* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2028     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2029 }
2030 /*** IInkCursor methods ***/
2031 static FORCEINLINE HRESULT IInkCursor_get_Name(IInkCursor* This,BSTR *Name) {
2032     return This->lpVtbl->get_Name(This,Name);
2033 }
2034 static FORCEINLINE HRESULT IInkCursor_get_Id(IInkCursor* This,LONG *Id) {
2035     return This->lpVtbl->get_Id(This,Id);
2036 }
2037 static FORCEINLINE HRESULT IInkCursor_get_Inverted(IInkCursor* This,VARIANT_BOOL *Status) {
2038     return This->lpVtbl->get_Inverted(This,Status);
2039 }
2040 static FORCEINLINE HRESULT IInkCursor_get_DrawingAttributes(IInkCursor* This,IInkDrawingAttributes **Attributes) {
2041     return This->lpVtbl->get_DrawingAttributes(This,Attributes);
2042 }
2043 static FORCEINLINE HRESULT IInkCursor_putref_DrawingAttributes(IInkCursor* This,IInkDrawingAttributes *Attributes) {
2044     return This->lpVtbl->putref_DrawingAttributes(This,Attributes);
2045 }
2046 static FORCEINLINE HRESULT IInkCursor_get_Tablet(IInkCursor* This,IInkTablet **Tablet) {
2047     return This->lpVtbl->get_Tablet(This,Tablet);
2048 }
2049 static FORCEINLINE HRESULT IInkCursor_get_Buttons(IInkCursor* This,IInkCursorButtons **Buttons) {
2050     return This->lpVtbl->get_Buttons(This,Buttons);
2051 }
2052 #endif
2053 #endif
2054 
2055 #endif
2056 
2057 
2058 #endif  /* __IInkCursor_INTERFACE_DEFINED__ */
2059 
2060 /*****************************************************************************
2061  * IInkTransform interface
2062  */
2063 #ifndef __IInkTransform_INTERFACE_DEFINED__
2064 #define __IInkTransform_INTERFACE_DEFINED__
2065 
2066 DEFINE_GUID(IID_IInkTransform, 0x615f1d43, 0x8703, 0x4565, 0x88,0xe2, 0x82,0x01,0xd2,0xec,0xd7,0xb7);
2067 #if defined(__cplusplus) && !defined(CINTERFACE)
2068 MIDL_INTERFACE("615f1d43-8703-4565-88e2-8201d2ecd7b7")
2069 IInkTransform : public IDispatch
2070 {
2071     virtual HRESULT STDMETHODCALLTYPE Reset(
2072         ) = 0;
2073 
2074     virtual HRESULT STDMETHODCALLTYPE Translate(
2075         float HorizontalComponent,
2076         float VerticalComponent) = 0;
2077 
2078     virtual HRESULT STDMETHODCALLTYPE Rotate(
2079         float Degrees,
2080         float x = 0,
2081         float y = 0) = 0;
2082 
2083     virtual HRESULT STDMETHODCALLTYPE Reflect(
2084         VARIANT_BOOL Horizontally,
2085         VARIANT_BOOL Vertically) = 0;
2086 
2087     virtual HRESULT STDMETHODCALLTYPE Shear(
2088         float HorizontalComponent,
2089         float VerticalComponent) = 0;
2090 
2091     virtual HRESULT STDMETHODCALLTYPE ScaleTransform(
2092         float HorizontalMultiplier,
2093         float VerticalMultiplier) = 0;
2094 
2095     virtual HRESULT STDMETHODCALLTYPE GetTransform(
2096         float *eM11,
2097         float *eM12,
2098         float *eM21,
2099         float *eM22,
2100         float *eDx,
2101         float *eDy) = 0;
2102 
2103     virtual HRESULT STDMETHODCALLTYPE SetTransform(
2104         float eM11,
2105         float eM12,
2106         float eM21,
2107         float eM22,
2108         float eDx,
2109         float eDy) = 0;
2110 
2111     virtual HRESULT STDMETHODCALLTYPE get_eM11(
2112         float *Value) = 0;
2113 
2114     virtual HRESULT STDMETHODCALLTYPE put_eM11(
2115         float Value) = 0;
2116 
2117     virtual HRESULT STDMETHODCALLTYPE get_eM12(
2118         float *Value) = 0;
2119 
2120     virtual HRESULT STDMETHODCALLTYPE put_eM12(
2121         float Value) = 0;
2122 
2123     virtual HRESULT STDMETHODCALLTYPE get_eM21(
2124         float *Value) = 0;
2125 
2126     virtual HRESULT STDMETHODCALLTYPE put_eM21(
2127         float Value) = 0;
2128 
2129     virtual HRESULT STDMETHODCALLTYPE get_eM22(
2130         float *Value) = 0;
2131 
2132     virtual HRESULT STDMETHODCALLTYPE put_eM22(
2133         float Value) = 0;
2134 
2135     virtual HRESULT STDMETHODCALLTYPE get_eDx(
2136         float *Value) = 0;
2137 
2138     virtual HRESULT STDMETHODCALLTYPE put_eDx(
2139         float Value) = 0;
2140 
2141     virtual HRESULT STDMETHODCALLTYPE get_eDy(
2142         float *Value) = 0;
2143 
2144     virtual HRESULT STDMETHODCALLTYPE put_eDy(
2145         float Value) = 0;
2146 
2147     virtual HRESULT STDMETHODCALLTYPE get_Data(
2148         XFORM *XForm) = 0;
2149 
2150     virtual HRESULT STDMETHODCALLTYPE put_Data(
2151         XFORM XForm) = 0;
2152 
2153 };
2154 #ifdef __CRT_UUID_DECL
2155 __CRT_UUID_DECL(IInkTransform, 0x615f1d43, 0x8703, 0x4565, 0x88,0xe2, 0x82,0x01,0xd2,0xec,0xd7,0xb7)
2156 #endif
2157 #else
2158 typedef struct IInkTransformVtbl {
2159     BEGIN_INTERFACE
2160 
2161     /*** IUnknown methods ***/
2162     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2163         IInkTransform *This,
2164         REFIID riid,
2165         void **ppvObject);
2166 
2167     ULONG (STDMETHODCALLTYPE *AddRef)(
2168         IInkTransform *This);
2169 
2170     ULONG (STDMETHODCALLTYPE *Release)(
2171         IInkTransform *This);
2172 
2173     /*** IDispatch methods ***/
2174     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2175         IInkTransform *This,
2176         UINT *pctinfo);
2177 
2178     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2179         IInkTransform *This,
2180         UINT iTInfo,
2181         LCID lcid,
2182         ITypeInfo **ppTInfo);
2183 
2184     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2185         IInkTransform *This,
2186         REFIID riid,
2187         LPOLESTR *rgszNames,
2188         UINT cNames,
2189         LCID lcid,
2190         DISPID *rgDispId);
2191 
2192     HRESULT (STDMETHODCALLTYPE *Invoke)(
2193         IInkTransform *This,
2194         DISPID dispIdMember,
2195         REFIID riid,
2196         LCID lcid,
2197         WORD wFlags,
2198         DISPPARAMS *pDispParams,
2199         VARIANT *pVarResult,
2200         EXCEPINFO *pExcepInfo,
2201         UINT *puArgErr);
2202 
2203     /*** IInkTransform methods ***/
2204     HRESULT (STDMETHODCALLTYPE *Reset)(
2205         IInkTransform *This);
2206 
2207     HRESULT (STDMETHODCALLTYPE *Translate)(
2208         IInkTransform *This,
2209         float HorizontalComponent,
2210         float VerticalComponent);
2211 
2212     HRESULT (STDMETHODCALLTYPE *Rotate)(
2213         IInkTransform *This,
2214         float Degrees,
2215         float x,
2216         float y);
2217 
2218     HRESULT (STDMETHODCALLTYPE *Reflect)(
2219         IInkTransform *This,
2220         VARIANT_BOOL Horizontally,
2221         VARIANT_BOOL Vertically);
2222 
2223     HRESULT (STDMETHODCALLTYPE *Shear)(
2224         IInkTransform *This,
2225         float HorizontalComponent,
2226         float VerticalComponent);
2227 
2228     HRESULT (STDMETHODCALLTYPE *ScaleTransform)(
2229         IInkTransform *This,
2230         float HorizontalMultiplier,
2231         float VerticalMultiplier);
2232 
2233     HRESULT (STDMETHODCALLTYPE *GetTransform)(
2234         IInkTransform *This,
2235         float *eM11,
2236         float *eM12,
2237         float *eM21,
2238         float *eM22,
2239         float *eDx,
2240         float *eDy);
2241 
2242     HRESULT (STDMETHODCALLTYPE *SetTransform)(
2243         IInkTransform *This,
2244         float eM11,
2245         float eM12,
2246         float eM21,
2247         float eM22,
2248         float eDx,
2249         float eDy);
2250 
2251     HRESULT (STDMETHODCALLTYPE *get_eM11)(
2252         IInkTransform *This,
2253         float *Value);
2254 
2255     HRESULT (STDMETHODCALLTYPE *put_eM11)(
2256         IInkTransform *This,
2257         float Value);
2258 
2259     HRESULT (STDMETHODCALLTYPE *get_eM12)(
2260         IInkTransform *This,
2261         float *Value);
2262 
2263     HRESULT (STDMETHODCALLTYPE *put_eM12)(
2264         IInkTransform *This,
2265         float Value);
2266 
2267     HRESULT (STDMETHODCALLTYPE *get_eM21)(
2268         IInkTransform *This,
2269         float *Value);
2270 
2271     HRESULT (STDMETHODCALLTYPE *put_eM21)(
2272         IInkTransform *This,
2273         float Value);
2274 
2275     HRESULT (STDMETHODCALLTYPE *get_eM22)(
2276         IInkTransform *This,
2277         float *Value);
2278 
2279     HRESULT (STDMETHODCALLTYPE *put_eM22)(
2280         IInkTransform *This,
2281         float Value);
2282 
2283     HRESULT (STDMETHODCALLTYPE *get_eDx)(
2284         IInkTransform *This,
2285         float *Value);
2286 
2287     HRESULT (STDMETHODCALLTYPE *put_eDx)(
2288         IInkTransform *This,
2289         float Value);
2290 
2291     HRESULT (STDMETHODCALLTYPE *get_eDy)(
2292         IInkTransform *This,
2293         float *Value);
2294 
2295     HRESULT (STDMETHODCALLTYPE *put_eDy)(
2296         IInkTransform *This,
2297         float Value);
2298 
2299     HRESULT (STDMETHODCALLTYPE *get_Data)(
2300         IInkTransform *This,
2301         XFORM *XForm);
2302 
2303     HRESULT (STDMETHODCALLTYPE *put_Data)(
2304         IInkTransform *This,
2305         XFORM XForm);
2306 
2307     END_INTERFACE
2308 } IInkTransformVtbl;
2309 
2310 interface IInkTransform {
2311     CONST_VTBL IInkTransformVtbl* lpVtbl;
2312 };
2313 
2314 #ifdef COBJMACROS
2315 #ifndef WIDL_C_INLINE_WRAPPERS
2316 /*** IUnknown methods ***/
2317 #define IInkTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2318 #define IInkTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
2319 #define IInkTransform_Release(This) (This)->lpVtbl->Release(This)
2320 /*** IDispatch methods ***/
2321 #define IInkTransform_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2322 #define IInkTransform_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2323 #define IInkTransform_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2324 #define IInkTransform_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2325 /*** IInkTransform methods ***/
2326 #define IInkTransform_Reset(This) (This)->lpVtbl->Reset(This)
2327 #define IInkTransform_Translate(This,HorizontalComponent,VerticalComponent) (This)->lpVtbl->Translate(This,HorizontalComponent,VerticalComponent)
2328 #define IInkTransform_Rotate(This,Degrees,x,y) (This)->lpVtbl->Rotate(This,Degrees,x,y)
2329 #define IInkTransform_Reflect(This,Horizontally,Vertically) (This)->lpVtbl->Reflect(This,Horizontally,Vertically)
2330 #define IInkTransform_Shear(This,HorizontalComponent,VerticalComponent) (This)->lpVtbl->Shear(This,HorizontalComponent,VerticalComponent)
2331 #define IInkTransform_ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier) (This)->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier)
2332 #define IInkTransform_GetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy) (This)->lpVtbl->GetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy)
2333 #define IInkTransform_SetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy) (This)->lpVtbl->SetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy)
2334 #define IInkTransform_get_eM11(This,Value) (This)->lpVtbl->get_eM11(This,Value)
2335 #define IInkTransform_put_eM11(This,Value) (This)->lpVtbl->put_eM11(This,Value)
2336 #define IInkTransform_get_eM12(This,Value) (This)->lpVtbl->get_eM12(This,Value)
2337 #define IInkTransform_put_eM12(This,Value) (This)->lpVtbl->put_eM12(This,Value)
2338 #define IInkTransform_get_eM21(This,Value) (This)->lpVtbl->get_eM21(This,Value)
2339 #define IInkTransform_put_eM21(This,Value) (This)->lpVtbl->put_eM21(This,Value)
2340 #define IInkTransform_get_eM22(This,Value) (This)->lpVtbl->get_eM22(This,Value)
2341 #define IInkTransform_put_eM22(This,Value) (This)->lpVtbl->put_eM22(This,Value)
2342 #define IInkTransform_get_eDx(This,Value) (This)->lpVtbl->get_eDx(This,Value)
2343 #define IInkTransform_put_eDx(This,Value) (This)->lpVtbl->put_eDx(This,Value)
2344 #define IInkTransform_get_eDy(This,Value) (This)->lpVtbl->get_eDy(This,Value)
2345 #define IInkTransform_put_eDy(This,Value) (This)->lpVtbl->put_eDy(This,Value)
2346 #define IInkTransform_get_Data(This,XForm) (This)->lpVtbl->get_Data(This,XForm)
2347 #define IInkTransform_put_Data(This,XForm) (This)->lpVtbl->put_Data(This,XForm)
2348 #else
2349 /*** IUnknown methods ***/
2350 static FORCEINLINE HRESULT IInkTransform_QueryInterface(IInkTransform* This,REFIID riid,void **ppvObject) {
2351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2352 }
2353 static FORCEINLINE ULONG IInkTransform_AddRef(IInkTransform* This) {
2354     return This->lpVtbl->AddRef(This);
2355 }
2356 static FORCEINLINE ULONG IInkTransform_Release(IInkTransform* This) {
2357     return This->lpVtbl->Release(This);
2358 }
2359 /*** IDispatch methods ***/
2360 static FORCEINLINE HRESULT IInkTransform_GetTypeInfoCount(IInkTransform* This,UINT *pctinfo) {
2361     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2362 }
2363 static FORCEINLINE HRESULT IInkTransform_GetTypeInfo(IInkTransform* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2364     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2365 }
2366 static FORCEINLINE HRESULT IInkTransform_GetIDsOfNames(IInkTransform* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2367     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2368 }
2369 static FORCEINLINE HRESULT IInkTransform_Invoke(IInkTransform* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2370     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2371 }
2372 /*** IInkTransform methods ***/
2373 static FORCEINLINE HRESULT IInkTransform_Reset(IInkTransform* This) {
2374     return This->lpVtbl->Reset(This);
2375 }
2376 static FORCEINLINE HRESULT IInkTransform_Translate(IInkTransform* This,float HorizontalComponent,float VerticalComponent) {
2377     return This->lpVtbl->Translate(This,HorizontalComponent,VerticalComponent);
2378 }
2379 static FORCEINLINE HRESULT IInkTransform_Rotate(IInkTransform* This,float Degrees,float x,float y) {
2380     return This->lpVtbl->Rotate(This,Degrees,x,y);
2381 }
2382 static FORCEINLINE HRESULT IInkTransform_Reflect(IInkTransform* This,VARIANT_BOOL Horizontally,VARIANT_BOOL Vertically) {
2383     return This->lpVtbl->Reflect(This,Horizontally,Vertically);
2384 }
2385 static FORCEINLINE HRESULT IInkTransform_Shear(IInkTransform* This,float HorizontalComponent,float VerticalComponent) {
2386     return This->lpVtbl->Shear(This,HorizontalComponent,VerticalComponent);
2387 }
2388 static FORCEINLINE HRESULT IInkTransform_ScaleTransform(IInkTransform* This,float HorizontalMultiplier,float VerticalMultiplier) {
2389     return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier);
2390 }
2391 static FORCEINLINE HRESULT IInkTransform_GetTransform(IInkTransform* This,float *eM11,float *eM12,float *eM21,float *eM22,float *eDx,float *eDy) {
2392     return This->lpVtbl->GetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy);
2393 }
2394 static FORCEINLINE HRESULT IInkTransform_SetTransform(IInkTransform* This,float eM11,float eM12,float eM21,float eM22,float eDx,float eDy) {
2395     return This->lpVtbl->SetTransform(This,eM11,eM12,eM21,eM22,eDx,eDy);
2396 }
2397 static FORCEINLINE HRESULT IInkTransform_get_eM11(IInkTransform* This,float *Value) {
2398     return This->lpVtbl->get_eM11(This,Value);
2399 }
2400 static FORCEINLINE HRESULT IInkTransform_put_eM11(IInkTransform* This,float Value) {
2401     return This->lpVtbl->put_eM11(This,Value);
2402 }
2403 static FORCEINLINE HRESULT IInkTransform_get_eM12(IInkTransform* This,float *Value) {
2404     return This->lpVtbl->get_eM12(This,Value);
2405 }
2406 static FORCEINLINE HRESULT IInkTransform_put_eM12(IInkTransform* This,float Value) {
2407     return This->lpVtbl->put_eM12(This,Value);
2408 }
2409 static FORCEINLINE HRESULT IInkTransform_get_eM21(IInkTransform* This,float *Value) {
2410     return This->lpVtbl->get_eM21(This,Value);
2411 }
2412 static FORCEINLINE HRESULT IInkTransform_put_eM21(IInkTransform* This,float Value) {
2413     return This->lpVtbl->put_eM21(This,Value);
2414 }
2415 static FORCEINLINE HRESULT IInkTransform_get_eM22(IInkTransform* This,float *Value) {
2416     return This->lpVtbl->get_eM22(This,Value);
2417 }
2418 static FORCEINLINE HRESULT IInkTransform_put_eM22(IInkTransform* This,float Value) {
2419     return This->lpVtbl->put_eM22(This,Value);
2420 }
2421 static FORCEINLINE HRESULT IInkTransform_get_eDx(IInkTransform* This,float *Value) {
2422     return This->lpVtbl->get_eDx(This,Value);
2423 }
2424 static FORCEINLINE HRESULT IInkTransform_put_eDx(IInkTransform* This,float Value) {
2425     return This->lpVtbl->put_eDx(This,Value);
2426 }
2427 static FORCEINLINE HRESULT IInkTransform_get_eDy(IInkTransform* This,float *Value) {
2428     return This->lpVtbl->get_eDy(This,Value);
2429 }
2430 static FORCEINLINE HRESULT IInkTransform_put_eDy(IInkTransform* This,float Value) {
2431     return This->lpVtbl->put_eDy(This,Value);
2432 }
2433 static FORCEINLINE HRESULT IInkTransform_get_Data(IInkTransform* This,XFORM *XForm) {
2434     return This->lpVtbl->get_Data(This,XForm);
2435 }
2436 static FORCEINLINE HRESULT IInkTransform_put_Data(IInkTransform* This,XFORM XForm) {
2437     return This->lpVtbl->put_Data(This,XForm);
2438 }
2439 #endif
2440 #endif
2441 
2442 #endif
2443 
2444 
2445 #endif  /* __IInkTransform_INTERFACE_DEFINED__ */
2446 
2447 /*****************************************************************************
2448  * IInkRecognitionAlternates interface
2449  */
2450 #ifndef __IInkRecognitionAlternates_INTERFACE_DEFINED__
2451 #define __IInkRecognitionAlternates_INTERFACE_DEFINED__
2452 
2453 DEFINE_GUID(IID_IInkRecognitionAlternates, 0x286a167f, 0x9f19, 0x4c61, 0x9d,0x53, 0x4f,0x07,0xbe,0x62,0x2b,0x84);
2454 #if defined(__cplusplus) && !defined(CINTERFACE)
2455 MIDL_INTERFACE("286a167f-9f19-4c61-9d53-4f07be622b84")
2456 IInkRecognitionAlternates : public IDispatch
2457 {
2458     virtual HRESULT STDMETHODCALLTYPE get_Count(
2459         LONG *Count) = 0;
2460 
2461     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
2462         IUnknown **_NewEnum) = 0;
2463 
2464     virtual HRESULT STDMETHODCALLTYPE get_Strokes(
2465         IInkStrokes **Strokes) = 0;
2466 
2467     virtual HRESULT STDMETHODCALLTYPE Item(
2468         LONG Index,
2469         IInkRecognitionAlternate **InkRecoAlternate) = 0;
2470 
2471 };
2472 #ifdef __CRT_UUID_DECL
2473 __CRT_UUID_DECL(IInkRecognitionAlternates, 0x286a167f, 0x9f19, 0x4c61, 0x9d,0x53, 0x4f,0x07,0xbe,0x62,0x2b,0x84)
2474 #endif
2475 #else
2476 typedef struct IInkRecognitionAlternatesVtbl {
2477     BEGIN_INTERFACE
2478 
2479     /*** IUnknown methods ***/
2480     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2481         IInkRecognitionAlternates *This,
2482         REFIID riid,
2483         void **ppvObject);
2484 
2485     ULONG (STDMETHODCALLTYPE *AddRef)(
2486         IInkRecognitionAlternates *This);
2487 
2488     ULONG (STDMETHODCALLTYPE *Release)(
2489         IInkRecognitionAlternates *This);
2490 
2491     /*** IDispatch methods ***/
2492     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2493         IInkRecognitionAlternates *This,
2494         UINT *pctinfo);
2495 
2496     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2497         IInkRecognitionAlternates *This,
2498         UINT iTInfo,
2499         LCID lcid,
2500         ITypeInfo **ppTInfo);
2501 
2502     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2503         IInkRecognitionAlternates *This,
2504         REFIID riid,
2505         LPOLESTR *rgszNames,
2506         UINT cNames,
2507         LCID lcid,
2508         DISPID *rgDispId);
2509 
2510     HRESULT (STDMETHODCALLTYPE *Invoke)(
2511         IInkRecognitionAlternates *This,
2512         DISPID dispIdMember,
2513         REFIID riid,
2514         LCID lcid,
2515         WORD wFlags,
2516         DISPPARAMS *pDispParams,
2517         VARIANT *pVarResult,
2518         EXCEPINFO *pExcepInfo,
2519         UINT *puArgErr);
2520 
2521     /*** IInkRecognitionAlternates methods ***/
2522     HRESULT (STDMETHODCALLTYPE *get_Count)(
2523         IInkRecognitionAlternates *This,
2524         LONG *Count);
2525 
2526     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
2527         IInkRecognitionAlternates *This,
2528         IUnknown **_NewEnum);
2529 
2530     HRESULT (STDMETHODCALLTYPE *get_Strokes)(
2531         IInkRecognitionAlternates *This,
2532         IInkStrokes **Strokes);
2533 
2534     HRESULT (STDMETHODCALLTYPE *Item)(
2535         IInkRecognitionAlternates *This,
2536         LONG Index,
2537         IInkRecognitionAlternate **InkRecoAlternate);
2538 
2539     END_INTERFACE
2540 } IInkRecognitionAlternatesVtbl;
2541 
2542 interface IInkRecognitionAlternates {
2543     CONST_VTBL IInkRecognitionAlternatesVtbl* lpVtbl;
2544 };
2545 
2546 #ifdef COBJMACROS
2547 #ifndef WIDL_C_INLINE_WRAPPERS
2548 /*** IUnknown methods ***/
2549 #define IInkRecognitionAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2550 #define IInkRecognitionAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
2551 #define IInkRecognitionAlternates_Release(This) (This)->lpVtbl->Release(This)
2552 /*** IDispatch methods ***/
2553 #define IInkRecognitionAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2554 #define IInkRecognitionAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2555 #define IInkRecognitionAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2556 #define IInkRecognitionAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2557 /*** IInkRecognitionAlternates methods ***/
2558 #define IInkRecognitionAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
2559 #define IInkRecognitionAlternates_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
2560 #define IInkRecognitionAlternates_get_Strokes(This,Strokes) (This)->lpVtbl->get_Strokes(This,Strokes)
2561 #define IInkRecognitionAlternates_Item(This,Index,InkRecoAlternate) (This)->lpVtbl->Item(This,Index,InkRecoAlternate)
2562 #else
2563 /*** IUnknown methods ***/
2564 static FORCEINLINE HRESULT IInkRecognitionAlternates_QueryInterface(IInkRecognitionAlternates* This,REFIID riid,void **ppvObject) {
2565     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2566 }
2567 static FORCEINLINE ULONG IInkRecognitionAlternates_AddRef(IInkRecognitionAlternates* This) {
2568     return This->lpVtbl->AddRef(This);
2569 }
2570 static FORCEINLINE ULONG IInkRecognitionAlternates_Release(IInkRecognitionAlternates* This) {
2571     return This->lpVtbl->Release(This);
2572 }
2573 /*** IDispatch methods ***/
2574 static FORCEINLINE HRESULT IInkRecognitionAlternates_GetTypeInfoCount(IInkRecognitionAlternates* This,UINT *pctinfo) {
2575     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2576 }
2577 static FORCEINLINE HRESULT IInkRecognitionAlternates_GetTypeInfo(IInkRecognitionAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2578     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2579 }
2580 static FORCEINLINE HRESULT IInkRecognitionAlternates_GetIDsOfNames(IInkRecognitionAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2581     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2582 }
2583 static FORCEINLINE HRESULT IInkRecognitionAlternates_Invoke(IInkRecognitionAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2584     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2585 }
2586 /*** IInkRecognitionAlternates methods ***/
2587 static FORCEINLINE HRESULT IInkRecognitionAlternates_get_Count(IInkRecognitionAlternates* This,LONG *Count) {
2588     return This->lpVtbl->get_Count(This,Count);
2589 }
2590 static FORCEINLINE HRESULT IInkRecognitionAlternates_get__NewEnum(IInkRecognitionAlternates* This,IUnknown **_NewEnum) {
2591     return This->lpVtbl->get__NewEnum(This,_NewEnum);
2592 }
2593 static FORCEINLINE HRESULT IInkRecognitionAlternates_get_Strokes(IInkRecognitionAlternates* This,IInkStrokes **Strokes) {
2594     return This->lpVtbl->get_Strokes(This,Strokes);
2595 }
2596 static FORCEINLINE HRESULT IInkRecognitionAlternates_Item(IInkRecognitionAlternates* This,LONG Index,IInkRecognitionAlternate **InkRecoAlternate) {
2597     return This->lpVtbl->Item(This,Index,InkRecoAlternate);
2598 }
2599 #endif
2600 #endif
2601 
2602 #endif
2603 
2604 
2605 #endif  /* __IInkRecognitionAlternates_INTERFACE_DEFINED__ */
2606 
2607 /*****************************************************************************
2608  * IInkRecognitionAlternate interface
2609  */
2610 #ifndef __IInkRecognitionAlternate_INTERFACE_DEFINED__
2611 #define __IInkRecognitionAlternate_INTERFACE_DEFINED__
2612 
2613 DEFINE_GUID(IID_IInkRecognitionAlternate, 0xb7e660ad, 0x77e4, 0x429b, 0xad,0xda, 0x87,0x37,0x80,0xd1,0xfc,0x4a);
2614 #if defined(__cplusplus) && !defined(CINTERFACE)
2615 MIDL_INTERFACE("b7e660ad-77e4-429b-adda-873780d1fc4a")
2616 IInkRecognitionAlternate : public IDispatch
2617 {
2618     virtual HRESULT STDMETHODCALLTYPE get_String(
2619         BSTR *RecoString) = 0;
2620 
2621     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
2622         InkRecognitionConfidence *Confidence) = 0;
2623 
2624     virtual HRESULT STDMETHODCALLTYPE get_Baseline(
2625         VARIANT *Baseline) = 0;
2626 
2627     virtual HRESULT STDMETHODCALLTYPE get_Midline(
2628         VARIANT *Midline) = 0;
2629 
2630     virtual HRESULT STDMETHODCALLTYPE get_Ascender(
2631         VARIANT *Ascender) = 0;
2632 
2633     virtual HRESULT STDMETHODCALLTYPE get_Descender(
2634         VARIANT *Descender) = 0;
2635 
2636     virtual HRESULT STDMETHODCALLTYPE get_LineNumber(
2637         LONG *LineNumber) = 0;
2638 
2639     virtual HRESULT STDMETHODCALLTYPE get_Strokes(
2640         IInkStrokes **Strokes) = 0;
2641 
2642     virtual HRESULT STDMETHODCALLTYPE get_LineAlternates(
2643         IInkRecognitionAlternates **LineAlternates) = 0;
2644 
2645     virtual HRESULT STDMETHODCALLTYPE get_ConfidenceAlternates(
2646         IInkRecognitionAlternates **ConfidenceAlternates) = 0;
2647 
2648     virtual HRESULT STDMETHODCALLTYPE GetStrokesFromStrokeRanges(
2649         IInkStrokes *Strokes,
2650         IInkStrokes **GetStrokesFromStrokeRanges) = 0;
2651 
2652     virtual HRESULT STDMETHODCALLTYPE GetStrokesFromTextRange(
2653         LONG *selectionStart,
2654         LONG *selectionLength,
2655         IInkStrokes **GetStrokesFromTextRange) = 0;
2656 
2657     virtual HRESULT STDMETHODCALLTYPE GetTextRangeFromStrokes(
2658         IInkStrokes *Strokes,
2659         LONG *selectionStart,
2660         LONG *selectionLength) = 0;
2661 
2662     virtual HRESULT STDMETHODCALLTYPE AlternatesWithConstantPropertyValues(
2663         BSTR PropertyType,
2664         IInkRecognitionAlternates **AlternatesWithConstantPropertyValues) = 0;
2665 
2666     virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
2667         BSTR PropertyType,
2668         VARIANT *PropertyValue) = 0;
2669 
2670 };
2671 #ifdef __CRT_UUID_DECL
2672 __CRT_UUID_DECL(IInkRecognitionAlternate, 0xb7e660ad, 0x77e4, 0x429b, 0xad,0xda, 0x87,0x37,0x80,0xd1,0xfc,0x4a)
2673 #endif
2674 #else
2675 typedef struct IInkRecognitionAlternateVtbl {
2676     BEGIN_INTERFACE
2677 
2678     /*** IUnknown methods ***/
2679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2680         IInkRecognitionAlternate *This,
2681         REFIID riid,
2682         void **ppvObject);
2683 
2684     ULONG (STDMETHODCALLTYPE *AddRef)(
2685         IInkRecognitionAlternate *This);
2686 
2687     ULONG (STDMETHODCALLTYPE *Release)(
2688         IInkRecognitionAlternate *This);
2689 
2690     /*** IDispatch methods ***/
2691     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2692         IInkRecognitionAlternate *This,
2693         UINT *pctinfo);
2694 
2695     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2696         IInkRecognitionAlternate *This,
2697         UINT iTInfo,
2698         LCID lcid,
2699         ITypeInfo **ppTInfo);
2700 
2701     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2702         IInkRecognitionAlternate *This,
2703         REFIID riid,
2704         LPOLESTR *rgszNames,
2705         UINT cNames,
2706         LCID lcid,
2707         DISPID *rgDispId);
2708 
2709     HRESULT (STDMETHODCALLTYPE *Invoke)(
2710         IInkRecognitionAlternate *This,
2711         DISPID dispIdMember,
2712         REFIID riid,
2713         LCID lcid,
2714         WORD wFlags,
2715         DISPPARAMS *pDispParams,
2716         VARIANT *pVarResult,
2717         EXCEPINFO *pExcepInfo,
2718         UINT *puArgErr);
2719 
2720     /*** IInkRecognitionAlternate methods ***/
2721     HRESULT (STDMETHODCALLTYPE *get_String)(
2722         IInkRecognitionAlternate *This,
2723         BSTR *RecoString);
2724 
2725     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
2726         IInkRecognitionAlternate *This,
2727         InkRecognitionConfidence *Confidence);
2728 
2729     HRESULT (STDMETHODCALLTYPE *get_Baseline)(
2730         IInkRecognitionAlternate *This,
2731         VARIANT *Baseline);
2732 
2733     HRESULT (STDMETHODCALLTYPE *get_Midline)(
2734         IInkRecognitionAlternate *This,
2735         VARIANT *Midline);
2736 
2737     HRESULT (STDMETHODCALLTYPE *get_Ascender)(
2738         IInkRecognitionAlternate *This,
2739         VARIANT *Ascender);
2740 
2741     HRESULT (STDMETHODCALLTYPE *get_Descender)(
2742         IInkRecognitionAlternate *This,
2743         VARIANT *Descender);
2744 
2745     HRESULT (STDMETHODCALLTYPE *get_LineNumber)(
2746         IInkRecognitionAlternate *This,
2747         LONG *LineNumber);
2748 
2749     HRESULT (STDMETHODCALLTYPE *get_Strokes)(
2750         IInkRecognitionAlternate *This,
2751         IInkStrokes **Strokes);
2752 
2753     HRESULT (STDMETHODCALLTYPE *get_LineAlternates)(
2754         IInkRecognitionAlternate *This,
2755         IInkRecognitionAlternates **LineAlternates);
2756 
2757     HRESULT (STDMETHODCALLTYPE *get_ConfidenceAlternates)(
2758         IInkRecognitionAlternate *This,
2759         IInkRecognitionAlternates **ConfidenceAlternates);
2760 
2761     HRESULT (STDMETHODCALLTYPE *GetStrokesFromStrokeRanges)(
2762         IInkRecognitionAlternate *This,
2763         IInkStrokes *Strokes,
2764         IInkStrokes **GetStrokesFromStrokeRanges);
2765 
2766     HRESULT (STDMETHODCALLTYPE *GetStrokesFromTextRange)(
2767         IInkRecognitionAlternate *This,
2768         LONG *selectionStart,
2769         LONG *selectionLength,
2770         IInkStrokes **GetStrokesFromTextRange);
2771 
2772     HRESULT (STDMETHODCALLTYPE *GetTextRangeFromStrokes)(
2773         IInkRecognitionAlternate *This,
2774         IInkStrokes *Strokes,
2775         LONG *selectionStart,
2776         LONG *selectionLength);
2777 
2778     HRESULT (STDMETHODCALLTYPE *AlternatesWithConstantPropertyValues)(
2779         IInkRecognitionAlternate *This,
2780         BSTR PropertyType,
2781         IInkRecognitionAlternates **AlternatesWithConstantPropertyValues);
2782 
2783     HRESULT (STDMETHODCALLTYPE *GetPropertyValue)(
2784         IInkRecognitionAlternate *This,
2785         BSTR PropertyType,
2786         VARIANT *PropertyValue);
2787 
2788     END_INTERFACE
2789 } IInkRecognitionAlternateVtbl;
2790 
2791 interface IInkRecognitionAlternate {
2792     CONST_VTBL IInkRecognitionAlternateVtbl* lpVtbl;
2793 };
2794 
2795 #ifdef COBJMACROS
2796 #ifndef WIDL_C_INLINE_WRAPPERS
2797 /*** IUnknown methods ***/
2798 #define IInkRecognitionAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2799 #define IInkRecognitionAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
2800 #define IInkRecognitionAlternate_Release(This) (This)->lpVtbl->Release(This)
2801 /*** IDispatch methods ***/
2802 #define IInkRecognitionAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2803 #define IInkRecognitionAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2804 #define IInkRecognitionAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2805 #define IInkRecognitionAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2806 /*** IInkRecognitionAlternate methods ***/
2807 #define IInkRecognitionAlternate_get_String(This,RecoString) (This)->lpVtbl->get_String(This,RecoString)
2808 #define IInkRecognitionAlternate_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
2809 #define IInkRecognitionAlternate_get_Baseline(This,Baseline) (This)->lpVtbl->get_Baseline(This,Baseline)
2810 #define IInkRecognitionAlternate_get_Midline(This,Midline) (This)->lpVtbl->get_Midline(This,Midline)
2811 #define IInkRecognitionAlternate_get_Ascender(This,Ascender) (This)->lpVtbl->get_Ascender(This,Ascender)
2812 #define IInkRecognitionAlternate_get_Descender(This,Descender) (This)->lpVtbl->get_Descender(This,Descender)
2813 #define IInkRecognitionAlternate_get_LineNumber(This,LineNumber) (This)->lpVtbl->get_LineNumber(This,LineNumber)
2814 #define IInkRecognitionAlternate_get_Strokes(This,Strokes) (This)->lpVtbl->get_Strokes(This,Strokes)
2815 #define IInkRecognitionAlternate_get_LineAlternates(This,LineAlternates) (This)->lpVtbl->get_LineAlternates(This,LineAlternates)
2816 #define IInkRecognitionAlternate_get_ConfidenceAlternates(This,ConfidenceAlternates) (This)->lpVtbl->get_ConfidenceAlternates(This,ConfidenceAlternates)
2817 #define IInkRecognitionAlternate_GetStrokesFromStrokeRanges(This,Strokes,GetStrokesFromStrokeRanges) (This)->lpVtbl->GetStrokesFromStrokeRanges(This,Strokes,GetStrokesFromStrokeRanges)
2818 #define IInkRecognitionAlternate_GetStrokesFromTextRange(This,selectionStart,selectionLength,GetStrokesFromTextRange) (This)->lpVtbl->GetStrokesFromTextRange(This,selectionStart,selectionLength,GetStrokesFromTextRange)
2819 #define IInkRecognitionAlternate_GetTextRangeFromStrokes(This,Strokes,selectionStart,selectionLength) (This)->lpVtbl->GetTextRangeFromStrokes(This,Strokes,selectionStart,selectionLength)
2820 #define IInkRecognitionAlternate_AlternatesWithConstantPropertyValues(This,PropertyType,AlternatesWithConstantPropertyValues) (This)->lpVtbl->AlternatesWithConstantPropertyValues(This,PropertyType,AlternatesWithConstantPropertyValues)
2821 #define IInkRecognitionAlternate_GetPropertyValue(This,PropertyType,PropertyValue) (This)->lpVtbl->GetPropertyValue(This,PropertyType,PropertyValue)
2822 #else
2823 /*** IUnknown methods ***/
2824 static FORCEINLINE HRESULT IInkRecognitionAlternate_QueryInterface(IInkRecognitionAlternate* This,REFIID riid,void **ppvObject) {
2825     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2826 }
2827 static FORCEINLINE ULONG IInkRecognitionAlternate_AddRef(IInkRecognitionAlternate* This) {
2828     return This->lpVtbl->AddRef(This);
2829 }
2830 static FORCEINLINE ULONG IInkRecognitionAlternate_Release(IInkRecognitionAlternate* This) {
2831     return This->lpVtbl->Release(This);
2832 }
2833 /*** IDispatch methods ***/
2834 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetTypeInfoCount(IInkRecognitionAlternate* This,UINT *pctinfo) {
2835     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2836 }
2837 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetTypeInfo(IInkRecognitionAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2838     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2839 }
2840 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetIDsOfNames(IInkRecognitionAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2841     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2842 }
2843 static FORCEINLINE HRESULT IInkRecognitionAlternate_Invoke(IInkRecognitionAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2844     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2845 }
2846 /*** IInkRecognitionAlternate methods ***/
2847 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_String(IInkRecognitionAlternate* This,BSTR *RecoString) {
2848     return This->lpVtbl->get_String(This,RecoString);
2849 }
2850 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Confidence(IInkRecognitionAlternate* This,InkRecognitionConfidence *Confidence) {
2851     return This->lpVtbl->get_Confidence(This,Confidence);
2852 }
2853 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Baseline(IInkRecognitionAlternate* This,VARIANT *Baseline) {
2854     return This->lpVtbl->get_Baseline(This,Baseline);
2855 }
2856 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Midline(IInkRecognitionAlternate* This,VARIANT *Midline) {
2857     return This->lpVtbl->get_Midline(This,Midline);
2858 }
2859 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Ascender(IInkRecognitionAlternate* This,VARIANT *Ascender) {
2860     return This->lpVtbl->get_Ascender(This,Ascender);
2861 }
2862 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Descender(IInkRecognitionAlternate* This,VARIANT *Descender) {
2863     return This->lpVtbl->get_Descender(This,Descender);
2864 }
2865 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_LineNumber(IInkRecognitionAlternate* This,LONG *LineNumber) {
2866     return This->lpVtbl->get_LineNumber(This,LineNumber);
2867 }
2868 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_Strokes(IInkRecognitionAlternate* This,IInkStrokes **Strokes) {
2869     return This->lpVtbl->get_Strokes(This,Strokes);
2870 }
2871 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_LineAlternates(IInkRecognitionAlternate* This,IInkRecognitionAlternates **LineAlternates) {
2872     return This->lpVtbl->get_LineAlternates(This,LineAlternates);
2873 }
2874 static FORCEINLINE HRESULT IInkRecognitionAlternate_get_ConfidenceAlternates(IInkRecognitionAlternate* This,IInkRecognitionAlternates **ConfidenceAlternates) {
2875     return This->lpVtbl->get_ConfidenceAlternates(This,ConfidenceAlternates);
2876 }
2877 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetStrokesFromStrokeRanges(IInkRecognitionAlternate* This,IInkStrokes *Strokes,IInkStrokes **GetStrokesFromStrokeRanges) {
2878     return This->lpVtbl->GetStrokesFromStrokeRanges(This,Strokes,GetStrokesFromStrokeRanges);
2879 }
2880 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetStrokesFromTextRange(IInkRecognitionAlternate* This,LONG *selectionStart,LONG *selectionLength,IInkStrokes **GetStrokesFromTextRange) {
2881     return This->lpVtbl->GetStrokesFromTextRange(This,selectionStart,selectionLength,GetStrokesFromTextRange);
2882 }
2883 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetTextRangeFromStrokes(IInkRecognitionAlternate* This,IInkStrokes *Strokes,LONG *selectionStart,LONG *selectionLength) {
2884     return This->lpVtbl->GetTextRangeFromStrokes(This,Strokes,selectionStart,selectionLength);
2885 }
2886 static FORCEINLINE HRESULT IInkRecognitionAlternate_AlternatesWithConstantPropertyValues(IInkRecognitionAlternate* This,BSTR PropertyType,IInkRecognitionAlternates **AlternatesWithConstantPropertyValues) {
2887     return This->lpVtbl->AlternatesWithConstantPropertyValues(This,PropertyType,AlternatesWithConstantPropertyValues);
2888 }
2889 static FORCEINLINE HRESULT IInkRecognitionAlternate_GetPropertyValue(IInkRecognitionAlternate* This,BSTR PropertyType,VARIANT *PropertyValue) {
2890     return This->lpVtbl->GetPropertyValue(This,PropertyType,PropertyValue);
2891 }
2892 #endif
2893 #endif
2894 
2895 #endif
2896 
2897 
2898 #endif  /* __IInkRecognitionAlternate_INTERFACE_DEFINED__ */
2899 
2900 /*****************************************************************************
2901  * IInkRecognitionResult interface
2902  */
2903 #ifndef __IInkRecognitionResult_INTERFACE_DEFINED__
2904 #define __IInkRecognitionResult_INTERFACE_DEFINED__
2905 
2906 DEFINE_GUID(IID_IInkRecognitionResult, 0x3bc129a8, 0x86cd, 0x45ad, 0xbd,0xe8, 0xe0,0xd3,0x2d,0x61,0xc1,0x6d);
2907 #if defined(__cplusplus) && !defined(CINTERFACE)
2908 MIDL_INTERFACE("3bc129a8-86cd-45ad-bde8-e0d32d61c16d")
2909 IInkRecognitionResult : public IDispatch
2910 {
2911     virtual HRESULT STDMETHODCALLTYPE get_TopString(
2912         BSTR *TopString) = 0;
2913 
2914     virtual HRESULT STDMETHODCALLTYPE get_TopAlternate(
2915         IInkRecognitionAlternate **TopAlternate) = 0;
2916 
2917     virtual HRESULT STDMETHODCALLTYPE get_TopConfidence(
2918         InkRecognitionConfidence *TopConfidence) = 0;
2919 
2920     virtual HRESULT STDMETHODCALLTYPE get_Strokes(
2921         IInkStrokes **Strokes) = 0;
2922 
2923     virtual HRESULT STDMETHODCALLTYPE AlternatesFromSelection(
2924         LONG selectionStart,
2925         LONG selectionLength,
2926         LONG maximumAlternates,
2927         IInkRecognitionAlternates **AlternatesFromSelection) = 0;
2928 
2929     virtual HRESULT STDMETHODCALLTYPE ModifyTopAlternate(
2930         IInkRecognitionAlternate *Alternate) = 0;
2931 
2932     virtual HRESULT STDMETHODCALLTYPE SetResultOnStrokes(
2933         ) = 0;
2934 
2935 };
2936 #ifdef __CRT_UUID_DECL
2937 __CRT_UUID_DECL(IInkRecognitionResult, 0x3bc129a8, 0x86cd, 0x45ad, 0xbd,0xe8, 0xe0,0xd3,0x2d,0x61,0xc1,0x6d)
2938 #endif
2939 #else
2940 typedef struct IInkRecognitionResultVtbl {
2941     BEGIN_INTERFACE
2942 
2943     /*** IUnknown methods ***/
2944     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2945         IInkRecognitionResult *This,
2946         REFIID riid,
2947         void **ppvObject);
2948 
2949     ULONG (STDMETHODCALLTYPE *AddRef)(
2950         IInkRecognitionResult *This);
2951 
2952     ULONG (STDMETHODCALLTYPE *Release)(
2953         IInkRecognitionResult *This);
2954 
2955     /*** IDispatch methods ***/
2956     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2957         IInkRecognitionResult *This,
2958         UINT *pctinfo);
2959 
2960     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2961         IInkRecognitionResult *This,
2962         UINT iTInfo,
2963         LCID lcid,
2964         ITypeInfo **ppTInfo);
2965 
2966     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2967         IInkRecognitionResult *This,
2968         REFIID riid,
2969         LPOLESTR *rgszNames,
2970         UINT cNames,
2971         LCID lcid,
2972         DISPID *rgDispId);
2973 
2974     HRESULT (STDMETHODCALLTYPE *Invoke)(
2975         IInkRecognitionResult *This,
2976         DISPID dispIdMember,
2977         REFIID riid,
2978         LCID lcid,
2979         WORD wFlags,
2980         DISPPARAMS *pDispParams,
2981         VARIANT *pVarResult,
2982         EXCEPINFO *pExcepInfo,
2983         UINT *puArgErr);
2984 
2985     /*** IInkRecognitionResult methods ***/
2986     HRESULT (STDMETHODCALLTYPE *get_TopString)(
2987         IInkRecognitionResult *This,
2988         BSTR *TopString);
2989 
2990     HRESULT (STDMETHODCALLTYPE *get_TopAlternate)(
2991         IInkRecognitionResult *This,
2992         IInkRecognitionAlternate **TopAlternate);
2993 
2994     HRESULT (STDMETHODCALLTYPE *get_TopConfidence)(
2995         IInkRecognitionResult *This,
2996         InkRecognitionConfidence *TopConfidence);
2997 
2998     HRESULT (STDMETHODCALLTYPE *get_Strokes)(
2999         IInkRecognitionResult *This,
3000         IInkStrokes **Strokes);
3001 
3002     HRESULT (STDMETHODCALLTYPE *AlternatesFromSelection)(
3003         IInkRecognitionResult *This,
3004         LONG selectionStart,
3005         LONG selectionLength,
3006         LONG maximumAlternates,
3007         IInkRecognitionAlternates **AlternatesFromSelection);
3008 
3009     HRESULT (STDMETHODCALLTYPE *ModifyTopAlternate)(
3010         IInkRecognitionResult *This,
3011         IInkRecognitionAlternate *Alternate);
3012 
3013     HRESULT (STDMETHODCALLTYPE *SetResultOnStrokes)(
3014         IInkRecognitionResult *This);
3015 
3016     END_INTERFACE
3017 } IInkRecognitionResultVtbl;
3018 
3019 interface IInkRecognitionResult {
3020     CONST_VTBL IInkRecognitionResultVtbl* lpVtbl;
3021 };
3022 
3023 #ifdef COBJMACROS
3024 #ifndef WIDL_C_INLINE_WRAPPERS
3025 /*** IUnknown methods ***/
3026 #define IInkRecognitionResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3027 #define IInkRecognitionResult_AddRef(This) (This)->lpVtbl->AddRef(This)
3028 #define IInkRecognitionResult_Release(This) (This)->lpVtbl->Release(This)
3029 /*** IDispatch methods ***/
3030 #define IInkRecognitionResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3031 #define IInkRecognitionResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3032 #define IInkRecognitionResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3033 #define IInkRecognitionResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3034 /*** IInkRecognitionResult methods ***/
3035 #define IInkRecognitionResult_get_TopString(This,TopString) (This)->lpVtbl->get_TopString(This,TopString)
3036 #define IInkRecognitionResult_get_TopAlternate(This,TopAlternate) (This)->lpVtbl->get_TopAlternate(This,TopAlternate)
3037 #define IInkRecognitionResult_get_TopConfidence(This,TopConfidence) (This)->lpVtbl->get_TopConfidence(This,TopConfidence)
3038 #define IInkRecognitionResult_get_Strokes(This,Strokes) (This)->lpVtbl->get_Strokes(This,Strokes)
3039 #define IInkRecognitionResult_AlternatesFromSelection(This,selectionStart,selectionLength,maximumAlternates,AlternatesFromSelection) (This)->lpVtbl->AlternatesFromSelection(This,selectionStart,selectionLength,maximumAlternates,AlternatesFromSelection)
3040 #define IInkRecognitionResult_ModifyTopAlternate(This,Alternate) (This)->lpVtbl->ModifyTopAlternate(This,Alternate)
3041 #define IInkRecognitionResult_SetResultOnStrokes(This) (This)->lpVtbl->SetResultOnStrokes(This)
3042 #else
3043 /*** IUnknown methods ***/
3044 static FORCEINLINE HRESULT IInkRecognitionResult_QueryInterface(IInkRecognitionResult* This,REFIID riid,void **ppvObject) {
3045     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3046 }
3047 static FORCEINLINE ULONG IInkRecognitionResult_AddRef(IInkRecognitionResult* This) {
3048     return This->lpVtbl->AddRef(This);
3049 }
3050 static FORCEINLINE ULONG IInkRecognitionResult_Release(IInkRecognitionResult* This) {
3051     return This->lpVtbl->Release(This);
3052 }
3053 /*** IDispatch methods ***/
3054 static FORCEINLINE HRESULT IInkRecognitionResult_GetTypeInfoCount(IInkRecognitionResult* This,UINT *pctinfo) {
3055     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3056 }
3057 static FORCEINLINE HRESULT IInkRecognitionResult_GetTypeInfo(IInkRecognitionResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3058     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3059 }
3060 static FORCEINLINE HRESULT IInkRecognitionResult_GetIDsOfNames(IInkRecognitionResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3061     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3062 }
3063 static FORCEINLINE HRESULT IInkRecognitionResult_Invoke(IInkRecognitionResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3064     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3065 }
3066 /*** IInkRecognitionResult methods ***/
3067 static FORCEINLINE HRESULT IInkRecognitionResult_get_TopString(IInkRecognitionResult* This,BSTR *TopString) {
3068     return This->lpVtbl->get_TopString(This,TopString);
3069 }
3070 static FORCEINLINE HRESULT IInkRecognitionResult_get_TopAlternate(IInkRecognitionResult* This,IInkRecognitionAlternate **TopAlternate) {
3071     return This->lpVtbl->get_TopAlternate(This,TopAlternate);
3072 }
3073 static FORCEINLINE HRESULT IInkRecognitionResult_get_TopConfidence(IInkRecognitionResult* This,InkRecognitionConfidence *TopConfidence) {
3074     return This->lpVtbl->get_TopConfidence(This,TopConfidence);
3075 }
3076 static FORCEINLINE HRESULT IInkRecognitionResult_get_Strokes(IInkRecognitionResult* This,IInkStrokes **Strokes) {
3077     return This->lpVtbl->get_Strokes(This,Strokes);
3078 }
3079 static FORCEINLINE HRESULT IInkRecognitionResult_AlternatesFromSelection(IInkRecognitionResult* This,LONG selectionStart,LONG selectionLength,LONG maximumAlternates,IInkRecognitionAlternates **AlternatesFromSelection) {
3080     return This->lpVtbl->AlternatesFromSelection(This,selectionStart,selectionLength,maximumAlternates,AlternatesFromSelection);
3081 }
3082 static FORCEINLINE HRESULT IInkRecognitionResult_ModifyTopAlternate(IInkRecognitionResult* This,IInkRecognitionAlternate *Alternate) {
3083     return This->lpVtbl->ModifyTopAlternate(This,Alternate);
3084 }
3085 static FORCEINLINE HRESULT IInkRecognitionResult_SetResultOnStrokes(IInkRecognitionResult* This) {
3086     return This->lpVtbl->SetResultOnStrokes(This);
3087 }
3088 #endif
3089 #endif
3090 
3091 #endif
3092 
3093 
3094 #endif  /* __IInkRecognitionResult_INTERFACE_DEFINED__ */
3095 
3096 /*****************************************************************************
3097  * IInkStrokeDisp interface
3098  */
3099 #ifndef __IInkStrokeDisp_INTERFACE_DEFINED__
3100 #define __IInkStrokeDisp_INTERFACE_DEFINED__
3101 
3102 DEFINE_GUID(IID_IInkStrokeDisp, 0x43242fea, 0x91d1, 0x4a72, 0x96,0x3e, 0xfb,0xb9,0x18,0x29,0xcf,0xa2);
3103 #if defined(__cplusplus) && !defined(CINTERFACE)
3104 MIDL_INTERFACE("43242fea-91d1-4a72-963e-fbb91829cfa2")
3105 IInkStrokeDisp : public IDispatch
3106 {
3107     virtual HRESULT STDMETHODCALLTYPE get_ID(
3108         LONG *ID) = 0;
3109 
3110     virtual HRESULT STDMETHODCALLTYPE get_BezierPoints(
3111         VARIANT *Points) = 0;
3112 
3113     virtual HRESULT STDMETHODCALLTYPE get_DrawingAttributes(
3114         IInkDrawingAttributes **DrawAttrs) = 0;
3115 
3116     virtual HRESULT STDMETHODCALLTYPE putref_DrawingAttributes(
3117         IInkDrawingAttributes *DrawAttrs) = 0;
3118 
3119     virtual HRESULT STDMETHODCALLTYPE get_Ink(
3120         IInkDisp **Ink) = 0;
3121 
3122     virtual HRESULT STDMETHODCALLTYPE get_ExtendedProperties(
3123         IInkExtendedProperties **Properties) = 0;
3124 
3125     virtual HRESULT STDMETHODCALLTYPE get_PolylineCusps(
3126         VARIANT *Cusps) = 0;
3127 
3128     virtual HRESULT STDMETHODCALLTYPE get_BezierCusps(
3129         VARIANT *Cusps) = 0;
3130 
3131     virtual HRESULT STDMETHODCALLTYPE get_SelfIntersections(
3132         VARIANT *Intersections) = 0;
3133 
3134     virtual HRESULT STDMETHODCALLTYPE get_PacketCount(
3135         LONG *plCount) = 0;
3136 
3137     virtual HRESULT STDMETHODCALLTYPE get_PacketSize(
3138         LONG *plSize) = 0;
3139 
3140     virtual HRESULT STDMETHODCALLTYPE get_PacketDescription(
3141         VARIANT *PacketDescription) = 0;
3142 
3143     virtual HRESULT STDMETHODCALLTYPE get_Deleted(
3144         VARIANT_BOOL *Deleted) = 0;
3145 
3146     virtual HRESULT STDMETHODCALLTYPE GetBoundingBox(
3147         InkBoundingBoxMode BoundingBoxMode,
3148         IInkRectangle **Rectangle) = 0;
3149 
3150     virtual HRESULT STDMETHODCALLTYPE FindIntersections(
3151         IInkStrokes *Strokes,
3152         VARIANT *Intersections) = 0;
3153 
3154     virtual HRESULT STDMETHODCALLTYPE GetRectangleIntersections(
3155         IInkRectangle *Rectangle,
3156         VARIANT *Intersections) = 0;
3157 
3158     virtual HRESULT STDMETHODCALLTYPE Clip(
3159         IInkRectangle *Rectangle) = 0;
3160 
3161     virtual HRESULT STDMETHODCALLTYPE HitTestCircle(
3162         LONG X,
3163         LONG Y,
3164         float Radius,
3165         VARIANT_BOOL *Intersects) = 0;
3166 
3167     virtual HRESULT STDMETHODCALLTYPE NearestPoint(
3168         LONG X,
3169         LONG Y,
3170         float *Distance,
3171         float *Point) = 0;
3172 
3173     virtual HRESULT STDMETHODCALLTYPE Split(
3174         float SplitAt,
3175         IInkStrokeDisp **NewStroke) = 0;
3176 
3177     virtual HRESULT STDMETHODCALLTYPE GetPacketDescriptionPropertyMetrics(
3178         BSTR PropertyName,
3179         LONG *Minimum,
3180         LONG *Maximum,
3181         TabletPropertyMetricUnit *Units,
3182         float *Resolution) = 0;
3183 
3184     virtual HRESULT STDMETHODCALLTYPE GetPoints(
3185         LONG Index,
3186         LONG Count,
3187         VARIANT *Points) = 0;
3188 
3189     virtual HRESULT STDMETHODCALLTYPE SetPoints(
3190         VARIANT Points,
3191         LONG Index,
3192         LONG Count,
3193         LONG *NumberOfPointsSet) = 0;
3194 
3195     virtual HRESULT STDMETHODCALLTYPE GetPacketData(
3196         LONG Index,
3197         LONG Count,
3198         VARIANT *PacketData) = 0;
3199 
3200     virtual HRESULT STDMETHODCALLTYPE GetPacketValuesByProperty(
3201         BSTR PropertyName,
3202         LONG Index,
3203         LONG Count,
3204         VARIANT *PacketValues) = 0;
3205 
3206     virtual HRESULT STDMETHODCALLTYPE SetPacketValuesByProperty(
3207         BSTR bstrPropertyName,
3208         VARIANT PacketValues,
3209         LONG Index,
3210         LONG Count,
3211         LONG *NumberOfPacketsSet) = 0;
3212 
3213     virtual HRESULT STDMETHODCALLTYPE GetFlattenedBezierPoints(
3214         LONG FittingError,
3215         VARIANT *FlattenedBezierPoints) = 0;
3216 
3217     virtual HRESULT STDMETHODCALLTYPE Transform(
3218         IInkTransform *Transform,
3219         VARIANT_BOOL ApplyOnPenWidth = 0) = 0;
3220 
3221     virtual HRESULT STDMETHODCALLTYPE ScaleToRectangle(
3222         IInkRectangle *Rectangle) = 0;
3223 
3224     virtual HRESULT STDMETHODCALLTYPE Move(
3225         float HorizontalComponent,
3226         float VerticalComponent) = 0;
3227 
3228     virtual HRESULT STDMETHODCALLTYPE Rotate(
3229         float Degrees,
3230         float x = 0,
3231         float y = 0) = 0;
3232 
3233     virtual HRESULT STDMETHODCALLTYPE Shear(
3234         float HorizontalMultiplier,
3235         float VerticalMultiplier) = 0;
3236 
3237     virtual HRESULT STDMETHODCALLTYPE ScaleTransform(
3238         float HorizontalMultiplier,
3239         float VerticalMultiplier) = 0;
3240 
3241 };
3242 #ifdef __CRT_UUID_DECL
3243 __CRT_UUID_DECL(IInkStrokeDisp, 0x43242fea, 0x91d1, 0x4a72, 0x96,0x3e, 0xfb,0xb9,0x18,0x29,0xcf,0xa2)
3244 #endif
3245 #else
3246 typedef struct IInkStrokeDispVtbl {
3247     BEGIN_INTERFACE
3248 
3249     /*** IUnknown methods ***/
3250     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3251         IInkStrokeDisp *This,
3252         REFIID riid,
3253         void **ppvObject);
3254 
3255     ULONG (STDMETHODCALLTYPE *AddRef)(
3256         IInkStrokeDisp *This);
3257 
3258     ULONG (STDMETHODCALLTYPE *Release)(
3259         IInkStrokeDisp *This);
3260 
3261     /*** IDispatch methods ***/
3262     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3263         IInkStrokeDisp *This,
3264         UINT *pctinfo);
3265 
3266     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3267         IInkStrokeDisp *This,
3268         UINT iTInfo,
3269         LCID lcid,
3270         ITypeInfo **ppTInfo);
3271 
3272     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3273         IInkStrokeDisp *This,
3274         REFIID riid,
3275         LPOLESTR *rgszNames,
3276         UINT cNames,
3277         LCID lcid,
3278         DISPID *rgDispId);
3279 
3280     HRESULT (STDMETHODCALLTYPE *Invoke)(
3281         IInkStrokeDisp *This,
3282         DISPID dispIdMember,
3283         REFIID riid,
3284         LCID lcid,
3285         WORD wFlags,
3286         DISPPARAMS *pDispParams,
3287         VARIANT *pVarResult,
3288         EXCEPINFO *pExcepInfo,
3289         UINT *puArgErr);
3290 
3291     /*** IInkStrokeDisp methods ***/
3292     HRESULT (STDMETHODCALLTYPE *get_ID)(
3293         IInkStrokeDisp *This,
3294         LONG *ID);
3295 
3296     HRESULT (STDMETHODCALLTYPE *get_BezierPoints)(
3297         IInkStrokeDisp *This,
3298         VARIANT *Points);
3299 
3300     HRESULT (STDMETHODCALLTYPE *get_DrawingAttributes)(
3301         IInkStrokeDisp *This,
3302         IInkDrawingAttributes **DrawAttrs);
3303 
3304     HRESULT (STDMETHODCALLTYPE *putref_DrawingAttributes)(
3305         IInkStrokeDisp *This,
3306         IInkDrawingAttributes *DrawAttrs);
3307 
3308     HRESULT (STDMETHODCALLTYPE *get_Ink)(
3309         IInkStrokeDisp *This,
3310         IInkDisp **Ink);
3311 
3312     HRESULT (STDMETHODCALLTYPE *get_ExtendedProperties)(
3313         IInkStrokeDisp *This,
3314         IInkExtendedProperties **Properties);
3315 
3316     HRESULT (STDMETHODCALLTYPE *get_PolylineCusps)(
3317         IInkStrokeDisp *This,
3318         VARIANT *Cusps);
3319 
3320     HRESULT (STDMETHODCALLTYPE *get_BezierCusps)(
3321         IInkStrokeDisp *This,
3322         VARIANT *Cusps);
3323 
3324     HRESULT (STDMETHODCALLTYPE *get_SelfIntersections)(
3325         IInkStrokeDisp *This,
3326         VARIANT *Intersections);
3327 
3328     HRESULT (STDMETHODCALLTYPE *get_PacketCount)(
3329         IInkStrokeDisp *This,
3330         LONG *plCount);
3331 
3332     HRESULT (STDMETHODCALLTYPE *get_PacketSize)(
3333         IInkStrokeDisp *This,
3334         LONG *plSize);
3335 
3336     HRESULT (STDMETHODCALLTYPE *get_PacketDescription)(
3337         IInkStrokeDisp *This,
3338         VARIANT *PacketDescription);
3339 
3340     HRESULT (STDMETHODCALLTYPE *get_Deleted)(
3341         IInkStrokeDisp *This,
3342         VARIANT_BOOL *Deleted);
3343 
3344     HRESULT (STDMETHODCALLTYPE *GetBoundingBox)(
3345         IInkStrokeDisp *This,
3346         InkBoundingBoxMode BoundingBoxMode,
3347         IInkRectangle **Rectangle);
3348 
3349     HRESULT (STDMETHODCALLTYPE *FindIntersections)(
3350         IInkStrokeDisp *This,
3351         IInkStrokes *Strokes,
3352         VARIANT *Intersections);
3353 
3354     HRESULT (STDMETHODCALLTYPE *GetRectangleIntersections)(
3355         IInkStrokeDisp *This,
3356         IInkRectangle *Rectangle,
3357         VARIANT *Intersections);
3358 
3359     HRESULT (STDMETHODCALLTYPE *Clip)(
3360         IInkStrokeDisp *This,
3361         IInkRectangle *Rectangle);
3362 
3363     HRESULT (STDMETHODCALLTYPE *HitTestCircle)(
3364         IInkStrokeDisp *This,
3365         LONG X,
3366         LONG Y,
3367         float Radius,
3368         VARIANT_BOOL *Intersects);
3369 
3370     HRESULT (STDMETHODCALLTYPE *NearestPoint)(
3371         IInkStrokeDisp *This,
3372         LONG X,
3373         LONG Y,
3374         float *Distance,
3375         float *Point);
3376 
3377     HRESULT (STDMETHODCALLTYPE *Split)(
3378         IInkStrokeDisp *This,
3379         float SplitAt,
3380         IInkStrokeDisp **NewStroke);
3381 
3382     HRESULT (STDMETHODCALLTYPE *GetPacketDescriptionPropertyMetrics)(
3383         IInkStrokeDisp *This,
3384         BSTR PropertyName,
3385         LONG *Minimum,
3386         LONG *Maximum,
3387         TabletPropertyMetricUnit *Units,
3388         float *Resolution);
3389 
3390     HRESULT (STDMETHODCALLTYPE *GetPoints)(
3391         IInkStrokeDisp *This,
3392         LONG Index,
3393         LONG Count,
3394         VARIANT *Points);
3395 
3396     HRESULT (STDMETHODCALLTYPE *SetPoints)(
3397         IInkStrokeDisp *This,
3398         VARIANT Points,
3399         LONG Index,
3400         LONG Count,
3401         LONG *NumberOfPointsSet);
3402 
3403     HRESULT (STDMETHODCALLTYPE *GetPacketData)(
3404         IInkStrokeDisp *This,
3405         LONG Index,
3406         LONG Count,
3407         VARIANT *PacketData);
3408 
3409     HRESULT (STDMETHODCALLTYPE *GetPacketValuesByProperty)(
3410         IInkStrokeDisp *This,
3411         BSTR PropertyName,
3412         LONG Index,
3413         LONG Count,
3414         VARIANT *PacketValues);
3415 
3416     HRESULT (STDMETHODCALLTYPE *SetPacketValuesByProperty)(
3417         IInkStrokeDisp *This,
3418         BSTR bstrPropertyName,
3419         VARIANT PacketValues,
3420         LONG Index,
3421         LONG Count,
3422         LONG *NumberOfPacketsSet);
3423 
3424     HRESULT (STDMETHODCALLTYPE *GetFlattenedBezierPoints)(
3425         IInkStrokeDisp *This,
3426         LONG FittingError,
3427         VARIANT *FlattenedBezierPoints);
3428 
3429     HRESULT (STDMETHODCALLTYPE *Transform)(
3430         IInkStrokeDisp *This,
3431         IInkTransform *Transform,
3432         VARIANT_BOOL ApplyOnPenWidth);
3433 
3434     HRESULT (STDMETHODCALLTYPE *ScaleToRectangle)(
3435         IInkStrokeDisp *This,
3436         IInkRectangle *Rectangle);
3437 
3438     HRESULT (STDMETHODCALLTYPE *Move)(
3439         IInkStrokeDisp *This,
3440         float HorizontalComponent,
3441         float VerticalComponent);
3442 
3443     HRESULT (STDMETHODCALLTYPE *Rotate)(
3444         IInkStrokeDisp *This,
3445         float Degrees,
3446         float x,
3447         float y);
3448 
3449     HRESULT (STDMETHODCALLTYPE *Shear)(
3450         IInkStrokeDisp *This,
3451         float HorizontalMultiplier,
3452         float VerticalMultiplier);
3453 
3454     HRESULT (STDMETHODCALLTYPE *ScaleTransform)(
3455         IInkStrokeDisp *This,
3456         float HorizontalMultiplier,
3457         float VerticalMultiplier);
3458 
3459     END_INTERFACE
3460 } IInkStrokeDispVtbl;
3461 
3462 interface IInkStrokeDisp {
3463     CONST_VTBL IInkStrokeDispVtbl* lpVtbl;
3464 };
3465 
3466 #ifdef COBJMACROS
3467 #ifndef WIDL_C_INLINE_WRAPPERS
3468 /*** IUnknown methods ***/
3469 #define IInkStrokeDisp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3470 #define IInkStrokeDisp_AddRef(This) (This)->lpVtbl->AddRef(This)
3471 #define IInkStrokeDisp_Release(This) (This)->lpVtbl->Release(This)
3472 /*** IDispatch methods ***/
3473 #define IInkStrokeDisp_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3474 #define IInkStrokeDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3475 #define IInkStrokeDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3476 #define IInkStrokeDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3477 /*** IInkStrokeDisp methods ***/
3478 #define IInkStrokeDisp_get_ID(This,ID) (This)->lpVtbl->get_ID(This,ID)
3479 #define IInkStrokeDisp_get_BezierPoints(This,Points) (This)->lpVtbl->get_BezierPoints(This,Points)
3480 #define IInkStrokeDisp_get_DrawingAttributes(This,DrawAttrs) (This)->lpVtbl->get_DrawingAttributes(This,DrawAttrs)
3481 #define IInkStrokeDisp_putref_DrawingAttributes(This,DrawAttrs) (This)->lpVtbl->putref_DrawingAttributes(This,DrawAttrs)
3482 #define IInkStrokeDisp_get_Ink(This,Ink) (This)->lpVtbl->get_Ink(This,Ink)
3483 #define IInkStrokeDisp_get_ExtendedProperties(This,Properties) (This)->lpVtbl->get_ExtendedProperties(This,Properties)
3484 #define IInkStrokeDisp_get_PolylineCusps(This,Cusps) (This)->lpVtbl->get_PolylineCusps(This,Cusps)
3485 #define IInkStrokeDisp_get_BezierCusps(This,Cusps) (This)->lpVtbl->get_BezierCusps(This,Cusps)
3486 #define IInkStrokeDisp_get_SelfIntersections(This,Intersections) (This)->lpVtbl->get_SelfIntersections(This,Intersections)
3487 #define IInkStrokeDisp_get_PacketCount(This,plCount) (This)->lpVtbl->get_PacketCount(This,plCount)
3488 #define IInkStrokeDisp_get_PacketSize(This,plSize) (This)->lpVtbl->get_PacketSize(This,plSize)
3489 #define IInkStrokeDisp_get_PacketDescription(This,PacketDescription) (This)->lpVtbl->get_PacketDescription(This,PacketDescription)
3490 #define IInkStrokeDisp_get_Deleted(This,Deleted) (This)->lpVtbl->get_Deleted(This,Deleted)
3491 #define IInkStrokeDisp_GetBoundingBox(This,BoundingBoxMode,Rectangle) (This)->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle)
3492 #define IInkStrokeDisp_FindIntersections(This,Strokes,Intersections) (This)->lpVtbl->FindIntersections(This,Strokes,Intersections)
3493 #define IInkStrokeDisp_GetRectangleIntersections(This,Rectangle,Intersections) (This)->lpVtbl->GetRectangleIntersections(This,Rectangle,Intersections)
3494 #define IInkStrokeDisp_Clip(This,Rectangle) (This)->lpVtbl->Clip(This,Rectangle)
3495 #define IInkStrokeDisp_HitTestCircle(This,X,Y,Radius,Intersects) (This)->lpVtbl->HitTestCircle(This,X,Y,Radius,Intersects)
3496 #define IInkStrokeDisp_NearestPoint(This,X,Y,Distance,Point) (This)->lpVtbl->NearestPoint(This,X,Y,Distance,Point)
3497 #define IInkStrokeDisp_Split(This,SplitAt,NewStroke) (This)->lpVtbl->Split(This,SplitAt,NewStroke)
3498 #define IInkStrokeDisp_GetPacketDescriptionPropertyMetrics(This,PropertyName,Minimum,Maximum,Units,Resolution) (This)->lpVtbl->GetPacketDescriptionPropertyMetrics(This,PropertyName,Minimum,Maximum,Units,Resolution)
3499 #define IInkStrokeDisp_GetPoints(This,Index,Count,Points) (This)->lpVtbl->GetPoints(This,Index,Count,Points)
3500 #define IInkStrokeDisp_SetPoints(This,Points,Index,Count,NumberOfPointsSet) (This)->lpVtbl->SetPoints(This,Points,Index,Count,NumberOfPointsSet)
3501 #define IInkStrokeDisp_GetPacketData(This,Index,Count,PacketData) (This)->lpVtbl->GetPacketData(This,Index,Count,PacketData)
3502 #define IInkStrokeDisp_GetPacketValuesByProperty(This,PropertyName,Index,Count,PacketValues) (This)->lpVtbl->GetPacketValuesByProperty(This,PropertyName,Index,Count,PacketValues)
3503 #define IInkStrokeDisp_SetPacketValuesByProperty(This,bstrPropertyName,PacketValues,Index,Count,NumberOfPacketsSet) (This)->lpVtbl->SetPacketValuesByProperty(This,bstrPropertyName,PacketValues,Index,Count,NumberOfPacketsSet)
3504 #define IInkStrokeDisp_GetFlattenedBezierPoints(This,FittingError,FlattenedBezierPoints) (This)->lpVtbl->GetFlattenedBezierPoints(This,FittingError,FlattenedBezierPoints)
3505 #define IInkStrokeDisp_Transform(This,Transform,ApplyOnPenWidth) (This)->lpVtbl->Transform(This,Transform,ApplyOnPenWidth)
3506 #define IInkStrokeDisp_ScaleToRectangle(This,Rectangle) (This)->lpVtbl->ScaleToRectangle(This,Rectangle)
3507 #define IInkStrokeDisp_Move(This,HorizontalComponent,VerticalComponent) (This)->lpVtbl->Move(This,HorizontalComponent,VerticalComponent)
3508 #define IInkStrokeDisp_Rotate(This,Degrees,x,y) (This)->lpVtbl->Rotate(This,Degrees,x,y)
3509 #define IInkStrokeDisp_Shear(This,HorizontalMultiplier,VerticalMultiplier) (This)->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier)
3510 #define IInkStrokeDisp_ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier) (This)->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier)
3511 #else
3512 /*** IUnknown methods ***/
3513 static FORCEINLINE HRESULT IInkStrokeDisp_QueryInterface(IInkStrokeDisp* This,REFIID riid,void **ppvObject) {
3514     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3515 }
3516 static FORCEINLINE ULONG IInkStrokeDisp_AddRef(IInkStrokeDisp* This) {
3517     return This->lpVtbl->AddRef(This);
3518 }
3519 static FORCEINLINE ULONG IInkStrokeDisp_Release(IInkStrokeDisp* This) {
3520     return This->lpVtbl->Release(This);
3521 }
3522 /*** IDispatch methods ***/
3523 static FORCEINLINE HRESULT IInkStrokeDisp_GetTypeInfoCount(IInkStrokeDisp* This,UINT *pctinfo) {
3524     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3525 }
3526 static FORCEINLINE HRESULT IInkStrokeDisp_GetTypeInfo(IInkStrokeDisp* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3527     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3528 }
3529 static FORCEINLINE HRESULT IInkStrokeDisp_GetIDsOfNames(IInkStrokeDisp* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3530     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3531 }
3532 static FORCEINLINE HRESULT IInkStrokeDisp_Invoke(IInkStrokeDisp* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3533     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3534 }
3535 /*** IInkStrokeDisp methods ***/
3536 static FORCEINLINE HRESULT IInkStrokeDisp_get_ID(IInkStrokeDisp* This,LONG *ID) {
3537     return This->lpVtbl->get_ID(This,ID);
3538 }
3539 static FORCEINLINE HRESULT IInkStrokeDisp_get_BezierPoints(IInkStrokeDisp* This,VARIANT *Points) {
3540     return This->lpVtbl->get_BezierPoints(This,Points);
3541 }
3542 static FORCEINLINE HRESULT IInkStrokeDisp_get_DrawingAttributes(IInkStrokeDisp* This,IInkDrawingAttributes **DrawAttrs) {
3543     return This->lpVtbl->get_DrawingAttributes(This,DrawAttrs);
3544 }
3545 static FORCEINLINE HRESULT IInkStrokeDisp_putref_DrawingAttributes(IInkStrokeDisp* This,IInkDrawingAttributes *DrawAttrs) {
3546     return This->lpVtbl->putref_DrawingAttributes(This,DrawAttrs);
3547 }
3548 static FORCEINLINE HRESULT IInkStrokeDisp_get_Ink(IInkStrokeDisp* This,IInkDisp **Ink) {
3549     return This->lpVtbl->get_Ink(This,Ink);
3550 }
3551 static FORCEINLINE HRESULT IInkStrokeDisp_get_ExtendedProperties(IInkStrokeDisp* This,IInkExtendedProperties **Properties) {
3552     return This->lpVtbl->get_ExtendedProperties(This,Properties);
3553 }
3554 static FORCEINLINE HRESULT IInkStrokeDisp_get_PolylineCusps(IInkStrokeDisp* This,VARIANT *Cusps) {
3555     return This->lpVtbl->get_PolylineCusps(This,Cusps);
3556 }
3557 static FORCEINLINE HRESULT IInkStrokeDisp_get_BezierCusps(IInkStrokeDisp* This,VARIANT *Cusps) {
3558     return This->lpVtbl->get_BezierCusps(This,Cusps);
3559 }
3560 static FORCEINLINE HRESULT IInkStrokeDisp_get_SelfIntersections(IInkStrokeDisp* This,VARIANT *Intersections) {
3561     return This->lpVtbl->get_SelfIntersections(This,Intersections);
3562 }
3563 static FORCEINLINE HRESULT IInkStrokeDisp_get_PacketCount(IInkStrokeDisp* This,LONG *plCount) {
3564     return This->lpVtbl->get_PacketCount(This,plCount);
3565 }
3566 static FORCEINLINE HRESULT IInkStrokeDisp_get_PacketSize(IInkStrokeDisp* This,LONG *plSize) {
3567     return This->lpVtbl->get_PacketSize(This,plSize);
3568 }
3569 static FORCEINLINE HRESULT IInkStrokeDisp_get_PacketDescription(IInkStrokeDisp* This,VARIANT *PacketDescription) {
3570     return This->lpVtbl->get_PacketDescription(This,PacketDescription);
3571 }
3572 static FORCEINLINE HRESULT IInkStrokeDisp_get_Deleted(IInkStrokeDisp* This,VARIANT_BOOL *Deleted) {
3573     return This->lpVtbl->get_Deleted(This,Deleted);
3574 }
3575 static FORCEINLINE HRESULT IInkStrokeDisp_GetBoundingBox(IInkStrokeDisp* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **Rectangle) {
3576     return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle);
3577 }
3578 static FORCEINLINE HRESULT IInkStrokeDisp_FindIntersections(IInkStrokeDisp* This,IInkStrokes *Strokes,VARIANT *Intersections) {
3579     return This->lpVtbl->FindIntersections(This,Strokes,Intersections);
3580 }
3581 static FORCEINLINE HRESULT IInkStrokeDisp_GetRectangleIntersections(IInkStrokeDisp* This,IInkRectangle *Rectangle,VARIANT *Intersections) {
3582     return This->lpVtbl->GetRectangleIntersections(This,Rectangle,Intersections);
3583 }
3584 static FORCEINLINE HRESULT IInkStrokeDisp_Clip(IInkStrokeDisp* This,IInkRectangle *Rectangle) {
3585     return This->lpVtbl->Clip(This,Rectangle);
3586 }
3587 static FORCEINLINE HRESULT IInkStrokeDisp_HitTestCircle(IInkStrokeDisp* This,LONG X,LONG Y,float Radius,VARIANT_BOOL *Intersects) {
3588     return This->lpVtbl->HitTestCircle(This,X,Y,Radius,Intersects);
3589 }
3590 static FORCEINLINE HRESULT IInkStrokeDisp_NearestPoint(IInkStrokeDisp* This,LONG X,LONG Y,float *Distance,float *Point) {
3591     return This->lpVtbl->NearestPoint(This,X,Y,Distance,Point);
3592 }
3593 static FORCEINLINE HRESULT IInkStrokeDisp_Split(IInkStrokeDisp* This,float SplitAt,IInkStrokeDisp **NewStroke) {
3594     return This->lpVtbl->Split(This,SplitAt,NewStroke);
3595 }
3596 static FORCEINLINE HRESULT IInkStrokeDisp_GetPacketDescriptionPropertyMetrics(IInkStrokeDisp* This,BSTR PropertyName,LONG *Minimum,LONG *Maximum,TabletPropertyMetricUnit *Units,float *Resolution) {
3597     return This->lpVtbl->GetPacketDescriptionPropertyMetrics(This,PropertyName,Minimum,Maximum,Units,Resolution);
3598 }
3599 static FORCEINLINE HRESULT IInkStrokeDisp_GetPoints(IInkStrokeDisp* This,LONG Index,LONG Count,VARIANT *Points) {
3600     return This->lpVtbl->GetPoints(This,Index,Count,Points);
3601 }
3602 static FORCEINLINE HRESULT IInkStrokeDisp_SetPoints(IInkStrokeDisp* This,VARIANT Points,LONG Index,LONG Count,LONG *NumberOfPointsSet) {
3603     return This->lpVtbl->SetPoints(This,Points,Index,Count,NumberOfPointsSet);
3604 }
3605 static FORCEINLINE HRESULT IInkStrokeDisp_GetPacketData(IInkStrokeDisp* This,LONG Index,LONG Count,VARIANT *PacketData) {
3606     return This->lpVtbl->GetPacketData(This,Index,Count,PacketData);
3607 }
3608 static FORCEINLINE HRESULT IInkStrokeDisp_GetPacketValuesByProperty(IInkStrokeDisp* This,BSTR PropertyName,LONG Index,LONG Count,VARIANT *PacketValues) {
3609     return This->lpVtbl->GetPacketValuesByProperty(This,PropertyName,Index,Count,PacketValues);
3610 }
3611 static FORCEINLINE HRESULT IInkStrokeDisp_SetPacketValuesByProperty(IInkStrokeDisp* This,BSTR bstrPropertyName,VARIANT PacketValues,LONG Index,LONG Count,LONG *NumberOfPacketsSet) {
3612     return This->lpVtbl->SetPacketValuesByProperty(This,bstrPropertyName,PacketValues,Index,Count,NumberOfPacketsSet);
3613 }
3614 static FORCEINLINE HRESULT IInkStrokeDisp_GetFlattenedBezierPoints(IInkStrokeDisp* This,LONG FittingError,VARIANT *FlattenedBezierPoints) {
3615     return This->lpVtbl->GetFlattenedBezierPoints(This,FittingError,FlattenedBezierPoints);
3616 }
3617 static FORCEINLINE HRESULT IInkStrokeDisp_Transform(IInkStrokeDisp* This,IInkTransform *Transform,VARIANT_BOOL ApplyOnPenWidth) {
3618     return This->lpVtbl->Transform(This,Transform,ApplyOnPenWidth);
3619 }
3620 static FORCEINLINE HRESULT IInkStrokeDisp_ScaleToRectangle(IInkStrokeDisp* This,IInkRectangle *Rectangle) {
3621     return This->lpVtbl->ScaleToRectangle(This,Rectangle);
3622 }
3623 static FORCEINLINE HRESULT IInkStrokeDisp_Move(IInkStrokeDisp* This,float HorizontalComponent,float VerticalComponent) {
3624     return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
3625 }
3626 static FORCEINLINE HRESULT IInkStrokeDisp_Rotate(IInkStrokeDisp* This,float Degrees,float x,float y) {
3627     return This->lpVtbl->Rotate(This,Degrees,x,y);
3628 }
3629 static FORCEINLINE HRESULT IInkStrokeDisp_Shear(IInkStrokeDisp* This,float HorizontalMultiplier,float VerticalMultiplier) {
3630     return This->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier);
3631 }
3632 static FORCEINLINE HRESULT IInkStrokeDisp_ScaleTransform(IInkStrokeDisp* This,float HorizontalMultiplier,float VerticalMultiplier) {
3633     return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier);
3634 }
3635 #endif
3636 #endif
3637 
3638 #endif
3639 
3640 
3641 #endif  /* __IInkStrokeDisp_INTERFACE_DEFINED__ */
3642 
3643 /*****************************************************************************
3644  * IInkCustomStrokes interface
3645  */
3646 #ifndef __IInkCustomStrokes_INTERFACE_DEFINED__
3647 #define __IInkCustomStrokes_INTERFACE_DEFINED__
3648 
3649 DEFINE_GUID(IID_IInkCustomStrokes, 0x7e23a88f, 0xc30e, 0x420f, 0x9b,0xdb, 0x28,0x90,0x25,0x43,0xf0,0xc1);
3650 #if defined(__cplusplus) && !defined(CINTERFACE)
3651 MIDL_INTERFACE("7e23a88f-c30e-420f-9bdb-28902543f0c1")
3652 IInkCustomStrokes : public IDispatch
3653 {
3654     virtual HRESULT STDMETHODCALLTYPE get_Count(
3655         LONG *Count) = 0;
3656 
3657     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
3658         IUnknown **_NewEnum) = 0;
3659 
3660     virtual HRESULT STDMETHODCALLTYPE Item(
3661         VARIANT Identifier,
3662         IInkStrokes **Strokes) = 0;
3663 
3664     virtual HRESULT STDMETHODCALLTYPE Add(
3665         BSTR Name,
3666         IInkStrokes *Strokes) = 0;
3667 
3668     virtual HRESULT STDMETHODCALLTYPE Remove(
3669         VARIANT Identifier) = 0;
3670 
3671     virtual HRESULT STDMETHODCALLTYPE Clear(
3672         ) = 0;
3673 
3674 };
3675 #ifdef __CRT_UUID_DECL
3676 __CRT_UUID_DECL(IInkCustomStrokes, 0x7e23a88f, 0xc30e, 0x420f, 0x9b,0xdb, 0x28,0x90,0x25,0x43,0xf0,0xc1)
3677 #endif
3678 #else
3679 typedef struct IInkCustomStrokesVtbl {
3680     BEGIN_INTERFACE
3681 
3682     /*** IUnknown methods ***/
3683     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3684         IInkCustomStrokes *This,
3685         REFIID riid,
3686         void **ppvObject);
3687 
3688     ULONG (STDMETHODCALLTYPE *AddRef)(
3689         IInkCustomStrokes *This);
3690 
3691     ULONG (STDMETHODCALLTYPE *Release)(
3692         IInkCustomStrokes *This);
3693 
3694     /*** IDispatch methods ***/
3695     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3696         IInkCustomStrokes *This,
3697         UINT *pctinfo);
3698 
3699     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3700         IInkCustomStrokes *This,
3701         UINT iTInfo,
3702         LCID lcid,
3703         ITypeInfo **ppTInfo);
3704 
3705     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3706         IInkCustomStrokes *This,
3707         REFIID riid,
3708         LPOLESTR *rgszNames,
3709         UINT cNames,
3710         LCID lcid,
3711         DISPID *rgDispId);
3712 
3713     HRESULT (STDMETHODCALLTYPE *Invoke)(
3714         IInkCustomStrokes *This,
3715         DISPID dispIdMember,
3716         REFIID riid,
3717         LCID lcid,
3718         WORD wFlags,
3719         DISPPARAMS *pDispParams,
3720         VARIANT *pVarResult,
3721         EXCEPINFO *pExcepInfo,
3722         UINT *puArgErr);
3723 
3724     /*** IInkCustomStrokes methods ***/
3725     HRESULT (STDMETHODCALLTYPE *get_Count)(
3726         IInkCustomStrokes *This,
3727         LONG *Count);
3728 
3729     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
3730         IInkCustomStrokes *This,
3731         IUnknown **_NewEnum);
3732 
3733     HRESULT (STDMETHODCALLTYPE *Item)(
3734         IInkCustomStrokes *This,
3735         VARIANT Identifier,
3736         IInkStrokes **Strokes);
3737 
3738     HRESULT (STDMETHODCALLTYPE *Add)(
3739         IInkCustomStrokes *This,
3740         BSTR Name,
3741         IInkStrokes *Strokes);
3742 
3743     HRESULT (STDMETHODCALLTYPE *Remove)(
3744         IInkCustomStrokes *This,
3745         VARIANT Identifier);
3746 
3747     HRESULT (STDMETHODCALLTYPE *Clear)(
3748         IInkCustomStrokes *This);
3749 
3750     END_INTERFACE
3751 } IInkCustomStrokesVtbl;
3752 
3753 interface IInkCustomStrokes {
3754     CONST_VTBL IInkCustomStrokesVtbl* lpVtbl;
3755 };
3756 
3757 #ifdef COBJMACROS
3758 #ifndef WIDL_C_INLINE_WRAPPERS
3759 /*** IUnknown methods ***/
3760 #define IInkCustomStrokes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3761 #define IInkCustomStrokes_AddRef(This) (This)->lpVtbl->AddRef(This)
3762 #define IInkCustomStrokes_Release(This) (This)->lpVtbl->Release(This)
3763 /*** IDispatch methods ***/
3764 #define IInkCustomStrokes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3765 #define IInkCustomStrokes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3766 #define IInkCustomStrokes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3767 #define IInkCustomStrokes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3768 /*** IInkCustomStrokes methods ***/
3769 #define IInkCustomStrokes_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
3770 #define IInkCustomStrokes_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
3771 #define IInkCustomStrokes_Item(This,Identifier,Strokes) (This)->lpVtbl->Item(This,Identifier,Strokes)
3772 #define IInkCustomStrokes_Add(This,Name,Strokes) (This)->lpVtbl->Add(This,Name,Strokes)
3773 #define IInkCustomStrokes_Remove(This,Identifier) (This)->lpVtbl->Remove(This,Identifier)
3774 #define IInkCustomStrokes_Clear(This) (This)->lpVtbl->Clear(This)
3775 #else
3776 /*** IUnknown methods ***/
3777 static FORCEINLINE HRESULT IInkCustomStrokes_QueryInterface(IInkCustomStrokes* This,REFIID riid,void **ppvObject) {
3778     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3779 }
3780 static FORCEINLINE ULONG IInkCustomStrokes_AddRef(IInkCustomStrokes* This) {
3781     return This->lpVtbl->AddRef(This);
3782 }
3783 static FORCEINLINE ULONG IInkCustomStrokes_Release(IInkCustomStrokes* This) {
3784     return This->lpVtbl->Release(This);
3785 }
3786 /*** IDispatch methods ***/
3787 static FORCEINLINE HRESULT IInkCustomStrokes_GetTypeInfoCount(IInkCustomStrokes* This,UINT *pctinfo) {
3788     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3789 }
3790 static FORCEINLINE HRESULT IInkCustomStrokes_GetTypeInfo(IInkCustomStrokes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3791     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3792 }
3793 static FORCEINLINE HRESULT IInkCustomStrokes_GetIDsOfNames(IInkCustomStrokes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3794     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3795 }
3796 static FORCEINLINE HRESULT IInkCustomStrokes_Invoke(IInkCustomStrokes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3797     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3798 }
3799 /*** IInkCustomStrokes methods ***/
3800 static FORCEINLINE HRESULT IInkCustomStrokes_get_Count(IInkCustomStrokes* This,LONG *Count) {
3801     return This->lpVtbl->get_Count(This,Count);
3802 }
3803 static FORCEINLINE HRESULT IInkCustomStrokes_get__NewEnum(IInkCustomStrokes* This,IUnknown **_NewEnum) {
3804     return This->lpVtbl->get__NewEnum(This,_NewEnum);
3805 }
3806 static FORCEINLINE HRESULT IInkCustomStrokes_Item(IInkCustomStrokes* This,VARIANT Identifier,IInkStrokes **Strokes) {
3807     return This->lpVtbl->Item(This,Identifier,Strokes);
3808 }
3809 static FORCEINLINE HRESULT IInkCustomStrokes_Add(IInkCustomStrokes* This,BSTR Name,IInkStrokes *Strokes) {
3810     return This->lpVtbl->Add(This,Name,Strokes);
3811 }
3812 static FORCEINLINE HRESULT IInkCustomStrokes_Remove(IInkCustomStrokes* This,VARIANT Identifier) {
3813     return This->lpVtbl->Remove(This,Identifier);
3814 }
3815 static FORCEINLINE HRESULT IInkCustomStrokes_Clear(IInkCustomStrokes* This) {
3816     return This->lpVtbl->Clear(This);
3817 }
3818 #endif
3819 #endif
3820 
3821 #endif
3822 
3823 
3824 #endif  /* __IInkCustomStrokes_INTERFACE_DEFINED__ */
3825 
3826 /*****************************************************************************
3827  * IInkDisp interface
3828  */
3829 #ifndef __IInkDisp_INTERFACE_DEFINED__
3830 #define __IInkDisp_INTERFACE_DEFINED__
3831 
3832 DEFINE_GUID(IID_IInkDisp, 0x9d398fa0, 0xc4e2, 0x4fcd, 0x99,0x73, 0x97,0x5c,0xaa,0xf4,0x7e,0xa6);
3833 #if defined(__cplusplus) && !defined(CINTERFACE)
3834 MIDL_INTERFACE("9d398fa0-c4e2-4fcd-9973-975caaf47ea6")
3835 IInkDisp : public IDispatch
3836 {
3837     virtual HRESULT STDMETHODCALLTYPE get_Strokes(
3838         IInkStrokes **Strokes) = 0;
3839 
3840     virtual HRESULT STDMETHODCALLTYPE get_ExtendedProperties(
3841         IInkExtendedProperties **Properties) = 0;
3842 
3843     virtual HRESULT STDMETHODCALLTYPE get_Dirty(
3844         VARIANT_BOOL *Dirty) = 0;
3845 
3846     virtual HRESULT STDMETHODCALLTYPE put_Dirty(
3847         VARIANT_BOOL Dirty) = 0;
3848 
3849     virtual HRESULT STDMETHODCALLTYPE get_CustomStrokes(
3850         IInkCustomStrokes **ppunkInkCustomStrokes) = 0;
3851 
3852     virtual HRESULT STDMETHODCALLTYPE GetBoundingBox(
3853         InkBoundingBoxMode BoundingBoxMode,
3854         IInkRectangle **Rectangle) = 0;
3855 
3856     virtual HRESULT STDMETHODCALLTYPE DeleteStrokes(
3857         IInkStrokes *Strokes = 0) = 0;
3858 
3859     virtual HRESULT STDMETHODCALLTYPE DeleteStroke(
3860         IInkStrokeDisp *Stroke) = 0;
3861 
3862     virtual HRESULT STDMETHODCALLTYPE ExtractStrokes(
3863         IInkStrokes *Strokes,
3864         InkExtractFlags ExtractFlags,
3865         IInkDisp **ExtractedInk) = 0;
3866 
3867     virtual HRESULT STDMETHODCALLTYPE ExtractWithRectangle(
3868         IInkRectangle *Rectangle,
3869         InkExtractFlags extractFlags,
3870         IInkDisp **ExtractedInk) = 0;
3871 
3872     virtual HRESULT STDMETHODCALLTYPE Clip(
3873         IInkRectangle *Rectangle) = 0;
3874 
3875     virtual HRESULT STDMETHODCALLTYPE Clone(
3876         IInkDisp **NewInk) = 0;
3877 
3878     virtual HRESULT STDMETHODCALLTYPE HitTestCircle(
3879         LONG X,
3880         LONG Y,
3881         float radius,
3882         IInkStrokes **Strokes) = 0;
3883 
3884     virtual HRESULT STDMETHODCALLTYPE HitTestWithRectangle(
3885         IInkRectangle *SelectionRectangle,
3886         float IntersectPercent,
3887         IInkStrokes **Strokes) = 0;
3888 
3889     virtual HRESULT STDMETHODCALLTYPE HitTestWithLasso(
3890         VARIANT Points,
3891         float IntersectPercent,
3892         VARIANT *LassoPoints,
3893         IInkStrokes **Strokes) = 0;
3894 
3895     virtual HRESULT STDMETHODCALLTYPE NearestPoint(
3896         LONG X,
3897         LONG Y,
3898         float *PointOnStroke,
3899         float *DistanceFromPacket,
3900         IInkStrokeDisp **Stroke) = 0;
3901 
3902     virtual HRESULT STDMETHODCALLTYPE CreateStrokes(
3903         VARIANT StrokeIds,
3904         IInkStrokes **Strokes) = 0;
3905 
3906     virtual HRESULT STDMETHODCALLTYPE AddStrokesAtRectangle(
3907         IInkStrokes *SourceStrokes,
3908         IInkRectangle *TargetRectangle) = 0;
3909 
3910     virtual HRESULT STDMETHODCALLTYPE Save(
3911         InkPersistenceFormat PersistenceFormat,
3912         InkPersistenceCompressionMode CompressionMode,
3913         VARIANT *Data) = 0;
3914 
3915     virtual HRESULT STDMETHODCALLTYPE Load(
3916         VARIANT Data) = 0;
3917 
3918     virtual HRESULT STDMETHODCALLTYPE CreateStroke(
3919         VARIANT PacketData,
3920         VARIANT PacketDescription,
3921         IInkStrokeDisp **Stroke) = 0;
3922 
3923     virtual HRESULT STDMETHODCALLTYPE ClipboardCopyWithRectangle(
3924         IInkRectangle *Rectangle,
3925         InkClipboardFormats ClipboardFormats,
3926         InkClipboardModes ClipboardModes,
3927         IDataObject **DataObject) = 0;
3928 
3929     virtual HRESULT STDMETHODCALLTYPE ClipboardCopy(
3930         IInkStrokes *strokes,
3931         InkClipboardFormats ClipboardFormats,
3932         InkClipboardModes ClipboardModes,
3933         IDataObject **DataObject) = 0;
3934 
3935     virtual HRESULT STDMETHODCALLTYPE CanPaste(
3936         IDataObject *DataObject,
3937         VARIANT_BOOL *CanPaste) = 0;
3938 
3939     virtual HRESULT STDMETHODCALLTYPE ClipboardPaste(
3940         LONG x,
3941         LONG y,
3942         IDataObject *DataObject,
3943         IInkStrokes **Strokes) = 0;
3944 
3945 };
3946 #ifdef __CRT_UUID_DECL
3947 __CRT_UUID_DECL(IInkDisp, 0x9d398fa0, 0xc4e2, 0x4fcd, 0x99,0x73, 0x97,0x5c,0xaa,0xf4,0x7e,0xa6)
3948 #endif
3949 #else
3950 typedef struct IInkDispVtbl {
3951     BEGIN_INTERFACE
3952 
3953     /*** IUnknown methods ***/
3954     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3955         IInkDisp *This,
3956         REFIID riid,
3957         void **ppvObject);
3958 
3959     ULONG (STDMETHODCALLTYPE *AddRef)(
3960         IInkDisp *This);
3961 
3962     ULONG (STDMETHODCALLTYPE *Release)(
3963         IInkDisp *This);
3964 
3965     /*** IDispatch methods ***/
3966     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3967         IInkDisp *This,
3968         UINT *pctinfo);
3969 
3970     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3971         IInkDisp *This,
3972         UINT iTInfo,
3973         LCID lcid,
3974         ITypeInfo **ppTInfo);
3975 
3976     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3977         IInkDisp *This,
3978         REFIID riid,
3979         LPOLESTR *rgszNames,
3980         UINT cNames,
3981         LCID lcid,
3982         DISPID *rgDispId);
3983 
3984     HRESULT (STDMETHODCALLTYPE *Invoke)(
3985         IInkDisp *This,
3986         DISPID dispIdMember,
3987         REFIID riid,
3988         LCID lcid,
3989         WORD wFlags,
3990         DISPPARAMS *pDispParams,
3991         VARIANT *pVarResult,
3992         EXCEPINFO *pExcepInfo,
3993         UINT *puArgErr);
3994 
3995     /*** IInkDisp methods ***/
3996     HRESULT (STDMETHODCALLTYPE *get_Strokes)(
3997         IInkDisp *This,
3998         IInkStrokes **Strokes);
3999 
4000     HRESULT (STDMETHODCALLTYPE *get_ExtendedProperties)(
4001         IInkDisp *This,
4002         IInkExtendedProperties **Properties);
4003 
4004     HRESULT (STDMETHODCALLTYPE *get_Dirty)(
4005         IInkDisp *This,
4006         VARIANT_BOOL *Dirty);
4007 
4008     HRESULT (STDMETHODCALLTYPE *put_Dirty)(
4009         IInkDisp *This,
4010         VARIANT_BOOL Dirty);
4011 
4012     HRESULT (STDMETHODCALLTYPE *get_CustomStrokes)(
4013         IInkDisp *This,
4014         IInkCustomStrokes **ppunkInkCustomStrokes);
4015 
4016     HRESULT (STDMETHODCALLTYPE *GetBoundingBox)(
4017         IInkDisp *This,
4018         InkBoundingBoxMode BoundingBoxMode,
4019         IInkRectangle **Rectangle);
4020 
4021     HRESULT (STDMETHODCALLTYPE *DeleteStrokes)(
4022         IInkDisp *This,
4023         IInkStrokes *Strokes);
4024 
4025     HRESULT (STDMETHODCALLTYPE *DeleteStroke)(
4026         IInkDisp *This,
4027         IInkStrokeDisp *Stroke);
4028 
4029     HRESULT (STDMETHODCALLTYPE *ExtractStrokes)(
4030         IInkDisp *This,
4031         IInkStrokes *Strokes,
4032         InkExtractFlags ExtractFlags,
4033         IInkDisp **ExtractedInk);
4034 
4035     HRESULT (STDMETHODCALLTYPE *ExtractWithRectangle)(
4036         IInkDisp *This,
4037         IInkRectangle *Rectangle,
4038         InkExtractFlags extractFlags,
4039         IInkDisp **ExtractedInk);
4040 
4041     HRESULT (STDMETHODCALLTYPE *Clip)(
4042         IInkDisp *This,
4043         IInkRectangle *Rectangle);
4044 
4045     HRESULT (STDMETHODCALLTYPE *Clone)(
4046         IInkDisp *This,
4047         IInkDisp **NewInk);
4048 
4049     HRESULT (STDMETHODCALLTYPE *HitTestCircle)(
4050         IInkDisp *This,
4051         LONG X,
4052         LONG Y,
4053         float radius,
4054         IInkStrokes **Strokes);
4055 
4056     HRESULT (STDMETHODCALLTYPE *HitTestWithRectangle)(
4057         IInkDisp *This,
4058         IInkRectangle *SelectionRectangle,
4059         float IntersectPercent,
4060         IInkStrokes **Strokes);
4061 
4062     HRESULT (STDMETHODCALLTYPE *HitTestWithLasso)(
4063         IInkDisp *This,
4064         VARIANT Points,
4065         float IntersectPercent,
4066         VARIANT *LassoPoints,
4067         IInkStrokes **Strokes);
4068 
4069     HRESULT (STDMETHODCALLTYPE *NearestPoint)(
4070         IInkDisp *This,
4071         LONG X,
4072         LONG Y,
4073         float *PointOnStroke,
4074         float *DistanceFromPacket,
4075         IInkStrokeDisp **Stroke);
4076 
4077     HRESULT (STDMETHODCALLTYPE *CreateStrokes)(
4078         IInkDisp *This,
4079         VARIANT StrokeIds,
4080         IInkStrokes **Strokes);
4081 
4082     HRESULT (STDMETHODCALLTYPE *AddStrokesAtRectangle)(
4083         IInkDisp *This,
4084         IInkStrokes *SourceStrokes,
4085         IInkRectangle *TargetRectangle);
4086 
4087     HRESULT (STDMETHODCALLTYPE *Save)(
4088         IInkDisp *This,
4089         InkPersistenceFormat PersistenceFormat,
4090         InkPersistenceCompressionMode CompressionMode,
4091         VARIANT *Data);
4092 
4093     HRESULT (STDMETHODCALLTYPE *Load)(
4094         IInkDisp *This,
4095         VARIANT Data);
4096 
4097     HRESULT (STDMETHODCALLTYPE *CreateStroke)(
4098         IInkDisp *This,
4099         VARIANT PacketData,
4100         VARIANT PacketDescription,
4101         IInkStrokeDisp **Stroke);
4102 
4103     HRESULT (STDMETHODCALLTYPE *ClipboardCopyWithRectangle)(
4104         IInkDisp *This,
4105         IInkRectangle *Rectangle,
4106         InkClipboardFormats ClipboardFormats,
4107         InkClipboardModes ClipboardModes,
4108         IDataObject **DataObject);
4109 
4110     HRESULT (STDMETHODCALLTYPE *ClipboardCopy)(
4111         IInkDisp *This,
4112         IInkStrokes *strokes,
4113         InkClipboardFormats ClipboardFormats,
4114         InkClipboardModes ClipboardModes,
4115         IDataObject **DataObject);
4116 
4117     HRESULT (STDMETHODCALLTYPE *CanPaste)(
4118         IInkDisp *This,
4119         IDataObject *DataObject,
4120         VARIANT_BOOL *CanPaste);
4121 
4122     HRESULT (STDMETHODCALLTYPE *ClipboardPaste)(
4123         IInkDisp *This,
4124         LONG x,
4125         LONG y,
4126         IDataObject *DataObject,
4127         IInkStrokes **Strokes);
4128 
4129     END_INTERFACE
4130 } IInkDispVtbl;
4131 
4132 interface IInkDisp {
4133     CONST_VTBL IInkDispVtbl* lpVtbl;
4134 };
4135 
4136 #ifdef COBJMACROS
4137 #ifndef WIDL_C_INLINE_WRAPPERS
4138 /*** IUnknown methods ***/
4139 #define IInkDisp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4140 #define IInkDisp_AddRef(This) (This)->lpVtbl->AddRef(This)
4141 #define IInkDisp_Release(This) (This)->lpVtbl->Release(This)
4142 /*** IDispatch methods ***/
4143 #define IInkDisp_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4144 #define IInkDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4145 #define IInkDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4146 #define IInkDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4147 /*** IInkDisp methods ***/
4148 #define IInkDisp_get_Strokes(This,Strokes) (This)->lpVtbl->get_Strokes(This,Strokes)
4149 #define IInkDisp_get_ExtendedProperties(This,Properties) (This)->lpVtbl->get_ExtendedProperties(This,Properties)
4150 #define IInkDisp_get_Dirty(This,Dirty) (This)->lpVtbl->get_Dirty(This,Dirty)
4151 #define IInkDisp_put_Dirty(This,Dirty) (This)->lpVtbl->put_Dirty(This,Dirty)
4152 #define IInkDisp_get_CustomStrokes(This,ppunkInkCustomStrokes) (This)->lpVtbl->get_CustomStrokes(This,ppunkInkCustomStrokes)
4153 #define IInkDisp_GetBoundingBox(This,BoundingBoxMode,Rectangle) (This)->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle)
4154 #define IInkDisp_DeleteStrokes(This,Strokes) (This)->lpVtbl->DeleteStrokes(This,Strokes)
4155 #define IInkDisp_DeleteStroke(This,Stroke) (This)->lpVtbl->DeleteStroke(This,Stroke)
4156 #define IInkDisp_ExtractStrokes(This,Strokes,ExtractFlags,ExtractedInk) (This)->lpVtbl->ExtractStrokes(This,Strokes,ExtractFlags,ExtractedInk)
4157 #define IInkDisp_ExtractWithRectangle(This,Rectangle,extractFlags,ExtractedInk) (This)->lpVtbl->ExtractWithRectangle(This,Rectangle,extractFlags,ExtractedInk)
4158 #define IInkDisp_Clip(This,Rectangle) (This)->lpVtbl->Clip(This,Rectangle)
4159 #define IInkDisp_Clone(This,NewInk) (This)->lpVtbl->Clone(This,NewInk)
4160 #define IInkDisp_HitTestCircle(This,X,Y,radius,Strokes) (This)->lpVtbl->HitTestCircle(This,X,Y,radius,Strokes)
4161 #define IInkDisp_HitTestWithRectangle(This,SelectionRectangle,IntersectPercent,Strokes) (This)->lpVtbl->HitTestWithRectangle(This,SelectionRectangle,IntersectPercent,Strokes)
4162 #define IInkDisp_HitTestWithLasso(This,Points,IntersectPercent,LassoPoints,Strokes) (This)->lpVtbl->HitTestWithLasso(This,Points,IntersectPercent,LassoPoints,Strokes)
4163 #define IInkDisp_NearestPoint(This,X,Y,PointOnStroke,DistanceFromPacket,Stroke) (This)->lpVtbl->NearestPoint(This,X,Y,PointOnStroke,DistanceFromPacket,Stroke)
4164 #define IInkDisp_CreateStrokes(This,StrokeIds,Strokes) (This)->lpVtbl->CreateStrokes(This,StrokeIds,Strokes)
4165 #define IInkDisp_AddStrokesAtRectangle(This,SourceStrokes,TargetRectangle) (This)->lpVtbl->AddStrokesAtRectangle(This,SourceStrokes,TargetRectangle)
4166 #define IInkDisp_Save(This,PersistenceFormat,CompressionMode,Data) (This)->lpVtbl->Save(This,PersistenceFormat,CompressionMode,Data)
4167 #define IInkDisp_Load(This,Data) (This)->lpVtbl->Load(This,Data)
4168 #define IInkDisp_CreateStroke(This,PacketData,PacketDescription,Stroke) (This)->lpVtbl->CreateStroke(This,PacketData,PacketDescription,Stroke)
4169 #define IInkDisp_ClipboardCopyWithRectangle(This,Rectangle,ClipboardFormats,ClipboardModes,DataObject) (This)->lpVtbl->ClipboardCopyWithRectangle(This,Rectangle,ClipboardFormats,ClipboardModes,DataObject)
4170 #define IInkDisp_ClipboardCopy(This,strokes,ClipboardFormats,ClipboardModes,DataObject) (This)->lpVtbl->ClipboardCopy(This,strokes,ClipboardFormats,ClipboardModes,DataObject)
4171 #define IInkDisp_CanPaste(This,DataObject,CanPaste) (This)->lpVtbl->CanPaste(This,DataObject,CanPaste)
4172 #define IInkDisp_ClipboardPaste(This,x,y,DataObject,Strokes) (This)->lpVtbl->ClipboardPaste(This,x,y,DataObject,Strokes)
4173 #else
4174 /*** IUnknown methods ***/
4175 static FORCEINLINE HRESULT IInkDisp_QueryInterface(IInkDisp* This,REFIID riid,void **ppvObject) {
4176     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4177 }
4178 static FORCEINLINE ULONG IInkDisp_AddRef(IInkDisp* This) {
4179     return This->lpVtbl->AddRef(This);
4180 }
4181 static FORCEINLINE ULONG IInkDisp_Release(IInkDisp* This) {
4182     return This->lpVtbl->Release(This);
4183 }
4184 /*** IDispatch methods ***/
4185 static FORCEINLINE HRESULT IInkDisp_GetTypeInfoCount(IInkDisp* This,UINT *pctinfo) {
4186     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4187 }
4188 static FORCEINLINE HRESULT IInkDisp_GetTypeInfo(IInkDisp* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4189     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4190 }
4191 static FORCEINLINE HRESULT IInkDisp_GetIDsOfNames(IInkDisp* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4192     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4193 }
4194 static FORCEINLINE HRESULT IInkDisp_Invoke(IInkDisp* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4195     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4196 }
4197 /*** IInkDisp methods ***/
4198 static FORCEINLINE HRESULT IInkDisp_get_Strokes(IInkDisp* This,IInkStrokes **Strokes) {
4199     return This->lpVtbl->get_Strokes(This,Strokes);
4200 }
4201 static FORCEINLINE HRESULT IInkDisp_get_ExtendedProperties(IInkDisp* This,IInkExtendedProperties **Properties) {
4202     return This->lpVtbl->get_ExtendedProperties(This,Properties);
4203 }
4204 static FORCEINLINE HRESULT IInkDisp_get_Dirty(IInkDisp* This,VARIANT_BOOL *Dirty) {
4205     return This->lpVtbl->get_Dirty(This,Dirty);
4206 }
4207 static FORCEINLINE HRESULT IInkDisp_put_Dirty(IInkDisp* This,VARIANT_BOOL Dirty) {
4208     return This->lpVtbl->put_Dirty(This,Dirty);
4209 }
4210 static FORCEINLINE HRESULT IInkDisp_get_CustomStrokes(IInkDisp* This,IInkCustomStrokes **ppunkInkCustomStrokes) {
4211     return This->lpVtbl->get_CustomStrokes(This,ppunkInkCustomStrokes);
4212 }
4213 static FORCEINLINE HRESULT IInkDisp_GetBoundingBox(IInkDisp* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **Rectangle) {
4214     return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle);
4215 }
4216 static FORCEINLINE HRESULT IInkDisp_DeleteStrokes(IInkDisp* This,IInkStrokes *Strokes) {
4217     return This->lpVtbl->DeleteStrokes(This,Strokes);
4218 }
4219 static FORCEINLINE HRESULT IInkDisp_DeleteStroke(IInkDisp* This,IInkStrokeDisp *Stroke) {
4220     return This->lpVtbl->DeleteStroke(This,Stroke);
4221 }
4222 static FORCEINLINE HRESULT IInkDisp_ExtractStrokes(IInkDisp* This,IInkStrokes *Strokes,InkExtractFlags ExtractFlags,IInkDisp **ExtractedInk) {
4223     return This->lpVtbl->ExtractStrokes(This,Strokes,ExtractFlags,ExtractedInk);
4224 }
4225 static FORCEINLINE HRESULT IInkDisp_ExtractWithRectangle(IInkDisp* This,IInkRectangle *Rectangle,InkExtractFlags extractFlags,IInkDisp **ExtractedInk) {
4226     return This->lpVtbl->ExtractWithRectangle(This,Rectangle,extractFlags,ExtractedInk);
4227 }
4228 static FORCEINLINE HRESULT IInkDisp_Clip(IInkDisp* This,IInkRectangle *Rectangle) {
4229     return This->lpVtbl->Clip(This,Rectangle);
4230 }
4231 static FORCEINLINE HRESULT IInkDisp_Clone(IInkDisp* This,IInkDisp **NewInk) {
4232     return This->lpVtbl->Clone(This,NewInk);
4233 }
4234 static FORCEINLINE HRESULT IInkDisp_HitTestCircle(IInkDisp* This,LONG X,LONG Y,float radius,IInkStrokes **Strokes) {
4235     return This->lpVtbl->HitTestCircle(This,X,Y,radius,Strokes);
4236 }
4237 static FORCEINLINE HRESULT IInkDisp_HitTestWithRectangle(IInkDisp* This,IInkRectangle *SelectionRectangle,float IntersectPercent,IInkStrokes **Strokes) {
4238     return This->lpVtbl->HitTestWithRectangle(This,SelectionRectangle,IntersectPercent,Strokes);
4239 }
4240 static FORCEINLINE HRESULT IInkDisp_HitTestWithLasso(IInkDisp* This,VARIANT Points,float IntersectPercent,VARIANT *LassoPoints,IInkStrokes **Strokes) {
4241     return This->lpVtbl->HitTestWithLasso(This,Points,IntersectPercent,LassoPoints,Strokes);
4242 }
4243 static FORCEINLINE HRESULT IInkDisp_NearestPoint(IInkDisp* This,LONG X,LONG Y,float *PointOnStroke,float *DistanceFromPacket,IInkStrokeDisp **Stroke) {
4244     return This->lpVtbl->NearestPoint(This,X,Y,PointOnStroke,DistanceFromPacket,Stroke);
4245 }
4246 static FORCEINLINE HRESULT IInkDisp_CreateStrokes(IInkDisp* This,VARIANT StrokeIds,IInkStrokes **Strokes) {
4247     return This->lpVtbl->CreateStrokes(This,StrokeIds,Strokes);
4248 }
4249 static FORCEINLINE HRESULT IInkDisp_AddStrokesAtRectangle(IInkDisp* This,IInkStrokes *SourceStrokes,IInkRectangle *TargetRectangle) {
4250     return This->lpVtbl->AddStrokesAtRectangle(This,SourceStrokes,TargetRectangle);
4251 }
4252 static FORCEINLINE HRESULT IInkDisp_Save(IInkDisp* This,InkPersistenceFormat PersistenceFormat,InkPersistenceCompressionMode CompressionMode,VARIANT *Data) {
4253     return This->lpVtbl->Save(This,PersistenceFormat,CompressionMode,Data);
4254 }
4255 static FORCEINLINE HRESULT IInkDisp_Load(IInkDisp* This,VARIANT Data) {
4256     return This->lpVtbl->Load(This,Data);
4257 }
4258 static FORCEINLINE HRESULT IInkDisp_CreateStroke(IInkDisp* This,VARIANT PacketData,VARIANT PacketDescription,IInkStrokeDisp **Stroke) {
4259     return This->lpVtbl->CreateStroke(This,PacketData,PacketDescription,Stroke);
4260 }
4261 static FORCEINLINE HRESULT IInkDisp_ClipboardCopyWithRectangle(IInkDisp* This,IInkRectangle *Rectangle,InkClipboardFormats ClipboardFormats,InkClipboardModes ClipboardModes,IDataObject **DataObject) {
4262     return This->lpVtbl->ClipboardCopyWithRectangle(This,Rectangle,ClipboardFormats,ClipboardModes,DataObject);
4263 }
4264 static FORCEINLINE HRESULT IInkDisp_ClipboardCopy(IInkDisp* This,IInkStrokes *strokes,InkClipboardFormats ClipboardFormats,InkClipboardModes ClipboardModes,IDataObject **DataObject) {
4265     return This->lpVtbl->ClipboardCopy(This,strokes,ClipboardFormats,ClipboardModes,DataObject);
4266 }
4267 static FORCEINLINE HRESULT IInkDisp_CanPaste(IInkDisp* This,IDataObject *DataObject,VARIANT_BOOL *CanPaste) {
4268     return This->lpVtbl->CanPaste(This,DataObject,CanPaste);
4269 }
4270 static FORCEINLINE HRESULT IInkDisp_ClipboardPaste(IInkDisp* This,LONG x,LONG y,IDataObject *DataObject,IInkStrokes **Strokes) {
4271     return This->lpVtbl->ClipboardPaste(This,x,y,DataObject,Strokes);
4272 }
4273 #endif
4274 #endif
4275 
4276 #endif
4277 
4278 
4279 #endif  /* __IInkDisp_INTERFACE_DEFINED__ */
4280 
4281 /*****************************************************************************
4282  * IInkStrokes interface
4283  */
4284 #ifndef __IInkStrokes_INTERFACE_DEFINED__
4285 #define __IInkStrokes_INTERFACE_DEFINED__
4286 
4287 DEFINE_GUID(IID_IInkStrokes, 0xf1f4c9d8, 0x590a, 0x4963, 0xb3,0xae, 0x19,0x35,0x67,0x1b,0xb6,0xf3);
4288 #if defined(__cplusplus) && !defined(CINTERFACE)
4289 MIDL_INTERFACE("f1f4c9d8-590a-4963-b3ae-1935671bb6f3")
4290 IInkStrokes : public IDispatch
4291 {
4292     virtual HRESULT STDMETHODCALLTYPE get_Count(
4293         LONG *Count) = 0;
4294 
4295     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
4296         IUnknown **_NewEnum) = 0;
4297 
4298     virtual HRESULT STDMETHODCALLTYPE get_Ink(
4299         IInkDisp **Ink) = 0;
4300 
4301     virtual HRESULT STDMETHODCALLTYPE get_RecognitionResult(
4302         IInkRecognitionResult **RecognitionResult) = 0;
4303 
4304     virtual HRESULT STDMETHODCALLTYPE ToString(
4305         BSTR *ToString) = 0;
4306 
4307     virtual HRESULT STDMETHODCALLTYPE Item(
4308         LONG Index,
4309         IInkStrokeDisp **Stroke) = 0;
4310 
4311     virtual HRESULT STDMETHODCALLTYPE Add(
4312         IInkStrokeDisp *InkStroke) = 0;
4313 
4314     virtual HRESULT STDMETHODCALLTYPE AddStrokes(
4315         IInkStrokes *InkStrokes) = 0;
4316 
4317     virtual HRESULT STDMETHODCALLTYPE Remove(
4318         IInkStrokeDisp *InkStroke) = 0;
4319 
4320     virtual HRESULT STDMETHODCALLTYPE RemoveStrokes(
4321         IInkStrokes *InkStrokes) = 0;
4322 
4323     virtual HRESULT STDMETHODCALLTYPE ModifyDrawingAttributes(
4324         IInkDrawingAttributes *DrawAttrs) = 0;
4325 
4326     virtual HRESULT STDMETHODCALLTYPE GetBoundingBox(
4327         InkBoundingBoxMode BoundingBoxMode,
4328         IInkRectangle **BoundingBox) = 0;
4329 
4330     virtual HRESULT STDMETHODCALLTYPE Transform(
4331         IInkTransform *Transform,
4332         VARIANT_BOOL ApplyOnPenWidth = 0) = 0;
4333 
4334     virtual HRESULT STDMETHODCALLTYPE ScaleToRectangle(
4335         IInkRectangle *Rectangle) = 0;
4336 
4337     virtual HRESULT STDMETHODCALLTYPE Move(
4338         float HorizontalComponent,
4339         float VerticalComponent) = 0;
4340 
4341     virtual HRESULT STDMETHODCALLTYPE Rotate(
4342         float Degrees,
4343         float x = 0,
4344         float y = 0) = 0;
4345 
4346     virtual HRESULT STDMETHODCALLTYPE Shear(
4347         float HorizontalMultiplier,
4348         float VerticalMultiplier) = 0;
4349 
4350     virtual HRESULT STDMETHODCALLTYPE ScaleTransform(
4351         float HorizontalMultiplier,
4352         float VerticalMultiplier) = 0;
4353 
4354     virtual HRESULT STDMETHODCALLTYPE Clip(
4355         IInkRectangle *Rectangle) = 0;
4356 
4357     virtual HRESULT STDMETHODCALLTYPE RemoveRecognitionResult(
4358         ) = 0;
4359 
4360 };
4361 #ifdef __CRT_UUID_DECL
4362 __CRT_UUID_DECL(IInkStrokes, 0xf1f4c9d8, 0x590a, 0x4963, 0xb3,0xae, 0x19,0x35,0x67,0x1b,0xb6,0xf3)
4363 #endif
4364 #else
4365 typedef struct IInkStrokesVtbl {
4366     BEGIN_INTERFACE
4367 
4368     /*** IUnknown methods ***/
4369     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4370         IInkStrokes *This,
4371         REFIID riid,
4372         void **ppvObject);
4373 
4374     ULONG (STDMETHODCALLTYPE *AddRef)(
4375         IInkStrokes *This);
4376 
4377     ULONG (STDMETHODCALLTYPE *Release)(
4378         IInkStrokes *This);
4379 
4380     /*** IDispatch methods ***/
4381     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4382         IInkStrokes *This,
4383         UINT *pctinfo);
4384 
4385     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4386         IInkStrokes *This,
4387         UINT iTInfo,
4388         LCID lcid,
4389         ITypeInfo **ppTInfo);
4390 
4391     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4392         IInkStrokes *This,
4393         REFIID riid,
4394         LPOLESTR *rgszNames,
4395         UINT cNames,
4396         LCID lcid,
4397         DISPID *rgDispId);
4398 
4399     HRESULT (STDMETHODCALLTYPE *Invoke)(
4400         IInkStrokes *This,
4401         DISPID dispIdMember,
4402         REFIID riid,
4403         LCID lcid,
4404         WORD wFlags,
4405         DISPPARAMS *pDispParams,
4406         VARIANT *pVarResult,
4407         EXCEPINFO *pExcepInfo,
4408         UINT *puArgErr);
4409 
4410     /*** IInkStrokes methods ***/
4411     HRESULT (STDMETHODCALLTYPE *get_Count)(
4412         IInkStrokes *This,
4413         LONG *Count);
4414 
4415     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
4416         IInkStrokes *This,
4417         IUnknown **_NewEnum);
4418 
4419     HRESULT (STDMETHODCALLTYPE *get_Ink)(
4420         IInkStrokes *This,
4421         IInkDisp **Ink);
4422 
4423     HRESULT (STDMETHODCALLTYPE *get_RecognitionResult)(
4424         IInkStrokes *This,
4425         IInkRecognitionResult **RecognitionResult);
4426 
4427     HRESULT (STDMETHODCALLTYPE *ToString)(
4428         IInkStrokes *This,
4429         BSTR *ToString);
4430 
4431     HRESULT (STDMETHODCALLTYPE *Item)(
4432         IInkStrokes *This,
4433         LONG Index,
4434         IInkStrokeDisp **Stroke);
4435 
4436     HRESULT (STDMETHODCALLTYPE *Add)(
4437         IInkStrokes *This,
4438         IInkStrokeDisp *InkStroke);
4439 
4440     HRESULT (STDMETHODCALLTYPE *AddStrokes)(
4441         IInkStrokes *This,
4442         IInkStrokes *InkStrokes);
4443 
4444     HRESULT (STDMETHODCALLTYPE *Remove)(
4445         IInkStrokes *This,
4446         IInkStrokeDisp *InkStroke);
4447 
4448     HRESULT (STDMETHODCALLTYPE *RemoveStrokes)(
4449         IInkStrokes *This,
4450         IInkStrokes *InkStrokes);
4451 
4452     HRESULT (STDMETHODCALLTYPE *ModifyDrawingAttributes)(
4453         IInkStrokes *This,
4454         IInkDrawingAttributes *DrawAttrs);
4455 
4456     HRESULT (STDMETHODCALLTYPE *GetBoundingBox)(
4457         IInkStrokes *This,
4458         InkBoundingBoxMode BoundingBoxMode,
4459         IInkRectangle **BoundingBox);
4460 
4461     HRESULT (STDMETHODCALLTYPE *Transform)(
4462         IInkStrokes *This,
4463         IInkTransform *Transform,
4464         VARIANT_BOOL ApplyOnPenWidth);
4465 
4466     HRESULT (STDMETHODCALLTYPE *ScaleToRectangle)(
4467         IInkStrokes *This,
4468         IInkRectangle *Rectangle);
4469 
4470     HRESULT (STDMETHODCALLTYPE *Move)(
4471         IInkStrokes *This,
4472         float HorizontalComponent,
4473         float VerticalComponent);
4474 
4475     HRESULT (STDMETHODCALLTYPE *Rotate)(
4476         IInkStrokes *This,
4477         float Degrees,
4478         float x,
4479         float y);
4480 
4481     HRESULT (STDMETHODCALLTYPE *Shear)(
4482         IInkStrokes *This,
4483         float HorizontalMultiplier,
4484         float VerticalMultiplier);
4485 
4486     HRESULT (STDMETHODCALLTYPE *ScaleTransform)(
4487         IInkStrokes *This,
4488         float HorizontalMultiplier,
4489         float VerticalMultiplier);
4490 
4491     HRESULT (STDMETHODCALLTYPE *Clip)(
4492         IInkStrokes *This,
4493         IInkRectangle *Rectangle);
4494 
4495     HRESULT (STDMETHODCALLTYPE *RemoveRecognitionResult)(
4496         IInkStrokes *This);
4497 
4498     END_INTERFACE
4499 } IInkStrokesVtbl;
4500 
4501 interface IInkStrokes {
4502     CONST_VTBL IInkStrokesVtbl* lpVtbl;
4503 };
4504 
4505 #ifdef COBJMACROS
4506 #ifndef WIDL_C_INLINE_WRAPPERS
4507 /*** IUnknown methods ***/
4508 #define IInkStrokes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4509 #define IInkStrokes_AddRef(This) (This)->lpVtbl->AddRef(This)
4510 #define IInkStrokes_Release(This) (This)->lpVtbl->Release(This)
4511 /*** IDispatch methods ***/
4512 #define IInkStrokes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4513 #define IInkStrokes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4514 #define IInkStrokes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4515 #define IInkStrokes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4516 /*** IInkStrokes methods ***/
4517 #define IInkStrokes_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
4518 #define IInkStrokes_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
4519 #define IInkStrokes_get_Ink(This,Ink) (This)->lpVtbl->get_Ink(This,Ink)
4520 #define IInkStrokes_get_RecognitionResult(This,RecognitionResult) (This)->lpVtbl->get_RecognitionResult(This,RecognitionResult)
4521 #define IInkStrokes_ToString(This,ToString) (This)->lpVtbl->ToString(This,ToString)
4522 #define IInkStrokes_Item(This,Index,Stroke) (This)->lpVtbl->Item(This,Index,Stroke)
4523 #define IInkStrokes_Add(This,InkStroke) (This)->lpVtbl->Add(This,InkStroke)
4524 #define IInkStrokes_AddStrokes(This,InkStrokes) (This)->lpVtbl->AddStrokes(This,InkStrokes)
4525 #define IInkStrokes_Remove(This,InkStroke) (This)->lpVtbl->Remove(This,InkStroke)
4526 #define IInkStrokes_RemoveStrokes(This,InkStrokes) (This)->lpVtbl->RemoveStrokes(This,InkStrokes)
4527 #define IInkStrokes_ModifyDrawingAttributes(This,DrawAttrs) (This)->lpVtbl->ModifyDrawingAttributes(This,DrawAttrs)
4528 #define IInkStrokes_GetBoundingBox(This,BoundingBoxMode,BoundingBox) (This)->lpVtbl->GetBoundingBox(This,BoundingBoxMode,BoundingBox)
4529 #define IInkStrokes_Transform(This,Transform,ApplyOnPenWidth) (This)->lpVtbl->Transform(This,Transform,ApplyOnPenWidth)
4530 #define IInkStrokes_ScaleToRectangle(This,Rectangle) (This)->lpVtbl->ScaleToRectangle(This,Rectangle)
4531 #define IInkStrokes_Move(This,HorizontalComponent,VerticalComponent) (This)->lpVtbl->Move(This,HorizontalComponent,VerticalComponent)
4532 #define IInkStrokes_Rotate(This,Degrees,x,y) (This)->lpVtbl->Rotate(This,Degrees,x,y)
4533 #define IInkStrokes_Shear(This,HorizontalMultiplier,VerticalMultiplier) (This)->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier)
4534 #define IInkStrokes_ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier) (This)->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier)
4535 #define IInkStrokes_Clip(This,Rectangle) (This)->lpVtbl->Clip(This,Rectangle)
4536 #define IInkStrokes_RemoveRecognitionResult(This) (This)->lpVtbl->RemoveRecognitionResult(This)
4537 #else
4538 /*** IUnknown methods ***/
4539 static FORCEINLINE HRESULT IInkStrokes_QueryInterface(IInkStrokes* This,REFIID riid,void **ppvObject) {
4540     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4541 }
4542 static FORCEINLINE ULONG IInkStrokes_AddRef(IInkStrokes* This) {
4543     return This->lpVtbl->AddRef(This);
4544 }
4545 static FORCEINLINE ULONG IInkStrokes_Release(IInkStrokes* This) {
4546     return This->lpVtbl->Release(This);
4547 }
4548 /*** IDispatch methods ***/
4549 static FORCEINLINE HRESULT IInkStrokes_GetTypeInfoCount(IInkStrokes* This,UINT *pctinfo) {
4550     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4551 }
4552 static FORCEINLINE HRESULT IInkStrokes_GetTypeInfo(IInkStrokes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4553     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4554 }
4555 static FORCEINLINE HRESULT IInkStrokes_GetIDsOfNames(IInkStrokes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4556     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4557 }
4558 static FORCEINLINE HRESULT IInkStrokes_Invoke(IInkStrokes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4559     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4560 }
4561 /*** IInkStrokes methods ***/
4562 static FORCEINLINE HRESULT IInkStrokes_get_Count(IInkStrokes* This,LONG *Count) {
4563     return This->lpVtbl->get_Count(This,Count);
4564 }
4565 static FORCEINLINE HRESULT IInkStrokes_get__NewEnum(IInkStrokes* This,IUnknown **_NewEnum) {
4566     return This->lpVtbl->get__NewEnum(This,_NewEnum);
4567 }
4568 static FORCEINLINE HRESULT IInkStrokes_get_Ink(IInkStrokes* This,IInkDisp **Ink) {
4569     return This->lpVtbl->get_Ink(This,Ink);
4570 }
4571 static FORCEINLINE HRESULT IInkStrokes_get_RecognitionResult(IInkStrokes* This,IInkRecognitionResult **RecognitionResult) {
4572     return This->lpVtbl->get_RecognitionResult(This,RecognitionResult);
4573 }
4574 static FORCEINLINE HRESULT IInkStrokes_ToString(IInkStrokes* This,BSTR *ToString) {
4575     return This->lpVtbl->ToString(This,ToString);
4576 }
4577 static FORCEINLINE HRESULT IInkStrokes_Item(IInkStrokes* This,LONG Index,IInkStrokeDisp **Stroke) {
4578     return This->lpVtbl->Item(This,Index,Stroke);
4579 }
4580 static FORCEINLINE HRESULT IInkStrokes_Add(IInkStrokes* This,IInkStrokeDisp *InkStroke) {
4581     return This->lpVtbl->Add(This,InkStroke);
4582 }
4583 static FORCEINLINE HRESULT IInkStrokes_AddStrokes(IInkStrokes* This,IInkStrokes *InkStrokes) {
4584     return This->lpVtbl->AddStrokes(This,InkStrokes);
4585 }
4586 static FORCEINLINE HRESULT IInkStrokes_Remove(IInkStrokes* This,IInkStrokeDisp *InkStroke) {
4587     return This->lpVtbl->Remove(This,InkStroke);
4588 }
4589 static FORCEINLINE HRESULT IInkStrokes_RemoveStrokes(IInkStrokes* This,IInkStrokes *InkStrokes) {
4590     return This->lpVtbl->RemoveStrokes(This,InkStrokes);
4591 }
4592 static FORCEINLINE HRESULT IInkStrokes_ModifyDrawingAttributes(IInkStrokes* This,IInkDrawingAttributes *DrawAttrs) {
4593     return This->lpVtbl->ModifyDrawingAttributes(This,DrawAttrs);
4594 }
4595 static FORCEINLINE HRESULT IInkStrokes_GetBoundingBox(IInkStrokes* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **BoundingBox) {
4596     return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,BoundingBox);
4597 }
4598 static FORCEINLINE HRESULT IInkStrokes_Transform(IInkStrokes* This,IInkTransform *Transform,VARIANT_BOOL ApplyOnPenWidth) {
4599     return This->lpVtbl->Transform(This,Transform,ApplyOnPenWidth);
4600 }
4601 static FORCEINLINE HRESULT IInkStrokes_ScaleToRectangle(IInkStrokes* This,IInkRectangle *Rectangle) {
4602     return This->lpVtbl->ScaleToRectangle(This,Rectangle);
4603 }
4604 static FORCEINLINE HRESULT IInkStrokes_Move(IInkStrokes* This,float HorizontalComponent,float VerticalComponent) {
4605     return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
4606 }
4607 static FORCEINLINE HRESULT IInkStrokes_Rotate(IInkStrokes* This,float Degrees,float x,float y) {
4608     return This->lpVtbl->Rotate(This,Degrees,x,y);
4609 }
4610 static FORCEINLINE HRESULT IInkStrokes_Shear(IInkStrokes* This,float HorizontalMultiplier,float VerticalMultiplier) {
4611     return This->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier);
4612 }
4613 static FORCEINLINE HRESULT IInkStrokes_ScaleTransform(IInkStrokes* This,float HorizontalMultiplier,float VerticalMultiplier) {
4614     return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier);
4615 }
4616 static FORCEINLINE HRESULT IInkStrokes_Clip(IInkStrokes* This,IInkRectangle *Rectangle) {
4617     return This->lpVtbl->Clip(This,Rectangle);
4618 }
4619 static FORCEINLINE HRESULT IInkStrokes_RemoveRecognitionResult(IInkStrokes* This) {
4620     return This->lpVtbl->RemoveRecognitionResult(This);
4621 }
4622 #endif
4623 #endif
4624 
4625 #endif
4626 
4627 
4628 #endif  /* __IInkStrokes_INTERFACE_DEFINED__ */
4629 
4630 /*****************************************************************************
4631  * IInkRenderer interface
4632  */
4633 #ifndef __IInkRenderer_INTERFACE_DEFINED__
4634 #define __IInkRenderer_INTERFACE_DEFINED__
4635 
4636 DEFINE_GUID(IID_IInkRenderer, 0xe6257a9c, 0xb511, 0x4f4c, 0xa8,0xb0, 0xa7,0xdb,0xc9,0x50,0x6b,0x83);
4637 #if defined(__cplusplus) && !defined(CINTERFACE)
4638 MIDL_INTERFACE("e6257a9c-b511-4f4c-a8b0-a7dbc9506b83")
4639 IInkRenderer : public IDispatch
4640 {
4641     virtual HRESULT STDMETHODCALLTYPE GetViewTransform(
4642         IInkTransform *ViewTransform) = 0;
4643 
4644     virtual HRESULT STDMETHODCALLTYPE SetViewTransform(
4645         IInkTransform *ViewTransform) = 0;
4646 
4647     virtual HRESULT STDMETHODCALLTYPE GetObjectTransform(
4648         IInkTransform *ObjectTransform) = 0;
4649 
4650     virtual HRESULT STDMETHODCALLTYPE SetObjectTransform(
4651         IInkTransform *ObjectTransform) = 0;
4652 
4653     virtual HRESULT STDMETHODCALLTYPE Draw(
4654         LONG_PTR hDC,
4655         IInkStrokes *Strokes) = 0;
4656 
4657     virtual HRESULT STDMETHODCALLTYPE DrawStroke(
4658         LONG_PTR hDC,
4659         IInkStrokeDisp *Stroke,
4660         IInkDrawingAttributes *DrawingAttributes = 0) = 0;
4661 
4662     virtual HRESULT STDMETHODCALLTYPE PixelToInkSpace(
4663         LONG_PTR hDC,
4664         LONG *x,
4665         LONG *y) = 0;
4666 
4667     virtual HRESULT STDMETHODCALLTYPE InkSpaceToPixel(
4668         LONG_PTR hdcDisplay,
4669         LONG *x,
4670         LONG *y) = 0;
4671 
4672     virtual HRESULT STDMETHODCALLTYPE PixelToInkSpaceFromPoints(
4673         LONG_PTR hDC,
4674         VARIANT *Points) = 0;
4675 
4676     virtual HRESULT STDMETHODCALLTYPE InkSpaceToPixelFromPoints(
4677         LONG_PTR hDC,
4678         VARIANT *Points) = 0;
4679 
4680     virtual HRESULT STDMETHODCALLTYPE Measure(
4681         IInkStrokes *Strokes,
4682         IInkRectangle **Rectangle) = 0;
4683 
4684     virtual HRESULT STDMETHODCALLTYPE MeasureStroke(
4685         IInkStrokeDisp *Stroke,
4686         IInkDrawingAttributes *DrawingAttributes,
4687         IInkRectangle **Rectangle) = 0;
4688 
4689     virtual HRESULT STDMETHODCALLTYPE Move(
4690         float HorizontalComponent,
4691         float VerticalComponent) = 0;
4692 
4693     virtual HRESULT STDMETHODCALLTYPE Rotate(
4694         float Degrees,
4695         float x = 0,
4696         float y = 0) = 0;
4697 
4698     virtual HRESULT STDMETHODCALLTYPE ScaleTransform(
4699         float HorizontalMultiplier,
4700         float VerticalMultiplier,
4701         VARIANT_BOOL ApplyOnPenWidth = -1) = 0;
4702 
4703 };
4704 #ifdef __CRT_UUID_DECL
4705 __CRT_UUID_DECL(IInkRenderer, 0xe6257a9c, 0xb511, 0x4f4c, 0xa8,0xb0, 0xa7,0xdb,0xc9,0x50,0x6b,0x83)
4706 #endif
4707 #else
4708 typedef struct IInkRendererVtbl {
4709     BEGIN_INTERFACE
4710 
4711     /*** IUnknown methods ***/
4712     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4713         IInkRenderer *This,
4714         REFIID riid,
4715         void **ppvObject);
4716 
4717     ULONG (STDMETHODCALLTYPE *AddRef)(
4718         IInkRenderer *This);
4719 
4720     ULONG (STDMETHODCALLTYPE *Release)(
4721         IInkRenderer *This);
4722 
4723     /*** IDispatch methods ***/
4724     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4725         IInkRenderer *This,
4726         UINT *pctinfo);
4727 
4728     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4729         IInkRenderer *This,
4730         UINT iTInfo,
4731         LCID lcid,
4732         ITypeInfo **ppTInfo);
4733 
4734     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4735         IInkRenderer *This,
4736         REFIID riid,
4737         LPOLESTR *rgszNames,
4738         UINT cNames,
4739         LCID lcid,
4740         DISPID *rgDispId);
4741 
4742     HRESULT (STDMETHODCALLTYPE *Invoke)(
4743         IInkRenderer *This,
4744         DISPID dispIdMember,
4745         REFIID riid,
4746         LCID lcid,
4747         WORD wFlags,
4748         DISPPARAMS *pDispParams,
4749         VARIANT *pVarResult,
4750         EXCEPINFO *pExcepInfo,
4751         UINT *puArgErr);
4752 
4753     /*** IInkRenderer methods ***/
4754     HRESULT (STDMETHODCALLTYPE *GetViewTransform)(
4755         IInkRenderer *This,
4756         IInkTransform *ViewTransform);
4757 
4758     HRESULT (STDMETHODCALLTYPE *SetViewTransform)(
4759         IInkRenderer *This,
4760         IInkTransform *ViewTransform);
4761 
4762     HRESULT (STDMETHODCALLTYPE *GetObjectTransform)(
4763         IInkRenderer *This,
4764         IInkTransform *ObjectTransform);
4765 
4766     HRESULT (STDMETHODCALLTYPE *SetObjectTransform)(
4767         IInkRenderer *This,
4768         IInkTransform *ObjectTransform);
4769 
4770     HRESULT (STDMETHODCALLTYPE *Draw)(
4771         IInkRenderer *This,
4772         LONG_PTR hDC,
4773         IInkStrokes *Strokes);
4774 
4775     HRESULT (STDMETHODCALLTYPE *DrawStroke)(
4776         IInkRenderer *This,
4777         LONG_PTR hDC,
4778         IInkStrokeDisp *Stroke,
4779         IInkDrawingAttributes *DrawingAttributes);
4780 
4781     HRESULT (STDMETHODCALLTYPE *PixelToInkSpace)(
4782         IInkRenderer *This,
4783         LONG_PTR hDC,
4784         LONG *x,
4785         LONG *y);
4786 
4787     HRESULT (STDMETHODCALLTYPE *InkSpaceToPixel)(
4788         IInkRenderer *This,
4789         LONG_PTR hdcDisplay,
4790         LONG *x,
4791         LONG *y);
4792 
4793     HRESULT (STDMETHODCALLTYPE *PixelToInkSpaceFromPoints)(
4794         IInkRenderer *This,
4795         LONG_PTR hDC,
4796         VARIANT *Points);
4797 
4798     HRESULT (STDMETHODCALLTYPE *InkSpaceToPixelFromPoints)(
4799         IInkRenderer *This,
4800         LONG_PTR hDC,
4801         VARIANT *Points);
4802 
4803     HRESULT (STDMETHODCALLTYPE *Measure)(
4804         IInkRenderer *This,
4805         IInkStrokes *Strokes,
4806         IInkRectangle **Rectangle);
4807 
4808     HRESULT (STDMETHODCALLTYPE *MeasureStroke)(
4809         IInkRenderer *This,
4810         IInkStrokeDisp *Stroke,
4811         IInkDrawingAttributes *DrawingAttributes,
4812         IInkRectangle **Rectangle);
4813 
4814     HRESULT (STDMETHODCALLTYPE *Move)(
4815         IInkRenderer *This,
4816         float HorizontalComponent,
4817         float VerticalComponent);
4818 
4819     HRESULT (STDMETHODCALLTYPE *Rotate)(
4820         IInkRenderer *This,
4821         float Degrees,
4822         float x,
4823         float y);
4824 
4825     HRESULT (STDMETHODCALLTYPE *ScaleTransform)(
4826         IInkRenderer *This,
4827         float HorizontalMultiplier,
4828         float VerticalMultiplier,
4829         VARIANT_BOOL ApplyOnPenWidth);
4830 
4831     END_INTERFACE
4832 } IInkRendererVtbl;
4833 
4834 interface IInkRenderer {
4835     CONST_VTBL IInkRendererVtbl* lpVtbl;
4836 };
4837 
4838 #ifdef COBJMACROS
4839 #ifndef WIDL_C_INLINE_WRAPPERS
4840 /*** IUnknown methods ***/
4841 #define IInkRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4842 #define IInkRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
4843 #define IInkRenderer_Release(This) (This)->lpVtbl->Release(This)
4844 /*** IDispatch methods ***/
4845 #define IInkRenderer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4846 #define IInkRenderer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4847 #define IInkRenderer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4848 #define IInkRenderer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4849 /*** IInkRenderer methods ***/
4850 #define IInkRenderer_GetViewTransform(This,ViewTransform) (This)->lpVtbl->GetViewTransform(This,ViewTransform)
4851 #define IInkRenderer_SetViewTransform(This,ViewTransform) (This)->lpVtbl->SetViewTransform(This,ViewTransform)
4852 #define IInkRenderer_GetObjectTransform(This,ObjectTransform) (This)->lpVtbl->GetObjectTransform(This,ObjectTransform)
4853 #define IInkRenderer_SetObjectTransform(This,ObjectTransform) (This)->lpVtbl->SetObjectTransform(This,ObjectTransform)
4854 #define IInkRenderer_Draw(This,hDC,Strokes) (This)->lpVtbl->Draw(This,hDC,Strokes)
4855 #define IInkRenderer_DrawStroke(This,hDC,Stroke,DrawingAttributes) (This)->lpVtbl->DrawStroke(This,hDC,Stroke,DrawingAttributes)
4856 #define IInkRenderer_PixelToInkSpace(This,hDC,x,y) (This)->lpVtbl->PixelToInkSpace(This,hDC,x,y)
4857 #define IInkRenderer_InkSpaceToPixel(This,hdcDisplay,x,y) (This)->lpVtbl->InkSpaceToPixel(This,hdcDisplay,x,y)
4858 #define IInkRenderer_PixelToInkSpaceFromPoints(This,hDC,Points) (This)->lpVtbl->PixelToInkSpaceFromPoints(This,hDC,Points)
4859 #define IInkRenderer_InkSpaceToPixelFromPoints(This,hDC,Points) (This)->lpVtbl->InkSpaceToPixelFromPoints(This,hDC,Points)
4860 #define IInkRenderer_Measure(This,Strokes,Rectangle) (This)->lpVtbl->Measure(This,Strokes,Rectangle)
4861 #define IInkRenderer_MeasureStroke(This,Stroke,DrawingAttributes,Rectangle) (This)->lpVtbl->MeasureStroke(This,Stroke,DrawingAttributes,Rectangle)
4862 #define IInkRenderer_Move(This,HorizontalComponent,VerticalComponent) (This)->lpVtbl->Move(This,HorizontalComponent,VerticalComponent)
4863 #define IInkRenderer_Rotate(This,Degrees,x,y) (This)->lpVtbl->Rotate(This,Degrees,x,y)
4864 #define IInkRenderer_ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier,ApplyOnPenWidth) (This)->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier,ApplyOnPenWidth)
4865 #else
4866 /*** IUnknown methods ***/
4867 static FORCEINLINE HRESULT IInkRenderer_QueryInterface(IInkRenderer* This,REFIID riid,void **ppvObject) {
4868     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4869 }
4870 static FORCEINLINE ULONG IInkRenderer_AddRef(IInkRenderer* This) {
4871     return This->lpVtbl->AddRef(This);
4872 }
4873 static FORCEINLINE ULONG IInkRenderer_Release(IInkRenderer* This) {
4874     return This->lpVtbl->Release(This);
4875 }
4876 /*** IDispatch methods ***/
4877 static FORCEINLINE HRESULT IInkRenderer_GetTypeInfoCount(IInkRenderer* This,UINT *pctinfo) {
4878     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4879 }
4880 static FORCEINLINE HRESULT IInkRenderer_GetTypeInfo(IInkRenderer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4881     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4882 }
4883 static FORCEINLINE HRESULT IInkRenderer_GetIDsOfNames(IInkRenderer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4884     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4885 }
4886 static FORCEINLINE HRESULT IInkRenderer_Invoke(IInkRenderer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4887     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4888 }
4889 /*** IInkRenderer methods ***/
4890 static FORCEINLINE HRESULT IInkRenderer_GetViewTransform(IInkRenderer* This,IInkTransform *ViewTransform) {
4891     return This->lpVtbl->GetViewTransform(This,ViewTransform);
4892 }
4893 static FORCEINLINE HRESULT IInkRenderer_SetViewTransform(IInkRenderer* This,IInkTransform *ViewTransform) {
4894     return This->lpVtbl->SetViewTransform(This,ViewTransform);
4895 }
4896 static FORCEINLINE HRESULT IInkRenderer_GetObjectTransform(IInkRenderer* This,IInkTransform *ObjectTransform) {
4897     return This->lpVtbl->GetObjectTransform(This,ObjectTransform);
4898 }
4899 static FORCEINLINE HRESULT IInkRenderer_SetObjectTransform(IInkRenderer* This,IInkTransform *ObjectTransform) {
4900     return This->lpVtbl->SetObjectTransform(This,ObjectTransform);
4901 }
4902 static FORCEINLINE HRESULT IInkRenderer_Draw(IInkRenderer* This,LONG_PTR hDC,IInkStrokes *Strokes) {
4903     return This->lpVtbl->Draw(This,hDC,Strokes);
4904 }
4905 static FORCEINLINE HRESULT IInkRenderer_DrawStroke(IInkRenderer* This,LONG_PTR hDC,IInkStrokeDisp *Stroke,IInkDrawingAttributes *DrawingAttributes) {
4906     return This->lpVtbl->DrawStroke(This,hDC,Stroke,DrawingAttributes);
4907 }
4908 static FORCEINLINE HRESULT IInkRenderer_PixelToInkSpace(IInkRenderer* This,LONG_PTR hDC,LONG *x,LONG *y) {
4909     return This->lpVtbl->PixelToInkSpace(This,hDC,x,y);
4910 }
4911 static FORCEINLINE HRESULT IInkRenderer_InkSpaceToPixel(IInkRenderer* This,LONG_PTR hdcDisplay,LONG *x,LONG *y) {
4912     return This->lpVtbl->InkSpaceToPixel(This,hdcDisplay,x,y);
4913 }
4914 static FORCEINLINE HRESULT IInkRenderer_PixelToInkSpaceFromPoints(IInkRenderer* This,LONG_PTR hDC,VARIANT *Points) {
4915     return This->lpVtbl->PixelToInkSpaceFromPoints(This,hDC,Points);
4916 }
4917 static FORCEINLINE HRESULT IInkRenderer_InkSpaceToPixelFromPoints(IInkRenderer* This,LONG_PTR hDC,VARIANT *Points) {
4918     return This->lpVtbl->InkSpaceToPixelFromPoints(This,hDC,Points);
4919 }
4920 static FORCEINLINE HRESULT IInkRenderer_Measure(IInkRenderer* This,IInkStrokes *Strokes,IInkRectangle **Rectangle) {
4921     return This->lpVtbl->Measure(This,Strokes,Rectangle);
4922 }
4923 static FORCEINLINE HRESULT IInkRenderer_MeasureStroke(IInkRenderer* This,IInkStrokeDisp *Stroke,IInkDrawingAttributes *DrawingAttributes,IInkRectangle **Rectangle) {
4924     return This->lpVtbl->MeasureStroke(This,Stroke,DrawingAttributes,Rectangle);
4925 }
4926 static FORCEINLINE HRESULT IInkRenderer_Move(IInkRenderer* This,float HorizontalComponent,float VerticalComponent) {
4927     return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
4928 }
4929 static FORCEINLINE HRESULT IInkRenderer_Rotate(IInkRenderer* This,float Degrees,float x,float y) {
4930     return This->lpVtbl->Rotate(This,Degrees,x,y);
4931 }
4932 static FORCEINLINE HRESULT IInkRenderer_ScaleTransform(IInkRenderer* This,float HorizontalMultiplier,float VerticalMultiplier,VARIANT_BOOL ApplyOnPenWidth) {
4933     return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier,ApplyOnPenWidth);
4934 }
4935 #endif
4936 #endif
4937 
4938 #endif
4939 
4940 
4941 #endif  /* __IInkRenderer_INTERFACE_DEFINED__ */
4942 
4943 /*****************************************************************************
4944  * IInkCursors interface
4945  */
4946 #ifndef __IInkCursors_INTERFACE_DEFINED__
4947 #define __IInkCursors_INTERFACE_DEFINED__
4948 
4949 DEFINE_GUID(IID_IInkCursors, 0xa248c1ac, 0xc698, 0x4e06, 0x9e,0x5c, 0xd5,0x7f,0x77,0xc7,0xe6,0x47);
4950 #if defined(__cplusplus) && !defined(CINTERFACE)
4951 MIDL_INTERFACE("a248c1ac-c698-4e06-9e5c-d57f77c7e647")
4952 IInkCursors : public IDispatch
4953 {
4954     virtual HRESULT STDMETHODCALLTYPE get_Count(
4955         LONG *Count) = 0;
4956 
4957     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
4958         IUnknown **_NewEnum) = 0;
4959 
4960     virtual HRESULT STDMETHODCALLTYPE Item(
4961         LONG Index,
4962         IInkCursor **Cursor) = 0;
4963 
4964 };
4965 #ifdef __CRT_UUID_DECL
4966 __CRT_UUID_DECL(IInkCursors, 0xa248c1ac, 0xc698, 0x4e06, 0x9e,0x5c, 0xd5,0x7f,0x77,0xc7,0xe6,0x47)
4967 #endif
4968 #else
4969 typedef struct IInkCursorsVtbl {
4970     BEGIN_INTERFACE
4971 
4972     /*** IUnknown methods ***/
4973     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4974         IInkCursors *This,
4975         REFIID riid,
4976         void **ppvObject);
4977 
4978     ULONG (STDMETHODCALLTYPE *AddRef)(
4979         IInkCursors *This);
4980 
4981     ULONG (STDMETHODCALLTYPE *Release)(
4982         IInkCursors *This);
4983 
4984     /*** IDispatch methods ***/
4985     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4986         IInkCursors *This,
4987         UINT *pctinfo);
4988 
4989     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4990         IInkCursors *This,
4991         UINT iTInfo,
4992         LCID lcid,
4993         ITypeInfo **ppTInfo);
4994 
4995     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4996         IInkCursors *This,
4997         REFIID riid,
4998         LPOLESTR *rgszNames,
4999         UINT cNames,
5000         LCID lcid,
5001         DISPID *rgDispId);
5002 
5003     HRESULT (STDMETHODCALLTYPE *Invoke)(
5004         IInkCursors *This,
5005         DISPID dispIdMember,
5006         REFIID riid,
5007         LCID lcid,
5008         WORD wFlags,
5009         DISPPARAMS *pDispParams,
5010         VARIANT *pVarResult,
5011         EXCEPINFO *pExcepInfo,
5012         UINT *puArgErr);
5013 
5014     /*** IInkCursors methods ***/
5015     HRESULT (STDMETHODCALLTYPE *get_Count)(
5016         IInkCursors *This,
5017         LONG *Count);
5018 
5019     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
5020         IInkCursors *This,
5021         IUnknown **_NewEnum);
5022 
5023     HRESULT (STDMETHODCALLTYPE *Item)(
5024         IInkCursors *This,
5025         LONG Index,
5026         IInkCursor **Cursor);
5027 
5028     END_INTERFACE
5029 } IInkCursorsVtbl;
5030 
5031 interface IInkCursors {
5032     CONST_VTBL IInkCursorsVtbl* lpVtbl;
5033 };
5034 
5035 #ifdef COBJMACROS
5036 #ifndef WIDL_C_INLINE_WRAPPERS
5037 /*** IUnknown methods ***/
5038 #define IInkCursors_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5039 #define IInkCursors_AddRef(This) (This)->lpVtbl->AddRef(This)
5040 #define IInkCursors_Release(This) (This)->lpVtbl->Release(This)
5041 /*** IDispatch methods ***/
5042 #define IInkCursors_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
5043 #define IInkCursors_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
5044 #define IInkCursors_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
5045 #define IInkCursors_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
5046 /*** IInkCursors methods ***/
5047 #define IInkCursors_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
5048 #define IInkCursors_get__NewEnum(This,_NewEnum) (This)->lpVtbl->get__NewEnum(This,_NewEnum)
5049 #define IInkCursors_Item(This,Index,Cursor) (This)->lpVtbl->Item(This,Index,Cursor)
5050 #else
5051 /*** IUnknown methods ***/
5052 static FORCEINLINE HRESULT IInkCursors_QueryInterface(IInkCursors* This,REFIID riid,void **ppvObject) {
5053     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5054 }
5055 static FORCEINLINE ULONG IInkCursors_AddRef(IInkCursors* This) {
5056     return This->lpVtbl->AddRef(This);
5057 }
5058 static FORCEINLINE ULONG IInkCursors_Release(IInkCursors* This) {
5059     return This->lpVtbl->Release(This);
5060 }
5061 /*** IDispatch methods ***/
5062 static FORCEINLINE HRESULT IInkCursors_GetTypeInfoCount(IInkCursors* This,UINT *pctinfo) {
5063     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5064 }
5065 static FORCEINLINE HRESULT IInkCursors_GetTypeInfo(IInkCursors* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5066     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5067 }
5068 static FORCEINLINE HRESULT IInkCursors_GetIDsOfNames(IInkCursors* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
5069     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
5070 }
5071 static FORCEINLINE HRESULT IInkCursors_Invoke(IInkCursors* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
5072     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
5073 }
5074 /*** IInkCursors methods ***/
5075 static FORCEINLINE HRESULT IInkCursors_get_Count(IInkCursors* This,LONG *Count) {
5076     return This->lpVtbl->get_Count(This,Count);
5077 }
5078 static FORCEINLINE HRESULT IInkCursors_get__NewEnum(IInkCursors* This,IUnknown **_NewEnum) {
5079     return This->lpVtbl->get__NewEnum(This,_NewEnum);
5080 }
5081 static FORCEINLINE HRESULT IInkCursors_Item(IInkCursors* This,LONG Index,IInkCursor **Cursor) {
5082     return This->lpVtbl->Item(This,Index,Cursor);
5083 }
5084 #endif
5085 #endif
5086 
5087 #endif
5088 
5089 
5090 #endif  /* __IInkCursors_INTERFACE_DEFINED__ */
5091 
5092 /*****************************************************************************
5093  * IInkCollector interface
5094  */
5095 #ifndef __IInkCollector_INTERFACE_DEFINED__
5096 #define __IInkCollector_INTERFACE_DEFINED__
5097 
5098 DEFINE_GUID(IID_IInkCollector, 0xf0f060b5, 0x8b1f, 0x4a7c, 0x89,0xec, 0x88,0x06,0x92,0x58,0x8a,0x4f);
5099 #if defined(__cplusplus) && !defined(CINTERFACE)
5100 MIDL_INTERFACE("f0f060b5-8b1f-4a7c-89ec-880692588a4f")
5101 IInkCollector : public IDispatch
5102 {
5103     virtual HRESULT STDMETHODCALLTYPE get_hWnd(
5104         LONG_PTR *CurrentWindow) = 0;
5105 
5106     virtual HRESULT STDMETHODCALLTYPE put_hWnd(
5107         LONG_PTR NewWindow) = 0;
5108 
5109     virtual HRESULT STDMETHODCALLTYPE get_Enabled(
5110         VARIANT_BOOL *Collecting) = 0;
5111 
5112     virtual HRESULT STDMETHODCALLTYPE put_Enabled(
5113         VARIANT_BOOL Collecting) = 0;
5114 
5115     virtual HRESULT STDMETHODCALLTYPE get_DefaultDrawingAttributes(
5116         IInkDrawingAttributes **CurrentAttributes) = 0;
5117 
5118     virtual HRESULT STDMETHODCALLTYPE putref_DefaultDrawingAttributes(
5119         IInkDrawingAttributes *NewAttributes) = 0;
5120 
5121     virtual HRESULT STDMETHODCALLTYPE get_Renderer(
5122         IInkRenderer **CurrentInkRenderer) = 0;
5123 
5124     virtual HRESULT STDMETHODCALLTYPE putref_Renderer(
5125         IInkRenderer *NewInkRenderer) = 0;
5126 
5127     virtual HRESULT STDMETHODCALLTYPE get_Ink(
5128         IInkDisp **Ink) = 0;
5129 
5130     virtual HRESULT STDMETHODCALLTYPE putref_Ink(
5131         IInkDisp *NewInk) = 0;
5132 
5133     virtual HRESULT STDMETHODCALLTYPE get_AutoRedraw(
5134         VARIANT_BOOL *AutoRedraw) = 0;
5135 
5136     virtual HRESULT STDMETHODCALLTYPE put_AutoRedraw(
5137         VARIANT_BOOL AutoRedraw) = 0;
5138 
5139     virtual HRESULT STDMETHODCALLTYPE get_CollectingInk(
5140         VARIANT_BOOL *Collecting) = 0;
5141 
5142     virtual HRESULT STDMETHODCALLTYPE get_CollectionMode(
5143         InkCollectionMode *Mode) = 0;
5144 
5145     virtual HRESULT STDMETHODCALLTYPE put_CollectionMode(
5146         InkCollectionMode Mode) = 0;
5147 
5148     virtual HRESULT STDMETHODCALLTYPE get_DynamicRendering(
5149         VARIANT_BOOL *Enabled) = 0;
5150 
5151     virtual HRESULT STDMETHODCALLTYPE put_DynamicRendering(
5152         VARIANT_BOOL Enabled) = 0;
5153 
5154     virtual HRESULT STDMETHODCALLTYPE get_DesiredPacketDescription(
5155         VARIANT *PacketGuids) = 0;
5156 
5157     virtual HRESULT STDMETHODCALLTYPE put_DesiredPacketDescription(
5158         VARIANT PacketGuids) = 0;
5159 
5160     virtual HRESULT STDMETHODCALLTYPE get_MouseIcon(
5161         IPictureDisp **MouseIcon) = 0;
5162 
5163     virtual HRESULT STDMETHODCALLTYPE put_MouseIcon(
5164         IPictureDisp *MouseIcon) = 0;
5165 
5166     virtual HRESULT STDMETHODCALLTYPE putref_MouseIcon(
5167         IPictureDisp *MouseIcon) = 0;
5168 
5169     virtual HRESULT STDMETHODCALLTYPE get_MousePointer(
5170         InkMousePointer *MousePointer) = 0;
5171 
5172     virtual HRESULT STDMETHODCALLTYPE put_MousePointer(
5173         InkMousePointer MousePointer) = 0;
5174 
5175     virtual HRESULT STDMETHODCALLTYPE get_Cursors(
5176         IInkCursors **Cursors) = 0;
5177 
5178     virtual HRESULT STDMETHODCALLTYPE get_MarginX(
5179         LONG *MarginX) = 0;
5180 
5181     virtual HRESULT STDMETHODCALLTYPE put_MarginX(
5182         LONG MarginX) = 0;
5183 
5184     virtual HRESULT STDMETHODCALLTYPE get_MarginY(
5185         LONG *MarginY) = 0;
5186 
5187     virtual HRESULT STDMETHODCALLTYPE put_MarginY(
5188         LONG MarginY) = 0;
5189 
5190     virtual HRESULT STDMETHODCALLTYPE get_Tablet(
5191         IInkTablet **SingleTablet) = 0;
5192 
5193     virtual HRESULT STDMETHODCALLTYPE get_SupportHighContrastInk(
5194         VARIANT_BOOL *Support) = 0;
5195 
5196     virtual HRESULT STDMETHODCALLTYPE put_SupportHighContrastInk(
5197         VARIANT_BOOL Support) = 0;
5198 
5199     virtual HRESULT STDMETHODCALLTYPE SetGestureStatus(
5200         InkApplicationGesture Gesture,
5201         VARIANT_BOOL Listen) = 0;
5202 
5203     virtual HRESULT STDMETHODCALLTYPE GetGestureStatus(
5204         InkApplicationGesture Gesture,
5205         VARIANT_BOOL *Listening) = 0;
5206 
5207     virtual HRESULT STDMETHODCALLTYPE GetWindowInputRectangle(
5208         IInkRectangle **WindowInputRectangle) = 0;
5209 
5210     virtual HRESULT STDMETHODCALLTYPE SetWindowInputRectangle(
5211         IInkRectangle *WindowInputRectangle) = 0;
5212 
5213     virtual HRESULT STDMETHODCALLTYPE SetAllTabletsMode(
5214         VARIANT_BOOL UseMouseForInput = -1) = 0;
5215 
5216     virtual HRESULT STDMETHODCALLTYPE SetSingleTabletIntegratedMode(
5217         IInkTablet *Tablet) = 0;
5218 
5219     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
5220         InkCollectorEventInterest EventId,
5221         VARIANT_BOOL *Listen) = 0;
5222 
5223     virtual HRESULT STDMETHODCALLTYPE SetEventInterest(
5224         InkCollectorEventInterest EventId,
5225         VARIANT_BOOL Listen) = 0;
5226 
5227 };
5228 #ifdef __CRT_UUID_DECL
5229 __CRT_UUID_DECL(IInkCollector, 0xf0f060b5, 0x8b1f, 0x4a7c, 0x89,0xec, 0x88,0x06,0x92,0x58,0x8a,0x4f)
5230 #endif
5231 #else
5232 typedef struct IInkCollectorVtbl {
5233     BEGIN_INTERFACE
5234 
5235     /*** IUnknown methods ***/
5236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5237         IInkCollector *This,
5238         REFIID riid,
5239         void **ppvObject);
5240 
5241     ULONG (STDMETHODCALLTYPE *AddRef)(
5242         IInkCollector *This);
5243 
5244     ULONG (STDMETHODCALLTYPE *Release)(
5245         IInkCollector *This);
5246 
5247     /*** IDispatch methods ***/
5248     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
5249         IInkCollector *This,
5250         UINT *pctinfo);
5251 
5252     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
5253         IInkCollector *This,
5254         UINT iTInfo,
5255         LCID lcid,
5256         ITypeInfo **ppTInfo);
5257 
5258     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
5259         IInkCollector *This,
5260         REFIID riid,
5261         LPOLESTR *rgszNames,
5262         UINT cNames,
5263         LCID lcid,
5264         DISPID *rgDispId);
5265 
5266     HRESULT (STDMETHODCALLTYPE *Invoke)(
5267         IInkCollector *This,
5268         DISPID dispIdMember,
5269         REFIID riid,
5270         LCID lcid,
5271         WORD wFlags,
5272         DISPPARAMS *pDispParams,
5273         VARIANT *pVarResult,
5274         EXCEPINFO *pExcepInfo,
5275         UINT *puArgErr);
5276 
5277     /*** IInkCollector methods ***/
5278     HRESULT (STDMETHODCALLTYPE *get_hWnd)(
5279         IInkCollector *This,
5280         LONG_PTR *CurrentWindow);
5281 
5282     HRESULT (STDMETHODCALLTYPE *put_hWnd)(
5283         IInkCollector *This,
5284         LONG_PTR NewWindow);
5285 
5286     HRESULT (STDMETHODCALLTYPE *get_Enabled)(
5287         IInkCollector *This,
5288         VARIANT_BOOL *Collecting);
5289 
5290     HRESULT (STDMETHODCALLTYPE *put_Enabled)(
5291         IInkCollector *This,
5292         VARIANT_BOOL Collecting);
5293 
5294     HRESULT (STDMETHODCALLTYPE *get_DefaultDrawingAttributes)(
5295         IInkCollector *This,
5296         IInkDrawingAttributes **CurrentAttributes);
5297 
5298     HRESULT (STDMETHODCALLTYPE *putref_DefaultDrawingAttributes)(
5299         IInkCollector *This,
5300         IInkDrawingAttributes *NewAttributes);
5301 
5302     HRESULT (STDMETHODCALLTYPE *get_Renderer)(
5303         IInkCollector *This,
5304         IInkRenderer **CurrentInkRenderer);
5305 
5306     HRESULT (STDMETHODCALLTYPE *putref_Renderer)(
5307         IInkCollector *This,
5308         IInkRenderer *NewInkRenderer);
5309 
5310     HRESULT (STDMETHODCALLTYPE *get_Ink)(
5311         IInkCollector *This,
5312         IInkDisp **Ink);
5313 
5314     HRESULT (STDMETHODCALLTYPE *putref_Ink)(
5315         IInkCollector *This,
5316         IInkDisp *NewInk);
5317 
5318     HRESULT (STDMETHODCALLTYPE *get_AutoRedraw)(
5319         IInkCollector *This,
5320         VARIANT_BOOL *AutoRedraw);
5321 
5322     HRESULT (STDMETHODCALLTYPE *put_AutoRedraw)(
5323         IInkCollector *This,
5324         VARIANT_BOOL AutoRedraw);
5325 
5326     HRESULT (STDMETHODCALLTYPE *get_CollectingInk)(
5327         IInkCollector *This,
5328         VARIANT_BOOL *Collecting);
5329 
5330     HRESULT (STDMETHODCALLTYPE *get_CollectionMode)(
5331         IInkCollector *This,
5332         InkCollectionMode *Mode);
5333 
5334     HRESULT (STDMETHODCALLTYPE *put_CollectionMode)(
5335         IInkCollector *This,
5336         InkCollectionMode Mode);
5337 
5338     HRESULT (STDMETHODCALLTYPE *get_DynamicRendering)(
5339         IInkCollector *This,
5340         VARIANT_BOOL *Enabled);
5341 
5342     HRESULT (STDMETHODCALLTYPE *put_DynamicRendering)(
5343         IInkCollector *This,
5344         VARIANT_BOOL Enabled);
5345 
5346     HRESULT (STDMETHODCALLTYPE *get_DesiredPacketDescription)(
5347         IInkCollector *This,
5348         VARIANT *PacketGuids);
5349 
5350     HRESULT (STDMETHODCALLTYPE *put_DesiredPacketDescription)(
5351         IInkCollector *This,
5352         VARIANT PacketGuids);
5353 
5354     HRESULT (STDMETHODCALLTYPE *get_MouseIcon)(
5355         IInkCollector *This,
5356         IPictureDisp **MouseIcon);
5357 
5358     HRESULT (STDMETHODCALLTYPE *put_MouseIcon)(
5359         IInkCollector *This,
5360         IPictureDisp *MouseIcon);
5361 
5362     HRESULT (STDMETHODCALLTYPE *putref_MouseIcon)(
5363         IInkCollector *This,
5364         IPictureDisp *MouseIcon);
5365 
5366     HRESULT (STDMETHODCALLTYPE *get_MousePointer)(
5367         IInkCollector *This,
5368         InkMousePointer *MousePointer);
5369 
5370     HRESULT (STDMETHODCALLTYPE *put_MousePointer)(
5371         IInkCollector *This,
5372         InkMousePointer MousePointer);
5373 
5374     HRESULT (STDMETHODCALLTYPE *get_Cursors)(
5375         IInkCollector *This,
5376         IInkCursors **Cursors);
5377 
5378     HRESULT (STDMETHODCALLTYPE *get_MarginX)(
5379         IInkCollector *This,
5380         LONG *MarginX);
5381 
5382     HRESULT (STDMETHODCALLTYPE *put_MarginX)(
5383         IInkCollector *This,
5384         LONG MarginX);
5385 
5386     HRESULT (STDMETHODCALLTYPE *get_MarginY)(
5387         IInkCollector *This,
5388         LONG *MarginY);
5389 
5390     HRESULT (STDMETHODCALLTYPE *put_MarginY)(
5391         IInkCollector *This,
5392         LONG MarginY);
5393 
5394     HRESULT (STDMETHODCALLTYPE *get_Tablet)(
5395         IInkCollector *This,
5396         IInkTablet **SingleTablet);
5397 
5398     HRESULT (STDMETHODCALLTYPE *get_SupportHighContrastInk)(
5399         IInkCollector *This,
5400         VARIANT_BOOL *Support);
5401 
5402     HRESULT (STDMETHODCALLTYPE *put_SupportHighContrastInk)(
5403         IInkCollector *This,
5404         VARIANT_BOOL Support);
5405 
5406     HRESULT (STDMETHODCALLTYPE *SetGestureStatus)(
5407         IInkCollector *This,
5408         InkApplicationGesture Gesture,
5409         VARIANT_BOOL Listen);
5410 
5411     HRESULT (STDMETHODCALLTYPE *GetGestureStatus)(
5412         IInkCollector *This,
5413         InkApplicationGesture Gesture,
5414         VARIANT_BOOL *Listening);
5415 
5416     HRESULT (STDMETHODCALLTYPE *GetWindowInputRectangle)(
5417         IInkCollector *This,
5418         IInkRectangle **WindowInputRectangle);
5419 
5420     HRESULT (STDMETHODCALLTYPE *SetWindowInputRectangle)(
5421         IInkCollector *This,
5422         IInkRectangle *WindowInputRectangle);
5423 
5424     HRESULT (STDMETHODCALLTYPE *SetAllTabletsMode)(
5425         IInkCollector *This,
5426         VARIANT_BOOL UseMouseForInput);
5427 
5428     HRESULT (STDMETHODCALLTYPE *SetSingleTabletIntegratedMode)(
5429         IInkCollector *This,
5430         IInkTablet *Tablet);
5431 
5432     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
5433         IInkCollector *This,
5434         InkCollectorEventInterest EventId,
5435         VARIANT_BOOL *Listen);
5436 
5437     HRESULT (STDMETHODCALLTYPE *SetEventInterest)(
5438         IInkCollector *This,
5439         InkCollectorEventInterest EventId,
5440         VARIANT_BOOL Listen);
5441 
5442     END_INTERFACE
5443 } IInkCollectorVtbl;
5444 
5445 interface IInkCollector {
5446     CONST_VTBL IInkCollectorVtbl* lpVtbl;
5447 };
5448 
5449 #ifdef COBJMACROS
5450 #ifndef WIDL_C_INLINE_WRAPPERS
5451 /*** IUnknown methods ***/
5452 #define IInkCollector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5453 #define IInkCollector_AddRef(This) (This)->lpVtbl->AddRef(This)
5454 #define IInkCollector_Release(This) (This)->lpVtbl->Release(This)
5455 /*** IDispatch methods ***/
5456 #define IInkCollector_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
5457 #define IInkCollector_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
5458 #define IInkCollector_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
5459 #define IInkCollector_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
5460 /*** IInkCollector methods ***/
5461 #define IInkCollector_get_hWnd(This,CurrentWindow) (This)->lpVtbl->get_hWnd(This,CurrentWindow)
5462 #define IInkCollector_put_hWnd(This,NewWindow) (This)->lpVtbl->put_hWnd(This,NewWindow)
5463 #define IInkCollector_get_Enabled(This,Collecting) (This)->lpVtbl->get_Enabled(This,Collecting)
5464 #define IInkCollector_put_Enabled(This,Collecting) (This)->lpVtbl->put_Enabled(This,Collecting)
5465 #define IInkCollector_get_DefaultDrawingAttributes(This,CurrentAttributes) (This)->lpVtbl->get_DefaultDrawingAttributes(This,CurrentAttributes)
5466 #define IInkCollector_putref_DefaultDrawingAttributes(This,NewAttributes) (This)->lpVtbl->putref_DefaultDrawingAttributes(This,NewAttributes)
5467 #define IInkCollector_get_Renderer(This,CurrentInkRenderer) (This)->lpVtbl->get_Renderer(This,CurrentInkRenderer)
5468 #define IInkCollector_putref_Renderer(This,NewInkRenderer) (This)->lpVtbl->putref_Renderer(This,NewInkRenderer)
5469 #define IInkCollector_get_Ink(This,Ink) (This)->lpVtbl->get_Ink(This,Ink)
5470 #define IInkCollector_putref_Ink(This,NewInk) (This)->lpVtbl->putref_Ink(This,NewInk)
5471 #define IInkCollector_get_AutoRedraw(This,AutoRedraw) (This)->lpVtbl->get_AutoRedraw(This,AutoRedraw)
5472 #define IInkCollector_put_AutoRedraw(This,AutoRedraw) (This)->lpVtbl->put_AutoRedraw(This,AutoRedraw)
5473 #define IInkCollector_get_CollectingInk(This,Collecting) (This)->lpVtbl->get_CollectingInk(This,Collecting)
5474 #define IInkCollector_get_CollectionMode(This,Mode) (This)->lpVtbl->get_CollectionMode(This,Mode)
5475 #define IInkCollector_put_CollectionMode(This,Mode) (This)->lpVtbl->put_CollectionMode(This,Mode)
5476 #define IInkCollector_get_DynamicRendering(This,Enabled) (This)->lpVtbl->get_DynamicRendering(This,Enabled)
5477 #define IInkCollector_put_DynamicRendering(This,Enabled) (This)->lpVtbl->put_DynamicRendering(This,Enabled)
5478 #define IInkCollector_get_DesiredPacketDescription(This,PacketGuids) (This)->lpVtbl->get_DesiredPacketDescription(This,PacketGuids)
5479 #define IInkCollector_put_DesiredPacketDescription(This,PacketGuids) (This)->lpVtbl->put_DesiredPacketDescription(This,PacketGuids)
5480 #define IInkCollector_get_MouseIcon(This,MouseIcon) (This)->lpVtbl->get_MouseIcon(This,MouseIcon)
5481 #define IInkCollector_put_MouseIcon(This,MouseIcon) (This)->lpVtbl->put_MouseIcon(This,MouseIcon)
5482 #define IInkCollector_putref_MouseIcon(This,MouseIcon) (This)->lpVtbl->putref_MouseIcon(This,MouseIcon)
5483 #define IInkCollector_get_MousePointer(This,MousePointer) (This)->lpVtbl->get_MousePointer(This,MousePointer)
5484 #define IInkCollector_put_MousePointer(This,MousePointer) (This)->lpVtbl->put_MousePointer(This,MousePointer)
5485 #define IInkCollector_get_Cursors(This,Cursors) (This)->lpVtbl->get_Cursors(This,Cursors)
5486 #define IInkCollector_get_MarginX(This,MarginX) (This)->lpVtbl->get_MarginX(This,MarginX)
5487 #define IInkCollector_put_MarginX(This,MarginX) (This)->lpVtbl->put_MarginX(This,MarginX)
5488 #define IInkCollector_get_MarginY(This,MarginY) (This)->lpVtbl->get_MarginY(This,MarginY)
5489 #define IInkCollector_put_MarginY(This,MarginY) (This)->lpVtbl->put_MarginY(This,MarginY)
5490 #define IInkCollector_get_Tablet(This,SingleTablet) (This)->lpVtbl->get_Tablet(This,SingleTablet)
5491 #define IInkCollector_get_SupportHighContrastInk(This,Support) (This)->lpVtbl->get_SupportHighContrastInk(This,Support)
5492 #define IInkCollector_put_SupportHighContrastInk(This,Support) (This)->lpVtbl->put_SupportHighContrastInk(This,Support)
5493 #define IInkCollector_SetGestureStatus(This,Gesture,Listen) (This)->lpVtbl->SetGestureStatus(This,Gesture,Listen)
5494 #define IInkCollector_GetGestureStatus(This,Gesture,Listening) (This)->lpVtbl->GetGestureStatus(This,Gesture,Listening)
5495 #define IInkCollector_GetWindowInputRectangle(This,WindowInputRectangle) (This)->lpVtbl->GetWindowInputRectangle(This,WindowInputRectangle)
5496 #define IInkCollector_SetWindowInputRectangle(This,WindowInputRectangle) (This)->lpVtbl->SetWindowInputRectangle(This,WindowInputRectangle)
5497 #define IInkCollector_SetAllTabletsMode(This,UseMouseForInput) (This)->lpVtbl->SetAllTabletsMode(This,UseMouseForInput)
5498 #define IInkCollector_SetSingleTabletIntegratedMode(This,Tablet) (This)->lpVtbl->SetSingleTabletIntegratedMode(This,Tablet)
5499 #define IInkCollector_GetEventInterest(This,EventId,Listen) (This)->lpVtbl->GetEventInterest(This,EventId,Listen)
5500 #define IInkCollector_SetEventInterest(This,EventId,Listen) (This)->lpVtbl->SetEventInterest(This,EventId,Listen)
5501 #else
5502 /*** IUnknown methods ***/
5503 static FORCEINLINE HRESULT IInkCollector_QueryInterface(IInkCollector* This,REFIID riid,void **ppvObject) {
5504     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5505 }
5506 static FORCEINLINE ULONG IInkCollector_AddRef(IInkCollector* This) {
5507     return This->lpVtbl->AddRef(This);
5508 }
5509 static FORCEINLINE ULONG IInkCollector_Release(IInkCollector* This) {
5510     return This->lpVtbl->Release(This);
5511 }
5512 /*** IDispatch methods ***/
5513 static FORCEINLINE HRESULT IInkCollector_GetTypeInfoCount(IInkCollector* This,UINT *pctinfo) {
5514     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5515 }
5516 static FORCEINLINE HRESULT IInkCollector_GetTypeInfo(IInkCollector* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5517     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5518 }
5519 static FORCEINLINE HRESULT IInkCollector_GetIDsOfNames(IInkCollector* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
5520     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
5521 }
5522 static FORCEINLINE HRESULT IInkCollector_Invoke(IInkCollector* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
5523     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
5524 }
5525 /*** IInkCollector methods ***/
5526 static FORCEINLINE HRESULT IInkCollector_get_hWnd(IInkCollector* This,LONG_PTR *CurrentWindow) {
5527     return This->lpVtbl->get_hWnd(This,CurrentWindow);
5528 }
5529 static FORCEINLINE HRESULT IInkCollector_put_hWnd(IInkCollector* This,LONG_PTR NewWindow) {
5530     return This->lpVtbl->put_hWnd(This,NewWindow);
5531 }
5532 static FORCEINLINE HRESULT IInkCollector_get_Enabled(IInkCollector* This,VARIANT_BOOL *Collecting) {
5533     return This->lpVtbl->get_Enabled(This,Collecting);
5534 }
5535 static FORCEINLINE HRESULT IInkCollector_put_Enabled(IInkCollector* This,VARIANT_BOOL Collecting) {
5536     return This->lpVtbl->put_Enabled(This,Collecting);
5537 }
5538 static FORCEINLINE HRESULT IInkCollector_get_DefaultDrawingAttributes(IInkCollector* This,IInkDrawingAttributes **CurrentAttributes) {
5539     return This->lpVtbl->get_DefaultDrawingAttributes(This,CurrentAttributes);
5540 }
5541 static FORCEINLINE HRESULT IInkCollector_putref_DefaultDrawingAttributes(IInkCollector* This,IInkDrawingAttributes *NewAttributes) {
5542     return This->lpVtbl->putref_DefaultDrawingAttributes(This,NewAttributes);
5543 }
5544 static FORCEINLINE HRESULT IInkCollector_get_Renderer(IInkCollector* This,IInkRenderer **CurrentInkRenderer) {
5545     return This->lpVtbl->get_Renderer(This,CurrentInkRenderer);
5546 }
5547 static FORCEINLINE HRESULT IInkCollector_putref_Renderer(IInkCollector* This,IInkRenderer *NewInkRenderer) {
5548     return This->lpVtbl->putref_Renderer(This,NewInkRenderer);
5549 }
5550 static FORCEINLINE HRESULT IInkCollector_get_Ink(IInkCollector* This,IInkDisp **Ink) {
5551     return This->lpVtbl->get_Ink(This,Ink);
5552 }
5553 static FORCEINLINE HRESULT IInkCollector_putref_Ink(IInkCollector* This,IInkDisp *NewInk) {
5554     return This->lpVtbl->putref_Ink(This,NewInk);
5555 }
5556 static FORCEINLINE HRESULT IInkCollector_get_AutoRedraw(IInkCollector* This,VARIANT_BOOL *AutoRedraw) {
5557     return This->lpVtbl->get_AutoRedraw(This,AutoRedraw);
5558 }
5559 static FORCEINLINE HRESULT IInkCollector_put_AutoRedraw(IInkCollector* This,VARIANT_BOOL AutoRedraw) {
5560     return This->lpVtbl->put_AutoRedraw(This,AutoRedraw);
5561 }
5562 static FORCEINLINE HRESULT IInkCollector_get_CollectingInk(IInkCollector* This,VARIANT_BOOL *Collecting) {
5563     return This->lpVtbl->get_CollectingInk(This,Collecting);
5564 }
5565 static FORCEINLINE HRESULT IInkCollector_get_CollectionMode(IInkCollector* This,InkCollectionMode *Mode) {
5566     return This->lpVtbl->get_CollectionMode(This,Mode);
5567 }
5568 static FORCEINLINE HRESULT IInkCollector_put_CollectionMode(IInkCollector* This,InkCollectionMode Mode) {
5569     return This->lpVtbl->put_CollectionMode(This,Mode);
5570 }
5571 static FORCEINLINE HRESULT IInkCollector_get_DynamicRendering(IInkCollector* This,VARIANT_BOOL *Enabled) {
5572     return This->lpVtbl->get_DynamicRendering(This,Enabled);
5573 }
5574 static FORCEINLINE HRESULT IInkCollector_put_DynamicRendering(IInkCollector* This,VARIANT_BOOL Enabled) {
5575     return This->lpVtbl->put_DynamicRendering(This,Enabled);
5576 }
5577 static FORCEINLINE HRESULT IInkCollector_get_DesiredPacketDescription(IInkCollector* This,VARIANT *PacketGuids) {
5578     return This->lpVtbl->get_DesiredPacketDescription(This,PacketGuids);
5579 }
5580 static FORCEINLINE HRESULT IInkCollector_put_DesiredPacketDescription(IInkCollector* This,VARIANT PacketGuids) {
5581     return This->lpVtbl->put_DesiredPacketDescription(This,PacketGuids);
5582 }
5583 static FORCEINLINE HRESULT IInkCollector_get_MouseIcon(IInkCollector* This,IPictureDisp **MouseIcon) {
5584     return This->lpVtbl->get_MouseIcon(This,MouseIcon);
5585 }
5586 static FORCEINLINE HRESULT IInkCollector_put_MouseIcon(IInkCollector* This,IPictureDisp *MouseIcon) {
5587     return This->lpVtbl->put_MouseIcon(This,MouseIcon);
5588 }
5589 static FORCEINLINE HRESULT IInkCollector_putref_MouseIcon(IInkCollector* This,IPictureDisp *MouseIcon) {
5590     return This->lpVtbl->putref_MouseIcon(This,MouseIcon);
5591 }
5592 static FORCEINLINE HRESULT IInkCollector_get_MousePointer(IInkCollector* This,InkMousePointer *MousePointer) {
5593     return This->lpVtbl->get_MousePointer(This,MousePointer);
5594 }
5595 static FORCEINLINE HRESULT IInkCollector_put_MousePointer(IInkCollector* This,InkMousePointer MousePointer) {
5596     return This->lpVtbl->put_MousePointer(This,MousePointer);
5597 }
5598 static FORCEINLINE HRESULT IInkCollector_get_Cursors(IInkCollector* This,IInkCursors **Cursors) {
5599     return This->lpVtbl->get_Cursors(This,Cursors);
5600 }
5601 static FORCEINLINE HRESULT IInkCollector_get_MarginX(IInkCollector* This,LONG *MarginX) {
5602     return This->lpVtbl->get_MarginX(This,MarginX);
5603 }
5604 static FORCEINLINE HRESULT IInkCollector_put_MarginX(IInkCollector* This,LONG MarginX) {
5605     return This->lpVtbl->put_MarginX(This,MarginX);
5606 }
5607 static FORCEINLINE HRESULT IInkCollector_get_MarginY(IInkCollector* This,LONG *MarginY) {
5608     return This->lpVtbl->get_MarginY(This,MarginY);
5609 }
5610 static FORCEINLINE HRESULT IInkCollector_put_MarginY(IInkCollector* This,LONG MarginY) {
5611     return This->lpVtbl->put_MarginY(This,MarginY);
5612 }
5613 static FORCEINLINE HRESULT IInkCollector_get_Tablet(IInkCollector* This,IInkTablet **SingleTablet) {
5614     return This->lpVtbl->get_Tablet(This,SingleTablet);
5615 }
5616 static FORCEINLINE HRESULT IInkCollector_get_SupportHighContrastInk(IInkCollector* This,VARIANT_BOOL *Support) {
5617     return This->lpVtbl->get_SupportHighContrastInk(This,Support);
5618 }
5619 static FORCEINLINE HRESULT IInkCollector_put_SupportHighContrastInk(IInkCollector* This,VARIANT_BOOL Support) {
5620     return This->lpVtbl->put_SupportHighContrastInk(This,Support);
5621 }
5622 static FORCEINLINE HRESULT IInkCollector_SetGestureStatus(IInkCollector* This,InkApplicationGesture Gesture,VARIANT_BOOL Listen) {
5623     return This->lpVtbl->SetGestureStatus(This,Gesture,Listen);
5624 }
5625 static FORCEINLINE HRESULT IInkCollector_GetGestureStatus(IInkCollector* This,InkApplicationGesture Gesture,VARIANT_BOOL *Listening) {
5626     return This->lpVtbl->GetGestureStatus(This,Gesture,Listening);
5627 }
5628 static FORCEINLINE HRESULT IInkCollector_GetWindowInputRectangle(IInkCollector* This,IInkRectangle **WindowInputRectangle) {
5629     return This->lpVtbl->GetWindowInputRectangle(This,WindowInputRectangle);
5630 }
5631 static FORCEINLINE HRESULT IInkCollector_SetWindowInputRectangle(IInkCollector* This,IInkRectangle *WindowInputRectangle) {
5632     return This->lpVtbl->SetWindowInputRectangle(This,WindowInputRectangle);
5633 }
5634 static FORCEINLINE HRESULT IInkCollector_SetAllTabletsMode(IInkCollector* This,VARIANT_BOOL UseMouseForInput) {
5635     return This->lpVtbl->SetAllTabletsMode(This,UseMouseForInput);
5636 }
5637 static FORCEINLINE HRESULT IInkCollector_SetSingleTabletIntegratedMode(IInkCollector* This,IInkTablet *Tablet) {
5638     return This->lpVtbl->SetSingleTabletIntegratedMode(This,Tablet);
5639 }
5640 static FORCEINLINE HRESULT IInkCollector_GetEventInterest(IInkCollector* This,InkCollectorEventInterest EventId,VARIANT_BOOL *Listen) {
5641     return This->lpVtbl->GetEventInterest(This,EventId,Listen);
5642 }
5643 static FORCEINLINE HRESULT IInkCollector_SetEventInterest(IInkCollector* This,InkCollectorEventInterest EventId,VARIANT_BOOL Listen) {
5644     return This->lpVtbl->SetEventInterest(This,EventId,Listen);
5645 }
5646 #endif
5647 #endif
5648 
5649 #endif
5650 
5651 
5652 #endif  /* __IInkCollector_INTERFACE_DEFINED__ */
5653 
5654 /*****************************************************************************
5655  * _IInkCollectorEvents dispinterface
5656  */
5657 #ifndef ___IInkCollectorEvents_DISPINTERFACE_DEFINED__
5658 #define ___IInkCollectorEvents_DISPINTERFACE_DEFINED__
5659 
5660 DEFINE_GUID(DIID__IInkCollectorEvents, 0x11a583f2, 0x712d, 0x4fea, 0xab,0xcf, 0xab,0x4a,0xf3,0x8e,0xa0,0x6b);
5661 #if defined(__cplusplus) && !defined(CINTERFACE)
5662 MIDL_INTERFACE("11a583f2-712d-4fea-abcf-ab4af38ea06b")
5663 _IInkCollectorEvents : public IDispatch
5664 {
5665 };
5666 #ifdef __CRT_UUID_DECL
5667 __CRT_UUID_DECL(_IInkCollectorEvents, 0x11a583f2, 0x712d, 0x4fea, 0xab,0xcf, 0xab,0x4a,0xf3,0x8e,0xa0,0x6b)
5668 #endif
5669 #else
5670 typedef struct _IInkCollectorEventsVtbl {
5671     BEGIN_INTERFACE
5672 
5673     /*** IUnknown methods ***/
5674     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5675         _IInkCollectorEvents *This,
5676         REFIID riid,
5677         void **ppvObject);
5678 
5679     ULONG (STDMETHODCALLTYPE *AddRef)(
5680         _IInkCollectorEvents *This);
5681 
5682     ULONG (STDMETHODCALLTYPE *Release)(
5683         _IInkCollectorEvents *This);
5684 
5685     /*** IDispatch methods ***/
5686     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
5687         _IInkCollectorEvents *This,
5688         UINT *pctinfo);
5689 
5690     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
5691         _IInkCollectorEvents *This,
5692         UINT iTInfo,
5693         LCID lcid,
5694         ITypeInfo **ppTInfo);
5695 
5696     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
5697         _IInkCollectorEvents *This,
5698         REFIID riid,
5699         LPOLESTR *rgszNames,
5700         UINT cNames,
5701         LCID lcid,
5702         DISPID *rgDispId);
5703 
5704     HRESULT (STDMETHODCALLTYPE *Invoke)(
5705         _IInkCollectorEvents *This,
5706         DISPID dispIdMember,
5707         REFIID riid,
5708         LCID lcid,
5709         WORD wFlags,
5710         DISPPARAMS *pDispParams,
5711         VARIANT *pVarResult,
5712         EXCEPINFO *pExcepInfo,
5713         UINT *puArgErr);
5714 
5715     END_INTERFACE
5716 } _IInkCollectorEventsVtbl;
5717 
5718 interface _IInkCollectorEvents {
5719     CONST_VTBL _IInkCollectorEventsVtbl* lpVtbl;
5720 };
5721 
5722 #ifdef COBJMACROS
5723 #ifndef WIDL_C_INLINE_WRAPPERS
5724 /*** IUnknown methods ***/
5725 #define _IInkCollectorEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5726 #define _IInkCollectorEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
5727 #define _IInkCollectorEvents_Release(This) (This)->lpVtbl->Release(This)
5728 /*** IDispatch methods ***/
5729 #define _IInkCollectorEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
5730 #define _IInkCollectorEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
5731 #define _IInkCollectorEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
5732 #define _IInkCollectorEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
5733 #else
5734 /*** IUnknown methods ***/
5735 static FORCEINLINE HRESULT _IInkCollectorEvents_QueryInterface(_IInkCollectorEvents* This,REFIID riid,void **ppvObject) {
5736     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5737 }
5738 static FORCEINLINE ULONG _IInkCollectorEvents_AddRef(_IInkCollectorEvents* This) {
5739     return This->lpVtbl->AddRef(This);
5740 }
5741 static FORCEINLINE ULONG _IInkCollectorEvents_Release(_IInkCollectorEvents* This) {
5742     return This->lpVtbl->Release(This);
5743 }
5744 /*** IDispatch methods ***/
5745 static FORCEINLINE HRESULT _IInkCollectorEvents_GetTypeInfoCount(_IInkCollectorEvents* This,UINT *pctinfo) {
5746     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5747 }
5748 static FORCEINLINE HRESULT _IInkCollectorEvents_GetTypeInfo(_IInkCollectorEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5749     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5750 }
5751 static FORCEINLINE HRESULT _IInkCollectorEvents_GetIDsOfNames(_IInkCollectorEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
5752     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
5753 }
5754 static FORCEINLINE HRESULT _IInkCollectorEvents_Invoke(_IInkCollectorEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
5755     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
5756 }
5757 #endif
5758 #endif
5759 
5760 #endif
5761 
5762 #endif  /* ___IInkCollectorEvents_DISPINTERFACE_DEFINED__ */
5763 
5764 /*****************************************************************************
5765  * InkCollector coclass
5766  */
5767 
5768 DEFINE_GUID(CLSID_InkCollector, 0x43fb1553, 0xad74, 0x4ee8, 0x88,0xe4, 0x3e,0x6d,0xaa,0xc9,0x15,0xdb);
5769 
5770 #ifdef __cplusplus
5771 class DECLSPEC_UUID("43fb1553-ad74-4ee8-88e4-3e6daac915db") InkCollector;
5772 #ifdef __CRT_UUID_DECL
5773 __CRT_UUID_DECL(InkCollector, 0x43fb1553, 0xad74, 0x4ee8, 0x88,0xe4, 0x3e,0x6d,0xaa,0xc9,0x15,0xdb)
5774 #endif
5775 #endif
5776 
5777 /* Begin additional prototypes for all interfaces */
5778 
5779 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
5780 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
5781 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
5782 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
5783 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
5784 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
5785 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
5786 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
5787 
5788 /* End additional prototypes */
5789 
5790 #ifdef __cplusplus
5791 }
5792 #endif
5793 
5794 #endif /* __msinkaut_h__ */
5795