1/** 2 * This file is part of the mingw-w64 runtime package. 3 * No warranty is given; refer to the file DISCLAIMER within this package. 4 */ 5 6import "oaidl.idl"; 7import "ocidl.idl"; 8import "tpcshrd.idl"; 9 10// cpp_quote("#import <tpcerror.h>") 11 12typedef enum InkRasterOperation { 13 IRO_Black = 1, 14 IRO_NotMergePen = 2, 15 IRO_MaskNotPen = 3, 16 IRO_NotCopyPen = 4, 17 IRO_MaskPenNot = 5, 18 IRO_Not = 6, 19 IRO_XOrPen = 7, 20 IRO_NotMaskPen = 8, 21 IRO_MaskPen = 9, 22 IRO_NotXOrPen = 10, 23 IRO_NoOperation = 11, 24 IRO_MergeNotPen = 12, 25 IRO_CopyPen = 13, 26 IRO_MergePenNot = 14, 27 IRO_MergePen = 15, 28 IRO_White = 16 29} InkRasterOperation; 30 31typedef enum InkPenTip { 32 IPT_Ball = 0, 33 IPT_Rectangle = 1 34} InkPenTip; 35 36typedef enum TabletHardwareCapabilities { 37 THWC_Integrated = 0x1, 38 THWC_CursorMustTouch = 0x2, 39 THWC_HardProximity = 0x4, 40 THWC_CursorsHavePhysicalIds = 0x8 41} TabletHardwareCapabilities; 42 43typedef enum TabletPropertyMetricUnit { 44 TPMU_Default, 45 TPMU_Inches, 46 TPMU_Centimeters, 47 TPMU_Degrees, 48 TPMU_Radians, 49 TPMU_Seconds, 50 TPMU_Pounds, 51 TPMU_Grams 52} TabletPropertyMetricUnit; 53 54typedef enum InkCursorButtonState { 55 ICBS_Unavailable, 56 ICBS_Up, 57 ICBS_Down 58} InkCursorButtonState; 59 60typedef enum InkRecognitionConfidence { 61 IRC_Strong = 0, 62 IRC_Intermediate = 1, 63 IRC_Poor = 2 64} InkRecognitionConfidence; 65 66typedef enum InkBoundingBoxMode { 67 IBBM_Default = 0, 68 IBBM_NoCurveFit = 1, 69 IBBM_CurveFit = 2, 70 IBBM_PointsOnly = 3, 71 IBBM_Union = 4 72} InkBoundingBoxMode; 73 74typedef enum InkExtractFlags { 75 IEF_CopyFromOriginal = 0, 76 IEF_RemoveFromOriginal = 1, 77 IEF_Default = IEF_RemoveFromOriginal 78} InkExtractFlags; 79 80typedef enum InkPersistenceFormat { 81 IPF_InkSerializedFormat = 0, 82 IPF_Base64InkSerializedFormat = 1, 83 IPF_GIF = 2, 84 IPF_Base64GIF = 3 85} InkPersistenceFormat; 86 87typedef enum InkPersistenceCompressionMode { 88 IPCM_Default = 0, 89 IPCM_MaximumCompression = 1, 90 IPCM_NoCompression = 2 91} InkPersistenceCompressionMode; 92 93typedef enum InkClipboardFormats { 94 ICF_None = 0x0000, 95 ICF_InkSerializedFormat = 0x0001, 96 ICF_SketchInk = 0x0002, 97 ICF_TextInk = 0x0006, 98 ICF_EnhancedMetafile = 0x0008, 99 ICF_Metafile = 0x0020, 100 ICF_Bitmap = 0x0040, 101 ICF_PasteMask = 0x0007, 102 ICF_CopyMask = 0x007f, 103 ICF_Default = ICF_CopyMask 104} InkClipboardFormats; 105 106typedef enum InkClipboardModes { 107 ICB_Copy = 0x00, 108 ICB_Cut = 0x01, 109 ICB_ExtractOnly = 0x30, 110 ICB_DelayedCopy = 0x20, 111 ICB_Default = ICB_Copy 112} InkClipboardModes; 113 114typedef enum InkCollectionMode { 115 ICM_InkOnly, 116 ICM_GestureOnly, 117 ICM_InkAndGesture 118} InkCollectionMode; 119 120typedef enum InkMousePointer { 121 IMP_Default = 0, 122 IMP_Arrow = 1, 123 IMP_Crosshair = 2, 124 IMP_Ibeam = 3, 125 IMP_SizeNESW = 4, 126 IMP_SizeNS = 5, 127 IMP_SizeNWSE = 6, 128 IMP_SizeWE = 7, 129 IMP_UpArrow = 8, 130 IMP_Hourglass = 9, 131 IMP_NoDrop = 10, 132 IMP_ArrowHourglass = 11, 133 IMP_ArrowQuestion = 12, 134 IMP_SizeAll = 13, 135 IMP_Hand = 14, 136 IMP_Custom = 99 137} InkMousePointer; 138 139typedef enum InkApplicationGesture { 140 IAG_AllGestures = 0x0000, 141 IAG_NoGesture = 0xf000, 142 IAG_Scratchout = 0xf001, 143 IAG_Triangle = 0xf002, 144 IAG_Square = 0xf003, 145 IAG_Star = 0xf004, 146 IAG_Check = 0xf005, 147 IAG_Curlicue = 0xf010, 148 IAG_DoubleCurlicue = 0xf011, 149 IAG_Circle = 0xf020, 150 IAG_DoubleCircle = 0xf021, 151 IAG_SemiCircleLeft = 0xf028, 152 IAG_SemiCircleRight = 0xf029, 153 IAG_ChevronUp = 0xf030, 154 IAG_ChevronDown = 0xf031, 155 IAG_ChevronLeft = 0xf032, 156 IAG_ChevronRight = 0xf033, 157 IAG_ArrowUp = 0xf038, 158 IAG_ArrowDown = 0xf039, 159 IAG_ArrowLeft = 0xf03a, 160 IAG_ArrowRight = 0xf03b, 161 IAG_Up = 0xf058, 162 IAG_Down = 0xf059, 163 IAG_Left = 0xf05a, 164 IAG_Right = 0xf05b, 165 IAG_UpDown = 0xf060, 166 IAG_DownUp = 0xf061, 167 IAG_LeftRight = 0xf062, 168 IAG_RightLeft = 0xf063, 169 IAG_UpLeftLong = 0xf064, 170 IAG_UpRightLong = 0xf065, 171 IAG_DownLeftLong = 0xf066, 172 IAG_DownRightLong = 0xf067, 173 IAG_UpLeft = 0xf068, 174 IAG_UpRight = 0xf069, 175 IAG_DownLeft = 0xf06a, 176 IAG_DownRight = 0xf06b, 177 IAG_LeftUp = 0xf06c, 178 IAG_LeftDown = 0xf06d, 179 IAG_RightUp = 0xf06e, 180 IAG_RightDown = 0xf06f, 181 IAG_Exclamation = 0xf0a4, 182 IAG_Tap = 0xf0f0, 183 IAG_DoubleTap = 0xf0f1 184} InkApplicationGesture; 185 186typedef enum InkCollectorEventInterest { 187 ICEI_DefaultEvents = -1, 188 ICEI_CursorDown = (ICEI_DefaultEvents+1), 189 ICEI_Stroke = (ICEI_CursorDown+1), 190 ICEI_NewPackets = (ICEI_Stroke+1), 191 ICEI_NewInAirPackets = (ICEI_NewPackets+1), 192 ICEI_CursorButtonDown = (ICEI_NewInAirPackets+1), 193 ICEI_CursorButtonUp = (ICEI_CursorButtonDown+1), 194 ICEI_CursorInRange = (ICEI_CursorButtonUp+1), 195 ICEI_CursorOutOfRange = (ICEI_CursorInRange+1), 196 ICEI_SystemGesture = (ICEI_CursorOutOfRange+1), 197 ICEI_TabletAdded = (ICEI_SystemGesture+1), 198 ICEI_TabletRemoved = (ICEI_TabletAdded+1), 199 ICEI_MouseDown = (ICEI_TabletRemoved+1), 200 ICEI_MouseMove = (ICEI_MouseDown+1), 201 ICEI_MouseUp = (ICEI_MouseMove+1), 202 ICEI_MouseWheel = (ICEI_MouseUp+1), 203 ICEI_DblClick = (ICEI_MouseWheel+1), 204 ICEI_AllEvents = (ICEI_DblClick+1) 205} InkCollectorEventInterest; 206 207typedef enum DISPID_InkCollectorEvent { 208 DISPID_ICEStroke = 1, 209 DISPID_ICECursorDown = (DISPID_ICEStroke+1), 210 DISPID_ICENewPackets = (DISPID_ICECursorDown+1), 211 DISPID_ICENewInAirPackets = (DISPID_ICENewPackets+1), 212 DISPID_ICECursorButtonDown = (DISPID_ICENewInAirPackets+1), 213 DISPID_ICECursorButtonUp = (DISPID_ICECursorButtonDown+1), 214 DISPID_ICECursorInRange = (DISPID_ICECursorButtonUp+1), 215 DISPID_ICECursorOutOfRange = (DISPID_ICECursorInRange+1), 216 DISPID_ICESystemGesture = (DISPID_ICECursorOutOfRange+1), 217 DISPID_ICEGesture = (DISPID_ICESystemGesture+1), 218 DISPID_ICETabletAdded = (DISPID_ICEGesture+1), 219 DISPID_ICETabletRemoved = (DISPID_ICETabletAdded+1), 220 DISPID_IOEPainting = (DISPID_ICETabletRemoved+1), 221 DISPID_IOEPainted = (DISPID_IOEPainting+1), 222 DISPID_IOESelectionChanging = (DISPID_IOEPainted+1), 223 DISPID_IOESelectionChanged = (DISPID_IOESelectionChanging+1), 224 DISPID_IOESelectionMoving = (DISPID_IOESelectionChanged+1), 225 DISPID_IOESelectionMoved = (DISPID_IOESelectionMoving+1), 226 DISPID_IOESelectionResizing = (DISPID_IOESelectionMoved+1), 227 DISPID_IOESelectionResized = (DISPID_IOESelectionResizing+1), 228 DISPID_IOEStrokesDeleting = (DISPID_IOESelectionResized+1), 229 DISPID_IOEStrokesDeleted = (DISPID_IOEStrokesDeleting+1), 230 DISPID_IPEChangeUICues = (DISPID_IOEStrokesDeleted+1), 231 DISPID_IPEClick = (DISPID_IPEChangeUICues+1), 232 DISPID_IPEDblClick = (DISPID_IPEClick+1), 233 DISPID_IPEInvalidated = (DISPID_IPEDblClick+1), 234 DISPID_IPEMouseDown = (DISPID_IPEInvalidated+1), 235 DISPID_IPEMouseEnter = (DISPID_IPEMouseDown+1), 236 DISPID_IPEMouseHover = (DISPID_IPEMouseEnter+1), 237 DISPID_IPEMouseLeave = (DISPID_IPEMouseHover+1), 238 DISPID_IPEMouseMove = (DISPID_IPEMouseLeave+1), 239 DISPID_IPEMouseUp = (DISPID_IPEMouseMove+1), 240 DISPID_IPEMouseWheel = (DISPID_IPEMouseUp+1), 241 DISPID_IPESizeModeChanged = (DISPID_IPEMouseWheel+1), 242 DISPID_IPEStyleChanged = (DISPID_IPESizeModeChanged+1), 243 DISPID_IPESystemColorsChanged = (DISPID_IPEStyleChanged+1), 244 DISPID_IPEKeyDown = (DISPID_IPESystemColorsChanged+1), 245 DISPID_IPEKeyPress = (DISPID_IPEKeyDown+1), 246 DISPID_IPEKeyUp = (DISPID_IPEKeyPress+1), 247 DISPID_IPEResize = (DISPID_IPEKeyUp+1), 248 DISPID_IPESizeChanged = (DISPID_IPEResize+1) 249} DISPID_InkCollectorEvent; 250 251 252interface IInkDisp; 253interface IInkStrokes; 254interface IInkRecognitionAlternate; 255 256[ 257 object, 258 uuid(db489209-b7c3-411d-90f6-1548cfff271e), 259 dual 260] 261interface IInkExtendedProperty : IDispatch 262{ 263 [propget] HRESULT Guid([out, retval] BSTR *Guid); 264 [propget] HRESULT Data([out, retval] VARIANT *Data); 265 [propput] HRESULT Data([in] VARIANT Data); 266} 267 268[ 269 object, 270 uuid(89f2a8be-95a9-4530-8b8f-88e971e3e25f), 271 dual 272] 273interface IInkExtendedProperties : IDispatch 274{ 275 [propget] HRESULT Count([out, retval] long *Count); 276 [propget] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 277 HRESULT Item([in] VARIANT Identifier, [out, retval] IInkExtendedProperty **Item); 278 HRESULT Add([in] BSTR Guid, [in] VARIANT Data, [out, retval] IInkExtendedProperty **InkExtendedProperty); 279 HRESULT Remove([in] VARIANT Identifier); 280 HRESULT Clear(); 281 HRESULT DoesPropertyExist([in] BSTR Guid, [out, retval] VARIANT_BOOL *DoesPropertyExist); 282} 283 284[ 285 object, 286 uuid(bf519b75-0a15-4623-adc9-c00d436a8092), 287 dual 288] 289interface IInkDrawingAttributes : IDispatch 290{ 291 [propget] HRESULT Color([out] long *CurrentColor); 292 [propput] HRESULT Color([in] long NewColor); 293 [propget] HRESULT Width([out, retval] float *CurrentWidth); 294 [propput] HRESULT Width([in] float NewWidth); 295 [propget] HRESULT Height([out, retval] float *CurrentHeight); 296 [propput] HRESULT Height([in] float NewHeight); 297 [propget] HRESULT FitToCurve([out, retval] VARIANT_BOOL *Flag); 298 [propput] HRESULT FitToCurve([in] VARIANT_BOOL Flag); 299 [propget] HRESULT IgnorePressure([out, retval] VARIANT_BOOL *Flag); 300 [propput] HRESULT IgnorePressure([in] VARIANT_BOOL Flag); 301 [propget] HRESULT AntiAliased([out, retval] VARIANT_BOOL *Flag); 302 [propput] HRESULT AntiAliased([in] VARIANT_BOOL Flag); 303 [propget] HRESULT Transparency([out, retval] long *CurrentTransparency); 304 [propput] HRESULT Transparency([in] long NewTransparency); 305 [propget] HRESULT RasterOperation([out, retval] InkRasterOperation *CurrentRasterOperation); 306 [propput] HRESULT RasterOperation([in] InkRasterOperation NewRasterOperation); 307 [propget] HRESULT PenTip([out, retval] InkPenTip *CurrentPenTip); 308 [propput] HRESULT PenTip([in] InkPenTip NewPenTip); 309 [propget] HRESULT ExtendedProperties([out, retval] IInkExtendedProperties **Properties); 310 HRESULT Clone([out, retval] IInkDrawingAttributes **DrawingAttributes); 311} 312 313[ 314 object, 315 uuid(9794ff82-6071-4717-8a8b-6ac7c64a686e), 316 dual 317] 318interface IInkRectangle : IDispatch 319{ 320 [propget] HRESULT Top([out, retval] long *Units); 321 [propput] HRESULT Top([in] long Units); 322 [propget] HRESULT Left([out, retval] long *Units); 323 [propput] HRESULT Left([in] long Units); 324 [propget] HRESULT Bottom([out, retval] long *Units); 325 [propput] HRESULT Bottom([in] long Units); 326 [propget] HRESULT Right([out, retval] long *Units); 327 [propput] HRESULT Right([in] long Units); 328 [propget] HRESULT Data([out, retval] RECT *Rect); 329 [propput] HRESULT Data([in] RECT Rect); 330 HRESULT GetRectangle([out] long *Top, [out] long *Left, [out] long *Bottom, [out] long *Right); 331 HRESULT SetRectangle([in] long Top, [in] long Left, [in] long Bottom, [in] long Right); 332} 333 334[ 335 object, 336 uuid(2de25eaa-6ef8-42d5-aee9-185bc81b912d), 337 dual 338] 339interface IInkTablet : IDispatch 340{ 341 [propget] HRESULT Name([out, retval] BSTR *Name); 342 [propget] HRESULT PlugAndPlayId([out, retval] BSTR *Id); 343 [propget] HRESULT MaximumInputRectangle([out, retval] IInkRectangle **Rectangle); 344 [propget] HRESULT HardwareCapabilities([out, retval] TabletHardwareCapabilities *Capabilities); 345 HRESULT IsPacketPropertySupported([in] BSTR packetPropertyName, [out, retval] VARIANT_BOOL *Supported); 346 HRESULT GetPropertyMetrics([in] BSTR propertyName, [out] long *Minimum, [out] long *Maximum, 347 [out] TabletPropertyMetricUnit *Units, [out] float *Resolution); 348} 349 350[ 351 object, 352 uuid(85ef9417-1d59-49b2-a13c-702c85430894), 353 dual 354] 355interface IInkCursorButton : IDispatch 356{ 357 [propget] HRESULT Name([out, retval] BSTR *Name); 358 [propget] HRESULT Id([out, retval] BSTR *Id); 359 [propget] HRESULT State([out, retval] InkCursorButtonState *CurrentState); 360} 361 362[ 363 object, 364 uuid(3671cC40-b624-4671-9fa0-db119d952d54), 365 dual 366] 367interface IInkCursorButtons : IDispatch 368{ 369 [propget] HRESULT Count([out, retval] long *Count); 370 [propget] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 371 HRESULT Item([in] VARIANT Identifier, [out, retval] IInkCursorButton **Button); 372} 373 374[ 375 object, 376 uuid(ad30c630-40c5-4350-8405-9c71012fc558), 377 dual 378] 379interface IInkCursor : IDispatch 380{ 381 [propget] HRESULT Name([out, retval] BSTR *Name); 382 [propget] HRESULT Id([out, retval] long *Id); 383 [propget] HRESULT Inverted([out, retval] VARIANT_BOOL *Status); 384 [propget] HRESULT DrawingAttributes([out, retval] IInkDrawingAttributes **Attributes); 385 [propputref] HRESULT DrawingAttributes([in] IInkDrawingAttributes *Attributes); 386 [propget] HRESULT Tablet([out, retval] IInkTablet **Tablet); 387 [propget] HRESULT Buttons([out, retval] IInkCursorButtons **Buttons); 388} 389 390[ 391 object, 392 uuid(615f1d43-8703-4565-88e2-8201d2ecd7b7), 393 dual 394] 395interface IInkTransform : IDispatch 396{ 397 HRESULT Reset(); 398 HRESULT Translate([in] float HorizontalComponent, [in] float VerticalComponent); 399 HRESULT Rotate([in] float Degrees, [in, defaultvalue(0)] float x, [in, defaultvalue(0)] float y); 400 HRESULT Reflect([in] VARIANT_BOOL Horizontally, [in] VARIANT_BOOL Vertically); 401 HRESULT Shear([in] float HorizontalComponent, [in] float VerticalComponent); 402 HRESULT ScaleTransform([in] float HorizontalMultiplier, [in] float VerticalMultiplier); 403 HRESULT GetTransform([out] float *eM11, [out] float *eM12, [out] float *eM21, [out] float *eM22, 404 [out] float *eDx, [out] float *eDy); 405 HRESULT SetTransform([in] float eM11, [in] float eM12, [in] float eM21, [in] float eM22, [in] float eDx, [in] float eDy); 406 [propget, hidden] HRESULT eM11([out, retval] float *Value); 407 [propput, hidden] HRESULT eM11([in] float Value); 408 [propget, hidden] HRESULT eM12([out, retval] float *Value); 409 [propput, hidden] HRESULT eM12([in] float Value); 410 [propget, hidden] HRESULT eM21([out, retval] float *Value); 411 [propput, hidden] HRESULT eM21([in] float Value); 412 [propget, hidden] HRESULT eM22([out, retval] float *Value); 413 [propput, hidden] HRESULT eM22([in] float Value); 414 [propget, hidden] HRESULT eDx([out, retval] float *Value); 415 [propput, hidden] HRESULT eDx([in] float Value); 416 [propget, hidden] HRESULT eDy([out, retval] float *Value); 417 [propput, hidden] HRESULT eDy([in] float Value); 418 [propget, hidden] HRESULT Data([out, retval] XFORM *XForm); 419 [propput, hidden] HRESULT Data([in] XFORM XForm); 420} 421 422[ 423 object, 424 uuid(286a167f-9f19-4c61-9d53-4f07be622b84), 425 dual 426] 427interface IInkRecognitionAlternates : IDispatch 428{ 429 [propget] HRESULT Count([out, retval] long *Count); 430 [propget, restricted] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 431 [propget] HRESULT Strokes([out, retval] IInkStrokes **Strokes); 432 HRESULT Item([in] long Index, [out, retval] IInkRecognitionAlternate **InkRecoAlternate); 433} 434 435[ 436 object, 437 uuid(b7e660ad-77e4-429b-adda-873780d1fc4a), 438 dual 439] 440interface IInkRecognitionAlternate : IDispatch 441{ 442 [propget] HRESULT String([out, retval] BSTR *RecoString); 443 [propget] HRESULT Confidence([out, retval] InkRecognitionConfidence *Confidence) ; 444 [propget] HRESULT Baseline([out, retval] VARIANT *Baseline); 445 [propget] HRESULT Midline([out, retval] VARIANT *Midline); 446 [propget] HRESULT Ascender([out, retval] VARIANT *Ascender); 447 [propget] HRESULT Descender([out, retval] VARIANT *Descender); 448 [propget] HRESULT LineNumber([out, retval] long *LineNumber); 449 [propget] HRESULT Strokes([out, retval] IInkStrokes **Strokes); 450 [propget] HRESULT LineAlternates([out, retval] IInkRecognitionAlternates **LineAlternates); 451 [propget] HRESULT ConfidenceAlternates([out, retval] IInkRecognitionAlternates **ConfidenceAlternates); 452 HRESULT GetStrokesFromStrokeRanges([in] IInkStrokes *Strokes, [out, retval] IInkStrokes **GetStrokesFromStrokeRanges); 453 HRESULT GetStrokesFromTextRange([in, out] long *selectionStart, [in, out] long *selectionLength, 454 [out, retval] IInkStrokes **GetStrokesFromTextRange); 455 HRESULT GetTextRangeFromStrokes([in] IInkStrokes *Strokes, [in, out] long *selectionStart, [in, out] long *selectionLength); 456 HRESULT AlternatesWithConstantPropertyValues([in] BSTR PropertyType, 457 [out, retval] IInkRecognitionAlternates **AlternatesWithConstantPropertyValues); 458 HRESULT GetPropertyValue([in] BSTR PropertyType, [out, retval] VARIANT *PropertyValue); 459} 460 461[ 462 object, 463 uuid(3bc129a8-86cd-45ad-bde8-e0d32d61c16d), 464 dual 465] 466interface IInkRecognitionResult : IDispatch 467{ 468 [propget] HRESULT TopString([out, retval] BSTR *TopString); 469 [propget] HRESULT TopAlternate([out, retval] IInkRecognitionAlternate **TopAlternate); 470 [propget] HRESULT TopConfidence([out, retval] InkRecognitionConfidence *TopConfidence); 471 [propget] HRESULT Strokes([out, retval] IInkStrokes **Strokes); 472 HRESULT AlternatesFromSelection([in] long selectionStart, [in] long selectionLength, [in] long maximumAlternates, 473 [out, retval] IInkRecognitionAlternates **AlternatesFromSelection); 474 HRESULT ModifyTopAlternate([in] IInkRecognitionAlternate *Alternate); 475 HRESULT SetResultOnStrokes(); 476} 477 478[ 479 object, 480 uuid(43242fea-91d1-4a72-963e-fbb91829cfa2), 481 dual 482] 483interface IInkStrokeDisp : IDispatch 484{ 485 [propget] HRESULT ID([out, retval] long *ID); 486 [propget] HRESULT BezierPoints([out, retval] VARIANT *Points); 487 [propget] HRESULT DrawingAttributes([out, retval] IInkDrawingAttributes **DrawAttrs); 488 [propputref] HRESULT DrawingAttributes([in] IInkDrawingAttributes *DrawAttrs); 489 [propget] HRESULT Ink([out, retval] IInkDisp **Ink); 490 [propget] HRESULT ExtendedProperties([out, retval] IInkExtendedProperties **Properties); 491 [propget] HRESULT PolylineCusps([out, retval] VARIANT *Cusps); 492 [propget] HRESULT BezierCusps([out, retval] VARIANT *Cusps); 493 [propget] HRESULT SelfIntersections([out, retval] VARIANT *Intersections); 494 [propget] HRESULT PacketCount([out, retval] long *plCount); 495 [propget] HRESULT PacketSize([out, retval] long *plSize); 496 [propget] HRESULT PacketDescription([out, retval] VARIANT *PacketDescription); 497 [propget] HRESULT Deleted([out, retval] VARIANT_BOOL *Deleted); 498 HRESULT GetBoundingBox([in] InkBoundingBoxMode BoundingBoxMode, [out, retval] IInkRectangle **Rectangle); 499 HRESULT FindIntersections([in] IInkStrokes *Strokes, [out, retval] VARIANT *Intersections); 500 HRESULT GetRectangleIntersections([in] IInkRectangle *Rectangle, [out, retval] VARIANT *Intersections); 501 HRESULT Clip([in] IInkRectangle *Rectangle); 502 HRESULT HitTestCircle([in] long X, [in] long Y, [in] float Radius, [out, retval] VARIANT_BOOL *Intersects); 503 HRESULT NearestPoint([in] long X, [in] long Y, [in, out] float *Distance, [out, retval] float *Point); 504 HRESULT Split([in] float SplitAt, [out, retval] IInkStrokeDisp **NewStroke); 505 HRESULT GetPacketDescriptionPropertyMetrics([in] BSTR PropertyName, [out] long *Minimum, [out] long *Maximum, 506 [out] TabletPropertyMetricUnit *Units, [out] float *Resolution); 507 HRESULT GetPoints([in] long Index, [in] long Count, [out, retval] VARIANT *Points); 508 HRESULT SetPoints([in] VARIANT Points, [in] long Index, [in] long Count, [out, retval] long *NumberOfPointsSet); 509 HRESULT GetPacketData([in] long Index, [in] long Count, [out, retval] VARIANT *PacketData); 510 HRESULT GetPacketValuesByProperty([in] BSTR PropertyName, [in] long Index, [in] long Count, 511 [out, retval] VARIANT *PacketValues) ; 512 HRESULT SetPacketValuesByProperty([in] BSTR bstrPropertyName, [in] VARIANT PacketValues, [in] long Index, 513 [in] long Count, [out, retval] long *NumberOfPacketsSet); 514 HRESULT GetFlattenedBezierPoints([in] long FittingError, [out, retval] VARIANT *FlattenedBezierPoints); 515 HRESULT Transform([in] IInkTransform *Transform, [in, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth); 516 HRESULT ScaleToRectangle([in] IInkRectangle *Rectangle); 517 HRESULT Move([in] float HorizontalComponent, [in] float VerticalComponent); 518 HRESULT Rotate([in] float Degrees, [in, defaultvalue(0)] float x, [in, defaultvalue(0)] float y); 519 HRESULT Shear([in] float HorizontalMultiplier, [in] float VerticalMultiplier); 520 HRESULT ScaleTransform([in] float HorizontalMultiplier, [in] float VerticalMultiplier); 521} 522 523[ 524 object, 525 uuid(7e23a88f-c30e-420f-9bdb-28902543f0c1), 526 dual 527] 528interface IInkCustomStrokes : IDispatch 529{ 530 [propget] HRESULT Count([out, retval] long *Count); 531 [propget, restricted] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 532 HRESULT Item([in] VARIANT Identifier, [out, retval] IInkStrokes **Strokes); 533 HRESULT Add([in] BSTR Name, [in] IInkStrokes *Strokes); 534 HRESULT Remove([in] VARIANT Identifier); 535 HRESULT Clear(); 536} 537 538[ 539 object, 540 uuid(9d398fa0-c4e2-4fcd-9973-975caaf47ea6), 541 dual 542] 543interface IInkDisp : IDispatch 544{ 545 [propget] HRESULT Strokes([out, retval] IInkStrokes **Strokes); 546 [propget] HRESULT ExtendedProperties([out, retval] IInkExtendedProperties **Properties); 547 [propget] HRESULT Dirty([out, retval] VARIANT_BOOL *Dirty); 548 [propput] HRESULT Dirty([in] VARIANT_BOOL Dirty); 549 [propget] HRESULT CustomStrokes([out, retval] IInkCustomStrokes **ppunkInkCustomStrokes); 550 HRESULT GetBoundingBox([in] InkBoundingBoxMode BoundingBoxMode, [out, retval] IInkRectangle **Rectangle); 551 HRESULT DeleteStrokes([in, unique, defaultvalue(0)] IInkStrokes *Strokes); 552 HRESULT DeleteStroke([in] IInkStrokeDisp *Stroke); 553 HRESULT ExtractStrokes([in] IInkStrokes *Strokes, InkExtractFlags ExtractFlags, [out, retval] IInkDisp **ExtractedInk); 554 HRESULT ExtractWithRectangle([in] IInkRectangle *Rectangle, [in] InkExtractFlags extractFlags, 555 [out, retval] IInkDisp **ExtractedInk); 556 HRESULT Clip([in] IInkRectangle *Rectangle); 557 HRESULT Clone([out, retval] IInkDisp **NewInk); 558 HRESULT HitTestCircle([in] long X, [in] long Y, [in] float radius, [out, retval] IInkStrokes **Strokes); 559 HRESULT HitTestWithRectangle([in] IInkRectangle *SelectionRectangle, [in] float IntersectPercent, 560 [out, retval] IInkStrokes **Strokes); 561 HRESULT HitTestWithLasso([in] VARIANT Points, [in] float IntersectPercent, [in, out, unique] VARIANT *LassoPoints, 562 [out, retval] IInkStrokes **Strokes); 563 HRESULT NearestPoint([in] long X, [in] long Y, [in, out] float *PointOnStroke, [in, out] float *DistanceFromPacket, 564 [out, retval] IInkStrokeDisp **Stroke); 565 HRESULT CreateStrokes([in] VARIANT StrokeIds, [out, retval] IInkStrokes **Strokes); 566 HRESULT AddStrokesAtRectangle([in] IInkStrokes *SourceStrokes, [in] IInkRectangle *TargetRectangle); 567 HRESULT Save([in] InkPersistenceFormat PersistenceFormat, [in] InkPersistenceCompressionMode CompressionMode, 568 [out, retval] VARIANT *Data); 569 HRESULT Load([in] VARIANT Data); 570 HRESULT CreateStroke([in] VARIANT PacketData, [in] VARIANT PacketDescription, [out, retval] IInkStrokeDisp **Stroke); 571 HRESULT ClipboardCopyWithRectangle([in] IInkRectangle *Rectangle, [in] InkClipboardFormats ClipboardFormats, 572 [in] InkClipboardModes ClipboardModes, [out, retval] IDataObject **DataObject); 573 HRESULT ClipboardCopy([in] IInkStrokes *strokes, [in] InkClipboardFormats ClipboardFormats, 574 [in] InkClipboardModes ClipboardModes, [out, retval] IDataObject **DataObject); 575 HRESULT CanPaste([in] IDataObject *DataObject, [out, retval] VARIANT_BOOL *CanPaste); 576 HRESULT ClipboardPaste([in] long x, [in] long y, [in, unique] IDataObject *DataObject, [out, retval] IInkStrokes **Strokes); 577} 578 579[ 580 object, 581 uuid(f1f4c9d8-590a-4963-b3ae-1935671bb6f3), 582 dual 583] 584interface IInkStrokes : IDispatch 585{ 586 [propget] HRESULT Count([out, retval] long *Count); 587 [propget] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 588 [propget] HRESULT Ink([out, retval] IInkDisp **Ink); 589 [propget] HRESULT RecognitionResult([out, retval] IInkRecognitionResult **RecognitionResult); 590 HRESULT ToString([out, retval] BSTR *ToString); 591 HRESULT Item([in] long Index, [out, retval] IInkStrokeDisp **Stroke); 592 HRESULT Add([in] IInkStrokeDisp *InkStroke); 593 HRESULT AddStrokes([in] IInkStrokes *InkStrokes); 594 HRESULT Remove([in] IInkStrokeDisp *InkStroke); 595 HRESULT RemoveStrokes([in] IInkStrokes *InkStrokes); 596 HRESULT ModifyDrawingAttributes([in] IInkDrawingAttributes *DrawAttrs); 597 HRESULT GetBoundingBox([in] InkBoundingBoxMode BoundingBoxMode, [out, retval] IInkRectangle **BoundingBox); 598 HRESULT Transform([in] IInkTransform *Transform, [in, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth); 599 HRESULT ScaleToRectangle([in] IInkRectangle *Rectangle); 600 HRESULT Move([in] float HorizontalComponent, [in] float VerticalComponent); 601 HRESULT Rotate([in] float Degrees, [in, defaultvalue(0)] float x, [in, defaultvalue(0)] float y); 602 HRESULT Shear([in] float HorizontalMultiplier, [in] float VerticalMultiplier); 603 HRESULT ScaleTransform([in] float HorizontalMultiplier, [in] float VerticalMultiplier); 604 HRESULT Clip([in] IInkRectangle *Rectangle); 605 HRESULT RemoveRecognitionResult(); 606} 607 608[ 609 object, 610 uuid(e6257a9c-b511-4f4c-a8b0-a7dbc9506b83), 611 dual 612] 613interface IInkRenderer : IDispatch 614{ 615 HRESULT GetViewTransform([in] IInkTransform *ViewTransform) ; 616 HRESULT SetViewTransform([in] IInkTransform *ViewTransform); 617 HRESULT GetObjectTransform([in] IInkTransform *ObjectTransform); 618 HRESULT SetObjectTransform([in] IInkTransform *ObjectTransform); 619 HRESULT Draw([in] LONG_PTR hDC, [in] IInkStrokes *Strokes); 620 HRESULT DrawStroke([in] LONG_PTR hDC, [in] IInkStrokeDisp *Stroke, 621 [in, defaultvalue(0)] IInkDrawingAttributes *DrawingAttributes); 622 HRESULT PixelToInkSpace([in] LONG_PTR hDC, [in, out] long *x, [in, out] long *y); 623 HRESULT InkSpaceToPixel([in] LONG_PTR hdcDisplay, [in, out] long *x, [in, out] long *y); 624 HRESULT PixelToInkSpaceFromPoints([in] LONG_PTR hDC, [in, out] VARIANT *Points); 625 HRESULT InkSpaceToPixelFromPoints([in] LONG_PTR hDC, [in, out] VARIANT *Points); 626 HRESULT Measure([in] IInkStrokes *Strokes, [out, retval] IInkRectangle **Rectangle); 627 HRESULT MeasureStroke([in] IInkStrokeDisp *Stroke, [in] IInkDrawingAttributes *DrawingAttributes, 628 [out, retval] IInkRectangle **Rectangle); 629 HRESULT Move([in] float HorizontalComponent, [in] float VerticalComponent); 630 HRESULT Rotate([in] float Degrees, [in, defaultvalue(0)] float x, [in, defaultvalue(0)] float y); 631 HRESULT ScaleTransform([in] float HorizontalMultiplier, [in] float VerticalMultiplier, 632 [in, defaultvalue(-1)] VARIANT_BOOL ApplyOnPenWidth); 633} 634 635[ 636 object, 637 uuid(a248c1ac-c698-4e06-9e5c-d57f77c7e647), 638 dual 639] 640interface IInkCursors : IDispatch 641{ 642 [propget] HRESULT Count([out, retval] long *Count); 643 [propget, restricted] HRESULT _NewEnum([out, retval] IUnknown **_NewEnum); 644 HRESULT Item([in] long Index, [out, retval] IInkCursor **Cursor); 645} 646 647[ 648 object, 649 uuid(f0f060b5-8b1f-4a7c-89ec-880692588a4f), 650 dual 651] 652interface IInkCollector : IDispatch 653{ 654 [propget] HRESULT hWnd([out, retval] LONG_PTR *CurrentWindow); 655 [propput] HRESULT hWnd([in] LONG_PTR NewWindow); 656 [propget] HRESULT Enabled([out, retval] VARIANT_BOOL *Collecting); 657 [propput] HRESULT Enabled([in] VARIANT_BOOL Collecting); 658 [propget] HRESULT DefaultDrawingAttributes([out, retval] IInkDrawingAttributes **CurrentAttributes); 659 [propputref] HRESULT DefaultDrawingAttributes([in] IInkDrawingAttributes *NewAttributes); 660 [propget] HRESULT Renderer([out, retval] IInkRenderer **CurrentInkRenderer); 661 [propputref] HRESULT Renderer([in] IInkRenderer *NewInkRenderer); 662 [propget] HRESULT Ink([out, retval] IInkDisp **Ink); 663 [propputref] HRESULT Ink([in] IInkDisp *NewInk); 664 [propget] HRESULT AutoRedraw([out, retval] VARIANT_BOOL *AutoRedraw); 665 [propput] HRESULT AutoRedraw([in] VARIANT_BOOL AutoRedraw); 666 [propget] HRESULT CollectingInk([out, retval] VARIANT_BOOL *Collecting); 667 [propget] HRESULT CollectionMode([out, retval] InkCollectionMode *Mode); 668 [propput] HRESULT CollectionMode([in] InkCollectionMode Mode); 669 [propget] HRESULT DynamicRendering([out, retval] VARIANT_BOOL *Enabled); 670 [propput] HRESULT DynamicRendering([in] VARIANT_BOOL Enabled); 671 [propget] HRESULT DesiredPacketDescription([out, retval] VARIANT *PacketGuids); 672 [propput] HRESULT DesiredPacketDescription([in] VARIANT PacketGuids); 673 [propget] HRESULT MouseIcon([out, retval] IPictureDisp **MouseIcon); 674 [propput] HRESULT MouseIcon([in, unique] IPictureDisp *MouseIcon); 675 [propputref] HRESULT MouseIcon([in, unique] IPictureDisp *MouseIcon); 676 [propget] HRESULT MousePointer([out, retval] InkMousePointer *MousePointer); 677 [propput] HRESULT MousePointer([in] InkMousePointer MousePointer); 678 [propget] HRESULT Cursors([out, retval] IInkCursors **Cursors); 679 [propget] HRESULT MarginX([out, retval] long *MarginX); 680 [propput] HRESULT MarginX([in] long MarginX); 681 [propget] HRESULT MarginY([out, retval] long *MarginY); 682 [propput] HRESULT MarginY([in] long MarginY); 683 [propget] HRESULT Tablet([out, retval] IInkTablet **SingleTablet); 684 [propget] HRESULT SupportHighContrastInk([out, retval] VARIANT_BOOL *Support); 685 [propput] HRESULT SupportHighContrastInk([in] VARIANT_BOOL Support); 686 HRESULT SetGestureStatus([in] InkApplicationGesture Gesture, [in] VARIANT_BOOL Listen); 687 HRESULT GetGestureStatus([in] InkApplicationGesture Gesture, [out, retval] VARIANT_BOOL *Listening); 688 HRESULT GetWindowInputRectangle([in, out] IInkRectangle **WindowInputRectangle); 689 HRESULT SetWindowInputRectangle([in] IInkRectangle *WindowInputRectangle); 690 HRESULT SetAllTabletsMode([in, defaultvalue(-1)] VARIANT_BOOL UseMouseForInput); 691 HRESULT SetSingleTabletIntegratedMode([in] IInkTablet *Tablet); 692 HRESULT GetEventInterest([in] InkCollectorEventInterest EventId, [out, retval] VARIANT_BOOL *Listen); 693 HRESULT SetEventInterest([in] InkCollectorEventInterest EventId, [in] VARIANT_BOOL Listen); 694} 695 696[ 697 uuid(11a583f2-712d-4fea-abcf-ab4af38ea06b) 698] 699dispinterface _IInkCollectorEvents 700{ 701 properties: 702 methods: 703 /* FIXME */ 704} 705 706[ 707 uuid(43fb1553-ad74-4ee8-88e4-3e6daac915db) 708] 709coclass InkCollector 710{ 711} 712