| /* Copyright (C) 2007 C John Klehm | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| import "oaidl.idl"; | |
| import "ocidl.idl"; | |
| [ | |
| uuid(7D868ACD-1A5D-4A47-A247-F39741353012), | |
| version(1.0) | |
| ] | |
| library MSINKAUTLib | |
| { | |
| importlib("stdole2.tlb"); | |
| typedef float single; | |
| typedef enum InkBoundingBoxMode { | |
| IBBM_Default = 0, | |
| IBBM_NoCurveFit = 1, | |
| IBBM_CurveFit = 2, | |
| IBBM_PointsOnly = 3, | |
| IBBM_Union = 4 | |
| } InkBoundingBoxMode; | |
| typedef enum InkExtractFlags { | |
| IEF_CopyFromOriginal = 0x0, | |
| IEF_RemoveFromOriginal = 0x1, | |
| IEF_Default = IEF_RemoveFromOriginal | |
| } InkExtractFlags; | |
| typedef enum InkPersistenceFormat { | |
| IPF_InkSerializeFormat = 0, | |
| IPF_Base64InkSerializedFormat = 1, | |
| IPF_GIF = 2, | |
| IPF_Base64GIF = 3 | |
| } InkPersistenceFormat; | |
| typedef enum InkPersistenceCompressionMode | |
| { | |
| IPCM_Default = 0, | |
| IPCM_MaximumCompression = 1, | |
| IPCM_NoCompression = 2 | |
| } InkPersistenceCompressionMode; | |
| typedef enum InkPenTip { | |
| IPT_Ball = 0, | |
| IPT_Rectangle = 1 | |
| } InkPenTip; | |
| typedef enum InkRasterOperation { | |
| IRO_Black = 1, | |
| IRO_NotMergePen, | |
| IRO_MaskNotPen, | |
| IRO_NotCopyPen, | |
| IRO_MaskPenNot, | |
| IRO_Not, | |
| IRO_XOrPen, | |
| IRO_NotMaskPen, | |
| IRO_MaskPen, | |
| IRO_NotXOrPen, | |
| IRO_NoOperation, | |
| IRO_MergeNotPen, | |
| IRO_CopyPen, | |
| IRO_MergePenNot, | |
| IRO_MergePen, | |
| IRO_White | |
| } InkRasterOperation; | |
| typedef enum InkClipboardModes { | |
| ICB_Copy = 0, | |
| ICB_Cut = 0x1, | |
| ICB_DelayedCopy = 0x20, | |
| ICB_ExtractOnly = 0x30, | |
| ICB_Default = ICB_Copy | |
| } InkClipboardModes; | |
| typedef enum InkClipboardFormats { | |
| ICF_None = 0, | |
| ICF_InkSerializedFormat = 0x1, | |
| ICF_SketchInk = 0x2, | |
| ICF_TextInk = 0x6, | |
| ICF_EnhancedMetafile = 0x8, | |
| ICF_Metafile = 0x20, | |
| ICF_Bitmap = 0x40, | |
| ICF_PasteMask = 0x7, | |
| ICF_CopyMask = 0x7f, | |
| ICF_Default = ICF_CopyMask | |
| } InkClipboardFormats; | |
| typedef enum InkRecognitionConfidence | |
| { | |
| IRC_Strong = 0, | |
| IRC_Intermediate = 1, | |
| IRC_Poor = 2 | |
| } InkRecognitionConfidence; | |
| [ | |
| odl, | |
| uuid(DB489209-B7C3-411D-90F6-1548CFFF271E), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkExtendedProperty : IDispatch { | |
| [id(0x00000001), propget] HRESULT Guid([out, retval] BSTR* Guid); | |
| [id(0x00000002), propget] HRESULT Data([out, retval] VARIANT* Data); | |
| [id(0x00000002), propput] HRESULT Data([in] VARIANT Data); | |
| }; | |
| [ | |
| odl, | |
| uuid(89F2A8BE-95A9-4530-8B8F-88E971E3E25F), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkExtendedProperties : IDispatch { | |
| HRESULT Count([out, retval] long* Count); | |
| HRESULT _NewEnum([out, retval] IUnknown** _NewEnum); | |
| HRESULT Item( | |
| [in] VARIANT Identifier, | |
| [out, retval] IInkExtendedProperty** Item); | |
| HRESULT Add( | |
| [in] BSTR Guid, | |
| [in] VARIANT Data, | |
| [out, retval] IInkExtendedProperty** InkExtendedProperty); | |
| HRESULT Remove([in] VARIANT Identifier); | |
| HRESULT Clear(); | |
| HRESULT DoesPropertyExist( | |
| [in] BSTR Guid, | |
| [out, retval] VARIANT_BOOL* DoesPropertyExist); | |
| }; | |
| [ | |
| odl, | |
| uuid(BF519B75-0A15-4623-ADC9-C00D436A8092), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkDrawingAttributes : IDispatch { | |
| [id(0x00000002), propget] HRESULT Color( | |
| [out, retval] long* CurrentColor); | |
| [id(0x00000002), propput] HRESULT Color([in] long CurrentColor); | |
| [id(0x00000003), propget] HRESULT Width( | |
| [out, retval] single* CurrentWidth); | |
| [id(0x00000003), propput] HRESULT Width([in] single CurrentWidth); | |
| [id(0x00000001), propget] HRESULT Height( | |
| [out, retval] single* CurrentHeight); | |
| [id(0x00000001), propput] HRESULT Height([in] single CurrentHeight); | |
| [id(0x00000004), propget] HRESULT FitToCurve( | |
| [out, retval] VARIANT_BOOL* Flag); | |
| [id(0x00000004), propput] HRESULT FitToCurve([in] VARIANT_BOOL Flag); | |
| [id(0x00000005), propget] HRESULT IgnorePressure( | |
| [out, retval] VARIANT_BOOL* Flag); | |
| [id(0x00000005), propput] HRESULT IgnorePressure( | |
| [in] VARIANT_BOOL Flag); | |
| [id(0x00000006), propget] HRESULT AntiAliased( | |
| [out, retval] VARIANT_BOOL* Flag); | |
| [id(0x00000006), propput] HRESULT AntiAliased([in] VARIANT_BOOL Flag); | |
| [id(0x00000007), propget] HRESULT Transparency( | |
| [out, retval] long* CurrentTransparency); | |
| [id(0x00000007), propput] HRESULT Transparency( | |
| [in] long CurrentTransparency); | |
| [id(0x00000008), propget] HRESULT RasterOperation( | |
| [out, retval] InkRasterOperation* CurrentRasterOperation); | |
| [id(0x00000008), propput] HRESULT RasterOperation( | |
| [in] InkRasterOperation CurrentRasterOperation); | |
| [id(0x00000009), propget] HRESULT PenTip( | |
| [out, retval] InkPenTip* CurrentPenTip); | |
| [id(0x00000009), propput] HRESULT PenTip([in] InkPenTip CurrentPenTip); | |
| [id(0x0000000b), propget] HRESULT ExtendedProperties( | |
| [out, retval] IInkExtendedProperties** Properties); | |
| [id(0x0000000a)] HRESULT Clone( | |
| [out, retval] IInkDrawingAttributes** DrawingAttributes); | |
| }; | |
| cpp_quote("#ifndef _WINGDI_") | |
| /* already defined in wingdi.h but needed for WIDL */ | |
| typedef struct tagXFORM { | |
| single eM11; | |
| single eM12; | |
| single eM21; | |
| single eM22; | |
| single eDx; | |
| single eDy; | |
| } XFORM; | |
| cpp_quote("#endif /* _WINGDI_ */") | |
| [ | |
| odl, | |
| uuid(615F1D43-8703-4565-88E2-8201D2ECD7B7), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkTransform : IDispatch { | |
| [id(0x00000001)] HRESULT Reset(); | |
| [id(0x00000002)] HRESULT Translate( | |
| [in] single HorizontalComponent, | |
| [in] single VerticalComponent); | |
| [id(0x00000003)] HRESULT Rotate( | |
| [in] single Degrees, | |
| [in, optional, defaultvalue(0)] single x, | |
| [in, optional, defaultvalue(0)] single y); | |
| [id(0x00000004)] HRESULT Reflect( | |
| [in] VARIANT_BOOL Horizontally, | |
| [in] VARIANT_BOOL Vertically); | |
| [id(0x00000005)] HRESULT Shear( | |
| [in] single HorizontalComponent, | |
| [in] single VerticalComponent); | |
| [id(0x00000006)] HRESULT ScaleTransform( | |
| [in] single HorizontalMultiplier, | |
| [in] single VerticalMultiplier); | |
| [id(0x0000000d)] HRESULT GetTransform( | |
| [out] single* eM11, | |
| [out] single* eM12, | |
| [out] single* eM21, | |
| [out] single* eM22, | |
| [out] single* eDx, | |
| [out] single* eDy); | |
| [id(0x0000000e)] HRESULT SetTransform( | |
| [in] single eM11, | |
| [in] single eM12, | |
| [in] single eM21, | |
| [in] single eM22, | |
| [in] single eDx, | |
| [in] single eDy); | |
| [id(0x00000007), propget, hidden] HRESULT eM11( | |
| [out, retval] single* Value); | |
| [id(0x00000007), propput, hidden] HRESULT eM11([in] single Value); | |
| [id(0x00000008), propget, hidden] HRESULT eM12( | |
| [out, retval] single* Value); | |
| [id(0x00000008), propput, hidden] HRESULT eM12([in] single Value); | |
| [id(0x00000009), propget, hidden] HRESULT eM21( | |
| [out, retval] single* Value); | |
| [id(0x00000009), propput, hidden] HRESULT eM21([in] single Value); | |
| [id(0x0000000a), propget, hidden] HRESULT eM22( | |
| [out, retval] single* Value); | |
| [id(0x0000000a), propput, hidden] HRESULT eM22([in] single Value); | |
| [id(0x0000000b), propget, hidden] HRESULT eDx( | |
| [out, retval] single* Value); | |
| [id(0x0000000b), propput, hidden] HRESULT eDx([in] single Value); | |
| [id(0x0000000c), propget, hidden] HRESULT eDy( | |
| [out, retval] single* Value); | |
| [id(0x0000000c), propput, hidden] HRESULT eDy([in] single Value); | |
| [id(0x0000000f), propget, hidden] HRESULT Data( | |
| [out, retval] XFORM* XFORM); | |
| [id(0x0000000f), propput, hidden] HRESULT Data([in] XFORM XFORM); | |
| }; | |
| interface IInkDisp; | |
| [ | |
| odl, | |
| uuid(9794FF82-6071-4717-8A8B-6AC7C64A686E), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkRectangle | |
| { | |
| [id(1), propget] HRESULT Top([out, retval] long* Units); | |
| [id(1), propput] HRESULT Top([in] long Units); | |
| [id(2), propget] HRESULT Left([out, retval] long* Units); | |
| [id(2), propput] HRESULT Left([in] long Units); | |
| [id(3), propget] HRESULT Bottom([out, retval] long* Units); | |
| [id(3), propput] HRESULT Bottom([in] long Units); | |
| [id(4), propget] HRESULT Right([out, retval] long* Units); | |
| [id(4), propput] HRESULT Right([in] long Units); | |
| [id(7), propget] HRESULT Data([out, retval] RECT* Rect); | |
| [id(7), propput] HRESULT Data([in] RECT Rect); | |
| [id(5)] HRESULT GetRectangle( | |
| [out] long* Top, | |
| [out] long* Left, | |
| [out] long* Bottom, | |
| [out] long* Right); | |
| [id(6)] HRESULT SetRectangle( | |
| [in] long Top, | |
| [in] long Left, | |
| [in] long Bottom, | |
| [in] long Right); | |
| }; | |
| interface IInkStrokes; | |
| typedef enum { | |
| TPMU_Default, | |
| TPMU_Inches, | |
| TPMU_Centimeters, | |
| TPMU_Degrees, | |
| TPMU_Radians, | |
| TPMU_Seconds, | |
| TPMU_Pounds, | |
| TPMU_Grams | |
| } TabletPropertyMetricUnit; | |
| [ | |
| odl, | |
| uuid(43242FEA-91D1-4A72-963E-FBB91829CFA2), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkStrokeDisp : IDispatch { | |
| [id(0x00000002), propget] HRESULT Id([out, retval] long* Id); | |
| [id(0x0000000d), propget] HRESULT BezierPoints( | |
| [out, retval] VARIANT* Points); | |
| [id(0x00000004), propget] HRESULT DrawingAttributes( | |
| [out, retval] IInkDrawingAttributes** DrawAttrs); | |
| [id(0x00000004), propputref] HRESULT DrawingAttributes( | |
| [in] IInkDrawingAttributes* DrawAttrs); | |
| [id(0x0000000c), propget] HRESULT Ink([out, retval] IInkDisp** Ink); | |
| [id(0x0000000b), propget] HRESULT ExtendedProperties( | |
| [out, retval] IInkExtendedProperties** Properties); | |
| [id(0x0000000e), propget] HRESULT PolylineCusps( | |
| [out, retval] VARIANT* Cusps); | |
| [id(0x0000000f), propget] HRESULT BezierCusps( | |
| [out, retval] VARIANT* Cusps); | |
| [id(0x00000010), propget] HRESULT SelfIntersections( | |
| [out, retval] VARIANT* Intersections); | |
| [id(0x00000011), propget] HRESULT PacketCount( | |
| [out, retval] long* plCount); | |
| [id(0x00000012), propget] HRESULT PacketSize( | |
| [out, retval] long* plSize); | |
| [id(0x00000013), propget] HRESULT PacketDescription( | |
| [out, retval] VARIANT* PacketDescription); | |
| [id(0x00000014), propget] HRESULT Deleted( | |
| [out, retval] VARIANT_BOOL* Deleted); | |
| [id(0x00000003)] HRESULT GetBoundingBox( | |
| [in, optional, defaultvalue(0)] InkBoundingBoxMode BoundingBoxMode, | |
| [out, retval] IInkRectangle** Rectangle); | |
| [id(0x00000005)] HRESULT FindIntersections( | |
| [in] IInkStrokes* Strokes, | |
| [out, retval] VARIANT* Intersections); | |
| [id(0x00000006)] HRESULT GetRectangleIntersections( | |
| [in] IInkRectangle* Rectangle, | |
| [out, retval] VARIANT* Intersections); | |
| [id(0x00000007)] HRESULT Clip( | |
| [in] IInkRectangle* Rectangle); | |
| [id(0x00000008)] HRESULT HitTestCircle( | |
| [in] long x, | |
| [in] long y, | |
| [in] single radius, | |
| [out, retval] VARIANT_BOOL* Intersects); | |
| [id(0x00000009)] HRESULT NearestPoint( | |
| [in] long x, | |
| [in] long y, | |
| [in, out, optional, defaultvalue(0)] single* Distance, | |
| [out, retval] single* Point); | |
| [id(0x0000000a)] HRESULT Split( | |
| [in] single SplitAt, | |
| [out, retval] IInkStrokeDisp** NewStroke); | |
| [id(0x00000015)] HRESULT GetPacketDescriptionPropertyMetrics( | |
| [in] BSTR propertyName, | |
| [out] long* Minimum, | |
| [out] long* Maximum, | |
| [out] TabletPropertyMetricUnit* Units, | |
| [out] single* Resolution); | |
| [id(0x00000016)] HRESULT GetPoints( | |
| [in, optional, defaultvalue(0)] long Index, | |
| [in, optional, defaultvalue(-1)] long Count, | |
| [out, retval] VARIANT* Points); | |
| [id(0x00000017)] HRESULT SetPoints( | |
| [in] VARIANT Points, | |
| [in, optional, defaultvalue(0)] long Index, | |
| [in, optional, defaultvalue(-1)] long Count, | |
| [out, retval] long* NumberOfPointsSet); | |
| [id(0x00000018)] HRESULT GetPacketData( | |
| [in, optional, defaultvalue(0)] long Index, | |
| [in, optional, defaultvalue(-1)] long Count, | |
| [out, retval] VARIANT* PacketData); | |
| [id(0x00000019)] HRESULT GetPacketValuesByProperty( | |
| [in] BSTR propertyName, | |
| [in, optional, defaultvalue(0)] long Index, | |
| [in, optional, defaultvalue(-1)] long Count, | |
| [out, retval] VARIANT* PacketValues); | |
| [id(0x0000001a)] HRESULT SetPacketValuesByProperty( | |
| [in] BSTR bstrPropertyName, | |
| [in] VARIANT PacketValues, | |
| [in, optional, defaultvalue(0)] long Index, | |
| [in, optional, defaultvalue(-1)] long Count, | |
| [out, retval] long* NumberOfPacketsSet); | |
| [id(0x0000001b)] HRESULT GetFlattenedBezierPoints( | |
| [in, optional, defaultvalue(0)] long FittingError, | |
| [out, retval] VARIANT* FlattenedBezierPoints); | |
| [id(0x0000001d)] HRESULT Transform( | |
| [in] IInkTransform* Transform, | |
| [in, optional, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth); | |
| [id(0x0000001c)] HRESULT ScaleToRectangle( | |
| [in] IInkRectangle* Rectangle); | |
| [id(0x0000001e)] HRESULT Move( | |
| [in] single HorizontalComponent, | |
| [in] single VerticalComponent); | |
| [id(0x0000001f)] HRESULT Rotate( | |
| [in] single Degrees, | |
| [in, optional, defaultvalue(0)] single x, | |
| [in, optional, defaultvalue(0)] single y); | |
| [id(0x00000020)] HRESULT Shear( | |
| [in] single HorizontalMultiplier, | |
| [in] single VerticalMultiplier); | |
| [id(0x00000021)] HRESULT ScaleTransform( | |
| [in] single HorizontalMultiplier, | |
| [in] single VerticalMultiplier); | |
| }; | |
| interface IInkRecognitionResult; | |
| [ | |
| odl, | |
| uuid(F1F4C9D8-590A-4963-B3AE-1935671BB6F3), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkStrokes : IDispatch { | |
| [propget] HRESULT Count( | |
| [out, retval] long *Count); | |
| [propget, restricted] HRESULT _NewEnum( | |
| [out, retval] IUnknown **_NewEnum); | |
| [propget] HRESULT Ink( | |
| [out, retval] IInkDisp **Ink); | |
| [propget] HRESULT RecognitionResult( | |
| [out, retval] IInkRecognitionResult **RecognitionResult); | |
| HRESULT ToString( | |
| [out, retval] BSTR *ToString); | |
| HRESULT Item( | |
| [in] long Index, | |
| [out, retval] IInkStrokeDisp **Stroke); | |
| HRESULT Add( | |
| [in] IInkStrokeDisp *InkStroke); | |
| HRESULT AddStrokes( | |
| [in] IInkStrokes *InkStrokes); | |
| HRESULT Remove( | |
| [in] IInkStrokeDisp *InkStroke); | |
| HRESULT RemoveStrokes( | |
| [in] IInkStrokes *InkStrokes); | |
| HRESULT ModifyDrawingAttributes( | |
| [in] IInkDrawingAttributes *DrawAttrs); | |
| HRESULT GetBoundingBox( | |
| [in] InkBoundingBoxMode BoundingBoxMode, | |
| [out, retval] IInkRectangle **BoundingBox); | |
| HRESULT Transform( | |
| [in] IInkTransform *Transform, | |
| [in] VARIANT_BOOL ApplyOnPenWidth); | |
| HRESULT ScaleToRectangle( | |
| [in] IInkRectangle *Rectangle); | |
| HRESULT Move( | |
| [in] float HorizontalComponent, | |
| [in] float VerticalComponent); | |
| HRESULT Rotate( | |
| [in] float Degrees, | |
| [in] float x, | |
| [in] float y); | |
| HRESULT Shear( | |
| [in] float HorizontalMultiplier, | |
| [in] float VerticalMultiplier); | |
| HRESULT ScaleTransform( | |
| [in] float HorizontalMultiplier, | |
| [in] float VerticalMultiplier); | |
| HRESULT Clip( | |
| [in] IInkRectangle *Rectangle); | |
| HRESULT RemoveRecognitionResult(); | |
| }; | |
| [ | |
| odl, | |
| uuid(7E23A88F-C30E-420f-9BDB-28902543F0C1), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCustomStrokes : IDispatch { | |
| [propget] HRESULT Count( | |
| [out, retval] long *Count); | |
| [propget] HRESULT _NewEnum( | |
| [out, retval] IUnknown **_NewEnum); | |
| HRESULT Item( | |
| [in] VARIANT Identifier, | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT Add( | |
| [in] BSTR Name, | |
| [in] IInkStrokes *Strokes); | |
| HRESULT Remove( | |
| [in] VARIANT Identifier); | |
| HRESULT Clear(); | |
| }; | |
| interface IInkRecognitionAlternate; | |
| interface IInkRecognitionAlternates; | |
| [ | |
| odl, | |
| uuid(3BC129A8-86CD-45ad-BDE8-E0D32D61C16D), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkRecognitionResult : IDispatch { | |
| [propget] HRESULT TopString( | |
| [out, retval] BSTR *TopString); | |
| [propget] HRESULT TopAlternate( | |
| [out, retval] IInkRecognitionAlternate **TopAlternate); | |
| [propget] HRESULT TopConfidence( | |
| [out, retval] InkRecognitionConfidence *TopConfidence); | |
| [propget] HRESULT Strokes( | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT AlternatesFromSelection( | |
| [in] long selectionStart, | |
| [in] long selectionLength, | |
| [in] long maximumAlternates, | |
| [out, retval] IInkRecognitionAlternates **AlternatesFromSelection); | |
| HRESULT ModifyTopAlternate( | |
| [in] IInkRecognitionAlternate *Alternate); | |
| HRESULT SetResultOnStrokes(); | |
| }; | |
| [ | |
| odl, | |
| uuid(B7E660AD-77E4-429b-ADDA-873780D1FC4A), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkRecognitionAlternate : IDispatch { | |
| [propget] HRESULT String( | |
| [out, retval] BSTR *RecoString); | |
| [propget] HRESULT Confidence( | |
| [out, retval] InkRecognitionConfidence *Confidence); | |
| [propget] HRESULT Baseline( | |
| [out, retval] VARIANT *Baseline); | |
| [propget] HRESULT Midline( | |
| [out, retval] VARIANT *Midline); | |
| [propget] HRESULT Ascender( | |
| [out, retval] VARIANT *Ascender); | |
| [propget] HRESULT Descender( | |
| [out, retval] VARIANT *Descender); | |
| [propget] HRESULT LineNumber( | |
| [out, retval] long *LineNumber); | |
| [propget] HRESULT Strokes( | |
| [out, retval] IInkStrokes **Strokes); | |
| [propget] HRESULT LineAlternates( | |
| [out, retval] IInkRecognitionAlternates **LineAlternates); | |
| [propget] HRESULT ConfidenceAlternates( | |
| [out, retval] IInkRecognitionAlternates **ConfidenceAlternates); | |
| HRESULT GetStrokesFromStrokeRanges( | |
| [in] IInkStrokes *Stroke, | |
| [out, retval] IInkStrokes **GetStrokesFromTextRange); | |
| HRESULT GetStrokesFromTextRange( | |
| [in, out] long *selectionStart, | |
| [in, out] long *selectionLength, | |
| [out, retval] IInkStrokes **GetStrokesFromTextRange); | |
| HRESULT GetTextRangeFromStrokes( | |
| [in] IInkStrokes *Strokes, | |
| [in, out] long *selectionStart, | |
| [in, out] long *selectionLength); | |
| HRESULT AlternatesWithConstantPropertyValues( | |
| [in] BSTR PropertyType, | |
| [out, retval] IInkRecognitionAlternates **AlternatesWithConstantPropertyValues); | |
| HRESULT GetPropertyValue( | |
| [in] BSTR PropertyType, | |
| [out, retval] VARIANT *PropertyValue); | |
| }; | |
| [ | |
| odl, | |
| uuid(286A167F-9F19-4c61-9D53-4F07BE622B84), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkRecognitionAlternates : IDispatch { | |
| [propget] HRESULT Count( | |
| [out, retval] long *Count); | |
| [propget, restricted] HRESULT _NewEnum( | |
| [out, retval] IUnknown **_NewEnum); | |
| [propget] HRESULT Strokes( | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT Item( | |
| [in] long Index, | |
| [out, retval] IInkRecognitionAlternate **InkRecoAlternate); | |
| }; | |
| [ | |
| odl, | |
| uuid(9D398FA0-C4E2-4fcd-9973-975CAAF47EA6), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkDisp : IDispatch { | |
| [propget] HRESULT Strokes( | |
| [out, retval] IInkStrokes **Strokes); | |
| [propget] HRESULT ExtendedProperties( | |
| [out, retval] IInkExtendedProperties **Properties); | |
| [propget] HRESULT Dirty( | |
| [out, retval] VARIANT_BOOL *Dirty); | |
| [propput] HRESULT Dirty( | |
| [in] VARIANT_BOOL Dirty); | |
| [propget] HRESULT CustomStrokes( | |
| [out, retval] IInkCustomStrokes **CustomStrokes); | |
| HRESULT GetBoundingBox( | |
| [in] InkBoundingBoxMode BoundingBoxMode, | |
| [out] IInkRectangle **Rectangle); | |
| HRESULT DeleteStrokes( | |
| [in, unique] IInkStrokes *Strokes); | |
| HRESULT DeleteStroke( | |
| [in] IInkStrokeDisp *Stroke); | |
| HRESULT ExtractStrokes( | |
| [in] IInkStrokes *Strokes, | |
| [in] InkExtractFlags ExtractFlags, | |
| [out, retval] IInkDisp **ExtractedInk); | |
| HRESULT ExtractWithRectangle( | |
| [in] IInkRectangle *Rectangle, | |
| [in] InkExtractFlags ExtractFlags, | |
| [out, retval] IInkDisp **ExtractedInk); | |
| HRESULT Clip( | |
| [in] IInkRectangle *Rectangle); | |
| HRESULT Clone( | |
| [out, retval] IInkDisp **NewInk); | |
| HRESULT HitTestCircle( | |
| [in] long X, | |
| [in] long Y, | |
| [in] float radius, | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT HitTestWithRectangle( | |
| [in] IInkRectangle *SelectionRectangle, | |
| [in] float IntersectPercent, | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT HitTestWithLasso( | |
| [in] VARIANT Points, | |
| [in] float IntersectPercent, | |
| [in, out, unique] VARIANT *LassoPoints, | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT NearestPoint( | |
| [in] long X, | |
| [in] long Y, | |
| [in, out] float *PointOnStroke, | |
| [in, out] float *DistanceFromPacket, | |
| [out, retval] IInkStrokeDisp **Stroke); | |
| HRESULT CreateStrokes( | |
| [in] VARIANT StrokeIds, | |
| [out, retval] IInkStrokes **Strokes); | |
| HRESULT AddStrokesAtRectangle( | |
| [in] IInkStrokes *SourceStrokes, | |
| [in] IInkRectangle *TargetRectangle); | |
| HRESULT Save( | |
| [in] InkPersistenceFormat PersistenceFormat, | |
| [in] InkPersistenceCompressionMode CompressionMode, | |
| [out, retval] VARIANT *Data); | |
| HRESULT Load( | |
| [in] VARIANT Data); | |
| HRESULT CreateStroke( | |
| [in] VARIANT PacketData, | |
| [in] VARIANT PacketDescription, | |
| [out, retval] IInkStrokeDisp **Stroke); | |
| HRESULT ClipboardCopyWithRectangle( | |
| [in] IInkRectangle *Rectangle, | |
| [in] InkClipboardFormats ClipboardFormats, | |
| [in] InkClipboardModes ClipboardModes, | |
| [out, retval] IDataObject **DataObject); | |
| HRESULT ClipboardCopy( | |
| [in] IInkStrokes *strokes, | |
| [in] InkClipboardFormats ClipboardFormats, | |
| [in] InkClipboardModes ClipboardModes, | |
| [out, retval] IDataObject **DataObject); | |
| HRESULT CanPaste( | |
| [in] IDataObject *DataObject, | |
| [out, retval] VARIANT_BOOL *CanPaste); | |
| HRESULT ClipboardPaste( | |
| [in] long x, | |
| [in] long y, | |
| [in, unique] IDataObject *DataObject, | |
| [out, retval] IInkStrokes **Strokes); | |
| }; | |
| [ | |
| odl, | |
| uuid(E6257A9C-B511-4F4C-A8B0-A7DBC9506B83), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkRenderer : IDispatch { | |
| HRESULT GetViewTransform([in] IInkTransform* ViewTransform); | |
| HRESULT SetViewTransform([in] IInkTransform* ViewTransform); | |
| HRESULT GetObjectTransform([in] IInkTransform* ObjectTransform); | |
| HRESULT SetObjectTransform([in] IInkTransform* ObjectTransform); | |
| HRESULT Draw( | |
| [in] long hDC, | |
| [in] IInkStrokes* Strokes); | |
| HRESULT DrawStroke( | |
| [in] long hDC, | |
| [in] IInkStrokeDisp* Stroke, | |
| [in, optional, defaultvalue(0)] | |
| IInkDrawingAttributes* DrawingAttributes); | |
| HRESULT PixelToInkSpace( | |
| [in] long hDC, | |
| [in, out] long* x, | |
| [in, out] long* y); | |
| HRESULT InkSpaceToPixel( | |
| [in] long hdcDisplay, | |
| [in, out] long* x, | |
| [in, out] long* y); | |
| HRESULT PixelToInkSpaceFromPoints( | |
| [in] long hDC, | |
| [in, out] VARIANT* Points); | |
| HRESULT InkSpaceToPixelFromPoints( | |
| [in] long hDC, | |
| [in, out] VARIANT* Points); | |
| HRESULT Measure( | |
| [in] IInkStrokes* Strokes, | |
| [out, retval] IInkRectangle** Rectangle); | |
| HRESULT MeasureStroke( | |
| [in] IInkStrokeDisp* Stroke, | |
| [in, optional, defaultvalue(0)] IInkDrawingAttributes* DrawingAttributes, | |
| [out, retval] IInkRectangle** Rectangle); | |
| HRESULT Move( | |
| [in] single HorizontalComponent, | |
| [in] single VerticalComponent); | |
| HRESULT Rotate( | |
| [in] single Degrees, | |
| [in, optional, defaultvalue(0)] single x, | |
| [in, optional, defaultvalue(0)] single y); | |
| HRESULT ScaleTransform( | |
| [in] single HorizontalMultiplier, | |
| [in] single VerticalMultiplier, | |
| [in, optional, defaultvalue(-1)] VARIANT_BOOL ApplyOnPenWidth); | |
| }; | |
| typedef enum { | |
| ICM_InkOnly, | |
| ICM_GestureOnly, | |
| ICM_InkAndGesture | |
| } InkCollectionMode; | |
| typedef enum { | |
| IMP_Default, | |
| IMP_Arrow, | |
| IMP_Crosshair, | |
| IMP_Ibeam, | |
| IMP_SizeNESW, | |
| IMP_SizeNS, | |
| IMP_SizeNWSE, | |
| IMP_SizeWE, | |
| IMP_UpArrow, | |
| IMP_Hourglass, | |
| IMP_NoDrop, | |
| IMP_ArrowHourglass, | |
| IMP_ArrowQuestion, | |
| IMP_SizeAll, | |
| IMP_Hand, | |
| IMP_Custom = 99 | |
| } InkMousePointer; | |
| typedef enum { | |
| THWC_Integrated = 1, | |
| THWC_CursorMustTouch = 2, | |
| THWC_HardProximity = 4, | |
| THWC_CursorsHavePhysicalIds = 8 | |
| } TabletHardwareCapabilities; | |
| [ | |
| odl, | |
| uuid(2DE25EAA-6EF8-42D5-AEE9-185BC81B912D), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkTablet : IDispatch { | |
| [propget] HRESULT Name([out, retval] BSTR* Name); | |
| [propget] HRESULT PlugAndPlayId([out, retval] BSTR* Id); | |
| [propget] HRESULT MaximumInputRectangle([out, retval] IInkRectangle** Rectangle); | |
| [propget] HRESULT HardwareCapabilities( | |
| [out, retval] TabletHardwareCapabilities* Capabilities); | |
| HRESULT IsPacketPropertySupported( | |
| [in] BSTR packetPropertyName, | |
| [out, retval] VARIANT_BOOL* Supported); | |
| HRESULT GetPropertyMetrics( | |
| [in] BSTR propertyName, | |
| [out] long* Minimum, | |
| [out] long* Maximum, | |
| [out] TabletPropertyMetricUnit* Units, | |
| [out] single* Resolution); | |
| }; | |
| typedef enum { | |
| ICBS_Unavailable, | |
| ICBS_Up, | |
| ICBS_Down | |
| } InkCursorButtonState; | |
| [ | |
| odl, | |
| uuid(85EF9417-1D59-49B2-A13C-702C85430894), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCursorButton : IDispatch { | |
| [propget] HRESULT Name([out, retval] BSTR* Name); | |
| [propget] HRESULT Id([out, retval] BSTR* Id); | |
| [propget] HRESULT State([out, retval] InkCursorButtonState* CurrentState); | |
| }; | |
| [ | |
| odl, | |
| uuid(3671CC40-B624-4671-9FA0-DB119D952D54), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCursorButtons : IDispatch { | |
| [propget] HRESULT Count([out, retval] long* Count); | |
| [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum); | |
| HRESULT Item( | |
| [in] VARIANT Identifier, | |
| [out, retval] IInkCursorButton** Button); | |
| }; | |
| [ | |
| odl, | |
| uuid(AD30C630-40C5-4350-8405-9C71012FC558), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCursor : IDispatch { | |
| [id(0x00000000), propget] HRESULT Name([out, retval] BSTR* Name); | |
| [id(0x00000001), propget] HRESULT Id([out, retval] long* Id); | |
| [id(0x00000004), propget] HRESULT Inverted( | |
| [out, retval] VARIANT_BOOL* Status); | |
| [id(0x00000002), propget] HRESULT DrawingAttributes( | |
| [out, retval] IInkDrawingAttributes** Attributes); | |
| [id(0x00000002), propputref] HRESULT DrawingAttributes( | |
| [in] IInkDrawingAttributes* Attributes); | |
| [id(0x00000005), propget] HRESULT Tablet( | |
| [out, retval] IInkTablet** Tablet); | |
| [id(0x00000003), propget] HRESULT Buttons( | |
| [out, retval] IInkCursorButtons** Buttons); | |
| }; | |
| [ | |
| odl, | |
| uuid(A248C1AC-C698-4E06-9E5C-D57F77C7E647), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCursors : IDispatch { | |
| [propget] HRESULT Count([out, retval] long* Count); | |
| [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum); | |
| HRESULT Item( | |
| [in] long Index, | |
| [out, retval] IInkCursor** Cursor); | |
| }; | |
| typedef enum { | |
| IAG_AllGestures = 0, | |
| IAG_NoGesture = 61440, | |
| IAG_Scratchout = 61441, | |
| IAG_Triangle = 61442, | |
| IAG_Square = 61443, | |
| IAG_Star = 61444, | |
| IAG_Check = 61445, | |
| IAG_Curlicue = 61456, | |
| IAG_DoubleCurlicue = 61457, | |
| IAG_Circle = 61472, | |
| IAG_DoubleCircle = 61473, | |
| IAG_SemiCircleLeft = 61480, | |
| IAG_SemiCircleRight = 61481, | |
| IAG_ChevronUp = 61488, | |
| IAG_ChevronDown = 61489, | |
| IAG_ChevronLeft = 61490, | |
| IAG_ChevronRight = 61491, | |
| IAG_ArrowUp = 61496, | |
| IAG_ArrowDown = 61497, | |
| IAG_ArrowLeft = 61498, | |
| IAG_ArrowRight = 61499, | |
| IAG_Up = 61528, | |
| IAG_Down = 61529, | |
| IAG_Left = 61530, | |
| IAG_Right = 61531, | |
| IAG_UpDown = 61536, | |
| IAG_DownUp = 61537, | |
| IAG_LeftRight = 61538, | |
| IAG_RightLeft = 61539, | |
| IAG_UpLeftLong = 61540, | |
| IAG_UpRightLong = 61541, | |
| IAG_DownLeftLong = 61542, | |
| IAG_DownRightLong = 61543, | |
| IAG_UpLeft = 61544, | |
| IAG_UpRight = 61545, | |
| IAG_DownLeft = 61546, | |
| IAG_DownRight = 61547, | |
| IAG_LeftUp = 61548, | |
| IAG_LeftDown = 61549, | |
| IAG_RightUp = 61550, | |
| IAG_RightDown = 61551, | |
| IAG_Exclamation = 61604, | |
| IAG_Tap = 61680, | |
| IAG_DoubleTap = 61681 | |
| } InkApplicationGesture; | |
| typedef enum { | |
| ICEI_DefaultEvents = -1, | |
| ICEI_CursorDown = 0, | |
| ICEI_Stroke, | |
| ICEI_NewPackets, | |
| ICEI_NewInAirPackets, | |
| ICEI_CursorButtonDown, | |
| ICEI_CursorButtonUp, | |
| ICEI_CursorInRange, | |
| ICEI_CursorOutOfRange, | |
| ICEI_SystemGesture, | |
| ICEI_TabletAdded, | |
| ICEI_TabletRemoved, | |
| ICEI_MouseDown, | |
| ICEI_MouseMove, | |
| ICEI_MouseUp, | |
| ICEI_MouseWheel, | |
| ICEI_DblClick, | |
| ICEI_AllEvents | |
| } InkCollectorEventInterest; | |
| [ | |
| odl, | |
| uuid(F0F060B5-8B1F-4A7C-89EC-880692588A4F), | |
| dual, | |
| oleautomation | |
| ] | |
| interface IInkCollector : IDispatch { | |
| [id(0x00000002), propget] HRESULT hWnd( | |
| [out, retval] long* CurrentWindow); | |
| [id(0x00000002), propput] HRESULT hWnd([in] long CurrentWindow); | |
| [id(0x00000001), propget] HRESULT Enabled( | |
| [out, retval] VARIANT_BOOL* Collecting); | |
| [id(0x00000001), propput] HRESULT Enabled( | |
| [in] VARIANT_BOOL Collecting); | |
| [id(0x00000005), propget] HRESULT DefaultDrawingAttributes( | |
| [out, retval] IInkDrawingAttributes** CurrentAttributes); | |
| [id(0x00000005), propputref] HRESULT DefaultDrawingAttributes( | |
| [in] IInkDrawingAttributes* CurrentAttributes); | |
| [id(0x00000006), propget] HRESULT Renderer( | |
| [out, retval] IInkRenderer** CurrentInkRenderer); | |
| [id(0x00000006), propputref] HRESULT Renderer( | |
| [in] IInkRenderer* CurrentInkRenderer); | |
| [id(0x00000007), propget] HRESULT Ink([out, retval] IInkDisp** Ink); | |
| [id(0x00000007), propputref] HRESULT Ink([in] IInkDisp* Ink); | |
| [id(0x00000008), propget] HRESULT AutoRedraw( | |
| [out, retval] VARIANT_BOOL* AutoRedraw); | |
| [id(0x00000008), propput] HRESULT AutoRedraw( | |
| [in] VARIANT_BOOL AutoRedraw); | |
| [id(0x00000009), propget] HRESULT CollectingInk( | |
| [out, retval] VARIANT_BOOL* Collecting); | |
| [id(0x0000001c), propget] HRESULT CollectionMode( | |
| [out, retval] InkCollectionMode* Mode); | |
| [id(0x0000001c), propput] HRESULT CollectionMode( | |
| [in] InkCollectionMode Mode); | |
| [id(0x0000001f), propget] HRESULT DynamicRendering( | |
| [out, retval] VARIANT_BOOL* Enabled); | |
| [id(0x0000001f), propput] HRESULT DynamicRendering( | |
| [in] VARIANT_BOOL Enabled); | |
| [id(0x00000020), propget] HRESULT DesiredPacketDescription( | |
| [out, retval] VARIANT* PacketGuids); | |
| [id(0x00000020), propput] HRESULT DesiredPacketDescription( | |
| [in] VARIANT PacketGuids); | |
| [id(0x00000023), propget] HRESULT MouseIcon( | |
| [out, retval] IPictureDisp** MouseIcon); | |
| [id(0x00000023), propput] HRESULT MouseIcon( | |
| [in] IPictureDisp* MouseIcon); | |
| [id(0x00000023), propputref] HRESULT MouseIcon( | |
| [in] IPictureDisp* MouseIcon); | |
| [id(0x00000024), propget] HRESULT MousePointer( | |
| [out, retval] InkMousePointer* MousePointer); | |
| [id(0x00000024), propput] HRESULT MousePointer( | |
| [in] InkMousePointer MousePointer); | |
| [id(0x00000014), propget] HRESULT Cursors( | |
| [out, retval] IInkCursors** Cursors); | |
| [id(0x00000015), propget] HRESULT MarginX( | |
| [out, retval] long* MarginX); | |
| [id(0x00000015), propput] HRESULT MarginX([in] long MarginX); | |
| [id(0x00000016), propget] HRESULT MarginY( | |
| [out, retval] long* MarginY); | |
| [id(0x00000016), propput] HRESULT MarginY([in] long MarginY); | |
| [id(0x00000019), propget] HRESULT Tablet( | |
| [out, retval] IInkTablet** SingleTablet); | |
| [id(0x00000026), propget] HRESULT SupportHighContrastInk( | |
| [out, retval] VARIANT_BOOL* Support); | |
| [id(0x00000026), propput] HRESULT SupportHighContrastInk( | |
| [in] VARIANT_BOOL Support); | |
| [id(0x0000001d)] HRESULT SetGestureStatus( | |
| [in] InkApplicationGesture Gesture, | |
| [in] VARIANT_BOOL Listen); | |
| [id(0x0000001e)] HRESULT GetGestureStatus( | |
| [in] InkApplicationGesture Gesture, | |
| [out, retval] VARIANT_BOOL* Listening); | |
| [id(0x00000018)] HRESULT GetWindowInputRectangle( | |
| [in, out] IInkRectangle** WindowInputRectangle); | |
| [id(0x00000017)] HRESULT SetWindowInputRectangle( | |
| [in] IInkRectangle* WindowInputRectangle); | |
| [id(0x0000001a)] HRESULT SetAllTabletsMode( | |
| [in, optional, defaultvalue(-1)] VARIANT_BOOL UseMouseForInput); | |
| [id(0x0000001b)] HRESULT SetSingleTabletIntegratedMode( | |
| [in] IInkTablet* Tablet); | |
| [id(0x0000000b)] HRESULT GetEventInterest( | |
| [in] InkCollectorEventInterest EventId, | |
| [out, retval] VARIANT_BOOL* Listen); | |
| [id(0x0000000a)] HRESULT SetEventInterest( | |
| [in] InkCollectorEventInterest EventId, | |
| [in] VARIANT_BOOL Listen); | |
| }; | |
| }; |