1 /* Copyright (C) 2007 C John Klehm
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 uuid(7D868ACD
-1A5D
-4A47
-A247
-F39741353012
),
27 importlib
("stdole2.tlb");
31 typedef enum InkBoundingBoxMode
{
39 typedef enum InkExtractFlags
{
40 IEF_CopyFromOriginal
= 0x0,
41 IEF_RemoveFromOriginal
= 0x1,
42 IEF_Default
= IEF_RemoveFromOriginal
45 typedef enum InkPersistenceFormat
{
46 IPF_InkSerializeFormat
= 0,
47 IPF_Base64InkSerializedFormat
= 1,
50 } InkPersistenceFormat
;
52 typedef enum InkPersistenceCompressionMode
55 IPCM_MaximumCompression
= 1,
56 IPCM_NoCompression
= 2
57 } InkPersistenceCompressionMode
;
59 typedef enum InkPenTip
{
64 typedef enum InkRasterOperation
{
83 typedef enum InkClipboardModes
{
86 ICB_DelayedCopy
= 0x20,
87 ICB_ExtractOnly
= 0x30,
88 ICB_Default
= ICB_Copy
91 typedef enum InkClipboardFormats
{
93 ICF_InkSerializedFormat
= 0x1,
96 ICF_EnhancedMetafile
= 0x8,
101 ICF_Default
= ICF_CopyMask
102 } InkClipboardFormats
;
104 typedef enum InkRecognitionConfidence
107 IRC_Intermediate
= 1,
109 } InkRecognitionConfidence
;
113 uuid(DB489209
-B7C3
-411D
-90F6
-1548CFFF271E
),
117 interface IInkExtendedProperty
: IDispatch
{
118 [id(0x00000001), propget] HRESULT Guid
([out, retval] BSTR* Guid
);
119 [id(0x00000002), propget] HRESULT Data
([out, retval] VARIANT* Data
);
120 [id(0x00000002), propput] HRESULT Data
([in] VARIANT Data
);
125 uuid(89F2A8BE
-95A9
-4530-8B8F
-88E971E3E25F
),
129 interface IInkExtendedProperties
: IDispatch
{
130 HRESULT Count
([out, retval] long* Count
);
131 HRESULT _NewEnum
([out, retval] IUnknown
** _NewEnum
);
133 [in] VARIANT Identifier
,
134 [out, retval] IInkExtendedProperty
** Item
);
138 [out, retval] IInkExtendedProperty
** InkExtendedProperty
);
139 HRESULT Remove
([in] VARIANT Identifier
);
141 HRESULT DoesPropertyExist
(
143 [out, retval] VARIANT_BOOL* DoesPropertyExist
);
148 uuid(BF519B75
-0A15
-4623-ADC9
-C00D436A8092
),
152 interface IInkDrawingAttributes
: IDispatch
{
153 [id(0x00000002), propget] HRESULT Color
(
154 [out, retval] long* CurrentColor
);
155 [id(0x00000002), propput] HRESULT Color
([in] long CurrentColor
);
156 [id(0x00000003), propget] HRESULT Width
(
157 [out, retval] single
* CurrentWidth
);
158 [id(0x00000003), propput] HRESULT Width
([in] single CurrentWidth
);
159 [id(0x00000001), propget] HRESULT Height
(
160 [out, retval] single
* CurrentHeight
);
161 [id(0x00000001), propput] HRESULT Height
([in] single CurrentHeight
);
162 [id(0x00000004), propget] HRESULT FitToCurve
(
163 [out, retval] VARIANT_BOOL* Flag
);
164 [id(0x00000004), propput] HRESULT FitToCurve
([in] VARIANT_BOOL Flag
);
165 [id(0x00000005), propget] HRESULT IgnorePressure
(
166 [out, retval] VARIANT_BOOL* Flag
);
167 [id(0x00000005), propput] HRESULT IgnorePressure
(
168 [in] VARIANT_BOOL Flag
);
169 [id(0x00000006), propget] HRESULT AntiAliased
(
170 [out, retval] VARIANT_BOOL* Flag
);
171 [id(0x00000006), propput] HRESULT AntiAliased
([in] VARIANT_BOOL Flag
);
172 [id(0x00000007), propget] HRESULT Transparency
(
173 [out, retval] long* CurrentTransparency
);
174 [id(0x00000007), propput] HRESULT Transparency
(
175 [in] long CurrentTransparency
);
176 [id(0x00000008), propget] HRESULT RasterOperation
(
177 [out, retval] InkRasterOperation
* CurrentRasterOperation
);
178 [id(0x00000008), propput] HRESULT RasterOperation
(
179 [in] InkRasterOperation CurrentRasterOperation
);
180 [id(0x00000009), propget] HRESULT PenTip
(
181 [out, retval] InkPenTip
* CurrentPenTip
);
182 [id(0x00000009), propput] HRESULT PenTip
([in] InkPenTip CurrentPenTip
);
183 [id(0x0000000b), propget] HRESULT ExtendedProperties
(
184 [out, retval] IInkExtendedProperties
** Properties
);
185 [id(0x0000000a)] HRESULT Clone
(
186 [out, retval] IInkDrawingAttributes
** DrawingAttributes
);
189 cpp_quote
("#ifndef _WINGDI_")
190 /* already defined in wingdi.h but needed for WIDL */
191 typedef struct tagXFORM
{
199 cpp_quote
("#endif /* _WINGDI_ */")
203 uuid(615F1D43
-8703-4565-88E2
-8201D2ECD7B7
),
207 interface IInkTransform
: IDispatch
{
208 [id(0x00000001)] HRESULT Reset
();
209 [id(0x00000002)] HRESULT Translate
(
210 [in] single HorizontalComponent
,
211 [in] single VerticalComponent
);
212 [id(0x00000003)] HRESULT Rotate
(
214 [in, defaultvalue(0)] single x
,
215 [in, defaultvalue(0)] single y
);
216 [id(0x00000004)] HRESULT Reflect
(
217 [in] VARIANT_BOOL Horizontally
,
218 [in] VARIANT_BOOL Vertically
);
219 [id(0x00000005)] HRESULT Shear
(
220 [in] single HorizontalComponent
,
221 [in] single VerticalComponent
);
222 [id(0x00000006)] HRESULT ScaleTransform
(
223 [in] single HorizontalMultiplier
,
224 [in] single VerticalMultiplier
);
225 [id(0x0000000d)] HRESULT GetTransform
(
232 [id(0x0000000e)] HRESULT SetTransform
(
239 [id(0x00000007), propget, hidden] HRESULT eM11
(
240 [out, retval] single
* Value
);
241 [id(0x00000007), propput, hidden] HRESULT eM11
([in] single Value
);
242 [id(0x00000008), propget, hidden] HRESULT eM12
(
243 [out, retval] single
* Value
);
244 [id(0x00000008), propput, hidden] HRESULT eM12
([in] single Value
);
245 [id(0x00000009), propget, hidden] HRESULT eM21
(
246 [out, retval] single
* Value
);
247 [id(0x00000009), propput, hidden] HRESULT eM21
([in] single Value
);
248 [id(0x0000000a), propget, hidden] HRESULT eM22
(
249 [out, retval] single
* Value
);
250 [id(0x0000000a), propput, hidden] HRESULT eM22
([in] single Value
);
251 [id(0x0000000b), propget, hidden] HRESULT eDx
(
252 [out, retval] single
* Value
);
253 [id(0x0000000b), propput, hidden] HRESULT eDx
([in] single Value
);
254 [id(0x0000000c), propget, hidden] HRESULT eDy
(
255 [out, retval] single
* Value
);
256 [id(0x0000000c), propput, hidden] HRESULT eDy
([in] single Value
);
257 [id(0x0000000f), propget, hidden] HRESULT Data
(
258 [out, retval] XFORM
* XFORM
);
259 [id(0x0000000f), propput, hidden] HRESULT Data
([in] XFORM XFORM
);
266 uuid(9794FF82
-6071-4717-8A8B
-6AC7C64A686E
),
270 interface IInkRectangle
272 [id(1), propget] HRESULT Top
([out, retval] long* Units
);
273 [id(1), propput] HRESULT Top
([in] long Units
);
274 [id(2), propget] HRESULT Left
([out, retval] long* Units
);
275 [id(2), propput] HRESULT Left
([in] long Units
);
276 [id(3), propget] HRESULT Bottom
([out, retval] long* Units
);
277 [id(3), propput] HRESULT Bottom
([in] long Units
);
278 [id(4), propget] HRESULT Right
([out, retval] long* Units
);
279 [id(4), propput] HRESULT Right
([in] long Units
);
280 [id(7), propget] HRESULT Data
([out, retval] RECT
* Rect
);
281 [id(7), propput] HRESULT Data
([in] RECT Rect
);
282 [id(5)] HRESULT GetRectangle
(
287 [id(6)] HRESULT SetRectangle
(
294 interface IInkStrokes
;
305 } TabletPropertyMetricUnit
;
309 uuid(43242FEA
-91D1
-4A72
-963E
-FBB91829CFA2
),
313 interface IInkStrokeDisp
: IDispatch
{
314 [id(0x00000002), propget] HRESULT Id([out, retval] long* Id);
315 [id(0x0000000d), propget] HRESULT BezierPoints
(
316 [out, retval] VARIANT* Points
);
317 [id(0x00000004), propget] HRESULT DrawingAttributes
(
318 [out, retval] IInkDrawingAttributes
** DrawAttrs
);
319 [id(0x00000004), propputref] HRESULT DrawingAttributes
(
320 [in] IInkDrawingAttributes
* DrawAttrs
);
321 [id(0x0000000c), propget] HRESULT Ink
([out, retval] IInkDisp
** Ink
);
322 [id(0x0000000b), propget] HRESULT ExtendedProperties
(
323 [out, retval] IInkExtendedProperties
** Properties
);
324 [id(0x0000000e), propget] HRESULT PolylineCusps
(
325 [out, retval] VARIANT* Cusps
);
326 [id(0x0000000f), propget] HRESULT BezierCusps
(
327 [out, retval] VARIANT* Cusps
);
328 [id(0x00000010), propget] HRESULT SelfIntersections
(
329 [out, retval] VARIANT* Intersections
);
330 [id(0x00000011), propget] HRESULT PacketCount
(
331 [out, retval] long* plCount
);
332 [id(0x00000012), propget] HRESULT PacketSize
(
333 [out, retval] long* plSize
);
334 [id(0x00000013), propget] HRESULT PacketDescription
(
335 [out, retval] VARIANT* PacketDescription
);
336 [id(0x00000014), propget] HRESULT Deleted
(
337 [out, retval] VARIANT_BOOL* Deleted
);
338 [id(0x00000003)] HRESULT GetBoundingBox
(
339 [in, defaultvalue(0)] InkBoundingBoxMode BoundingBoxMode
,
340 [out, retval] IInkRectangle
** Rectangle
);
341 [id(0x00000005)] HRESULT FindIntersections
(
342 [in] IInkStrokes
* Strokes
,
343 [out, retval] VARIANT* Intersections
);
344 [id(0x00000006)] HRESULT GetRectangleIntersections
(
345 [in] IInkRectangle
* Rectangle
,
346 [out, retval] VARIANT* Intersections
);
347 [id(0x00000007)] HRESULT Clip
(
348 [in] IInkRectangle
* Rectangle
);
349 [id(0x00000008)] HRESULT HitTestCircle
(
353 [out, retval] VARIANT_BOOL* Intersects
);
354 [id(0x00000009)] HRESULT NearestPoint
(
357 [in, out, defaultvalue(0)] single
* Distance
,
358 [out, retval] single
* Point
);
359 [id(0x0000000a)] HRESULT Split
(
361 [out, retval] IInkStrokeDisp
** NewStroke
);
362 [id(0x00000015)] HRESULT GetPacketDescriptionPropertyMetrics
(
363 [in] BSTR propertyName
,
366 [out] TabletPropertyMetricUnit
* Units
,
367 [out] single
* Resolution
);
368 [id(0x00000016)] HRESULT GetPoints
(
369 [in, defaultvalue(0)] long Index
,
370 [in, defaultvalue(-1)] long Count
,
371 [out, retval] VARIANT* Points
);
372 [id(0x00000017)] HRESULT SetPoints
(
374 [in, defaultvalue(0)] long Index
,
375 [in, defaultvalue(-1)] long Count
,
376 [out, retval] long* NumberOfPointsSet
);
377 [id(0x00000018)] HRESULT GetPacketData
(
378 [in, defaultvalue(0)] long Index
,
379 [in, defaultvalue(-1)] long Count
,
380 [out, retval] VARIANT* PacketData
);
381 [id(0x00000019)] HRESULT GetPacketValuesByProperty
(
382 [in] BSTR propertyName
,
383 [in, defaultvalue(0)] long Index
,
384 [in, defaultvalue(-1)] long Count
,
385 [out, retval] VARIANT* PacketValues
);
386 [id(0x0000001a)] HRESULT SetPacketValuesByProperty
(
387 [in] BSTR bstrPropertyName
,
388 [in] VARIANT PacketValues
,
389 [in, defaultvalue(0)] long Index
,
390 [in, defaultvalue(-1)] long Count
,
391 [out, retval] long* NumberOfPacketsSet
);
392 [id(0x0000001b)] HRESULT GetFlattenedBezierPoints
(
393 [in, defaultvalue(0)] long FittingError
,
394 [out, retval] VARIANT* FlattenedBezierPoints
);
395 [id(0x0000001d)] HRESULT Transform
(
396 [in] IInkTransform
* Transform
,
397 [in, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth
);
398 [id(0x0000001c)] HRESULT ScaleToRectangle
(
399 [in] IInkRectangle
* Rectangle
);
400 [id(0x0000001e)] HRESULT Move
(
401 [in] single HorizontalComponent
,
402 [in] single VerticalComponent
);
403 [id(0x0000001f)] HRESULT Rotate
(
405 [in, defaultvalue(0)] single x
,
406 [in, defaultvalue(0)] single y
);
407 [id(0x00000020)] HRESULT Shear
(
408 [in] single HorizontalMultiplier
,
409 [in] single VerticalMultiplier
);
410 [id(0x00000021)] HRESULT ScaleTransform
(
411 [in] single HorizontalMultiplier
,
412 [in] single VerticalMultiplier
);
415 interface IInkRecognitionResult
;
419 uuid(F1F4C9D8
-590A
-4963-B3AE
-1935671BB6F3
),
423 interface IInkStrokes
: IDispatch
{
424 [propget] HRESULT Count
(
425 [out, retval] long *Count
);
426 [propget, restricted] HRESULT _NewEnum
(
427 [out, retval] IUnknown
**_NewEnum
);
428 [propget] HRESULT Ink
(
429 [out, retval] IInkDisp
**Ink
);
430 [propget] HRESULT RecognitionResult
(
431 [out, retval] IInkRecognitionResult
**RecognitionResult
);
433 [out, retval] BSTR *ToString
);
436 [out, retval] IInkStrokeDisp
**Stroke
);
438 [in] IInkStrokeDisp
*InkStroke
);
440 [in] IInkStrokes
*InkStrokes
);
442 [in] IInkStrokeDisp
*InkStroke
);
443 HRESULT RemoveStrokes
(
444 [in] IInkStrokes
*InkStrokes
);
445 HRESULT ModifyDrawingAttributes
(
446 [in] IInkDrawingAttributes
*DrawAttrs
);
447 HRESULT GetBoundingBox
(
448 [in] InkBoundingBoxMode BoundingBoxMode
,
449 [out, retval] IInkRectangle
**BoundingBox
);
451 [in] IInkTransform
*Transform
,
452 [in] VARIANT_BOOL ApplyOnPenWidth
);
453 HRESULT ScaleToRectangle
(
454 [in] IInkRectangle
*Rectangle
);
456 [in] float HorizontalComponent
,
457 [in] float VerticalComponent
);
463 [in] float HorizontalMultiplier
,
464 [in] float VerticalMultiplier
);
465 HRESULT ScaleTransform
(
466 [in] float HorizontalMultiplier
,
467 [in] float VerticalMultiplier
);
469 [in] IInkRectangle
*Rectangle
);
470 HRESULT RemoveRecognitionResult
();
475 uuid(7E23A88F
-C30E
-420f
-9BDB
-28902543F0C1
),
479 interface IInkCustomStrokes
: IDispatch
{
480 [propget] HRESULT Count
(
481 [out, retval] long *Count
);
482 [propget] HRESULT _NewEnum
(
483 [out, retval] IUnknown
**_NewEnum
);
485 [in] VARIANT Identifier
,
486 [out, retval] IInkStrokes
**Strokes
);
489 [in] IInkStrokes
*Strokes
);
491 [in] VARIANT Identifier
);
495 interface IInkRecognitionAlternate
;
496 interface IInkRecognitionAlternates
;
500 uuid(3BC129A8
-86CD
-45ad
-BDE8
-E0D32D61C16D
),
504 interface IInkRecognitionResult
: IDispatch
{
505 [propget] HRESULT TopString
(
506 [out, retval] BSTR *TopString
);
507 [propget] HRESULT TopAlternate
(
508 [out, retval] IInkRecognitionAlternate
**TopAlternate
);
509 [propget] HRESULT TopConfidence
(
510 [out, retval] InkRecognitionConfidence
*TopConfidence
);
511 [propget] HRESULT Strokes
(
512 [out, retval] IInkStrokes
**Strokes
);
513 HRESULT AlternatesFromSelection
(
514 [in] long selectionStart
,
515 [in] long selectionLength
,
516 [in] long maximumAlternates
,
517 [out, retval] IInkRecognitionAlternates
**AlternatesFromSelection
);
518 HRESULT ModifyTopAlternate
(
519 [in] IInkRecognitionAlternate
*Alternate
);
520 HRESULT SetResultOnStrokes
();
525 uuid(B7E660AD
-77E4
-429b
-ADDA
-873780D1FC4A
),
529 interface IInkRecognitionAlternate
: IDispatch
{
530 [propget] HRESULT String(
531 [out, retval] BSTR *RecoString
);
532 [propget] HRESULT Confidence
(
533 [out, retval] InkRecognitionConfidence
*Confidence
);
534 [propget] HRESULT Baseline
(
535 [out, retval] VARIANT *Baseline
);
536 [propget] HRESULT Midline
(
537 [out, retval] VARIANT *Midline
);
538 [propget] HRESULT Ascender
(
539 [out, retval] VARIANT *Ascender
);
540 [propget] HRESULT Descender
(
541 [out, retval] VARIANT *Descender
);
542 [propget] HRESULT LineNumber
(
543 [out, retval] long *LineNumber
);
544 [propget] HRESULT Strokes
(
545 [out, retval] IInkStrokes
**Strokes
);
546 [propget] HRESULT LineAlternates
(
547 [out, retval] IInkRecognitionAlternates
**LineAlternates
);
548 [propget] HRESULT ConfidenceAlternates
(
549 [out, retval] IInkRecognitionAlternates
**ConfidenceAlternates
);
550 HRESULT GetStrokesFromStrokeRanges
(
551 [in] IInkStrokes
*Stroke
,
552 [out, retval] IInkStrokes
**GetStrokesFromTextRange
);
553 HRESULT GetStrokesFromTextRange
(
554 [in, out] long *selectionStart
,
555 [in, out] long *selectionLength
,
556 [out, retval] IInkStrokes
**GetStrokesFromTextRange
);
557 HRESULT GetTextRangeFromStrokes
(
558 [in] IInkStrokes
*Strokes
,
559 [in, out] long *selectionStart
,
560 [in, out] long *selectionLength
);
561 HRESULT AlternatesWithConstantPropertyValues
(
562 [in] BSTR PropertyType
,
563 [out, retval] IInkRecognitionAlternates
**AlternatesWithConstantPropertyValues
);
564 HRESULT GetPropertyValue
(
565 [in] BSTR PropertyType
,
566 [out, retval] VARIANT *PropertyValue
);
571 uuid(286A167F
-9F19
-4c61
-9D53
-4F07BE622B84
),
575 interface IInkRecognitionAlternates
: IDispatch
{
576 [propget] HRESULT Count
(
577 [out, retval] long *Count
);
578 [propget, restricted] HRESULT _NewEnum
(
579 [out, retval] IUnknown
**_NewEnum
);
580 [propget] HRESULT Strokes
(
581 [out, retval] IInkStrokes
**Strokes
);
584 [out, retval] IInkRecognitionAlternate
**InkRecoAlternate
);
589 uuid(9D398FA0
-C4E2
-4fcd
-9973-975CAAF47EA6
),
593 interface IInkDisp
: IDispatch
{
594 [propget] HRESULT Strokes
(
595 [out, retval] IInkStrokes
**Strokes
);
596 [propget] HRESULT ExtendedProperties
(
597 [out, retval] IInkExtendedProperties
**Properties
);
598 [propget] HRESULT Dirty
(
599 [out, retval] VARIANT_BOOL *Dirty
);
600 [propput] HRESULT Dirty
(
601 [in] VARIANT_BOOL Dirty
);
602 [propget] HRESULT CustomStrokes
(
603 [out, retval] IInkCustomStrokes
**CustomStrokes
);
604 HRESULT GetBoundingBox
(
605 [in] InkBoundingBoxMode BoundingBoxMode
,
606 [out] IInkRectangle
**Rectangle
);
607 HRESULT DeleteStrokes
(
608 [in, unique] IInkStrokes
*Strokes
);
609 HRESULT DeleteStroke
(
610 [in] IInkStrokeDisp
*Stroke
);
611 HRESULT ExtractStrokes
(
612 [in] IInkStrokes
*Strokes
,
613 [in] InkExtractFlags ExtractFlags
,
614 [out, retval] IInkDisp
**ExtractedInk
);
615 HRESULT ExtractWithRectangle
(
616 [in] IInkRectangle
*Rectangle
,
617 [in] InkExtractFlags ExtractFlags
,
618 [out, retval] IInkDisp
**ExtractedInk
);
620 [in] IInkRectangle
*Rectangle
);
622 [out, retval] IInkDisp
**NewInk
);
623 HRESULT HitTestCircle
(
627 [out, retval] IInkStrokes
**Strokes
);
628 HRESULT HitTestWithRectangle
(
629 [in] IInkRectangle
*SelectionRectangle
,
630 [in] float IntersectPercent
,
631 [out, retval] IInkStrokes
**Strokes
);
632 HRESULT HitTestWithLasso
(
634 [in] float IntersectPercent
,
635 [in, out, unique] VARIANT *LassoPoints
,
636 [out, retval] IInkStrokes
**Strokes
);
637 HRESULT NearestPoint
(
640 [in, out] float *PointOnStroke
,
641 [in, out] float *DistanceFromPacket
,
642 [out, retval] IInkStrokeDisp
**Stroke
);
643 HRESULT CreateStrokes
(
644 [in] VARIANT StrokeIds
,
645 [out, retval] IInkStrokes
**Strokes
);
646 HRESULT AddStrokesAtRectangle
(
647 [in] IInkStrokes
*SourceStrokes
,
648 [in] IInkRectangle
*TargetRectangle
);
650 [in] InkPersistenceFormat PersistenceFormat
,
651 [in] InkPersistenceCompressionMode CompressionMode
,
652 [out, retval] VARIANT *Data
);
655 HRESULT CreateStroke
(
656 [in] VARIANT PacketData
,
657 [in] VARIANT PacketDescription
,
658 [out, retval] IInkStrokeDisp
**Stroke
);
659 HRESULT ClipboardCopyWithRectangle
(
660 [in] IInkRectangle
*Rectangle
,
661 [in] InkClipboardFormats ClipboardFormats
,
662 [in] InkClipboardModes ClipboardModes
,
663 [out, retval] IDataObject
**DataObject
);
664 HRESULT ClipboardCopy
(
665 [in] IInkStrokes
*strokes
,
666 [in] InkClipboardFormats ClipboardFormats
,
667 [in] InkClipboardModes ClipboardModes
,
668 [out, retval] IDataObject
**DataObject
);
670 [in] IDataObject
*DataObject
,
671 [out, retval] VARIANT_BOOL *CanPaste
);
672 HRESULT ClipboardPaste
(
675 [in, unique] IDataObject
*DataObject
,
676 [out, retval] IInkStrokes
**Strokes
);
681 uuid(E6257A9C
-B511
-4F4C
-A8B0
-A7DBC9506B83
),
685 interface IInkRenderer
: IDispatch
{
686 HRESULT GetViewTransform
([in] IInkTransform
* ViewTransform
);
687 HRESULT SetViewTransform
([in] IInkTransform
* ViewTransform
);
688 HRESULT GetObjectTransform
([in] IInkTransform
* ObjectTransform
);
689 HRESULT SetObjectTransform
([in] IInkTransform
* ObjectTransform
);
692 [in] IInkStrokes
* Strokes
);
695 [in] IInkStrokeDisp
* Stroke
,
696 [in, defaultvalue(0)]
697 IInkDrawingAttributes
* DrawingAttributes
);
698 HRESULT PixelToInkSpace
(
702 HRESULT InkSpaceToPixel
(
703 [in] long hdcDisplay
,
706 HRESULT PixelToInkSpaceFromPoints
(
708 [in, out] VARIANT* Points
);
709 HRESULT InkSpaceToPixelFromPoints
(
711 [in, out] VARIANT* Points
);
713 [in] IInkStrokes
* Strokes
,
714 [out, retval] IInkRectangle
** Rectangle
);
715 HRESULT MeasureStroke
(
716 [in] IInkStrokeDisp
* Stroke
,
717 [in, defaultvalue(0)] IInkDrawingAttributes
* DrawingAttributes
,
718 [out, retval] IInkRectangle
** Rectangle
);
720 [in] single HorizontalComponent
,
721 [in] single VerticalComponent
);
724 [in, defaultvalue(0)] single x
,
725 [in, defaultvalue(0)] single y
);
726 HRESULT ScaleTransform
(
727 [in] single HorizontalMultiplier
,
728 [in] single VerticalMultiplier
,
729 [in, defaultvalue(-1)] VARIANT_BOOL ApplyOnPenWidth
);
759 THWC_CursorMustTouch
= 2,
760 THWC_HardProximity
= 4,
761 THWC_CursorsHavePhysicalIds
= 8
762 } TabletHardwareCapabilities
;
766 uuid(2DE25EAA
-6EF8
-42D5
-AEE9
-185BC81B912D
),
770 interface IInkTablet
: IDispatch
{
771 [propget] HRESULT Name
([out, retval] BSTR* Name
);
772 [propget] HRESULT PlugAndPlayId
([out, retval] BSTR* Id);
773 [propget] HRESULT MaximumInputRectangle
([out, retval] IInkRectangle
** Rectangle
);
774 [propget] HRESULT HardwareCapabilities
(
775 [out, retval] TabletHardwareCapabilities
* Capabilities
);
776 HRESULT IsPacketPropertySupported
(
777 [in] BSTR packetPropertyName
,
778 [out, retval] VARIANT_BOOL* Supported
);
779 HRESULT GetPropertyMetrics
(
780 [in] BSTR propertyName
,
783 [out] TabletPropertyMetricUnit
* Units
,
784 [out] single
* Resolution
);
791 } InkCursorButtonState
;
795 uuid(85EF9417
-1D59
-49B2
-A13C
-702C85430894
),
799 interface IInkCursorButton
: IDispatch
{
800 [propget] HRESULT Name
([out, retval] BSTR* Name
);
801 [propget] HRESULT Id([out, retval] BSTR* Id);
802 [propget] HRESULT State
([out, retval] InkCursorButtonState
* CurrentState
);
807 uuid(3671CC40
-B624
-4671-9FA0
-DB119D952D54
),
811 interface IInkCursorButtons
: IDispatch
{
812 [propget] HRESULT Count
([out, retval] long* Count
);
813 [propget] HRESULT _NewEnum
([out, retval] IUnknown
** _NewEnum
);
815 [in] VARIANT Identifier
,
816 [out, retval] IInkCursorButton
** Button
);
821 uuid(AD30C630
-40C5
-4350-8405-9C71012FC558
),
825 interface IInkCursor
: IDispatch
{
826 [id(0x00000000), propget] HRESULT Name
([out, retval] BSTR* Name
);
827 [id(0x00000001), propget] HRESULT Id([out, retval] long* Id);
828 [id(0x00000004), propget] HRESULT Inverted
(
829 [out, retval] VARIANT_BOOL* Status
);
830 [id(0x00000002), propget] HRESULT DrawingAttributes
(
831 [out, retval] IInkDrawingAttributes
** Attributes
);
832 [id(0x00000002), propputref] HRESULT DrawingAttributes
(
833 [in] IInkDrawingAttributes
* Attributes
);
834 [id(0x00000005), propget] HRESULT Tablet
(
835 [out, retval] IInkTablet
** Tablet
);
836 [id(0x00000003), propget] HRESULT Buttons
(
837 [out, retval] IInkCursorButtons
** Buttons
);
842 uuid(A248C1AC
-C698
-4E06
-9E5C
-D57F77C7E647
),
846 interface IInkCursors
: IDispatch
{
847 [propget] HRESULT Count
([out, retval] long* Count
);
848 [propget] HRESULT _NewEnum
([out, retval] IUnknown
** _NewEnum
);
851 [out, retval] IInkCursor
** Cursor
);
856 IAG_NoGesture
= 61440,
857 IAG_Scratchout
= 61441,
858 IAG_Triangle
= 61442,
862 IAG_Curlicue
= 61456,
863 IAG_DoubleCurlicue
= 61457,
865 IAG_DoubleCircle
= 61473,
866 IAG_SemiCircleLeft
= 61480,
867 IAG_SemiCircleRight
= 61481,
868 IAG_ChevronUp
= 61488,
869 IAG_ChevronDown
= 61489,
870 IAG_ChevronLeft
= 61490,
871 IAG_ChevronRight
= 61491,
873 IAG_ArrowDown
= 61497,
874 IAG_ArrowLeft
= 61498,
875 IAG_ArrowRight
= 61499,
882 IAG_LeftRight
= 61538,
883 IAG_RightLeft
= 61539,
884 IAG_UpLeftLong
= 61540,
885 IAG_UpRightLong
= 61541,
886 IAG_DownLeftLong
= 61542,
887 IAG_DownRightLong
= 61543,
890 IAG_DownLeft
= 61546,
891 IAG_DownRight
= 61547,
893 IAG_LeftDown
= 61549,
895 IAG_RightDown
= 61551,
896 IAG_Exclamation
= 61604,
898 IAG_DoubleTap
= 61681
899 } InkApplicationGesture
;
902 ICEI_DefaultEvents
= -1,
906 ICEI_NewInAirPackets
,
907 ICEI_CursorButtonDown
,
910 ICEI_CursorOutOfRange
,
920 } InkCollectorEventInterest
;
924 uuid(F0F060B5
-8B1F
-4A7C
-89EC
-880692588A4F
),
928 interface IInkCollector
: IDispatch
{
929 [id(0x00000002), propget] HRESULT hWnd
(
930 [out, retval] long* CurrentWindow
);
931 [id(0x00000002), propput] HRESULT hWnd
([in] long CurrentWindow
);
932 [id(0x00000001), propget] HRESULT Enabled
(
933 [out, retval] VARIANT_BOOL* Collecting
);
934 [id(0x00000001), propput] HRESULT Enabled
(
935 [in] VARIANT_BOOL Collecting
);
936 [id(0x00000005), propget] HRESULT DefaultDrawingAttributes
(
937 [out, retval] IInkDrawingAttributes
** CurrentAttributes
);
938 [id(0x00000005), propputref] HRESULT DefaultDrawingAttributes
(
939 [in] IInkDrawingAttributes
* CurrentAttributes
);
940 [id(0x00000006), propget] HRESULT Renderer
(
941 [out, retval] IInkRenderer
** CurrentInkRenderer
);
942 [id(0x00000006), propputref] HRESULT Renderer
(
943 [in] IInkRenderer
* CurrentInkRenderer
);
944 [id(0x00000007), propget] HRESULT Ink
([out, retval] IInkDisp
** Ink
);
945 [id(0x00000007), propputref] HRESULT Ink
([in] IInkDisp
* Ink
);
946 [id(0x00000008), propget] HRESULT AutoRedraw
(
947 [out, retval] VARIANT_BOOL* AutoRedraw
);
948 [id(0x00000008), propput] HRESULT AutoRedraw
(
949 [in] VARIANT_BOOL AutoRedraw
);
950 [id(0x00000009), propget] HRESULT CollectingInk
(
951 [out, retval] VARIANT_BOOL* Collecting
);
952 [id(0x0000001c), propget] HRESULT CollectionMode
(
953 [out, retval] InkCollectionMode
* Mode
);
954 [id(0x0000001c), propput] HRESULT CollectionMode
(
955 [in] InkCollectionMode Mode
);
956 [id(0x0000001f), propget] HRESULT DynamicRendering
(
957 [out, retval] VARIANT_BOOL* Enabled
);
958 [id(0x0000001f), propput] HRESULT DynamicRendering
(
959 [in] VARIANT_BOOL Enabled
);
960 [id(0x00000020), propget] HRESULT DesiredPacketDescription
(
961 [out, retval] VARIANT* PacketGuids
);
962 [id(0x00000020), propput] HRESULT DesiredPacketDescription
(
963 [in] VARIANT PacketGuids
);
964 [id(0x00000023), propget] HRESULT MouseIcon
(
965 [out, retval] IPictureDisp
** MouseIcon
);
966 [id(0x00000023), propput] HRESULT MouseIcon
(
967 [in] IPictureDisp
* MouseIcon
);
968 [id(0x00000023), propputref] HRESULT MouseIcon
(
969 [in] IPictureDisp
* MouseIcon
);
970 [id(0x00000024), propget] HRESULT MousePointer
(
971 [out, retval] InkMousePointer
* MousePointer
);
972 [id(0x00000024), propput] HRESULT MousePointer
(
973 [in] InkMousePointer MousePointer
);
974 [id(0x00000014), propget] HRESULT Cursors
(
975 [out, retval] IInkCursors
** Cursors
);
976 [id(0x00000015), propget] HRESULT MarginX
(
977 [out, retval] long* MarginX
);
978 [id(0x00000015), propput] HRESULT MarginX
([in] long MarginX
);
979 [id(0x00000016), propget] HRESULT MarginY
(
980 [out, retval] long* MarginY
);
981 [id(0x00000016), propput] HRESULT MarginY
([in] long MarginY
);
982 [id(0x00000019), propget] HRESULT Tablet
(
983 [out, retval] IInkTablet
** SingleTablet
);
984 [id(0x00000026), propget] HRESULT SupportHighContrastInk
(
985 [out, retval] VARIANT_BOOL* Support
);
986 [id(0x00000026), propput] HRESULT SupportHighContrastInk
(
987 [in] VARIANT_BOOL Support
);
988 [id(0x0000001d)] HRESULT SetGestureStatus
(
989 [in] InkApplicationGesture Gesture
,
990 [in] VARIANT_BOOL Listen
);
991 [id(0x0000001e)] HRESULT GetGestureStatus
(
992 [in] InkApplicationGesture Gesture
,
993 [out, retval] VARIANT_BOOL* Listening
);
994 [id(0x00000018)] HRESULT GetWindowInputRectangle
(
995 [in, out] IInkRectangle
** WindowInputRectangle
);
996 [id(0x00000017)] HRESULT SetWindowInputRectangle
(
997 [in] IInkRectangle
* WindowInputRectangle
);
998 [id(0x0000001a)] HRESULT SetAllTabletsMode
(
999 [in, defaultvalue(-1)] VARIANT_BOOL UseMouseForInput
);
1000 [id(0x0000001b)] HRESULT SetSingleTabletIntegratedMode
(
1001 [in] IInkTablet
* Tablet
);
1002 [id(0x0000000b)] HRESULT GetEventInterest
(
1003 [in] InkCollectorEventInterest EventId
,
1004 [out, retval] VARIANT_BOOL* Listen
);
1005 [id(0x0000000a)] HRESULT SetEventInterest
(
1006 [in] InkCollectorEventInterest EventId
,
1007 [in] VARIANT_BOOL Listen
);