master
   1/*** Autogenerated by WIDL 10.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__
  23typedef interface IInkExtendedProperty IInkExtendedProperty;
  24#ifdef __cplusplus
  25interface IInkExtendedProperty;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IInkExtendedProperties_FWD_DEFINED__
  30#define __IInkExtendedProperties_FWD_DEFINED__
  31typedef interface IInkExtendedProperties IInkExtendedProperties;
  32#ifdef __cplusplus
  33interface IInkExtendedProperties;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IInkDrawingAttributes_FWD_DEFINED__
  38#define __IInkDrawingAttributes_FWD_DEFINED__
  39typedef interface IInkDrawingAttributes IInkDrawingAttributes;
  40#ifdef __cplusplus
  41interface IInkDrawingAttributes;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IInkRectangle_FWD_DEFINED__
  46#define __IInkRectangle_FWD_DEFINED__
  47typedef interface IInkRectangle IInkRectangle;
  48#ifdef __cplusplus
  49interface IInkRectangle;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IInkTablet_FWD_DEFINED__
  54#define __IInkTablet_FWD_DEFINED__
  55typedef interface IInkTablet IInkTablet;
  56#ifdef __cplusplus
  57interface IInkTablet;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IInkCursorButton_FWD_DEFINED__
  62#define __IInkCursorButton_FWD_DEFINED__
  63typedef interface IInkCursorButton IInkCursorButton;
  64#ifdef __cplusplus
  65interface IInkCursorButton;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IInkCursorButtons_FWD_DEFINED__
  70#define __IInkCursorButtons_FWD_DEFINED__
  71typedef interface IInkCursorButtons IInkCursorButtons;
  72#ifdef __cplusplus
  73interface IInkCursorButtons;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IInkCursor_FWD_DEFINED__
  78#define __IInkCursor_FWD_DEFINED__
  79typedef interface IInkCursor IInkCursor;
  80#ifdef __cplusplus
  81interface IInkCursor;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IInkTransform_FWD_DEFINED__
  86#define __IInkTransform_FWD_DEFINED__
  87typedef interface IInkTransform IInkTransform;
  88#ifdef __cplusplus
  89interface IInkTransform;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IInkRecognitionAlternates_FWD_DEFINED__
  94#define __IInkRecognitionAlternates_FWD_DEFINED__
  95typedef interface IInkRecognitionAlternates IInkRecognitionAlternates;
  96#ifdef __cplusplus
  97interface IInkRecognitionAlternates;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IInkRecognitionAlternate_FWD_DEFINED__
 102#define __IInkRecognitionAlternate_FWD_DEFINED__
 103typedef interface IInkRecognitionAlternate IInkRecognitionAlternate;
 104#ifdef __cplusplus
 105interface IInkRecognitionAlternate;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __IInkRecognitionResult_FWD_DEFINED__
 110#define __IInkRecognitionResult_FWD_DEFINED__
 111typedef interface IInkRecognitionResult IInkRecognitionResult;
 112#ifdef __cplusplus
 113interface IInkRecognitionResult;
 114#endif /* __cplusplus */
 115#endif
 116
 117#ifndef __IInkStrokeDisp_FWD_DEFINED__
 118#define __IInkStrokeDisp_FWD_DEFINED__
 119typedef interface IInkStrokeDisp IInkStrokeDisp;
 120#ifdef __cplusplus
 121interface IInkStrokeDisp;
 122#endif /* __cplusplus */
 123#endif
 124
 125#ifndef __IInkCustomStrokes_FWD_DEFINED__
 126#define __IInkCustomStrokes_FWD_DEFINED__
 127typedef interface IInkCustomStrokes IInkCustomStrokes;
 128#ifdef __cplusplus
 129interface IInkCustomStrokes;
 130#endif /* __cplusplus */
 131#endif
 132
 133#ifndef __IInkDisp_FWD_DEFINED__
 134#define __IInkDisp_FWD_DEFINED__
 135typedef interface IInkDisp IInkDisp;
 136#ifdef __cplusplus
 137interface IInkDisp;
 138#endif /* __cplusplus */
 139#endif
 140
 141#ifndef __IInkStrokes_FWD_DEFINED__
 142#define __IInkStrokes_FWD_DEFINED__
 143typedef interface IInkStrokes IInkStrokes;
 144#ifdef __cplusplus
 145interface IInkStrokes;
 146#endif /* __cplusplus */
 147#endif
 148
 149#ifndef __IInkRenderer_FWD_DEFINED__
 150#define __IInkRenderer_FWD_DEFINED__
 151typedef interface IInkRenderer IInkRenderer;
 152#ifdef __cplusplus
 153interface IInkRenderer;
 154#endif /* __cplusplus */
 155#endif
 156
 157#ifndef __IInkCursors_FWD_DEFINED__
 158#define __IInkCursors_FWD_DEFINED__
 159typedef interface IInkCursors IInkCursors;
 160#ifdef __cplusplus
 161interface IInkCursors;
 162#endif /* __cplusplus */
 163#endif
 164
 165#ifndef __IInkCollector_FWD_DEFINED__
 166#define __IInkCollector_FWD_DEFINED__
 167typedef interface IInkCollector IInkCollector;
 168#ifdef __cplusplus
 169interface IInkCollector;
 170#endif /* __cplusplus */
 171#endif
 172
 173#ifndef ___IInkCollectorEvents_FWD_DEFINED__
 174#define ___IInkCollectorEvents_FWD_DEFINED__
 175typedef interface _IInkCollectorEvents _IInkCollectorEvents;
 176#ifdef __cplusplus
 177interface _IInkCollectorEvents;
 178#endif /* __cplusplus */
 179#endif
 180
 181#ifndef __InkCollector_FWD_DEFINED__
 182#define __InkCollector_FWD_DEFINED__
 183#ifdef __cplusplus
 184typedef class InkCollector InkCollector;
 185#else
 186typedef 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
 197extern "C" {
 198#endif
 199
 200typedef 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;
 218typedef enum InkPenTip {
 219    IPT_Ball = 0,
 220    IPT_Rectangle = 1
 221} InkPenTip;
 222typedef enum TabletHardwareCapabilities {
 223    THWC_Integrated = 0x1,
 224    THWC_CursorMustTouch = 0x2,
 225    THWC_HardProximity = 0x4,
 226    THWC_CursorsHavePhysicalIds = 0x8
 227} TabletHardwareCapabilities;
 228typedef 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;
 238typedef enum InkCursorButtonState {
 239    ICBS_Unavailable = 0,
 240    ICBS_Up = 1,
 241    ICBS_Down = 2
 242} InkCursorButtonState;
 243typedef enum InkRecognitionConfidence {
 244    IRC_Strong = 0,
 245    IRC_Intermediate = 1,
 246    IRC_Poor = 2
 247} InkRecognitionConfidence;
 248typedef enum InkBoundingBoxMode {
 249    IBBM_Default = 0,
 250    IBBM_NoCurveFit = 1,
 251    IBBM_CurveFit = 2,
 252    IBBM_PointsOnly = 3,
 253    IBBM_Union = 4
 254} InkBoundingBoxMode;
 255typedef enum InkExtractFlags {
 256    IEF_CopyFromOriginal = 0,
 257    IEF_RemoveFromOriginal = 1,
 258    IEF_Default = IEF_RemoveFromOriginal
 259} InkExtractFlags;
 260typedef enum InkPersistenceFormat {
 261    IPF_InkSerializedFormat = 0,
 262    IPF_Base64InkSerializedFormat = 1,
 263    IPF_GIF = 2,
 264    IPF_Base64GIF = 3
 265} InkPersistenceFormat;
 266typedef enum InkPersistenceCompressionMode {
 267    IPCM_Default = 0,
 268    IPCM_MaximumCompression = 1,
 269    IPCM_NoCompression = 2
 270} InkPersistenceCompressionMode;
 271typedef 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;
 283typedef 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;
 290typedef enum InkCollectionMode {
 291    ICM_InkOnly = 0,
 292    ICM_GestureOnly = 1,
 293    ICM_InkAndGesture = 2
 294} InkCollectionMode;
 295typedef 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;
 313typedef 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;
 359typedef 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;
 379typedef 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__
 424typedef interface IInkDisp IInkDisp;
 425#ifdef __cplusplus
 426interface IInkDisp;
 427#endif /* __cplusplus */
 428#endif
 429
 430#ifndef __IInkStrokes_FWD_DEFINED__
 431#define __IInkStrokes_FWD_DEFINED__
 432typedef interface IInkStrokes IInkStrokes;
 433#ifdef __cplusplus
 434interface IInkStrokes;
 435#endif /* __cplusplus */
 436#endif
 437
 438#ifndef __IInkRecognitionAlternate_FWD_DEFINED__
 439#define __IInkRecognitionAlternate_FWD_DEFINED__
 440typedef interface IInkRecognitionAlternate IInkRecognitionAlternate;
 441#ifdef __cplusplus
 442interface IInkRecognitionAlternate;
 443#endif /* __cplusplus */
 444#endif
 445
 446/*****************************************************************************
 447 * IInkExtendedProperty interface
 448 */
 449#ifndef __IInkExtendedProperty_INTERFACE_DEFINED__
 450#define __IInkExtendedProperty_INTERFACE_DEFINED__
 451
 452DEFINE_GUID(IID_IInkExtendedProperty, 0xdb489209, 0xb7c3, 0x411d, 0x90,0xf6, 0x15,0x48,0xcf,0xff,0x27,0x1e);
 453#if defined(__cplusplus) && !defined(CINTERFACE)
 454MIDL_INTERFACE("db489209-b7c3-411d-90f6-1548cfff271e")
 455IInkExtendedProperty : 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
 471typedef 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
 532interface 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 ***/
 553static inline HRESULT IInkExtendedProperty_QueryInterface(IInkExtendedProperty* This,REFIID riid,void **ppvObject) {
 554    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 555}
 556static inline ULONG IInkExtendedProperty_AddRef(IInkExtendedProperty* This) {
 557    return This->lpVtbl->AddRef(This);
 558}
 559static inline ULONG IInkExtendedProperty_Release(IInkExtendedProperty* This) {
 560    return This->lpVtbl->Release(This);
 561}
 562/*** IDispatch methods ***/
 563static inline HRESULT IInkExtendedProperty_GetTypeInfoCount(IInkExtendedProperty* This,UINT *pctinfo) {
 564    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 565}
 566static inline HRESULT IInkExtendedProperty_GetTypeInfo(IInkExtendedProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 567    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 568}
 569static inline 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}
 572static inline 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 ***/
 576static inline HRESULT IInkExtendedProperty_get_Guid(IInkExtendedProperty* This,BSTR *Guid) {
 577    return This->lpVtbl->get_Guid(This,Guid);
 578}
 579static inline HRESULT IInkExtendedProperty_get_Data(IInkExtendedProperty* This,VARIANT *Data) {
 580    return This->lpVtbl->get_Data(This,Data);
 581}
 582static inline 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
 599DEFINE_GUID(IID_IInkExtendedProperties, 0x89f2a8be, 0x95a9, 0x4530, 0x8b,0x8f, 0x88,0xe9,0x71,0xe3,0xe2,0x5f);
 600#if defined(__cplusplus) && !defined(CINTERFACE)
 601MIDL_INTERFACE("89f2a8be-95a9-4530-8b8f-88e971e3e25f")
 602IInkExtendedProperties : 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
 634typedef 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
 714interface 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 ***/
 739static inline HRESULT IInkExtendedProperties_QueryInterface(IInkExtendedProperties* This,REFIID riid,void **ppvObject) {
 740    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 741}
 742static inline ULONG IInkExtendedProperties_AddRef(IInkExtendedProperties* This) {
 743    return This->lpVtbl->AddRef(This);
 744}
 745static inline ULONG IInkExtendedProperties_Release(IInkExtendedProperties* This) {
 746    return This->lpVtbl->Release(This);
 747}
 748/*** IDispatch methods ***/
 749static inline HRESULT IInkExtendedProperties_GetTypeInfoCount(IInkExtendedProperties* This,UINT *pctinfo) {
 750    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
 751}
 752static inline HRESULT IInkExtendedProperties_GetTypeInfo(IInkExtendedProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
 753    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
 754}
 755static inline 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}
 758static inline 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 ***/
 762static inline HRESULT IInkExtendedProperties_get_Count(IInkExtendedProperties* This,LONG *Count) {
 763    return This->lpVtbl->get_Count(This,Count);
 764}
 765static inline HRESULT IInkExtendedProperties_get__NewEnum(IInkExtendedProperties* This,IUnknown **_NewEnum) {
 766    return This->lpVtbl->get__NewEnum(This,_NewEnum);
 767}
 768static inline HRESULT IInkExtendedProperties_Item(IInkExtendedProperties* This,VARIANT Identifier,IInkExtendedProperty **Item) {
 769    return This->lpVtbl->Item(This,Identifier,Item);
 770}
 771static inline HRESULT IInkExtendedProperties_Add(IInkExtendedProperties* This,BSTR Guid,VARIANT Data,IInkExtendedProperty **InkExtendedProperty) {
 772    return This->lpVtbl->Add(This,Guid,Data,InkExtendedProperty);
 773}
 774static inline HRESULT IInkExtendedProperties_Remove(IInkExtendedProperties* This,VARIANT Identifier) {
 775    return This->lpVtbl->Remove(This,Identifier);
 776}
 777static inline HRESULT IInkExtendedProperties_Clear(IInkExtendedProperties* This) {
 778    return This->lpVtbl->Clear(This);
 779}
 780static inline 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
 797DEFINE_GUID(IID_IInkDrawingAttributes, 0xbf519b75, 0x0a15, 0x4623, 0xad,0xc9, 0xc0,0x0d,0x43,0x6a,0x80,0x92);
 798#if defined(__cplusplus) && !defined(CINTERFACE)
 799MIDL_INTERFACE("bf519b75-0a15-4623-adc9-c00d436a8092")
 800IInkDrawingAttributes : 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
 867typedef 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
 996interface 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 ***/
1034static inline HRESULT IInkDrawingAttributes_QueryInterface(IInkDrawingAttributes* This,REFIID riid,void **ppvObject) {
1035    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1036}
1037static inline ULONG IInkDrawingAttributes_AddRef(IInkDrawingAttributes* This) {
1038    return This->lpVtbl->AddRef(This);
1039}
1040static inline ULONG IInkDrawingAttributes_Release(IInkDrawingAttributes* This) {
1041    return This->lpVtbl->Release(This);
1042}
1043/*** IDispatch methods ***/
1044static inline HRESULT IInkDrawingAttributes_GetTypeInfoCount(IInkDrawingAttributes* This,UINT *pctinfo) {
1045    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1046}
1047static inline HRESULT IInkDrawingAttributes_GetTypeInfo(IInkDrawingAttributes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1048    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1049}
1050static inline 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}
1053static inline 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 ***/
1057static inline HRESULT IInkDrawingAttributes_get_Color(IInkDrawingAttributes* This,LONG *CurrentColor) {
1058    return This->lpVtbl->get_Color(This,CurrentColor);
1059}
1060static inline HRESULT IInkDrawingAttributes_put_Color(IInkDrawingAttributes* This,LONG NewColor) {
1061    return This->lpVtbl->put_Color(This,NewColor);
1062}
1063static inline HRESULT IInkDrawingAttributes_get_Width(IInkDrawingAttributes* This,float *CurrentWidth) {
1064    return This->lpVtbl->get_Width(This,CurrentWidth);
1065}
1066static inline HRESULT IInkDrawingAttributes_put_Width(IInkDrawingAttributes* This,float NewWidth) {
1067    return This->lpVtbl->put_Width(This,NewWidth);
1068}
1069static inline HRESULT IInkDrawingAttributes_get_Height(IInkDrawingAttributes* This,float *CurrentHeight) {
1070    return This->lpVtbl->get_Height(This,CurrentHeight);
1071}
1072static inline HRESULT IInkDrawingAttributes_put_Height(IInkDrawingAttributes* This,float NewHeight) {
1073    return This->lpVtbl->put_Height(This,NewHeight);
1074}
1075static inline HRESULT IInkDrawingAttributes_get_FitToCurve(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1076    return This->lpVtbl->get_FitToCurve(This,Flag);
1077}
1078static inline HRESULT IInkDrawingAttributes_put_FitToCurve(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1079    return This->lpVtbl->put_FitToCurve(This,Flag);
1080}
1081static inline HRESULT IInkDrawingAttributes_get_IgnorePressure(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1082    return This->lpVtbl->get_IgnorePressure(This,Flag);
1083}
1084static inline HRESULT IInkDrawingAttributes_put_IgnorePressure(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1085    return This->lpVtbl->put_IgnorePressure(This,Flag);
1086}
1087static inline HRESULT IInkDrawingAttributes_get_AntiAliased(IInkDrawingAttributes* This,VARIANT_BOOL *Flag) {
1088    return This->lpVtbl->get_AntiAliased(This,Flag);
1089}
1090static inline HRESULT IInkDrawingAttributes_put_AntiAliased(IInkDrawingAttributes* This,VARIANT_BOOL Flag) {
1091    return This->lpVtbl->put_AntiAliased(This,Flag);
1092}
1093static inline HRESULT IInkDrawingAttributes_get_Transparency(IInkDrawingAttributes* This,LONG *CurrentTransparency) {
1094    return This->lpVtbl->get_Transparency(This,CurrentTransparency);
1095}
1096static inline HRESULT IInkDrawingAttributes_put_Transparency(IInkDrawingAttributes* This,LONG NewTransparency) {
1097    return This->lpVtbl->put_Transparency(This,NewTransparency);
1098}
1099static inline HRESULT IInkDrawingAttributes_get_RasterOperation(IInkDrawingAttributes* This,InkRasterOperation *CurrentRasterOperation) {
1100    return This->lpVtbl->get_RasterOperation(This,CurrentRasterOperation);
1101}
1102static inline HRESULT IInkDrawingAttributes_put_RasterOperation(IInkDrawingAttributes* This,InkRasterOperation NewRasterOperation) {
1103    return This->lpVtbl->put_RasterOperation(This,NewRasterOperation);
1104}
1105static inline HRESULT IInkDrawingAttributes_get_PenTip(IInkDrawingAttributes* This,InkPenTip *CurrentPenTip) {
1106    return This->lpVtbl->get_PenTip(This,CurrentPenTip);
1107}
1108static inline HRESULT IInkDrawingAttributes_put_PenTip(IInkDrawingAttributes* This,InkPenTip NewPenTip) {
1109    return This->lpVtbl->put_PenTip(This,NewPenTip);
1110}
1111static inline HRESULT IInkDrawingAttributes_get_ExtendedProperties(IInkDrawingAttributes* This,IInkExtendedProperties **Properties) {
1112    return This->lpVtbl->get_ExtendedProperties(This,Properties);
1113}
1114static inline 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
1131DEFINE_GUID(IID_IInkRectangle, 0x9794ff82, 0x6071, 0x4717, 0x8a,0x8b, 0x6a,0xc7,0xc6,0x4a,0x68,0x6e);
1132#if defined(__cplusplus) && !defined(CINTERFACE)
1133MIDL_INTERFACE("9794ff82-6071-4717-8a8b-6ac7c64a686e")
1134IInkRectangle : 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
1183typedef 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
1286interface 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 ***/
1316static inline HRESULT IInkRectangle_QueryInterface(IInkRectangle* This,REFIID riid,void **ppvObject) {
1317    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1318}
1319static inline ULONG IInkRectangle_AddRef(IInkRectangle* This) {
1320    return This->lpVtbl->AddRef(This);
1321}
1322static inline ULONG IInkRectangle_Release(IInkRectangle* This) {
1323    return This->lpVtbl->Release(This);
1324}
1325/*** IDispatch methods ***/
1326static inline HRESULT IInkRectangle_GetTypeInfoCount(IInkRectangle* This,UINT *pctinfo) {
1327    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1328}
1329static inline HRESULT IInkRectangle_GetTypeInfo(IInkRectangle* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1330    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1331}
1332static inline 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}
1335static inline 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 ***/
1339static inline HRESULT IInkRectangle_get_Top(IInkRectangle* This,LONG *Units) {
1340    return This->lpVtbl->get_Top(This,Units);
1341}
1342static inline HRESULT IInkRectangle_put_Top(IInkRectangle* This,LONG Units) {
1343    return This->lpVtbl->put_Top(This,Units);
1344}
1345static inline HRESULT IInkRectangle_get_Left(IInkRectangle* This,LONG *Units) {
1346    return This->lpVtbl->get_Left(This,Units);
1347}
1348static inline HRESULT IInkRectangle_put_Left(IInkRectangle* This,LONG Units) {
1349    return This->lpVtbl->put_Left(This,Units);
1350}
1351static inline HRESULT IInkRectangle_get_Bottom(IInkRectangle* This,LONG *Units) {
1352    return This->lpVtbl->get_Bottom(This,Units);
1353}
1354static inline HRESULT IInkRectangle_put_Bottom(IInkRectangle* This,LONG Units) {
1355    return This->lpVtbl->put_Bottom(This,Units);
1356}
1357static inline HRESULT IInkRectangle_get_Right(IInkRectangle* This,LONG *Units) {
1358    return This->lpVtbl->get_Right(This,Units);
1359}
1360static inline HRESULT IInkRectangle_put_Right(IInkRectangle* This,LONG Units) {
1361    return This->lpVtbl->put_Right(This,Units);
1362}
1363static inline HRESULT IInkRectangle_get_Data(IInkRectangle* This,RECT *Rect) {
1364    return This->lpVtbl->get_Data(This,Rect);
1365}
1366static inline HRESULT IInkRectangle_put_Data(IInkRectangle* This,RECT Rect) {
1367    return This->lpVtbl->put_Data(This,Rect);
1368}
1369static inline HRESULT IInkRectangle_GetRectangle(IInkRectangle* This,LONG *Top,LONG *Left,LONG *Bottom,LONG *Right) {
1370    return This->lpVtbl->GetRectangle(This,Top,Left,Bottom,Right);
1371}
1372static inline 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
1389DEFINE_GUID(IID_IInkTablet, 0x2de25eaa, 0x6ef8, 0x42d5, 0xae,0xe9, 0x18,0x5b,0xc8,0x1b,0x91,0x2d);
1390#if defined(__cplusplus) && !defined(CINTERFACE)
1391MIDL_INTERFACE("2de25eaa-6ef8-42d5-aee9-185bc81b912d")
1392IInkTablet : 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
1422typedef 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
1500interface 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 ***/
1524static inline HRESULT IInkTablet_QueryInterface(IInkTablet* This,REFIID riid,void **ppvObject) {
1525    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1526}
1527static inline ULONG IInkTablet_AddRef(IInkTablet* This) {
1528    return This->lpVtbl->AddRef(This);
1529}
1530static inline ULONG IInkTablet_Release(IInkTablet* This) {
1531    return This->lpVtbl->Release(This);
1532}
1533/*** IDispatch methods ***/
1534static inline HRESULT IInkTablet_GetTypeInfoCount(IInkTablet* This,UINT *pctinfo) {
1535    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1536}
1537static inline HRESULT IInkTablet_GetTypeInfo(IInkTablet* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1538    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1539}
1540static inline 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}
1543static inline 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 ***/
1547static inline HRESULT IInkTablet_get_Name(IInkTablet* This,BSTR *Name) {
1548    return This->lpVtbl->get_Name(This,Name);
1549}
1550static inline HRESULT IInkTablet_get_PlugAndPlayId(IInkTablet* This,BSTR *Id) {
1551    return This->lpVtbl->get_PlugAndPlayId(This,Id);
1552}
1553static inline HRESULT IInkTablet_get_MaximumInputRectangle(IInkTablet* This,IInkRectangle **Rectangle) {
1554    return This->lpVtbl->get_MaximumInputRectangle(This,Rectangle);
1555}
1556static inline HRESULT IInkTablet_get_HardwareCapabilities(IInkTablet* This,TabletHardwareCapabilities *Capabilities) {
1557    return This->lpVtbl->get_HardwareCapabilities(This,Capabilities);
1558}
1559static inline HRESULT IInkTablet_IsPacketPropertySupported(IInkTablet* This,BSTR packetPropertyName,VARIANT_BOOL *Supported) {
1560    return This->lpVtbl->IsPacketPropertySupported(This,packetPropertyName,Supported);
1561}
1562static inline 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
1579DEFINE_GUID(IID_IInkCursorButton, 0x85ef9417, 0x1d59, 0x49b2, 0xa1,0x3c, 0x70,0x2c,0x85,0x43,0x08,0x94);
1580#if defined(__cplusplus) && !defined(CINTERFACE)
1581MIDL_INTERFACE("85ef9417-1d59-49b2-a13c-702c85430894")
1582IInkCursorButton : 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
1598typedef 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
1659interface 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 ***/
1680static inline HRESULT IInkCursorButton_QueryInterface(IInkCursorButton* This,REFIID riid,void **ppvObject) {
1681    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1682}
1683static inline ULONG IInkCursorButton_AddRef(IInkCursorButton* This) {
1684    return This->lpVtbl->AddRef(This);
1685}
1686static inline ULONG IInkCursorButton_Release(IInkCursorButton* This) {
1687    return This->lpVtbl->Release(This);
1688}
1689/*** IDispatch methods ***/
1690static inline HRESULT IInkCursorButton_GetTypeInfoCount(IInkCursorButton* This,UINT *pctinfo) {
1691    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1692}
1693static inline HRESULT IInkCursorButton_GetTypeInfo(IInkCursorButton* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1694    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1695}
1696static inline 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}
1699static inline 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 ***/
1703static inline HRESULT IInkCursorButton_get_Name(IInkCursorButton* This,BSTR *Name) {
1704    return This->lpVtbl->get_Name(This,Name);
1705}
1706static inline HRESULT IInkCursorButton_get_Id(IInkCursorButton* This,BSTR *Id) {
1707    return This->lpVtbl->get_Id(This,Id);
1708}
1709static inline 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
1726DEFINE_GUID(IID_IInkCursorButtons, 0x3671cc40, 0xb624, 0x4671, 0x9f,0xa0, 0xdb,0x11,0x9d,0x95,0x2d,0x54);
1727#if defined(__cplusplus) && !defined(CINTERFACE)
1728MIDL_INTERFACE("3671cc40-b624-4671-9fa0-db119d952d54")
1729IInkCursorButtons : 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
1746typedef 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
1808interface 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 ***/
1829static inline HRESULT IInkCursorButtons_QueryInterface(IInkCursorButtons* This,REFIID riid,void **ppvObject) {
1830    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1831}
1832static inline ULONG IInkCursorButtons_AddRef(IInkCursorButtons* This) {
1833    return This->lpVtbl->AddRef(This);
1834}
1835static inline ULONG IInkCursorButtons_Release(IInkCursorButtons* This) {
1836    return This->lpVtbl->Release(This);
1837}
1838/*** IDispatch methods ***/
1839static inline HRESULT IInkCursorButtons_GetTypeInfoCount(IInkCursorButtons* This,UINT *pctinfo) {
1840    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1841}
1842static inline HRESULT IInkCursorButtons_GetTypeInfo(IInkCursorButtons* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1843    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1844}
1845static inline 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}
1848static inline 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 ***/
1852static inline HRESULT IInkCursorButtons_get_Count(IInkCursorButtons* This,LONG *Count) {
1853    return This->lpVtbl->get_Count(This,Count);
1854}
1855static inline HRESULT IInkCursorButtons_get__NewEnum(IInkCursorButtons* This,IUnknown **_NewEnum) {
1856    return This->lpVtbl->get__NewEnum(This,_NewEnum);
1857}
1858static inline 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
1875DEFINE_GUID(IID_IInkCursor, 0xad30c630, 0x40c5, 0x4350, 0x84,0x05, 0x9c,0x71,0x01,0x2f,0xc5,0x58);
1876#if defined(__cplusplus) && !defined(CINTERFACE)
1877MIDL_INTERFACE("ad30c630-40c5-4350-8405-9c71012fc558")
1878IInkCursor : 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
1906typedef 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
1983interface 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 ***/
2008static inline HRESULT IInkCursor_QueryInterface(IInkCursor* This,REFIID riid,void **ppvObject) {
2009    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2010}
2011static inline ULONG IInkCursor_AddRef(IInkCursor* This) {
2012    return This->lpVtbl->AddRef(This);
2013}
2014static inline ULONG IInkCursor_Release(IInkCursor* This) {
2015    return This->lpVtbl->Release(This);
2016}
2017/*** IDispatch methods ***/
2018static inline HRESULT IInkCursor_GetTypeInfoCount(IInkCursor* This,UINT *pctinfo) {
2019    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2020}
2021static inline HRESULT IInkCursor_GetTypeInfo(IInkCursor* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2022    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2023}
2024static inline 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}
2027static inline 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 ***/
2031static inline HRESULT IInkCursor_get_Name(IInkCursor* This,BSTR *Name) {
2032    return This->lpVtbl->get_Name(This,Name);
2033}
2034static inline HRESULT IInkCursor_get_Id(IInkCursor* This,LONG *Id) {
2035    return This->lpVtbl->get_Id(This,Id);
2036}
2037static inline HRESULT IInkCursor_get_Inverted(IInkCursor* This,VARIANT_BOOL *Status) {
2038    return This->lpVtbl->get_Inverted(This,Status);
2039}
2040static inline HRESULT IInkCursor_get_DrawingAttributes(IInkCursor* This,IInkDrawingAttributes **Attributes) {
2041    return This->lpVtbl->get_DrawingAttributes(This,Attributes);
2042}
2043static inline HRESULT IInkCursor_putref_DrawingAttributes(IInkCursor* This,IInkDrawingAttributes *Attributes) {
2044    return This->lpVtbl->putref_DrawingAttributes(This,Attributes);
2045}
2046static inline HRESULT IInkCursor_get_Tablet(IInkCursor* This,IInkTablet **Tablet) {
2047    return This->lpVtbl->get_Tablet(This,Tablet);
2048}
2049static inline 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
2066DEFINE_GUID(IID_IInkTransform, 0x615f1d43, 0x8703, 0x4565, 0x88,0xe2, 0x82,0x01,0xd2,0xec,0xd7,0xb7);
2067#if defined(__cplusplus) && !defined(CINTERFACE)
2068MIDL_INTERFACE("615f1d43-8703-4565-88e2-8201d2ecd7b7")
2069IInkTransform : 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
2158typedef 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
2310interface 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 ***/
2350static inline HRESULT IInkTransform_QueryInterface(IInkTransform* This,REFIID riid,void **ppvObject) {
2351    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2352}
2353static inline ULONG IInkTransform_AddRef(IInkTransform* This) {
2354    return This->lpVtbl->AddRef(This);
2355}
2356static inline ULONG IInkTransform_Release(IInkTransform* This) {
2357    return This->lpVtbl->Release(This);
2358}
2359/*** IDispatch methods ***/
2360static inline HRESULT IInkTransform_GetTypeInfoCount(IInkTransform* This,UINT *pctinfo) {
2361    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2362}
2363static inline HRESULT IInkTransform_GetTypeInfo(IInkTransform* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2364    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2365}
2366static inline 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}
2369static inline 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 ***/
2373static inline HRESULT IInkTransform_Reset(IInkTransform* This) {
2374    return This->lpVtbl->Reset(This);
2375}
2376static inline HRESULT IInkTransform_Translate(IInkTransform* This,float HorizontalComponent,float VerticalComponent) {
2377    return This->lpVtbl->Translate(This,HorizontalComponent,VerticalComponent);
2378}
2379static inline HRESULT IInkTransform_Rotate(IInkTransform* This,float Degrees,float x,float y) {
2380    return This->lpVtbl->Rotate(This,Degrees,x,y);
2381}
2382static inline HRESULT IInkTransform_Reflect(IInkTransform* This,VARIANT_BOOL Horizontally,VARIANT_BOOL Vertically) {
2383    return This->lpVtbl->Reflect(This,Horizontally,Vertically);
2384}
2385static inline HRESULT IInkTransform_Shear(IInkTransform* This,float HorizontalComponent,float VerticalComponent) {
2386    return This->lpVtbl->Shear(This,HorizontalComponent,VerticalComponent);
2387}
2388static inline HRESULT IInkTransform_ScaleTransform(IInkTransform* This,float HorizontalMultiplier,float VerticalMultiplier) {
2389    return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier);
2390}
2391static inline 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}
2394static inline 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}
2397static inline HRESULT IInkTransform_get_eM11(IInkTransform* This,float *Value) {
2398    return This->lpVtbl->get_eM11(This,Value);
2399}
2400static inline HRESULT IInkTransform_put_eM11(IInkTransform* This,float Value) {
2401    return This->lpVtbl->put_eM11(This,Value);
2402}
2403static inline HRESULT IInkTransform_get_eM12(IInkTransform* This,float *Value) {
2404    return This->lpVtbl->get_eM12(This,Value);
2405}
2406static inline HRESULT IInkTransform_put_eM12(IInkTransform* This,float Value) {
2407    return This->lpVtbl->put_eM12(This,Value);
2408}
2409static inline HRESULT IInkTransform_get_eM21(IInkTransform* This,float *Value) {
2410    return This->lpVtbl->get_eM21(This,Value);
2411}
2412static inline HRESULT IInkTransform_put_eM21(IInkTransform* This,float Value) {
2413    return This->lpVtbl->put_eM21(This,Value);
2414}
2415static inline HRESULT IInkTransform_get_eM22(IInkTransform* This,float *Value) {
2416    return This->lpVtbl->get_eM22(This,Value);
2417}
2418static inline HRESULT IInkTransform_put_eM22(IInkTransform* This,float Value) {
2419    return This->lpVtbl->put_eM22(This,Value);
2420}
2421static inline HRESULT IInkTransform_get_eDx(IInkTransform* This,float *Value) {
2422    return This->lpVtbl->get_eDx(This,Value);
2423}
2424static inline HRESULT IInkTransform_put_eDx(IInkTransform* This,float Value) {
2425    return This->lpVtbl->put_eDx(This,Value);
2426}
2427static inline HRESULT IInkTransform_get_eDy(IInkTransform* This,float *Value) {
2428    return This->lpVtbl->get_eDy(This,Value);
2429}
2430static inline HRESULT IInkTransform_put_eDy(IInkTransform* This,float Value) {
2431    return This->lpVtbl->put_eDy(This,Value);
2432}
2433static inline HRESULT IInkTransform_get_Data(IInkTransform* This,XFORM *XForm) {
2434    return This->lpVtbl->get_Data(This,XForm);
2435}
2436static inline 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
2453DEFINE_GUID(IID_IInkRecognitionAlternates, 0x286a167f, 0x9f19, 0x4c61, 0x9d,0x53, 0x4f,0x07,0xbe,0x62,0x2b,0x84);
2454#if defined(__cplusplus) && !defined(CINTERFACE)
2455MIDL_INTERFACE("286a167f-9f19-4c61-9d53-4f07be622b84")
2456IInkRecognitionAlternates : 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
2476typedef 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
2542interface 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 ***/
2564static inline HRESULT IInkRecognitionAlternates_QueryInterface(IInkRecognitionAlternates* This,REFIID riid,void **ppvObject) {
2565    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2566}
2567static inline ULONG IInkRecognitionAlternates_AddRef(IInkRecognitionAlternates* This) {
2568    return This->lpVtbl->AddRef(This);
2569}
2570static inline ULONG IInkRecognitionAlternates_Release(IInkRecognitionAlternates* This) {
2571    return This->lpVtbl->Release(This);
2572}
2573/*** IDispatch methods ***/
2574static inline HRESULT IInkRecognitionAlternates_GetTypeInfoCount(IInkRecognitionAlternates* This,UINT *pctinfo) {
2575    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2576}
2577static inline HRESULT IInkRecognitionAlternates_GetTypeInfo(IInkRecognitionAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2578    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2579}
2580static inline 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}
2583static inline 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 ***/
2587static inline HRESULT IInkRecognitionAlternates_get_Count(IInkRecognitionAlternates* This,LONG *Count) {
2588    return This->lpVtbl->get_Count(This,Count);
2589}
2590static inline HRESULT IInkRecognitionAlternates_get__NewEnum(IInkRecognitionAlternates* This,IUnknown **_NewEnum) {
2591    return This->lpVtbl->get__NewEnum(This,_NewEnum);
2592}
2593static inline HRESULT IInkRecognitionAlternates_get_Strokes(IInkRecognitionAlternates* This,IInkStrokes **Strokes) {
2594    return This->lpVtbl->get_Strokes(This,Strokes);
2595}
2596static inline 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
2613DEFINE_GUID(IID_IInkRecognitionAlternate, 0xb7e660ad, 0x77e4, 0x429b, 0xad,0xda, 0x87,0x37,0x80,0xd1,0xfc,0x4a);
2614#if defined(__cplusplus) && !defined(CINTERFACE)
2615MIDL_INTERFACE("b7e660ad-77e4-429b-adda-873780d1fc4a")
2616IInkRecognitionAlternate : 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
2675typedef 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
2791interface 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 ***/
2824static inline HRESULT IInkRecognitionAlternate_QueryInterface(IInkRecognitionAlternate* This,REFIID riid,void **ppvObject) {
2825    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2826}
2827static inline ULONG IInkRecognitionAlternate_AddRef(IInkRecognitionAlternate* This) {
2828    return This->lpVtbl->AddRef(This);
2829}
2830static inline ULONG IInkRecognitionAlternate_Release(IInkRecognitionAlternate* This) {
2831    return This->lpVtbl->Release(This);
2832}
2833/*** IDispatch methods ***/
2834static inline HRESULT IInkRecognitionAlternate_GetTypeInfoCount(IInkRecognitionAlternate* This,UINT *pctinfo) {
2835    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2836}
2837static inline HRESULT IInkRecognitionAlternate_GetTypeInfo(IInkRecognitionAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2838    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2839}
2840static inline 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}
2843static inline 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 ***/
2847static inline HRESULT IInkRecognitionAlternate_get_String(IInkRecognitionAlternate* This,BSTR *RecoString) {
2848    return This->lpVtbl->get_String(This,RecoString);
2849}
2850static inline HRESULT IInkRecognitionAlternate_get_Confidence(IInkRecognitionAlternate* This,InkRecognitionConfidence *Confidence) {
2851    return This->lpVtbl->get_Confidence(This,Confidence);
2852}
2853static inline HRESULT IInkRecognitionAlternate_get_Baseline(IInkRecognitionAlternate* This,VARIANT *Baseline) {
2854    return This->lpVtbl->get_Baseline(This,Baseline);
2855}
2856static inline HRESULT IInkRecognitionAlternate_get_Midline(IInkRecognitionAlternate* This,VARIANT *Midline) {
2857    return This->lpVtbl->get_Midline(This,Midline);
2858}
2859static inline HRESULT IInkRecognitionAlternate_get_Ascender(IInkRecognitionAlternate* This,VARIANT *Ascender) {
2860    return This->lpVtbl->get_Ascender(This,Ascender);
2861}
2862static inline HRESULT IInkRecognitionAlternate_get_Descender(IInkRecognitionAlternate* This,VARIANT *Descender) {
2863    return This->lpVtbl->get_Descender(This,Descender);
2864}
2865static inline HRESULT IInkRecognitionAlternate_get_LineNumber(IInkRecognitionAlternate* This,LONG *LineNumber) {
2866    return This->lpVtbl->get_LineNumber(This,LineNumber);
2867}
2868static inline HRESULT IInkRecognitionAlternate_get_Strokes(IInkRecognitionAlternate* This,IInkStrokes **Strokes) {
2869    return This->lpVtbl->get_Strokes(This,Strokes);
2870}
2871static inline HRESULT IInkRecognitionAlternate_get_LineAlternates(IInkRecognitionAlternate* This,IInkRecognitionAlternates **LineAlternates) {
2872    return This->lpVtbl->get_LineAlternates(This,LineAlternates);
2873}
2874static inline HRESULT IInkRecognitionAlternate_get_ConfidenceAlternates(IInkRecognitionAlternate* This,IInkRecognitionAlternates **ConfidenceAlternates) {
2875    return This->lpVtbl->get_ConfidenceAlternates(This,ConfidenceAlternates);
2876}
2877static inline HRESULT IInkRecognitionAlternate_GetStrokesFromStrokeRanges(IInkRecognitionAlternate* This,IInkStrokes *Strokes,IInkStrokes **GetStrokesFromStrokeRanges) {
2878    return This->lpVtbl->GetStrokesFromStrokeRanges(This,Strokes,GetStrokesFromStrokeRanges);
2879}
2880static inline HRESULT IInkRecognitionAlternate_GetStrokesFromTextRange(IInkRecognitionAlternate* This,LONG *selectionStart,LONG *selectionLength,IInkStrokes **GetStrokesFromTextRange) {
2881    return This->lpVtbl->GetStrokesFromTextRange(This,selectionStart,selectionLength,GetStrokesFromTextRange);
2882}
2883static inline HRESULT IInkRecognitionAlternate_GetTextRangeFromStrokes(IInkRecognitionAlternate* This,IInkStrokes *Strokes,LONG *selectionStart,LONG *selectionLength) {
2884    return This->lpVtbl->GetTextRangeFromStrokes(This,Strokes,selectionStart,selectionLength);
2885}
2886static inline HRESULT IInkRecognitionAlternate_AlternatesWithConstantPropertyValues(IInkRecognitionAlternate* This,BSTR PropertyType,IInkRecognitionAlternates **AlternatesWithConstantPropertyValues) {
2887    return This->lpVtbl->AlternatesWithConstantPropertyValues(This,PropertyType,AlternatesWithConstantPropertyValues);
2888}
2889static inline 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
2906DEFINE_GUID(IID_IInkRecognitionResult, 0x3bc129a8, 0x86cd, 0x45ad, 0xbd,0xe8, 0xe0,0xd3,0x2d,0x61,0xc1,0x6d);
2907#if defined(__cplusplus) && !defined(CINTERFACE)
2908MIDL_INTERFACE("3bc129a8-86cd-45ad-bde8-e0d32d61c16d")
2909IInkRecognitionResult : 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
2940typedef 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
3019interface 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 ***/
3044static inline HRESULT IInkRecognitionResult_QueryInterface(IInkRecognitionResult* This,REFIID riid,void **ppvObject) {
3045    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3046}
3047static inline ULONG IInkRecognitionResult_AddRef(IInkRecognitionResult* This) {
3048    return This->lpVtbl->AddRef(This);
3049}
3050static inline ULONG IInkRecognitionResult_Release(IInkRecognitionResult* This) {
3051    return This->lpVtbl->Release(This);
3052}
3053/*** IDispatch methods ***/
3054static inline HRESULT IInkRecognitionResult_GetTypeInfoCount(IInkRecognitionResult* This,UINT *pctinfo) {
3055    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3056}
3057static inline HRESULT IInkRecognitionResult_GetTypeInfo(IInkRecognitionResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3058    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3059}
3060static inline 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}
3063static inline 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 ***/
3067static inline HRESULT IInkRecognitionResult_get_TopString(IInkRecognitionResult* This,BSTR *TopString) {
3068    return This->lpVtbl->get_TopString(This,TopString);
3069}
3070static inline HRESULT IInkRecognitionResult_get_TopAlternate(IInkRecognitionResult* This,IInkRecognitionAlternate **TopAlternate) {
3071    return This->lpVtbl->get_TopAlternate(This,TopAlternate);
3072}
3073static inline HRESULT IInkRecognitionResult_get_TopConfidence(IInkRecognitionResult* This,InkRecognitionConfidence *TopConfidence) {
3074    return This->lpVtbl->get_TopConfidence(This,TopConfidence);
3075}
3076static inline HRESULT IInkRecognitionResult_get_Strokes(IInkRecognitionResult* This,IInkStrokes **Strokes) {
3077    return This->lpVtbl->get_Strokes(This,Strokes);
3078}
3079static inline HRESULT IInkRecognitionResult_AlternatesFromSelection(IInkRecognitionResult* This,LONG selectionStart,LONG selectionLength,LONG maximumAlternates,IInkRecognitionAlternates **AlternatesFromSelection) {
3080    return This->lpVtbl->AlternatesFromSelection(This,selectionStart,selectionLength,maximumAlternates,AlternatesFromSelection);
3081}
3082static inline HRESULT IInkRecognitionResult_ModifyTopAlternate(IInkRecognitionResult* This,IInkRecognitionAlternate *Alternate) {
3083    return This->lpVtbl->ModifyTopAlternate(This,Alternate);
3084}
3085static inline 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
3102DEFINE_GUID(IID_IInkStrokeDisp, 0x43242fea, 0x91d1, 0x4a72, 0x96,0x3e, 0xfb,0xb9,0x18,0x29,0xcf,0xa2);
3103#if defined(__cplusplus) && !defined(CINTERFACE)
3104MIDL_INTERFACE("43242fea-91d1-4a72-963e-fbb91829cfa2")
3105IInkStrokeDisp : 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
3246typedef 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
3462interface 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 ***/
3513static inline HRESULT IInkStrokeDisp_QueryInterface(IInkStrokeDisp* This,REFIID riid,void **ppvObject) {
3514    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3515}
3516static inline ULONG IInkStrokeDisp_AddRef(IInkStrokeDisp* This) {
3517    return This->lpVtbl->AddRef(This);
3518}
3519static inline ULONG IInkStrokeDisp_Release(IInkStrokeDisp* This) {
3520    return This->lpVtbl->Release(This);
3521}
3522/*** IDispatch methods ***/
3523static inline HRESULT IInkStrokeDisp_GetTypeInfoCount(IInkStrokeDisp* This,UINT *pctinfo) {
3524    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3525}
3526static inline HRESULT IInkStrokeDisp_GetTypeInfo(IInkStrokeDisp* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3527    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3528}
3529static inline 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}
3532static inline 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 ***/
3536static inline HRESULT IInkStrokeDisp_get_ID(IInkStrokeDisp* This,LONG *ID) {
3537    return This->lpVtbl->get_ID(This,ID);
3538}
3539static inline HRESULT IInkStrokeDisp_get_BezierPoints(IInkStrokeDisp* This,VARIANT *Points) {
3540    return This->lpVtbl->get_BezierPoints(This,Points);
3541}
3542static inline HRESULT IInkStrokeDisp_get_DrawingAttributes(IInkStrokeDisp* This,IInkDrawingAttributes **DrawAttrs) {
3543    return This->lpVtbl->get_DrawingAttributes(This,DrawAttrs);
3544}
3545static inline HRESULT IInkStrokeDisp_putref_DrawingAttributes(IInkStrokeDisp* This,IInkDrawingAttributes *DrawAttrs) {
3546    return This->lpVtbl->putref_DrawingAttributes(This,DrawAttrs);
3547}
3548static inline HRESULT IInkStrokeDisp_get_Ink(IInkStrokeDisp* This,IInkDisp **Ink) {
3549    return This->lpVtbl->get_Ink(This,Ink);
3550}
3551static inline HRESULT IInkStrokeDisp_get_ExtendedProperties(IInkStrokeDisp* This,IInkExtendedProperties **Properties) {
3552    return This->lpVtbl->get_ExtendedProperties(This,Properties);
3553}
3554static inline HRESULT IInkStrokeDisp_get_PolylineCusps(IInkStrokeDisp* This,VARIANT *Cusps) {
3555    return This->lpVtbl->get_PolylineCusps(This,Cusps);
3556}
3557static inline HRESULT IInkStrokeDisp_get_BezierCusps(IInkStrokeDisp* This,VARIANT *Cusps) {
3558    return This->lpVtbl->get_BezierCusps(This,Cusps);
3559}
3560static inline HRESULT IInkStrokeDisp_get_SelfIntersections(IInkStrokeDisp* This,VARIANT *Intersections) {
3561    return This->lpVtbl->get_SelfIntersections(This,Intersections);
3562}
3563static inline HRESULT IInkStrokeDisp_get_PacketCount(IInkStrokeDisp* This,LONG *plCount) {
3564    return This->lpVtbl->get_PacketCount(This,plCount);
3565}
3566static inline HRESULT IInkStrokeDisp_get_PacketSize(IInkStrokeDisp* This,LONG *plSize) {
3567    return This->lpVtbl->get_PacketSize(This,plSize);
3568}
3569static inline HRESULT IInkStrokeDisp_get_PacketDescription(IInkStrokeDisp* This,VARIANT *PacketDescription) {
3570    return This->lpVtbl->get_PacketDescription(This,PacketDescription);
3571}
3572static inline HRESULT IInkStrokeDisp_get_Deleted(IInkStrokeDisp* This,VARIANT_BOOL *Deleted) {
3573    return This->lpVtbl->get_Deleted(This,Deleted);
3574}
3575static inline HRESULT IInkStrokeDisp_GetBoundingBox(IInkStrokeDisp* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **Rectangle) {
3576    return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle);
3577}
3578static inline HRESULT IInkStrokeDisp_FindIntersections(IInkStrokeDisp* This,IInkStrokes *Strokes,VARIANT *Intersections) {
3579    return This->lpVtbl->FindIntersections(This,Strokes,Intersections);
3580}
3581static inline HRESULT IInkStrokeDisp_GetRectangleIntersections(IInkStrokeDisp* This,IInkRectangle *Rectangle,VARIANT *Intersections) {
3582    return This->lpVtbl->GetRectangleIntersections(This,Rectangle,Intersections);
3583}
3584static inline HRESULT IInkStrokeDisp_Clip(IInkStrokeDisp* This,IInkRectangle *Rectangle) {
3585    return This->lpVtbl->Clip(This,Rectangle);
3586}
3587static inline 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}
3590static inline HRESULT IInkStrokeDisp_NearestPoint(IInkStrokeDisp* This,LONG X,LONG Y,float *Distance,float *Point) {
3591    return This->lpVtbl->NearestPoint(This,X,Y,Distance,Point);
3592}
3593static inline HRESULT IInkStrokeDisp_Split(IInkStrokeDisp* This,float SplitAt,IInkStrokeDisp **NewStroke) {
3594    return This->lpVtbl->Split(This,SplitAt,NewStroke);
3595}
3596static inline 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}
3599static inline HRESULT IInkStrokeDisp_GetPoints(IInkStrokeDisp* This,LONG Index,LONG Count,VARIANT *Points) {
3600    return This->lpVtbl->GetPoints(This,Index,Count,Points);
3601}
3602static inline HRESULT IInkStrokeDisp_SetPoints(IInkStrokeDisp* This,VARIANT Points,LONG Index,LONG Count,LONG *NumberOfPointsSet) {
3603    return This->lpVtbl->SetPoints(This,Points,Index,Count,NumberOfPointsSet);
3604}
3605static inline HRESULT IInkStrokeDisp_GetPacketData(IInkStrokeDisp* This,LONG Index,LONG Count,VARIANT *PacketData) {
3606    return This->lpVtbl->GetPacketData(This,Index,Count,PacketData);
3607}
3608static inline HRESULT IInkStrokeDisp_GetPacketValuesByProperty(IInkStrokeDisp* This,BSTR PropertyName,LONG Index,LONG Count,VARIANT *PacketValues) {
3609    return This->lpVtbl->GetPacketValuesByProperty(This,PropertyName,Index,Count,PacketValues);
3610}
3611static inline 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}
3614static inline HRESULT IInkStrokeDisp_GetFlattenedBezierPoints(IInkStrokeDisp* This,LONG FittingError,VARIANT *FlattenedBezierPoints) {
3615    return This->lpVtbl->GetFlattenedBezierPoints(This,FittingError,FlattenedBezierPoints);
3616}
3617static inline HRESULT IInkStrokeDisp_Transform(IInkStrokeDisp* This,IInkTransform *Transform,VARIANT_BOOL ApplyOnPenWidth) {
3618    return This->lpVtbl->Transform(This,Transform,ApplyOnPenWidth);
3619}
3620static inline HRESULT IInkStrokeDisp_ScaleToRectangle(IInkStrokeDisp* This,IInkRectangle *Rectangle) {
3621    return This->lpVtbl->ScaleToRectangle(This,Rectangle);
3622}
3623static inline HRESULT IInkStrokeDisp_Move(IInkStrokeDisp* This,float HorizontalComponent,float VerticalComponent) {
3624    return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
3625}
3626static inline HRESULT IInkStrokeDisp_Rotate(IInkStrokeDisp* This,float Degrees,float x,float y) {
3627    return This->lpVtbl->Rotate(This,Degrees,x,y);
3628}
3629static inline HRESULT IInkStrokeDisp_Shear(IInkStrokeDisp* This,float HorizontalMultiplier,float VerticalMultiplier) {
3630    return This->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier);
3631}
3632static inline 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
3649DEFINE_GUID(IID_IInkCustomStrokes, 0x7e23a88f, 0xc30e, 0x420f, 0x9b,0xdb, 0x28,0x90,0x25,0x43,0xf0,0xc1);
3650#if defined(__cplusplus) && !defined(CINTERFACE)
3651MIDL_INTERFACE("7e23a88f-c30e-420f-9bdb-28902543f0c1")
3652IInkCustomStrokes : 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
3679typedef 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
3753interface 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 ***/
3777static inline HRESULT IInkCustomStrokes_QueryInterface(IInkCustomStrokes* This,REFIID riid,void **ppvObject) {
3778    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3779}
3780static inline ULONG IInkCustomStrokes_AddRef(IInkCustomStrokes* This) {
3781    return This->lpVtbl->AddRef(This);
3782}
3783static inline ULONG IInkCustomStrokes_Release(IInkCustomStrokes* This) {
3784    return This->lpVtbl->Release(This);
3785}
3786/*** IDispatch methods ***/
3787static inline HRESULT IInkCustomStrokes_GetTypeInfoCount(IInkCustomStrokes* This,UINT *pctinfo) {
3788    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3789}
3790static inline HRESULT IInkCustomStrokes_GetTypeInfo(IInkCustomStrokes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3791    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3792}
3793static inline 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}
3796static inline 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 ***/
3800static inline HRESULT IInkCustomStrokes_get_Count(IInkCustomStrokes* This,LONG *Count) {
3801    return This->lpVtbl->get_Count(This,Count);
3802}
3803static inline HRESULT IInkCustomStrokes_get__NewEnum(IInkCustomStrokes* This,IUnknown **_NewEnum) {
3804    return This->lpVtbl->get__NewEnum(This,_NewEnum);
3805}
3806static inline HRESULT IInkCustomStrokes_Item(IInkCustomStrokes* This,VARIANT Identifier,IInkStrokes **Strokes) {
3807    return This->lpVtbl->Item(This,Identifier,Strokes);
3808}
3809static inline HRESULT IInkCustomStrokes_Add(IInkCustomStrokes* This,BSTR Name,IInkStrokes *Strokes) {
3810    return This->lpVtbl->Add(This,Name,Strokes);
3811}
3812static inline HRESULT IInkCustomStrokes_Remove(IInkCustomStrokes* This,VARIANT Identifier) {
3813    return This->lpVtbl->Remove(This,Identifier);
3814}
3815static inline 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
3832DEFINE_GUID(IID_IInkDisp, 0x9d398fa0, 0xc4e2, 0x4fcd, 0x99,0x73, 0x97,0x5c,0xaa,0xf4,0x7e,0xa6);
3833#if defined(__cplusplus) && !defined(CINTERFACE)
3834MIDL_INTERFACE("9d398fa0-c4e2-4fcd-9973-975caaf47ea6")
3835IInkDisp : 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
3950typedef 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
4132interface 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 ***/
4175static inline HRESULT IInkDisp_QueryInterface(IInkDisp* This,REFIID riid,void **ppvObject) {
4176    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4177}
4178static inline ULONG IInkDisp_AddRef(IInkDisp* This) {
4179    return This->lpVtbl->AddRef(This);
4180}
4181static inline ULONG IInkDisp_Release(IInkDisp* This) {
4182    return This->lpVtbl->Release(This);
4183}
4184/*** IDispatch methods ***/
4185static inline HRESULT IInkDisp_GetTypeInfoCount(IInkDisp* This,UINT *pctinfo) {
4186    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4187}
4188static inline HRESULT IInkDisp_GetTypeInfo(IInkDisp* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4189    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4190}
4191static inline 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}
4194static inline 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 ***/
4198static inline HRESULT IInkDisp_get_Strokes(IInkDisp* This,IInkStrokes **Strokes) {
4199    return This->lpVtbl->get_Strokes(This,Strokes);
4200}
4201static inline HRESULT IInkDisp_get_ExtendedProperties(IInkDisp* This,IInkExtendedProperties **Properties) {
4202    return This->lpVtbl->get_ExtendedProperties(This,Properties);
4203}
4204static inline HRESULT IInkDisp_get_Dirty(IInkDisp* This,VARIANT_BOOL *Dirty) {
4205    return This->lpVtbl->get_Dirty(This,Dirty);
4206}
4207static inline HRESULT IInkDisp_put_Dirty(IInkDisp* This,VARIANT_BOOL Dirty) {
4208    return This->lpVtbl->put_Dirty(This,Dirty);
4209}
4210static inline HRESULT IInkDisp_get_CustomStrokes(IInkDisp* This,IInkCustomStrokes **ppunkInkCustomStrokes) {
4211    return This->lpVtbl->get_CustomStrokes(This,ppunkInkCustomStrokes);
4212}
4213static inline HRESULT IInkDisp_GetBoundingBox(IInkDisp* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **Rectangle) {
4214    return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,Rectangle);
4215}
4216static inline HRESULT IInkDisp_DeleteStrokes(IInkDisp* This,IInkStrokes *Strokes) {
4217    return This->lpVtbl->DeleteStrokes(This,Strokes);
4218}
4219static inline HRESULT IInkDisp_DeleteStroke(IInkDisp* This,IInkStrokeDisp *Stroke) {
4220    return This->lpVtbl->DeleteStroke(This,Stroke);
4221}
4222static inline HRESULT IInkDisp_ExtractStrokes(IInkDisp* This,IInkStrokes *Strokes,InkExtractFlags ExtractFlags,IInkDisp **ExtractedInk) {
4223    return This->lpVtbl->ExtractStrokes(This,Strokes,ExtractFlags,ExtractedInk);
4224}
4225static inline HRESULT IInkDisp_ExtractWithRectangle(IInkDisp* This,IInkRectangle *Rectangle,InkExtractFlags extractFlags,IInkDisp **ExtractedInk) {
4226    return This->lpVtbl->ExtractWithRectangle(This,Rectangle,extractFlags,ExtractedInk);
4227}
4228static inline HRESULT IInkDisp_Clip(IInkDisp* This,IInkRectangle *Rectangle) {
4229    return This->lpVtbl->Clip(This,Rectangle);
4230}
4231static inline HRESULT IInkDisp_Clone(IInkDisp* This,IInkDisp **NewInk) {
4232    return This->lpVtbl->Clone(This,NewInk);
4233}
4234static inline HRESULT IInkDisp_HitTestCircle(IInkDisp* This,LONG X,LONG Y,float radius,IInkStrokes **Strokes) {
4235    return This->lpVtbl->HitTestCircle(This,X,Y,radius,Strokes);
4236}
4237static inline HRESULT IInkDisp_HitTestWithRectangle(IInkDisp* This,IInkRectangle *SelectionRectangle,float IntersectPercent,IInkStrokes **Strokes) {
4238    return This->lpVtbl->HitTestWithRectangle(This,SelectionRectangle,IntersectPercent,Strokes);
4239}
4240static inline HRESULT IInkDisp_HitTestWithLasso(IInkDisp* This,VARIANT Points,float IntersectPercent,VARIANT *LassoPoints,IInkStrokes **Strokes) {
4241    return This->lpVtbl->HitTestWithLasso(This,Points,IntersectPercent,LassoPoints,Strokes);
4242}
4243static inline 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}
4246static inline HRESULT IInkDisp_CreateStrokes(IInkDisp* This,VARIANT StrokeIds,IInkStrokes **Strokes) {
4247    return This->lpVtbl->CreateStrokes(This,StrokeIds,Strokes);
4248}
4249static inline HRESULT IInkDisp_AddStrokesAtRectangle(IInkDisp* This,IInkStrokes *SourceStrokes,IInkRectangle *TargetRectangle) {
4250    return This->lpVtbl->AddStrokesAtRectangle(This,SourceStrokes,TargetRectangle);
4251}
4252static inline HRESULT IInkDisp_Save(IInkDisp* This,InkPersistenceFormat PersistenceFormat,InkPersistenceCompressionMode CompressionMode,VARIANT *Data) {
4253    return This->lpVtbl->Save(This,PersistenceFormat,CompressionMode,Data);
4254}
4255static inline HRESULT IInkDisp_Load(IInkDisp* This,VARIANT Data) {
4256    return This->lpVtbl->Load(This,Data);
4257}
4258static inline HRESULT IInkDisp_CreateStroke(IInkDisp* This,VARIANT PacketData,VARIANT PacketDescription,IInkStrokeDisp **Stroke) {
4259    return This->lpVtbl->CreateStroke(This,PacketData,PacketDescription,Stroke);
4260}
4261static inline HRESULT IInkDisp_ClipboardCopyWithRectangle(IInkDisp* This,IInkRectangle *Rectangle,InkClipboardFormats ClipboardFormats,InkClipboardModes ClipboardModes,IDataObject **DataObject) {
4262    return This->lpVtbl->ClipboardCopyWithRectangle(This,Rectangle,ClipboardFormats,ClipboardModes,DataObject);
4263}
4264static inline HRESULT IInkDisp_ClipboardCopy(IInkDisp* This,IInkStrokes *strokes,InkClipboardFormats ClipboardFormats,InkClipboardModes ClipboardModes,IDataObject **DataObject) {
4265    return This->lpVtbl->ClipboardCopy(This,strokes,ClipboardFormats,ClipboardModes,DataObject);
4266}
4267static inline HRESULT IInkDisp_CanPaste(IInkDisp* This,IDataObject *DataObject,VARIANT_BOOL *CanPaste) {
4268    return This->lpVtbl->CanPaste(This,DataObject,CanPaste);
4269}
4270static inline 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
4287DEFINE_GUID(IID_IInkStrokes, 0xf1f4c9d8, 0x590a, 0x4963, 0xb3,0xae, 0x19,0x35,0x67,0x1b,0xb6,0xf3);
4288#if defined(__cplusplus) && !defined(CINTERFACE)
4289MIDL_INTERFACE("f1f4c9d8-590a-4963-b3ae-1935671bb6f3")
4290IInkStrokes : 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
4365typedef 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
4501interface 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 ***/
4539static inline HRESULT IInkStrokes_QueryInterface(IInkStrokes* This,REFIID riid,void **ppvObject) {
4540    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4541}
4542static inline ULONG IInkStrokes_AddRef(IInkStrokes* This) {
4543    return This->lpVtbl->AddRef(This);
4544}
4545static inline ULONG IInkStrokes_Release(IInkStrokes* This) {
4546    return This->lpVtbl->Release(This);
4547}
4548/*** IDispatch methods ***/
4549static inline HRESULT IInkStrokes_GetTypeInfoCount(IInkStrokes* This,UINT *pctinfo) {
4550    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4551}
4552static inline HRESULT IInkStrokes_GetTypeInfo(IInkStrokes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4553    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4554}
4555static inline 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}
4558static inline 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 ***/
4562static inline HRESULT IInkStrokes_get_Count(IInkStrokes* This,LONG *Count) {
4563    return This->lpVtbl->get_Count(This,Count);
4564}
4565static inline HRESULT IInkStrokes_get__NewEnum(IInkStrokes* This,IUnknown **_NewEnum) {
4566    return This->lpVtbl->get__NewEnum(This,_NewEnum);
4567}
4568static inline HRESULT IInkStrokes_get_Ink(IInkStrokes* This,IInkDisp **Ink) {
4569    return This->lpVtbl->get_Ink(This,Ink);
4570}
4571static inline HRESULT IInkStrokes_get_RecognitionResult(IInkStrokes* This,IInkRecognitionResult **RecognitionResult) {
4572    return This->lpVtbl->get_RecognitionResult(This,RecognitionResult);
4573}
4574static inline HRESULT IInkStrokes_ToString(IInkStrokes* This,BSTR *ToString) {
4575    return This->lpVtbl->ToString(This,ToString);
4576}
4577static inline HRESULT IInkStrokes_Item(IInkStrokes* This,LONG Index,IInkStrokeDisp **Stroke) {
4578    return This->lpVtbl->Item(This,Index,Stroke);
4579}
4580static inline HRESULT IInkStrokes_Add(IInkStrokes* This,IInkStrokeDisp *InkStroke) {
4581    return This->lpVtbl->Add(This,InkStroke);
4582}
4583static inline HRESULT IInkStrokes_AddStrokes(IInkStrokes* This,IInkStrokes *InkStrokes) {
4584    return This->lpVtbl->AddStrokes(This,InkStrokes);
4585}
4586static inline HRESULT IInkStrokes_Remove(IInkStrokes* This,IInkStrokeDisp *InkStroke) {
4587    return This->lpVtbl->Remove(This,InkStroke);
4588}
4589static inline HRESULT IInkStrokes_RemoveStrokes(IInkStrokes* This,IInkStrokes *InkStrokes) {
4590    return This->lpVtbl->RemoveStrokes(This,InkStrokes);
4591}
4592static inline HRESULT IInkStrokes_ModifyDrawingAttributes(IInkStrokes* This,IInkDrawingAttributes *DrawAttrs) {
4593    return This->lpVtbl->ModifyDrawingAttributes(This,DrawAttrs);
4594}
4595static inline HRESULT IInkStrokes_GetBoundingBox(IInkStrokes* This,InkBoundingBoxMode BoundingBoxMode,IInkRectangle **BoundingBox) {
4596    return This->lpVtbl->GetBoundingBox(This,BoundingBoxMode,BoundingBox);
4597}
4598static inline HRESULT IInkStrokes_Transform(IInkStrokes* This,IInkTransform *Transform,VARIANT_BOOL ApplyOnPenWidth) {
4599    return This->lpVtbl->Transform(This,Transform,ApplyOnPenWidth);
4600}
4601static inline HRESULT IInkStrokes_ScaleToRectangle(IInkStrokes* This,IInkRectangle *Rectangle) {
4602    return This->lpVtbl->ScaleToRectangle(This,Rectangle);
4603}
4604static inline HRESULT IInkStrokes_Move(IInkStrokes* This,float HorizontalComponent,float VerticalComponent) {
4605    return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
4606}
4607static inline HRESULT IInkStrokes_Rotate(IInkStrokes* This,float Degrees,float x,float y) {
4608    return This->lpVtbl->Rotate(This,Degrees,x,y);
4609}
4610static inline HRESULT IInkStrokes_Shear(IInkStrokes* This,float HorizontalMultiplier,float VerticalMultiplier) {
4611    return This->lpVtbl->Shear(This,HorizontalMultiplier,VerticalMultiplier);
4612}
4613static inline HRESULT IInkStrokes_ScaleTransform(IInkStrokes* This,float HorizontalMultiplier,float VerticalMultiplier) {
4614    return This->lpVtbl->ScaleTransform(This,HorizontalMultiplier,VerticalMultiplier);
4615}
4616static inline HRESULT IInkStrokes_Clip(IInkStrokes* This,IInkRectangle *Rectangle) {
4617    return This->lpVtbl->Clip(This,Rectangle);
4618}
4619static inline 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
4636DEFINE_GUID(IID_IInkRenderer, 0xe6257a9c, 0xb511, 0x4f4c, 0xa8,0xb0, 0xa7,0xdb,0xc9,0x50,0x6b,0x83);
4637#if defined(__cplusplus) && !defined(CINTERFACE)
4638MIDL_INTERFACE("e6257a9c-b511-4f4c-a8b0-a7dbc9506b83")
4639IInkRenderer : 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
4708typedef 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
4834interface 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 ***/
4867static inline HRESULT IInkRenderer_QueryInterface(IInkRenderer* This,REFIID riid,void **ppvObject) {
4868    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4869}
4870static inline ULONG IInkRenderer_AddRef(IInkRenderer* This) {
4871    return This->lpVtbl->AddRef(This);
4872}
4873static inline ULONG IInkRenderer_Release(IInkRenderer* This) {
4874    return This->lpVtbl->Release(This);
4875}
4876/*** IDispatch methods ***/
4877static inline HRESULT IInkRenderer_GetTypeInfoCount(IInkRenderer* This,UINT *pctinfo) {
4878    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4879}
4880static inline HRESULT IInkRenderer_GetTypeInfo(IInkRenderer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4881    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4882}
4883static inline 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}
4886static inline 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 ***/
4890static inline HRESULT IInkRenderer_GetViewTransform(IInkRenderer* This,IInkTransform *ViewTransform) {
4891    return This->lpVtbl->GetViewTransform(This,ViewTransform);
4892}
4893static inline HRESULT IInkRenderer_SetViewTransform(IInkRenderer* This,IInkTransform *ViewTransform) {
4894    return This->lpVtbl->SetViewTransform(This,ViewTransform);
4895}
4896static inline HRESULT IInkRenderer_GetObjectTransform(IInkRenderer* This,IInkTransform *ObjectTransform) {
4897    return This->lpVtbl->GetObjectTransform(This,ObjectTransform);
4898}
4899static inline HRESULT IInkRenderer_SetObjectTransform(IInkRenderer* This,IInkTransform *ObjectTransform) {
4900    return This->lpVtbl->SetObjectTransform(This,ObjectTransform);
4901}
4902static inline HRESULT IInkRenderer_Draw(IInkRenderer* This,LONG_PTR hDC,IInkStrokes *Strokes) {
4903    return This->lpVtbl->Draw(This,hDC,Strokes);
4904}
4905static inline HRESULT IInkRenderer_DrawStroke(IInkRenderer* This,LONG_PTR hDC,IInkStrokeDisp *Stroke,IInkDrawingAttributes *DrawingAttributes) {
4906    return This->lpVtbl->DrawStroke(This,hDC,Stroke,DrawingAttributes);
4907}
4908static inline HRESULT IInkRenderer_PixelToInkSpace(IInkRenderer* This,LONG_PTR hDC,LONG *x,LONG *y) {
4909    return This->lpVtbl->PixelToInkSpace(This,hDC,x,y);
4910}
4911static inline HRESULT IInkRenderer_InkSpaceToPixel(IInkRenderer* This,LONG_PTR hdcDisplay,LONG *x,LONG *y) {
4912    return This->lpVtbl->InkSpaceToPixel(This,hdcDisplay,x,y);
4913}
4914static inline HRESULT IInkRenderer_PixelToInkSpaceFromPoints(IInkRenderer* This,LONG_PTR hDC,VARIANT *Points) {
4915    return This->lpVtbl->PixelToInkSpaceFromPoints(This,hDC,Points);
4916}
4917static inline HRESULT IInkRenderer_InkSpaceToPixelFromPoints(IInkRenderer* This,LONG_PTR hDC,VARIANT *Points) {
4918    return This->lpVtbl->InkSpaceToPixelFromPoints(This,hDC,Points);
4919}
4920static inline HRESULT IInkRenderer_Measure(IInkRenderer* This,IInkStrokes *Strokes,IInkRectangle **Rectangle) {
4921    return This->lpVtbl->Measure(This,Strokes,Rectangle);
4922}
4923static inline HRESULT IInkRenderer_MeasureStroke(IInkRenderer* This,IInkStrokeDisp *Stroke,IInkDrawingAttributes *DrawingAttributes,IInkRectangle **Rectangle) {
4924    return This->lpVtbl->MeasureStroke(This,Stroke,DrawingAttributes,Rectangle);
4925}
4926static inline HRESULT IInkRenderer_Move(IInkRenderer* This,float HorizontalComponent,float VerticalComponent) {
4927    return This->lpVtbl->Move(This,HorizontalComponent,VerticalComponent);
4928}
4929static inline HRESULT IInkRenderer_Rotate(IInkRenderer* This,float Degrees,float x,float y) {
4930    return This->lpVtbl->Rotate(This,Degrees,x,y);
4931}
4932static inline 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
4949DEFINE_GUID(IID_IInkCursors, 0xa248c1ac, 0xc698, 0x4e06, 0x9e,0x5c, 0xd5,0x7f,0x77,0xc7,0xe6,0x47);
4950#if defined(__cplusplus) && !defined(CINTERFACE)
4951MIDL_INTERFACE("a248c1ac-c698-4e06-9e5c-d57f77c7e647")
4952IInkCursors : 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
4969typedef 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
5031interface 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 ***/
5052static inline HRESULT IInkCursors_QueryInterface(IInkCursors* This,REFIID riid,void **ppvObject) {
5053    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5054}
5055static inline ULONG IInkCursors_AddRef(IInkCursors* This) {
5056    return This->lpVtbl->AddRef(This);
5057}
5058static inline ULONG IInkCursors_Release(IInkCursors* This) {
5059    return This->lpVtbl->Release(This);
5060}
5061/*** IDispatch methods ***/
5062static inline HRESULT IInkCursors_GetTypeInfoCount(IInkCursors* This,UINT *pctinfo) {
5063    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5064}
5065static inline HRESULT IInkCursors_GetTypeInfo(IInkCursors* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5066    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5067}
5068static inline 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}
5071static inline 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 ***/
5075static inline HRESULT IInkCursors_get_Count(IInkCursors* This,LONG *Count) {
5076    return This->lpVtbl->get_Count(This,Count);
5077}
5078static inline HRESULT IInkCursors_get__NewEnum(IInkCursors* This,IUnknown **_NewEnum) {
5079    return This->lpVtbl->get__NewEnum(This,_NewEnum);
5080}
5081static inline 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
5098DEFINE_GUID(IID_IInkCollector, 0xf0f060b5, 0x8b1f, 0x4a7c, 0x89,0xec, 0x88,0x06,0x92,0x58,0x8a,0x4f);
5099#if defined(__cplusplus) && !defined(CINTERFACE)
5100MIDL_INTERFACE("f0f060b5-8b1f-4a7c-89ec-880692588a4f")
5101IInkCollector : 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
5232typedef 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
5445interface 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 ***/
5503static inline HRESULT IInkCollector_QueryInterface(IInkCollector* This,REFIID riid,void **ppvObject) {
5504    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5505}
5506static inline ULONG IInkCollector_AddRef(IInkCollector* This) {
5507    return This->lpVtbl->AddRef(This);
5508}
5509static inline ULONG IInkCollector_Release(IInkCollector* This) {
5510    return This->lpVtbl->Release(This);
5511}
5512/*** IDispatch methods ***/
5513static inline HRESULT IInkCollector_GetTypeInfoCount(IInkCollector* This,UINT *pctinfo) {
5514    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5515}
5516static inline HRESULT IInkCollector_GetTypeInfo(IInkCollector* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5517    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5518}
5519static inline 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}
5522static inline 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 ***/
5526static inline HRESULT IInkCollector_get_hWnd(IInkCollector* This,LONG_PTR *CurrentWindow) {
5527    return This->lpVtbl->get_hWnd(This,CurrentWindow);
5528}
5529static inline HRESULT IInkCollector_put_hWnd(IInkCollector* This,LONG_PTR NewWindow) {
5530    return This->lpVtbl->put_hWnd(This,NewWindow);
5531}
5532static inline HRESULT IInkCollector_get_Enabled(IInkCollector* This,VARIANT_BOOL *Collecting) {
5533    return This->lpVtbl->get_Enabled(This,Collecting);
5534}
5535static inline HRESULT IInkCollector_put_Enabled(IInkCollector* This,VARIANT_BOOL Collecting) {
5536    return This->lpVtbl->put_Enabled(This,Collecting);
5537}
5538static inline HRESULT IInkCollector_get_DefaultDrawingAttributes(IInkCollector* This,IInkDrawingAttributes **CurrentAttributes) {
5539    return This->lpVtbl->get_DefaultDrawingAttributes(This,CurrentAttributes);
5540}
5541static inline HRESULT IInkCollector_putref_DefaultDrawingAttributes(IInkCollector* This,IInkDrawingAttributes *NewAttributes) {
5542    return This->lpVtbl->putref_DefaultDrawingAttributes(This,NewAttributes);
5543}
5544static inline HRESULT IInkCollector_get_Renderer(IInkCollector* This,IInkRenderer **CurrentInkRenderer) {
5545    return This->lpVtbl->get_Renderer(This,CurrentInkRenderer);
5546}
5547static inline HRESULT IInkCollector_putref_Renderer(IInkCollector* This,IInkRenderer *NewInkRenderer) {
5548    return This->lpVtbl->putref_Renderer(This,NewInkRenderer);
5549}
5550static inline HRESULT IInkCollector_get_Ink(IInkCollector* This,IInkDisp **Ink) {
5551    return This->lpVtbl->get_Ink(This,Ink);
5552}
5553static inline HRESULT IInkCollector_putref_Ink(IInkCollector* This,IInkDisp *NewInk) {
5554    return This->lpVtbl->putref_Ink(This,NewInk);
5555}
5556static inline HRESULT IInkCollector_get_AutoRedraw(IInkCollector* This,VARIANT_BOOL *AutoRedraw) {
5557    return This->lpVtbl->get_AutoRedraw(This,AutoRedraw);
5558}
5559static inline HRESULT IInkCollector_put_AutoRedraw(IInkCollector* This,VARIANT_BOOL AutoRedraw) {
5560    return This->lpVtbl->put_AutoRedraw(This,AutoRedraw);
5561}
5562static inline HRESULT IInkCollector_get_CollectingInk(IInkCollector* This,VARIANT_BOOL *Collecting) {
5563    return This->lpVtbl->get_CollectingInk(This,Collecting);
5564}
5565static inline HRESULT IInkCollector_get_CollectionMode(IInkCollector* This,InkCollectionMode *Mode) {
5566    return This->lpVtbl->get_CollectionMode(This,Mode);
5567}
5568static inline HRESULT IInkCollector_put_CollectionMode(IInkCollector* This,InkCollectionMode Mode) {
5569    return This->lpVtbl->put_CollectionMode(This,Mode);
5570}
5571static inline HRESULT IInkCollector_get_DynamicRendering(IInkCollector* This,VARIANT_BOOL *Enabled) {
5572    return This->lpVtbl->get_DynamicRendering(This,Enabled);
5573}
5574static inline HRESULT IInkCollector_put_DynamicRendering(IInkCollector* This,VARIANT_BOOL Enabled) {
5575    return This->lpVtbl->put_DynamicRendering(This,Enabled);
5576}
5577static inline HRESULT IInkCollector_get_DesiredPacketDescription(IInkCollector* This,VARIANT *PacketGuids) {
5578    return This->lpVtbl->get_DesiredPacketDescription(This,PacketGuids);
5579}
5580static inline HRESULT IInkCollector_put_DesiredPacketDescription(IInkCollector* This,VARIANT PacketGuids) {
5581    return This->lpVtbl->put_DesiredPacketDescription(This,PacketGuids);
5582}
5583static inline HRESULT IInkCollector_get_MouseIcon(IInkCollector* This,IPictureDisp **MouseIcon) {
5584    return This->lpVtbl->get_MouseIcon(This,MouseIcon);
5585}
5586static inline HRESULT IInkCollector_put_MouseIcon(IInkCollector* This,IPictureDisp *MouseIcon) {
5587    return This->lpVtbl->put_MouseIcon(This,MouseIcon);
5588}
5589static inline HRESULT IInkCollector_putref_MouseIcon(IInkCollector* This,IPictureDisp *MouseIcon) {
5590    return This->lpVtbl->putref_MouseIcon(This,MouseIcon);
5591}
5592static inline HRESULT IInkCollector_get_MousePointer(IInkCollector* This,InkMousePointer *MousePointer) {
5593    return This->lpVtbl->get_MousePointer(This,MousePointer);
5594}
5595static inline HRESULT IInkCollector_put_MousePointer(IInkCollector* This,InkMousePointer MousePointer) {
5596    return This->lpVtbl->put_MousePointer(This,MousePointer);
5597}
5598static inline HRESULT IInkCollector_get_Cursors(IInkCollector* This,IInkCursors **Cursors) {
5599    return This->lpVtbl->get_Cursors(This,Cursors);
5600}
5601static inline HRESULT IInkCollector_get_MarginX(IInkCollector* This,LONG *MarginX) {
5602    return This->lpVtbl->get_MarginX(This,MarginX);
5603}
5604static inline HRESULT IInkCollector_put_MarginX(IInkCollector* This,LONG MarginX) {
5605    return This->lpVtbl->put_MarginX(This,MarginX);
5606}
5607static inline HRESULT IInkCollector_get_MarginY(IInkCollector* This,LONG *MarginY) {
5608    return This->lpVtbl->get_MarginY(This,MarginY);
5609}
5610static inline HRESULT IInkCollector_put_MarginY(IInkCollector* This,LONG MarginY) {
5611    return This->lpVtbl->put_MarginY(This,MarginY);
5612}
5613static inline HRESULT IInkCollector_get_Tablet(IInkCollector* This,IInkTablet **SingleTablet) {
5614    return This->lpVtbl->get_Tablet(This,SingleTablet);
5615}
5616static inline HRESULT IInkCollector_get_SupportHighContrastInk(IInkCollector* This,VARIANT_BOOL *Support) {
5617    return This->lpVtbl->get_SupportHighContrastInk(This,Support);
5618}
5619static inline HRESULT IInkCollector_put_SupportHighContrastInk(IInkCollector* This,VARIANT_BOOL Support) {
5620    return This->lpVtbl->put_SupportHighContrastInk(This,Support);
5621}
5622static inline HRESULT IInkCollector_SetGestureStatus(IInkCollector* This,InkApplicationGesture Gesture,VARIANT_BOOL Listen) {
5623    return This->lpVtbl->SetGestureStatus(This,Gesture,Listen);
5624}
5625static inline HRESULT IInkCollector_GetGestureStatus(IInkCollector* This,InkApplicationGesture Gesture,VARIANT_BOOL *Listening) {
5626    return This->lpVtbl->GetGestureStatus(This,Gesture,Listening);
5627}
5628static inline HRESULT IInkCollector_GetWindowInputRectangle(IInkCollector* This,IInkRectangle **WindowInputRectangle) {
5629    return This->lpVtbl->GetWindowInputRectangle(This,WindowInputRectangle);
5630}
5631static inline HRESULT IInkCollector_SetWindowInputRectangle(IInkCollector* This,IInkRectangle *WindowInputRectangle) {
5632    return This->lpVtbl->SetWindowInputRectangle(This,WindowInputRectangle);
5633}
5634static inline HRESULT IInkCollector_SetAllTabletsMode(IInkCollector* This,VARIANT_BOOL UseMouseForInput) {
5635    return This->lpVtbl->SetAllTabletsMode(This,UseMouseForInput);
5636}
5637static inline HRESULT IInkCollector_SetSingleTabletIntegratedMode(IInkCollector* This,IInkTablet *Tablet) {
5638    return This->lpVtbl->SetSingleTabletIntegratedMode(This,Tablet);
5639}
5640static inline HRESULT IInkCollector_GetEventInterest(IInkCollector* This,InkCollectorEventInterest EventId,VARIANT_BOOL *Listen) {
5641    return This->lpVtbl->GetEventInterest(This,EventId,Listen);
5642}
5643static inline 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
5660DEFINE_GUID(DIID__IInkCollectorEvents, 0x11a583f2, 0x712d, 0x4fea, 0xab,0xcf, 0xab,0x4a,0xf3,0x8e,0xa0,0x6b);
5661#if defined(__cplusplus) && !defined(CINTERFACE)
5662MIDL_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
5670typedef 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
5718interface _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 ***/
5735static inline HRESULT _IInkCollectorEvents_QueryInterface(_IInkCollectorEvents* This,REFIID riid,void **ppvObject) {
5736    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5737}
5738static inline ULONG _IInkCollectorEvents_AddRef(_IInkCollectorEvents* This) {
5739    return This->lpVtbl->AddRef(This);
5740}
5741static inline ULONG _IInkCollectorEvents_Release(_IInkCollectorEvents* This) {
5742    return This->lpVtbl->Release(This);
5743}
5744/*** IDispatch methods ***/
5745static inline HRESULT _IInkCollectorEvents_GetTypeInfoCount(_IInkCollectorEvents* This,UINT *pctinfo) {
5746    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5747}
5748static inline HRESULT _IInkCollectorEvents_GetTypeInfo(_IInkCollectorEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5749    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5750}
5751static inline 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}
5754static inline 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
5768DEFINE_GUID(CLSID_InkCollector, 0x43fb1553, 0xad74, 0x4ee8, 0x88,0xe4, 0x3e,0x6d,0xaa,0xc9,0x15,0xdb);
5769
5770#ifdef __cplusplus
5771class 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
5779ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
5780unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
5781unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
5782void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
5783ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
5784unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
5785unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
5786void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
5787
5788/* End additional prototypes */
5789
5790#ifdef __cplusplus
5791}
5792#endif
5793
5794#endif /* __msinkaut_h__ */