ReactOS Fundraising Campaign 2012
 
€ 3,873 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

msinkaut.idl
Go to the documentation of this file.
00001 /* Copyright (C) 2007 C John Klehm
00002  *
00003  * This library is free software; you can redistribute it and/or
00004  * modify it under the terms of the GNU Lesser General Public
00005  * License as published by the Free Software Foundation; either
00006  * version 2.1 of the License, or (at your option) any later version.
00007  *
00008  * This library is distributed in the hope that it will be useful,
00009  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011  * Lesser General Public License for more details.
00012  *
00013  * You should have received a copy of the GNU Lesser General Public
00014  * License along with this library; if not, write to the Free Software
00015  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00016  */
00017 
00018 import "oaidl.idl";
00019 import "ocidl.idl";
00020 
00021 [
00022     uuid(7D868ACD-1A5D-4A47-A247-F39741353012),
00023     version(1.0)
00024 ]
00025 library MSINKAUTLib
00026 {
00027     importlib("stdole2.tlb");
00028 
00029     typedef float single;
00030 
00031     typedef enum InkBoundingBoxMode {
00032         IBBM_Default = 0,
00033         IBBM_NoCurveFit = 1,
00034         IBBM_CurveFit = 2,
00035         IBBM_PointsOnly = 3,
00036         IBBM_Union = 4
00037     } InkBoundingBoxMode;
00038 
00039     typedef enum InkExtractFlags {
00040         IEF_CopyFromOriginal = 0x0,
00041         IEF_RemoveFromOriginal = 0x1,
00042         IEF_Default = IEF_RemoveFromOriginal
00043     } InkExtractFlags;
00044 
00045     typedef enum InkPersistenceFormat {
00046         IPF_InkSerializeFormat = 0,
00047         IPF_Base64InkSerializedFormat = 1,
00048         IPF_GIF = 2,
00049         IPF_Base64GIF = 3
00050     } InkPersistenceFormat;
00051 
00052     typedef enum InkPersistenceCompressionMode
00053     {
00054         IPCM_Default = 0,
00055         IPCM_MaximumCompression = 1,
00056         IPCM_NoCompression = 2
00057     } InkPersistenceCompressionMode;
00058 
00059     typedef enum InkPenTip {
00060         IPT_Ball = 0,
00061         IPT_Rectangle = 1
00062     } InkPenTip;
00063 
00064     typedef enum InkRasterOperation {
00065         IRO_Black = 1,
00066         IRO_NotMergePen,
00067         IRO_MaskNotPen,
00068         IRO_NotCopyPen,
00069         IRO_MaskPenNot,
00070         IRO_Not,
00071         IRO_XOrPen,
00072         IRO_NotMaskPen,
00073         IRO_MaskPen,
00074         IRO_NotXOrPen,
00075         IRO_NoOperation,
00076         IRO_MergeNotPen,
00077         IRO_CopyPen,
00078         IRO_MergePenNot,
00079         IRO_MergePen,
00080         IRO_White
00081     } InkRasterOperation;
00082 
00083     typedef enum InkClipboardModes {
00084         ICB_Copy = 0,
00085         ICB_Cut = 0x1,
00086         ICB_DelayedCopy = 0x20,
00087         ICB_ExtractOnly = 0x30,
00088         ICB_Default = ICB_Copy
00089     } InkClipboardModes;
00090 
00091     typedef enum InkClipboardFormats {
00092         ICF_None = 0,
00093         ICF_InkSerializedFormat = 0x1,
00094         ICF_SketchInk = 0x2,
00095         ICF_TextInk = 0x6,
00096         ICF_EnhancedMetafile = 0x8,
00097         ICF_Metafile = 0x20,
00098         ICF_Bitmap = 0x40,
00099         ICF_PasteMask = 0x7,
00100         ICF_CopyMask = 0x7f,
00101         ICF_Default = ICF_CopyMask
00102     } InkClipboardFormats;
00103 
00104     typedef enum InkRecognitionConfidence
00105     {
00106         IRC_Strong = 0,
00107         IRC_Intermediate = 1,
00108         IRC_Poor = 2
00109     } InkRecognitionConfidence;
00110 
00111     [
00112         odl,
00113         uuid(DB489209-B7C3-411D-90F6-1548CFFF271E),
00114         dual,
00115         oleautomation
00116     ]
00117     interface IInkExtendedProperty : IDispatch {
00118         [id(0x00000001), propget] HRESULT Guid([out, retval] BSTR* Guid);
00119         [id(0x00000002), propget] HRESULT Data([out, retval] VARIANT* Data);
00120         [id(0x00000002), propput] HRESULT Data([in] VARIANT Data);
00121     };
00122 
00123     [
00124         odl,
00125         uuid(89F2A8BE-95A9-4530-8B8F-88E971E3E25F),
00126         dual,
00127         oleautomation
00128     ]
00129     interface IInkExtendedProperties : IDispatch {
00130         HRESULT Count([out, retval] long* Count);
00131         HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
00132         HRESULT Item(
00133             [in] VARIANT Identifier,
00134             [out, retval] IInkExtendedProperty** Item);
00135         HRESULT Add(
00136             [in] BSTR Guid,
00137             [in] VARIANT Data,
00138             [out, retval] IInkExtendedProperty** InkExtendedProperty);
00139         HRESULT Remove([in] VARIANT Identifier);
00140         HRESULT Clear();
00141         HRESULT DoesPropertyExist(
00142             [in] BSTR Guid,
00143             [out, retval] VARIANT_BOOL* DoesPropertyExist);
00144     };
00145 
00146     [
00147         odl,
00148         uuid(BF519B75-0A15-4623-ADC9-C00D436A8092),
00149         dual,
00150         oleautomation
00151     ]
00152     interface IInkDrawingAttributes : IDispatch {
00153         [id(0x00000002), propget] HRESULT Color(
00154             [out, retval] long* CurrentColor);
00155         [id(0x00000002), propput] HRESULT Color([in] long CurrentColor);
00156         [id(0x00000003), propget] HRESULT Width(
00157             [out, retval] single* CurrentWidth);
00158         [id(0x00000003), propput] HRESULT Width([in] single CurrentWidth);
00159         [id(0x00000001), propget] HRESULT Height(
00160             [out, retval] single* CurrentHeight);
00161         [id(0x00000001), propput] HRESULT Height([in] single CurrentHeight);
00162         [id(0x00000004), propget] HRESULT FitToCurve(
00163             [out, retval] VARIANT_BOOL* Flag);
00164         [id(0x00000004), propput] HRESULT FitToCurve([in] VARIANT_BOOL Flag);
00165         [id(0x00000005), propget] HRESULT IgnorePressure(
00166             [out, retval] VARIANT_BOOL* Flag);
00167         [id(0x00000005), propput] HRESULT IgnorePressure(
00168             [in] VARIANT_BOOL Flag);
00169         [id(0x00000006), propget] HRESULT AntiAliased(
00170             [out, retval] VARIANT_BOOL* Flag);
00171         [id(0x00000006), propput] HRESULT AntiAliased([in] VARIANT_BOOL Flag);
00172         [id(0x00000007), propget] HRESULT Transparency(
00173             [out, retval] long* CurrentTransparency);
00174         [id(0x00000007), propput] HRESULT Transparency(
00175             [in] long CurrentTransparency);
00176         [id(0x00000008), propget] HRESULT RasterOperation(
00177             [out, retval] InkRasterOperation* CurrentRasterOperation);
00178         [id(0x00000008), propput] HRESULT RasterOperation(
00179             [in] InkRasterOperation CurrentRasterOperation);
00180         [id(0x00000009), propget] HRESULT PenTip(
00181             [out, retval] InkPenTip* CurrentPenTip);
00182         [id(0x00000009), propput] HRESULT PenTip([in] InkPenTip CurrentPenTip);
00183         [id(0x0000000b), propget] HRESULT ExtendedProperties(
00184             [out, retval] IInkExtendedProperties** Properties);
00185         [id(0x0000000a)]          HRESULT Clone(
00186             [out, retval] IInkDrawingAttributes** DrawingAttributes);
00187     };
00188 
00189 cpp_quote("#ifndef _WINGDI_")
00190 /* already defined in wingdi.h but needed for WIDL */
00191     typedef struct tagXFORM {
00192         single eM11;
00193         single eM12;
00194         single eM21;
00195         single eM22;
00196         single eDx;
00197         single eDy;
00198     } XFORM;
00199 cpp_quote("#endif /* _WINGDI_ */")
00200 
00201     [
00202         odl,
00203         uuid(615F1D43-8703-4565-88E2-8201D2ECD7B7),
00204         dual,
00205         oleautomation
00206     ]
00207     interface IInkTransform : IDispatch {
00208         [id(0x00000001)] HRESULT Reset();
00209         [id(0x00000002)] HRESULT Translate(
00210             [in] single HorizontalComponent,
00211             [in] single VerticalComponent);
00212         [id(0x00000003)] HRESULT Rotate(
00213             [in] single Degrees,
00214             [in, optional, defaultvalue(0)] single x,
00215             [in, optional, defaultvalue(0)] single y);
00216         [id(0x00000004)] HRESULT Reflect(
00217             [in] VARIANT_BOOL Horizontally,
00218             [in] VARIANT_BOOL Vertically);
00219         [id(0x00000005)] HRESULT Shear(
00220             [in] single HorizontalComponent,
00221             [in] single VerticalComponent);
00222         [id(0x00000006)] HRESULT ScaleTransform(
00223             [in] single HorizontalMultiplier,
00224             [in] single VerticalMultiplier);
00225         [id(0x0000000d)] HRESULT GetTransform(
00226             [out] single* eM11,
00227             [out] single* eM12,
00228             [out] single* eM21,
00229             [out] single* eM22,
00230             [out] single* eDx,
00231             [out] single* eDy);
00232         [id(0x0000000e)] HRESULT SetTransform(
00233             [in] single eM11,
00234             [in] single eM12,
00235             [in] single eM21,
00236             [in] single eM22,
00237             [in] single eDx,
00238             [in] single eDy);
00239         [id(0x00000007), propget, hidden] HRESULT eM11(
00240             [out, retval] single* Value);
00241         [id(0x00000007), propput, hidden] HRESULT eM11([in] single Value);
00242         [id(0x00000008), propget, hidden] HRESULT eM12(
00243             [out, retval] single* Value);
00244         [id(0x00000008), propput, hidden] HRESULT eM12([in] single Value);
00245         [id(0x00000009), propget, hidden] HRESULT eM21(
00246             [out, retval] single* Value);
00247         [id(0x00000009), propput, hidden] HRESULT eM21([in] single Value);
00248         [id(0x0000000a), propget, hidden] HRESULT eM22(
00249             [out, retval] single* Value);
00250         [id(0x0000000a), propput, hidden] HRESULT eM22([in] single Value);
00251         [id(0x0000000b), propget, hidden] HRESULT eDx(
00252             [out, retval] single* Value);
00253         [id(0x0000000b), propput, hidden] HRESULT eDx([in] single Value);
00254         [id(0x0000000c), propget, hidden] HRESULT eDy(
00255             [out, retval] single* Value);
00256         [id(0x0000000c), propput, hidden] HRESULT eDy([in] single Value);
00257         [id(0x0000000f), propget, hidden] HRESULT Data(
00258             [out, retval] XFORM* XFORM);
00259         [id(0x0000000f), propput, hidden] HRESULT Data([in] XFORM XFORM);
00260     };
00261 
00262     interface IInkDisp;
00263 
00264     [
00265         odl,
00266         uuid(9794FF82-6071-4717-8A8B-6AC7C64A686E),
00267         dual,
00268         oleautomation
00269     ]
00270     interface IInkRectangle
00271     {
00272         [id(1), propget] HRESULT Top([out, retval] long* Units);
00273         [id(1), propput] HRESULT Top([in] long Units);
00274         [id(2), propget] HRESULT Left([out, retval] long* Units);
00275         [id(2), propput] HRESULT Left([in] long Units);
00276         [id(3), propget] HRESULT Bottom([out, retval] long* Units);
00277         [id(3), propput] HRESULT Bottom([in] long Units);
00278         [id(4), propget] HRESULT Right([out, retval] long* Units);
00279         [id(4), propput] HRESULT Right([in] long Units);
00280         [id(7), propget] HRESULT Data([out, retval] RECT* Rect);
00281         [id(7), propput] HRESULT Data([in] RECT Rect);
00282         [id(5)] HRESULT GetRectangle(
00283             [out] long* Top,
00284             [out] long* Left,
00285             [out] long* Bottom,
00286             [out] long* Right);
00287         [id(6)] HRESULT SetRectangle(
00288             [in] long Top,
00289             [in] long Left,
00290             [in] long Bottom,
00291             [in] long Right);
00292     };
00293 
00294     interface IInkStrokes;
00295 
00296     typedef enum {
00297         TPMU_Default,
00298         TPMU_Inches,
00299         TPMU_Centimeters,
00300         TPMU_Degrees,
00301         TPMU_Radians,
00302         TPMU_Seconds,
00303         TPMU_Pounds,
00304         TPMU_Grams
00305     } TabletPropertyMetricUnit;
00306 
00307     [
00308         odl,
00309         uuid(43242FEA-91D1-4A72-963E-FBB91829CFA2),
00310         dual,
00311         oleautomation
00312     ]
00313     interface IInkStrokeDisp : IDispatch {
00314         [id(0x00000002), propget]    HRESULT Id([out, retval] long* Id);
00315         [id(0x0000000d), propget]    HRESULT BezierPoints(
00316             [out, retval] VARIANT* Points);
00317         [id(0x00000004), propget]    HRESULT DrawingAttributes(
00318             [out, retval] IInkDrawingAttributes** DrawAttrs);
00319         [id(0x00000004), propputref] HRESULT DrawingAttributes(
00320             [in] IInkDrawingAttributes* DrawAttrs);
00321         [id(0x0000000c), propget]    HRESULT Ink([out, retval] IInkDisp** Ink);
00322         [id(0x0000000b), propget]    HRESULT ExtendedProperties(
00323             [out, retval] IInkExtendedProperties** Properties);
00324         [id(0x0000000e), propget]    HRESULT PolylineCusps(
00325             [out, retval] VARIANT* Cusps);
00326         [id(0x0000000f), propget]    HRESULT BezierCusps(
00327             [out, retval] VARIANT* Cusps);
00328         [id(0x00000010), propget]    HRESULT SelfIntersections(
00329             [out, retval] VARIANT* Intersections);
00330         [id(0x00000011), propget]    HRESULT PacketCount(
00331             [out, retval] long* plCount);
00332         [id(0x00000012), propget]    HRESULT PacketSize(
00333             [out, retval] long* plSize);
00334         [id(0x00000013), propget]    HRESULT PacketDescription(
00335             [out, retval] VARIANT* PacketDescription);
00336         [id(0x00000014), propget]    HRESULT Deleted(
00337             [out, retval] VARIANT_BOOL* Deleted);
00338         [id(0x00000003)]             HRESULT GetBoundingBox(
00339             [in, optional, defaultvalue(0)] InkBoundingBoxMode BoundingBoxMode,
00340             [out, retval] IInkRectangle** Rectangle);
00341         [id(0x00000005)]             HRESULT FindIntersections(
00342             [in] IInkStrokes* Strokes,
00343             [out, retval] VARIANT* Intersections);
00344         [id(0x00000006)]             HRESULT GetRectangleIntersections(
00345             [in] IInkRectangle* Rectangle,
00346             [out, retval] VARIANT* Intersections);
00347         [id(0x00000007)]             HRESULT Clip(
00348             [in] IInkRectangle* Rectangle);
00349         [id(0x00000008)]             HRESULT HitTestCircle(
00350             [in] long x,
00351             [in] long y,
00352             [in] single radius,
00353             [out, retval] VARIANT_BOOL* Intersects);
00354         [id(0x00000009)]             HRESULT NearestPoint(
00355             [in] long x,
00356             [in] long y,
00357             [in, out, optional, defaultvalue(0)] single* Distance,
00358             [out, retval] single* Point);
00359         [id(0x0000000a)]             HRESULT Split(
00360             [in] single SplitAt,
00361             [out, retval] IInkStrokeDisp** NewStroke);
00362         [id(0x00000015)]             HRESULT GetPacketDescriptionPropertyMetrics(
00363             [in] BSTR propertyName,
00364             [out] long* Minimum,
00365             [out] long* Maximum,
00366             [out] TabletPropertyMetricUnit* Units,
00367             [out] single* Resolution);
00368         [id(0x00000016)]             HRESULT GetPoints(
00369             [in, optional, defaultvalue(0)] long Index,
00370             [in, optional, defaultvalue(-1)] long Count,
00371             [out, retval] VARIANT* Points);
00372         [id(0x00000017)]             HRESULT SetPoints(
00373             [in] VARIANT Points,
00374             [in, optional, defaultvalue(0)] long Index,
00375             [in, optional, defaultvalue(-1)] long Count,
00376             [out, retval] long* NumberOfPointsSet);
00377         [id(0x00000018)]             HRESULT GetPacketData(
00378             [in, optional, defaultvalue(0)] long Index,
00379             [in, optional, defaultvalue(-1)] long Count,
00380             [out, retval] VARIANT* PacketData);
00381         [id(0x00000019)]             HRESULT GetPacketValuesByProperty(
00382             [in] BSTR propertyName,
00383             [in, optional, defaultvalue(0)] long Index,
00384             [in, optional, defaultvalue(-1)] long Count,
00385             [out, retval] VARIANT* PacketValues);
00386         [id(0x0000001a)]             HRESULT SetPacketValuesByProperty(
00387             [in] BSTR bstrPropertyName,
00388             [in] VARIANT PacketValues,
00389             [in, optional, defaultvalue(0)] long Index,
00390             [in, optional, defaultvalue(-1)] long Count,
00391             [out, retval] long* NumberOfPacketsSet);
00392         [id(0x0000001b)]             HRESULT GetFlattenedBezierPoints(
00393             [in, optional, defaultvalue(0)] long FittingError,
00394             [out, retval] VARIANT* FlattenedBezierPoints);
00395         [id(0x0000001d)]             HRESULT Transform(
00396             [in] IInkTransform* Transform,
00397             [in, optional, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth);
00398         [id(0x0000001c)]             HRESULT ScaleToRectangle(
00399             [in] IInkRectangle* Rectangle);
00400         [id(0x0000001e)]             HRESULT Move(
00401             [in] single HorizontalComponent,
00402             [in] single VerticalComponent);
00403         [id(0x0000001f)]             HRESULT Rotate(
00404             [in] single Degrees,
00405             [in, optional, defaultvalue(0)] single x,
00406             [in, optional, defaultvalue(0)] single y);
00407         [id(0x00000020)]             HRESULT Shear(
00408             [in] single HorizontalMultiplier,
00409             [in] single VerticalMultiplier);
00410         [id(0x00000021)]             HRESULT ScaleTransform(
00411             [in] single HorizontalMultiplier,
00412             [in] single VerticalMultiplier);
00413     };
00414 
00415     interface IInkRecognitionResult;
00416 
00417     [
00418         odl,
00419         uuid(F1F4C9D8-590A-4963-B3AE-1935671BB6F3),
00420         dual,
00421         oleautomation
00422     ]
00423     interface IInkStrokes : IDispatch {
00424         [propget]                   HRESULT Count(
00425             [out, retval] long *Count);
00426         [propget, restricted]       HRESULT _NewEnum(
00427             [out, retval] IUnknown **_NewEnum);
00428         [propget]                   HRESULT Ink(
00429             [out, retval] IInkDisp **Ink);
00430         [propget]                   HRESULT RecognitionResult(
00431             [out, retval] IInkRecognitionResult **RecognitionResult);
00432         HRESULT ToString(
00433             [out, retval] BSTR *ToString);
00434         HRESULT Item(
00435             [in] long Index,
00436             [out, retval] IInkStrokeDisp **Stroke);
00437         HRESULT Add(
00438             [in] IInkStrokeDisp *InkStroke);
00439         HRESULT AddStrokes(
00440             [in] IInkStrokes *InkStrokes);
00441         HRESULT Remove(
00442             [in] IInkStrokeDisp *InkStroke);
00443         HRESULT RemoveStrokes(
00444             [in] IInkStrokes *InkStrokes);
00445         HRESULT ModifyDrawingAttributes(
00446             [in] IInkDrawingAttributes *DrawAttrs);
00447         HRESULT GetBoundingBox(
00448             [in] InkBoundingBoxMode BoundingBoxMode,
00449             [out, retval] IInkRectangle **BoundingBox);
00450         HRESULT Transform(
00451             [in] IInkTransform *Transform,
00452             [in] VARIANT_BOOL ApplyOnPenWidth);
00453         HRESULT ScaleToRectangle(
00454             [in] IInkRectangle *Rectangle);
00455         HRESULT Move(
00456             [in] float HorizontalComponent,
00457             [in] float VerticalComponent);
00458         HRESULT Rotate(
00459             [in] float Degrees,
00460             [in] float x,
00461             [in] float y);
00462         HRESULT Shear(
00463             [in] float HorizontalMultiplier,
00464             [in] float VerticalMultiplier);
00465         HRESULT ScaleTransform(
00466             [in] float HorizontalMultiplier,
00467             [in] float VerticalMultiplier);
00468         HRESULT Clip(
00469             [in] IInkRectangle *Rectangle);
00470         HRESULT RemoveRecognitionResult();
00471     };
00472 
00473     [
00474         odl,
00475         uuid(7E23A88F-C30E-420f-9BDB-28902543F0C1),
00476         dual,
00477         oleautomation
00478     ]
00479     interface IInkCustomStrokes : IDispatch {
00480         [propget]               HRESULT Count(
00481             [out, retval] long *Count);
00482         [propget]               HRESULT _NewEnum(
00483             [out, retval] IUnknown **_NewEnum);
00484         HRESULT Item(
00485             [in] VARIANT Identifier,
00486             [out, retval] IInkStrokes **Strokes);
00487         HRESULT Add(
00488             [in] BSTR Name,
00489             [in] IInkStrokes *Strokes);
00490         HRESULT Remove(
00491             [in] VARIANT Identifier);
00492         HRESULT Clear();
00493     };
00494 
00495     interface IInkRecognitionAlternate;
00496     interface IInkRecognitionAlternates;
00497 
00498     [
00499         odl,
00500         uuid(3BC129A8-86CD-45ad-BDE8-E0D32D61C16D),
00501         dual,
00502         oleautomation
00503     ]
00504     interface IInkRecognitionResult : IDispatch {
00505         [propget]               HRESULT TopString(
00506             [out, retval] BSTR *TopString);
00507         [propget]               HRESULT TopAlternate(
00508             [out, retval] IInkRecognitionAlternate **TopAlternate);
00509         [propget]               HRESULT TopConfidence(
00510             [out, retval] InkRecognitionConfidence *TopConfidence);
00511         [propget]               HRESULT Strokes(
00512             [out, retval] IInkStrokes **Strokes);
00513         HRESULT AlternatesFromSelection(
00514             [in] long selectionStart,
00515             [in] long selectionLength,
00516             [in] long maximumAlternates,
00517             [out, retval] IInkRecognitionAlternates **AlternatesFromSelection);
00518         HRESULT ModifyTopAlternate(
00519             [in] IInkRecognitionAlternate *Alternate);
00520         HRESULT SetResultOnStrokes();
00521     };
00522 
00523     [
00524         odl,
00525         uuid(B7E660AD-77E4-429b-ADDA-873780D1FC4A),
00526         dual,
00527         oleautomation
00528     ]
00529     interface IInkRecognitionAlternate : IDispatch {
00530         [propget]               HRESULT String(
00531             [out, retval] BSTR *RecoString);
00532         [propget]               HRESULT Confidence(
00533             [out, retval] InkRecognitionConfidence *Confidence);
00534         [propget]               HRESULT Baseline(
00535             [out, retval] VARIANT *Baseline);
00536         [propget]               HRESULT Midline(
00537             [out, retval] VARIANT *Midline);
00538         [propget]               HRESULT Ascender(
00539             [out, retval] VARIANT *Ascender);
00540         [propget]               HRESULT Descender(
00541             [out, retval] VARIANT *Descender);
00542         [propget]               HRESULT LineNumber(
00543             [out, retval] long *LineNumber);
00544         [propget]               HRESULT Strokes(
00545             [out, retval] IInkStrokes **Strokes);
00546         [propget]               HRESULT LineAlternates(
00547             [out, retval] IInkRecognitionAlternates **LineAlternates);
00548         [propget]               HRESULT ConfidenceAlternates(
00549             [out, retval] IInkRecognitionAlternates **ConfidenceAlternates);
00550         HRESULT GetStrokesFromStrokeRanges(
00551             [in] IInkStrokes *Stroke,
00552             [out, retval] IInkStrokes **GetStrokesFromTextRange);
00553         HRESULT GetStrokesFromTextRange(
00554             [in, out] long *selectionStart,
00555             [in, out] long *selectionLength,
00556             [out, retval] IInkStrokes **GetStrokesFromTextRange);
00557         HRESULT GetTextRangeFromStrokes(
00558             [in] IInkStrokes *Strokes,
00559             [in, out] long *selectionStart,
00560             [in, out] long *selectionLength);
00561         HRESULT AlternatesWithConstantPropertyValues(
00562             [in] BSTR PropertyType,
00563             [out, retval] IInkRecognitionAlternates **AlternatesWithConstantPropertyValues);
00564         HRESULT GetPropertyValue(
00565             [in] BSTR PropertyType,
00566             [out, retval] VARIANT *PropertyValue);
00567     };
00568 
00569     [
00570         odl,
00571         uuid(286A167F-9F19-4c61-9D53-4F07BE622B84),
00572         dual,
00573         oleautomation
00574     ]
00575     interface IInkRecognitionAlternates : IDispatch {
00576     [propget]                   HRESULT Count(
00577         [out, retval] long *Count);
00578     [propget, restricted]       HRESULT _NewEnum(
00579         [out, retval] IUnknown **_NewEnum);
00580     [propget]                   HRESULT Strokes(
00581         [out, retval] IInkStrokes **Strokes);
00582     HRESULT Item(
00583         [in] long Index,
00584         [out, retval] IInkRecognitionAlternate **InkRecoAlternate);
00585     };
00586 
00587     [
00588         odl,
00589         uuid(9D398FA0-C4E2-4fcd-9973-975CAAF47EA6),
00590         dual,
00591         oleautomation
00592     ]
00593     interface IInkDisp : IDispatch {
00594         [propget]               HRESULT Strokes(
00595             [out, retval] IInkStrokes **Strokes);
00596         [propget]               HRESULT ExtendedProperties(
00597             [out, retval] IInkExtendedProperties **Properties);
00598         [propget]               HRESULT Dirty(
00599             [out, retval] VARIANT_BOOL *Dirty);
00600         [propput]               HRESULT Dirty(
00601             [in] VARIANT_BOOL Dirty);
00602         [propget]               HRESULT CustomStrokes(
00603             [out, retval] IInkCustomStrokes **CustomStrokes);
00604         HRESULT GetBoundingBox(
00605             [in] InkBoundingBoxMode BoundingBoxMode,
00606             [out] IInkRectangle **Rectangle);
00607         HRESULT DeleteStrokes(
00608             [in, unique] IInkStrokes *Strokes);
00609         HRESULT DeleteStroke(
00610             [in] IInkStrokeDisp *Stroke);
00611         HRESULT ExtractStrokes(
00612             [in] IInkStrokes *Strokes,
00613             [in] InkExtractFlags ExtractFlags,
00614             [out, retval] IInkDisp **ExtractedInk);
00615         HRESULT ExtractWithRectangle(
00616             [in] IInkRectangle *Rectangle,
00617             [in] InkExtractFlags ExtractFlags,
00618             [out, retval] IInkDisp **ExtractedInk);
00619         HRESULT Clip(
00620             [in] IInkRectangle *Rectangle);
00621         HRESULT Clone(
00622             [out, retval] IInkDisp **NewInk);
00623         HRESULT HitTestCircle(
00624             [in] long X,
00625             [in] long Y,
00626             [in] float radius,
00627             [out, retval] IInkStrokes **Strokes);
00628         HRESULT HitTestWithRectangle(
00629             [in] IInkRectangle *SelectionRectangle,
00630             [in] float IntersectPercent,
00631             [out, retval] IInkStrokes **Strokes);
00632         HRESULT HitTestWithLasso(
00633             [in] VARIANT Points,
00634             [in] float IntersectPercent,
00635             [in, out, unique] VARIANT *LassoPoints,
00636             [out, retval] IInkStrokes **Strokes);
00637         HRESULT NearestPoint(
00638             [in] long X,
00639             [in] long Y,
00640             [in, out] float *PointOnStroke,
00641             [in, out] float *DistanceFromPacket,
00642             [out, retval] IInkStrokeDisp **Stroke);
00643         HRESULT CreateStrokes(
00644             [in] VARIANT StrokeIds,
00645             [out, retval] IInkStrokes **Strokes);
00646         HRESULT AddStrokesAtRectangle(
00647             [in] IInkStrokes *SourceStrokes,
00648             [in] IInkRectangle *TargetRectangle);
00649         HRESULT Save(
00650             [in] InkPersistenceFormat PersistenceFormat,
00651             [in] InkPersistenceCompressionMode CompressionMode,
00652             [out, retval] VARIANT *Data);
00653         HRESULT Load(
00654             [in] VARIANT Data);
00655         HRESULT CreateStroke(
00656             [in] VARIANT PacketData,
00657             [in] VARIANT PacketDescription,
00658             [out, retval] IInkStrokeDisp **Stroke);
00659         HRESULT ClipboardCopyWithRectangle(
00660             [in] IInkRectangle *Rectangle,
00661             [in] InkClipboardFormats ClipboardFormats,
00662             [in] InkClipboardModes ClipboardModes,
00663             [out, retval] IDataObject **DataObject);
00664         HRESULT ClipboardCopy(
00665             [in] IInkStrokes *strokes,
00666             [in] InkClipboardFormats ClipboardFormats,
00667             [in] InkClipboardModes ClipboardModes,
00668             [out, retval] IDataObject **DataObject);
00669         HRESULT CanPaste(
00670             [in] IDataObject *DataObject,
00671             [out, retval] VARIANT_BOOL *CanPaste);
00672         HRESULT ClipboardPaste(
00673             [in] long x,
00674             [in] long y,
00675             [in, unique] IDataObject *DataObject,
00676             [out, retval] IInkStrokes **Strokes);
00677     };
00678 
00679     [
00680         odl,
00681         uuid(E6257A9C-B511-4F4C-A8B0-A7DBC9506B83),
00682         dual,
00683         oleautomation
00684     ]
00685     interface IInkRenderer : IDispatch {
00686         HRESULT GetViewTransform([in] IInkTransform* ViewTransform);
00687         HRESULT SetViewTransform([in] IInkTransform* ViewTransform);
00688         HRESULT GetObjectTransform([in] IInkTransform* ObjectTransform);
00689         HRESULT SetObjectTransform([in] IInkTransform* ObjectTransform);
00690         HRESULT Draw(
00691             [in] long hDC,
00692             [in] IInkStrokes* Strokes);
00693         HRESULT DrawStroke(
00694             [in] long hDC,
00695             [in] IInkStrokeDisp* Stroke,
00696             [in, optional, defaultvalue(0)]
00697             IInkDrawingAttributes* DrawingAttributes);
00698         HRESULT PixelToInkSpace(
00699             [in] long hDC,
00700             [in, out] long* x,
00701             [in, out] long* y);
00702         HRESULT InkSpaceToPixel(
00703             [in] long hdcDisplay,
00704             [in, out] long* x,
00705             [in, out] long* y);
00706         HRESULT PixelToInkSpaceFromPoints(
00707             [in] long hDC,
00708             [in, out] VARIANT* Points);
00709         HRESULT InkSpaceToPixelFromPoints(
00710             [in] long hDC,
00711             [in, out] VARIANT* Points);
00712         HRESULT Measure(
00713             [in] IInkStrokes* Strokes,
00714             [out, retval] IInkRectangle** Rectangle);
00715         HRESULT MeasureStroke(
00716             [in] IInkStrokeDisp* Stroke,
00717             [in, optional, defaultvalue(0)] IInkDrawingAttributes* DrawingAttributes,
00718             [out, retval] IInkRectangle** Rectangle);
00719         HRESULT Move(
00720             [in] single HorizontalComponent,
00721             [in] single VerticalComponent);
00722         HRESULT Rotate(
00723             [in] single Degrees,
00724             [in, optional, defaultvalue(0)] single x,
00725             [in, optional, defaultvalue(0)] single y);
00726         HRESULT ScaleTransform(
00727             [in] single HorizontalMultiplier,
00728             [in] single VerticalMultiplier,
00729             [in, optional, defaultvalue(-1)] VARIANT_BOOL ApplyOnPenWidth);
00730     };
00731 
00732     typedef enum {
00733         ICM_InkOnly,
00734         ICM_GestureOnly,
00735         ICM_InkAndGesture
00736     } InkCollectionMode;
00737 
00738     typedef enum {
00739         IMP_Default,
00740         IMP_Arrow,
00741         IMP_Crosshair,
00742         IMP_Ibeam,
00743         IMP_SizeNESW,
00744         IMP_SizeNS,
00745         IMP_SizeNWSE,
00746         IMP_SizeWE,
00747         IMP_UpArrow,
00748         IMP_Hourglass,
00749         IMP_NoDrop,
00750         IMP_ArrowHourglass,
00751         IMP_ArrowQuestion,
00752         IMP_SizeAll,
00753         IMP_Hand,
00754         IMP_Custom = 99
00755     } InkMousePointer;
00756 
00757     typedef enum {
00758         THWC_Integrated = 1,
00759         THWC_CursorMustTouch = 2,
00760         THWC_HardProximity = 4,
00761         THWC_CursorsHavePhysicalIds = 8
00762     } TabletHardwareCapabilities;
00763 
00764     [
00765         odl,
00766         uuid(2DE25EAA-6EF8-42D5-AEE9-185BC81B912D),
00767         dual,
00768         oleautomation
00769     ]
00770     interface IInkTablet : IDispatch {
00771         [propget] HRESULT Name([out, retval] BSTR* Name);
00772         [propget] HRESULT PlugAndPlayId([out, retval] BSTR* Id);
00773         [propget] HRESULT MaximumInputRectangle([out, retval] IInkRectangle** Rectangle);
00774         [propget] HRESULT HardwareCapabilities(
00775             [out, retval] TabletHardwareCapabilities* Capabilities);
00776         HRESULT IsPacketPropertySupported(
00777             [in] BSTR packetPropertyName,
00778             [out, retval] VARIANT_BOOL* Supported);
00779         HRESULT GetPropertyMetrics(
00780             [in] BSTR propertyName,
00781             [out] long* Minimum,
00782             [out] long* Maximum,
00783             [out] TabletPropertyMetricUnit* Units,
00784             [out] single* Resolution);
00785     };
00786 
00787     typedef enum {
00788         ICBS_Unavailable,
00789         ICBS_Up,
00790         ICBS_Down
00791     } InkCursorButtonState;
00792 
00793     [
00794         odl,
00795         uuid(85EF9417-1D59-49B2-A13C-702C85430894),
00796         dual,
00797         oleautomation
00798     ]
00799     interface IInkCursorButton : IDispatch {
00800         [propget] HRESULT Name([out, retval] BSTR* Name);
00801         [propget] HRESULT Id([out, retval] BSTR* Id);
00802         [propget] HRESULT State([out, retval] InkCursorButtonState* CurrentState);
00803     };
00804 
00805     [
00806         odl,
00807         uuid(3671CC40-B624-4671-9FA0-DB119D952D54),
00808         dual,
00809         oleautomation
00810     ]
00811     interface IInkCursorButtons : IDispatch {
00812         [propget] HRESULT Count([out, retval] long* Count);
00813         [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
00814         HRESULT Item(
00815             [in] VARIANT Identifier,
00816             [out, retval] IInkCursorButton** Button);
00817     };
00818 
00819     [
00820         odl,
00821         uuid(AD30C630-40C5-4350-8405-9C71012FC558),
00822         dual,
00823         oleautomation
00824     ]
00825     interface IInkCursor : IDispatch {
00826         [id(0x00000000), propget]    HRESULT Name([out, retval] BSTR* Name);
00827         [id(0x00000001), propget]    HRESULT Id([out, retval] long* Id);
00828         [id(0x00000004), propget]    HRESULT Inverted(
00829             [out, retval] VARIANT_BOOL* Status);
00830         [id(0x00000002), propget]    HRESULT DrawingAttributes(
00831             [out, retval] IInkDrawingAttributes** Attributes);
00832         [id(0x00000002), propputref] HRESULT DrawingAttributes(
00833             [in] IInkDrawingAttributes* Attributes);
00834         [id(0x00000005), propget]    HRESULT Tablet(
00835             [out, retval] IInkTablet** Tablet);
00836         [id(0x00000003), propget]    HRESULT Buttons(
00837             [out, retval] IInkCursorButtons** Buttons);
00838     };
00839 
00840     [
00841         odl,
00842         uuid(A248C1AC-C698-4E06-9E5C-D57F77C7E647),
00843         dual,
00844         oleautomation
00845     ]
00846     interface IInkCursors : IDispatch {
00847         [propget] HRESULT Count([out, retval] long* Count);
00848         [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
00849         HRESULT Item(
00850             [in] long Index,
00851             [out, retval] IInkCursor** Cursor);
00852     };
00853 
00854     typedef enum {
00855         IAG_AllGestures = 0,
00856         IAG_NoGesture = 61440,
00857         IAG_Scratchout = 61441,
00858         IAG_Triangle = 61442,
00859         IAG_Square = 61443,
00860         IAG_Star = 61444,
00861         IAG_Check = 61445,
00862         IAG_Curlicue = 61456,
00863         IAG_DoubleCurlicue = 61457,
00864         IAG_Circle = 61472,
00865         IAG_DoubleCircle = 61473,
00866         IAG_SemiCircleLeft = 61480,
00867         IAG_SemiCircleRight = 61481,
00868         IAG_ChevronUp = 61488,
00869         IAG_ChevronDown = 61489,
00870         IAG_ChevronLeft = 61490,
00871         IAG_ChevronRight = 61491,
00872         IAG_ArrowUp = 61496,
00873         IAG_ArrowDown = 61497,
00874         IAG_ArrowLeft = 61498,
00875         IAG_ArrowRight = 61499,
00876         IAG_Up = 61528,
00877         IAG_Down = 61529,
00878         IAG_Left = 61530,
00879         IAG_Right = 61531,
00880         IAG_UpDown = 61536,
00881         IAG_DownUp = 61537,
00882         IAG_LeftRight = 61538,
00883         IAG_RightLeft = 61539,
00884         IAG_UpLeftLong = 61540,
00885         IAG_UpRightLong = 61541,
00886         IAG_DownLeftLong = 61542,
00887         IAG_DownRightLong = 61543,
00888         IAG_UpLeft = 61544,
00889         IAG_UpRight = 61545,
00890         IAG_DownLeft = 61546,
00891         IAG_DownRight = 61547,
00892         IAG_LeftUp = 61548,
00893         IAG_LeftDown = 61549,
00894         IAG_RightUp = 61550,
00895         IAG_RightDown = 61551,
00896         IAG_Exclamation = 61604,
00897         IAG_Tap = 61680,
00898         IAG_DoubleTap = 61681
00899     } InkApplicationGesture;
00900 
00901     typedef enum {
00902         ICEI_DefaultEvents = -1,
00903         ICEI_CursorDown = 0,
00904         ICEI_Stroke,
00905         ICEI_NewPackets,
00906         ICEI_NewInAirPackets,
00907         ICEI_CursorButtonDown,
00908         ICEI_CursorButtonUp,
00909         ICEI_CursorInRange,
00910         ICEI_CursorOutOfRange,
00911         ICEI_SystemGesture,
00912         ICEI_TabletAdded,
00913         ICEI_TabletRemoved,
00914         ICEI_MouseDown,
00915         ICEI_MouseMove,
00916         ICEI_MouseUp,
00917         ICEI_MouseWheel,
00918         ICEI_DblClick,
00919         ICEI_AllEvents
00920     } InkCollectorEventInterest;
00921 
00922     [
00923         odl,
00924         uuid(F0F060B5-8B1F-4A7C-89EC-880692588A4F),
00925         dual,
00926         oleautomation
00927     ]
00928     interface IInkCollector : IDispatch {
00929         [id(0x00000002), propget]    HRESULT hWnd(
00930             [out, retval] long* CurrentWindow);
00931         [id(0x00000002), propput]    HRESULT hWnd([in] long CurrentWindow);
00932         [id(0x00000001), propget]    HRESULT Enabled(
00933             [out, retval] VARIANT_BOOL* Collecting);
00934         [id(0x00000001), propput]    HRESULT Enabled(
00935             [in] VARIANT_BOOL Collecting);
00936         [id(0x00000005), propget]    HRESULT DefaultDrawingAttributes(
00937             [out, retval] IInkDrawingAttributes** CurrentAttributes);
00938         [id(0x00000005), propputref] HRESULT DefaultDrawingAttributes(
00939             [in] IInkDrawingAttributes* CurrentAttributes);
00940         [id(0x00000006), propget]    HRESULT Renderer(
00941             [out, retval] IInkRenderer** CurrentInkRenderer);
00942         [id(0x00000006), propputref] HRESULT Renderer(
00943             [in] IInkRenderer* CurrentInkRenderer);
00944         [id(0x00000007), propget]    HRESULT Ink([out, retval] IInkDisp** Ink);
00945         [id(0x00000007), propputref] HRESULT Ink([in] IInkDisp* Ink);
00946         [id(0x00000008), propget]    HRESULT AutoRedraw(
00947             [out, retval] VARIANT_BOOL* AutoRedraw);
00948         [id(0x00000008), propput]    HRESULT AutoRedraw(
00949             [in] VARIANT_BOOL AutoRedraw);
00950         [id(0x00000009), propget]    HRESULT CollectingInk(
00951             [out, retval] VARIANT_BOOL* Collecting);
00952         [id(0x0000001c), propget]    HRESULT CollectionMode(
00953             [out, retval] InkCollectionMode* Mode);
00954         [id(0x0000001c), propput]    HRESULT CollectionMode(
00955             [in] InkCollectionMode Mode);
00956         [id(0x0000001f), propget]    HRESULT DynamicRendering(
00957             [out, retval] VARIANT_BOOL* Enabled);
00958         [id(0x0000001f), propput]    HRESULT DynamicRendering(
00959             [in] VARIANT_BOOL Enabled);
00960         [id(0x00000020), propget]    HRESULT DesiredPacketDescription(
00961             [out, retval] VARIANT* PacketGuids);
00962         [id(0x00000020), propput]    HRESULT DesiredPacketDescription(
00963             [in] VARIANT PacketGuids);
00964         [id(0x00000023), propget]    HRESULT MouseIcon(
00965             [out, retval] IPictureDisp** MouseIcon);
00966         [id(0x00000023), propput]    HRESULT MouseIcon(
00967             [in] IPictureDisp* MouseIcon);
00968         [id(0x00000023), propputref] HRESULT MouseIcon(
00969             [in] IPictureDisp* MouseIcon);
00970         [id(0x00000024), propget]    HRESULT MousePointer(
00971             [out, retval] InkMousePointer* MousePointer);
00972         [id(0x00000024), propput]    HRESULT MousePointer(
00973             [in] InkMousePointer MousePointer);
00974         [id(0x00000014), propget]    HRESULT Cursors(
00975             [out, retval] IInkCursors** Cursors);
00976         [id(0x00000015), propget]    HRESULT MarginX(
00977             [out, retval] long* MarginX);
00978         [id(0x00000015), propput]    HRESULT MarginX([in] long MarginX);
00979         [id(0x00000016), propget]    HRESULT MarginY(
00980             [out, retval] long* MarginY);
00981         [id(0x00000016), propput]    HRESULT MarginY([in] long MarginY);
00982         [id(0x00000019), propget]    HRESULT Tablet(
00983             [out, retval] IInkTablet** SingleTablet);
00984         [id(0x00000026), propget]    HRESULT SupportHighContrastInk(
00985             [out, retval] VARIANT_BOOL* Support);
00986         [id(0x00000026), propput]    HRESULT SupportHighContrastInk(
00987             [in] VARIANT_BOOL Support);
00988         [id(0x0000001d)]             HRESULT SetGestureStatus(
00989             [in] InkApplicationGesture Gesture,
00990             [in] VARIANT_BOOL Listen);
00991         [id(0x0000001e)]             HRESULT GetGestureStatus(
00992             [in] InkApplicationGesture Gesture,
00993             [out, retval] VARIANT_BOOL* Listening);
00994         [id(0x00000018)]             HRESULT GetWindowInputRectangle(
00995             [in, out] IInkRectangle** WindowInputRectangle);
00996         [id(0x00000017)]             HRESULT SetWindowInputRectangle(
00997             [in] IInkRectangle* WindowInputRectangle);
00998         [id(0x0000001a)]             HRESULT SetAllTabletsMode(
00999             [in, optional, defaultvalue(-1)] VARIANT_BOOL UseMouseForInput);
01000         [id(0x0000001b)]             HRESULT SetSingleTabletIntegratedMode(
01001             [in] IInkTablet* Tablet);
01002         [id(0x0000000b)]             HRESULT GetEventInterest(
01003             [in] InkCollectorEventInterest EventId,
01004             [out, retval] VARIANT_BOOL* Listen);
01005         [id(0x0000000a)]             HRESULT SetEventInterest(
01006             [in] InkCollectorEventInterest EventId,
01007             [in] VARIANT_BOOL Listen);
01008     };
01009 };

Generated on Sat May 19 2012 04:29:50 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.