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, optional, defaultvalue(0)] single x,
215 [in, optional, 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, optional, 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, optional, 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, optional, defaultvalue(0)] long Index,
370 [in, optional, defaultvalue(-1)] long Count,
371 [out, retval] VARIANT* Points);
372 [id(0x00000017)] HRESULT SetPoints(
374 [in, optional, defaultvalue(0)] long Index,
375 [in, optional, defaultvalue(-1)] long Count,
376 [out, retval] long* NumberOfPointsSet);
377 [id(0x00000018)] HRESULT GetPacketData(
378 [in, optional, defaultvalue(0)] long Index,
379 [in, optional, defaultvalue(-1)] long Count,
380 [out, retval] VARIANT* PacketData);
381 [id(0x00000019)] HRESULT GetPacketValuesByProperty(
382 [in] BSTR propertyName,
383 [in, optional, defaultvalue(0)] long Index,
384 [in, optional, defaultvalue(-1)] long Count,
385 [out, retval] VARIANT* PacketValues);
386 [id(0x0000001a)] HRESULT SetPacketValuesByProperty(
387 [in] BSTR bstrPropertyName,
388 [in] VARIANT PacketValues,
389 [in, optional, defaultvalue(0)] long Index,
390 [in, optional, defaultvalue(-1)] long Count,
391 [out, retval] long* NumberOfPacketsSet);
392 [id(0x0000001b)] HRESULT GetFlattenedBezierPoints(
393 [in, optional, defaultvalue(0)] long FittingError,
394 [out, retval] VARIANT* FlattenedBezierPoints);
395 [id(0x0000001d)] HRESULT Transform(
396 [in] IInkTransform* Transform,
397 [in, optional, 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, optional, defaultvalue(0)] single x,
406 [in, optional, 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, optional, 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, optional, defaultvalue(0)] IInkDrawingAttributes* DrawingAttributes,
718 [out, retval] IInkRectangle** Rectangle);
720 [in] single HorizontalComponent,
721 [in] single VerticalComponent);
724 [in, optional, defaultvalue(0)] single x,
725 [in, optional, defaultvalue(0)] single y);
726 HRESULT ScaleTransform(
727 [in] single HorizontalMultiplier,
728 [in] single VerticalMultiplier,
729 [in, optional, 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, optional, 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);