msinkaut.idl 31 KB

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