home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 June / PCWorld_1998-06_cd.bin / software / sharware / grafika / EROICA16 / INAPIOBJ.H_ / INAPIOBJ.H
C/C++ Source or Header  |  1998-01-15  |  17KB  |  609 lines

  1. /*-------------------------- Parallax Standard H_File ----------------------------
  2.    
  3.    H_File   : inapiobj.h
  4.    
  5.    Scope    : Windows
  6.  
  7.    Purpose  : Header file for the API
  8.  
  9.    
  10. --------------------------------------------------------------------------------
  11.           Copyright (c)1996 Parallax Software , All rights reserved.            
  12. ------------------------------------------------------------------------------*/
  13.  
  14. #ifndef  INC_INAPIOBJ
  15. #define  INC_INAPIOBJ
  16.  
  17.  
  18.  
  19. /* Types of objects that are accessable through the API
  20.  * NOTE: These are different than the IN_TOOL_* values in INAPIDEF.H
  21.  */
  22. #define IN_OBJECT_TYPE                 USHORT
  23. typedef IN_OBJECT_TYPE FAR *IN_OBJECT_TYPE_PTR;
  24. #define IN_OBJTYPE_GROUP               1
  25. #define IN_OBJTYPE_ARC                 2
  26. #define IN_OBJTYPE_LINE                3
  27. #define IN_OBJTYPE_POLYLINE            4
  28. #define IN_OBJTYPE_POLYGON             5
  29. #define IN_OBJTYPE_TEXT                6
  30. #define IN_OBJTYPE_ELLIPSE             7
  31. #define IN_OBJTYPE_CIRCLE              8
  32. #define IN_OBJTYPE_BOX                 9
  33. #define IN_OBJTYPE_HIGHLIGHT_BOX      10
  34. #define IN_OBJTYPE_ANNOTATION         11
  35.  
  36.  
  37.  
  38. /* Object flags (ORed together) */
  39. #define IN_OBJFLAG_MODIFIED   0x0001
  40. #define IN_OBJFLAG_DELETED    0x0002
  41. #define IN_OBJFLAG_NEW        0x0004
  42. #define IN_OBJFLAG_SELECTED   0x0008
  43. #define IN_OBJFLAG_VISIBLE    0x0010
  44.  
  45.  
  46.  
  47. /* Units that are acceptable (see INAPIDEF.H for unit types) */
  48. #define IN_UNITS              USHORT
  49. typedef IN_UNITS FAR *IN_UNITS_PTR;
  50.  
  51.  
  52.  
  53. /* Measurements are made up of units and a value */
  54. typedef struct tagApiMeasurement {
  55.    IN_UNITS  units;
  56.    DOUBLE    value;
  57. } IN_MEASUREMENT, FAR *IN_MEASUREMENT_PTR;
  58.  
  59.  
  60.  
  61. /* Color is an RGB long unsigned integer in the format 0x00RRGGBB */
  62. #define IN_RGB                 ULONG
  63. typedef IN_RGB FAR *IN_RGB_PTR;
  64. #define IN_ColorsToRGB(r,g,b)  ((IN_RGB) ((((IN_RGB)(r)) << 16) | (((IN_RGB)(g)) << 8) | ((IN_RGB)(b))))
  65. #define IN_GetRed(rgb)         ((USHORT) (((rgb) >> 16) & 0xFF))
  66. #define IN_GetGreen(rgb)       ((USHORT) (((rgb) >> 8)  & 0xFF))
  67. #define IN_GetBlue(rgb)        ((USHORT) ((rgb) & 0xFF))
  68.  
  69.  
  70.  
  71. /* Line style that are available.  If the number is not from the list below,
  72.  * then it is a custom-defined line style
  73.  */
  74. #define IN_LINESTYLE          USHORT
  75. typedef IN_LINESTYLE FAR *IN_LINESTYLE_PTR;
  76. #define IN_LINE_SOLID         1
  77. #define IN_LINE_DASH          2
  78. #define IN_LINE_DOT           3
  79. #define IN_LINE_NULL          4         /* Invisible */
  80.  
  81.  
  82.  
  83. /* Fill styles */
  84. #define IN_FILLSTYLE          USHORT
  85. typedef IN_FILLSTYLE FAR *IN_FILLSTYLE_PTR;
  86. #define IN_FILL_TRANSPARENT   1
  87. #define IN_FILL_OPAQUE        2
  88. #define IN_FILL_ERASE         3
  89. #define IN_FILL_TRANSLUCENT   4
  90. #define IN_FILL_HATCH         5
  91. #define IN_FILL_SKETCH        6
  92.  
  93.  
  94.  
  95. /* Join styles */
  96. #define IN_JOINSTYLE          USHORT
  97. typedef IN_JOINSTYLE FAR *IN_JOINSTYLE_PTR;
  98. #define IN_JOIN_ROUND         1
  99. #define IN_JOIN_MITER         2
  100.  
  101.  
  102.  
  103. /* Polygon fill modes */
  104. #define IN_POLYFILLMODE       USHORT
  105. typedef IN_POLYFILLMODE FAR *IN_POLYFILLMODE_PTR;
  106. #define IN_POLYFILL_WINDING   1
  107. #define IN_POLYFILL_ALTERNATE 2
  108.  
  109.  
  110.  
  111. /* Curve styles */
  112. #define IN_CURVESTYLE         USHORT
  113. typedef IN_CURVESTYLE FAR *IN_CURVESTYLE_PTR;
  114. #define IN_CURVE_NONE         1
  115. #define IN_CURVE_BSPLINE      2
  116.  
  117.  
  118.  
  119. /* Raster operations control how the object is placed on the layer */
  120. #define IN_RASTEROP           USHORT
  121. typedef IN_RASTEROP FAR *IN_RASTEROP_PTR;
  122. #define IN_ROP_OPAQUE         1
  123. #define IN_ROP_TRANSLUCENT    2
  124. #define IN_ROP_SKETCH         3
  125.  
  126.  
  127.  
  128. /* Cap styles appear at the ends of lines */
  129. #define IN_CAPSTYLE           USHORT
  130. typedef IN_CAPSTYLE FAR *IN_CAPSTYLE_PTR;
  131. #define IN_CAP_ROUND          1
  132. #define IN_CAP_SQUARE         2
  133.  
  134.  
  135.  
  136. /* Typefaces for text */
  137. #define IN_TYPEFACE           USHORT
  138. typedef IN_TYPEFACE FAR *IN_TYPEFACE_PTR;
  139. #define IN_TYPEFACE_NORMAL    1
  140. #define IN_TYPEFACE_BOLD      2
  141. #define IN_TYPEFACE_FINE      3
  142. #define IN_TYPEFACE_ITALIC    0x10      /* This can be ORed in */
  143. #define IN_TYPEFACE_UNDERLINE 0x20      /* This can be ORed in */
  144. #define IN_TYPEFACE_STRIKEOUT 0x40      /* This can be ORed in */
  145.  
  146.  
  147.  
  148. /* Text justification */
  149. #define IN_JUSTIFICATION      USHORT
  150. typedef IN_JUSTIFICATION FAR *IN_JUSTIFICATION_PTR;
  151. #define IN_JUST_LEFT          1
  152. #define IN_JUST_CENTER        2
  153. #define IN_JUST_RIGHT         3
  154. #define IN_JUST_ALIGNED       4
  155. #define IN_JUST_MIDDLEH       5
  156. #define IN_JUST_FIT           6
  157. #define IN_JUST_BASELINE      0x00      /* This can be ORed in */
  158. #define IN_JUST_BOTTOM        0x10      /* This can be ORed in */
  159. #define IN_JUST_TOP           0x20      /* This can be ORed in */
  160. #define IN_JUST_MIDDLEV       0x30      /* This can be ORed in */
  161.  
  162.  
  163.  
  164. /* Mirroring definitions */
  165. #define IN_MIRROR             USHORT
  166. typedef IN_MIRROR FAR *IN_MIRROR_PTR;
  167. #define IN_MIRROR_NONE        1
  168. #define IN_MIRROR_HORIZONTAL  2
  169. #define IN_MIRROR_VERTICAL    3
  170.  
  171.  
  172.  
  173. /* Angle definition (in degrees) */
  174. #define IN_ANGLE              DOUBLE
  175. typedef IN_ANGLE FAR *IN_ANGLE_PTR;
  176.  
  177.  
  178.  
  179. /* Styles for dimensions */
  180. #define IN_DIMSTYLE           USHORT
  181. typedef IN_DIMSTYLE FAR *IN_DIMSTYLE_PTR;
  182. #define IN_DIM_LINEAR_EXT     1
  183. #define IN_DIM_LINEAR_INT     2
  184. #define IN_DIM_LEADER_TXT     3
  185.  
  186.  
  187.  
  188. /* Group flags */
  189. #define IN_GROUPFLAGS         USHORT
  190. typedef IN_GROUPFLAGS FAR *IN_GROUPFLAGS_PTR;
  191. #define IN_GROUP_UNBINDABLE   0x0001
  192. #define IN_GROUP_MOVEABLE     0x0002
  193. #define IN_GROUP_SCALEABLE    0x0004
  194.  
  195.  
  196.  
  197. /* Dimension orientations */
  198. #define IN_DIM_ORIENTATION    USHORT
  199. typedef IN_DIM_ORIENTATION FAR *IN_DIM_ORIENTATION_PTR;
  200. #define IN_DIM_HORIZONTAL     1
  201. #define IN_DIM_VERTICAL       2
  202. #define IN_DIM_ROTATED        3
  203.  
  204.  
  205.  
  206. /* Icon sizes for annotations */
  207. #define IN_ICON_SIZE          USHORT
  208. typedef IN_ICON_SIZE FAR *IN_ICON_SIZE_PTR;
  209. #define IN_ICON_LARGE         1
  210. #define IN_ICON_MEDIUM        2
  211. #define IN_ICON_SMALL         3
  212. #define IN_ICON_AUTO          4
  213.  
  214.  
  215.  
  216. /* Annotation types */
  217. #define IN_ANNOTATION_TYPE      USHORT
  218. typedef IN_ANNOTATION_TYPE FAR *IN_ANNOTATION_TYPE_PTR;
  219. #define IN_ANNOTYPE_ANNOTATION  1
  220. #define IN_ANNOTYPE_HOTSPOT     2
  221.  
  222.  
  223.  
  224. /* This structure appears at the head of all API objects */
  225. typedef struct tagApiObjectHeader {
  226.    IN_OBJECT_TYPE    objectType;
  227.    USHORT            version;
  228.    USHORT            size;
  229.    USHORT            flags;
  230.    ULONG             objectID;
  231.    ULONG             parentID;
  232. } IN_OBJECT_HEADER, FAR *IN_OBJECT_HEADER_PTR;
  233.  
  234.  
  235.  
  236. /* Points are two doubles with implied units of inches */
  237. typedef struct tagApiPoint {
  238.    DOUBLE  x;
  239.    DOUBLE  y;
  240. } IN_POINT, FAR *IN_POINT_PTR;
  241.  
  242.  
  243.  
  244. /* IN_V1_LINE_PARMS:    Version 1 definition
  245.  */
  246. typedef struct tagApiLineParmsV1 {
  247.    IN_MEASUREMENT       thickness;
  248.    IN_RGB               lineColor;
  249.    IN_LINESTYLE         lineStyle;
  250.    IN_RASTEROP          rasterOp;
  251.    IN_CAPSTYLE          capStyle;
  252. } IN_V1_LINE_PARMS, FAR *IN_V1_LINE_PARMS_PTR;
  253.  
  254.  
  255.  
  256. /* IN_V1_ARC_PARMS:   Version 1 definition
  257.  */
  258. typedef struct tagApiArcParmsV1 {
  259.    IN_MEASUREMENT       thickness;
  260.    IN_RGB               lineColor;
  261.    IN_LINESTYLE         lineStyle;
  262.    IN_RASTEROP          rasterOp;
  263.    IN_CAPSTYLE          capStyle;
  264. } IN_V1_ARC_PARMS, FAR *IN_V1_ARC_PARMS_PTR;
  265.  
  266.  
  267.  
  268. /* IN_V1_ARROW_PARMS:   Version 1 definition
  269.  */
  270. typedef struct tagApiArrowParmsV1 {
  271.    IN_MEASUREMENT       thickness;
  272.    IN_MEASUREMENT       arrowHeadSize;
  273.    IN_RGB               lineColor;
  274.    IN_LINESTYLE         lineStyle;
  275.    IN_RASTEROP          rasterOp;
  276.    IN_CAPSTYLE          capStyle;
  277.    IN_BOOL              arrowsProp;
  278.    IN_BOOL              arrowsSolid;
  279.    IN_BOOL              arrowsDualHeaded;
  280. } IN_V1_ARROW_PARMS, FAR *IN_V1_ARROW_PARMS_PTR;
  281.  
  282.  
  283.  
  284. /* IN_V1_POLYLINE_PARMS:   Version 1 definition
  285.  */
  286. typedef struct tagApiPolylineParmsV1 {
  287.    IN_MEASUREMENT       thickness;
  288.    IN_RGB               lineColor;
  289.    IN_LINESTYLE         lineStyle;
  290.    IN_RASTEROP          rasterOp;
  291.    IN_CAPSTYLE          capStyle;
  292.    IN_JOINSTYLE         joinStyle;
  293. } IN_V1_POLYLINE_PARMS, FAR *IN_V1_POLYLINE_PARMS_PTR;
  294.  
  295.  
  296.  
  297. /* IN_V1_ELLIPSE_PARMS:   Version 1 definition
  298.  */
  299. typedef struct tagApiEllipseParmsV1 {
  300.    IN_MEASUREMENT       thickness;
  301.    IN_RGB               lineColor;
  302.    IN_RGB               fillColor;
  303.    IN_LINESTYLE         lineStyle;
  304.    IN_FILLSTYLE         fillStyle;
  305.    IN_ANGLE             rotation;
  306. } IN_V1_ELLIPSE_PARMS, FAR *IN_V1_ELLIPSE_PARMS_PTR;
  307.  
  308.  
  309.  
  310. /* IN_V1_POLYGON_PARMS:   Version 1 definition
  311.  */
  312. typedef struct tagApiPolygonParmsV1 {
  313.    IN_MEASUREMENT       thickness;
  314.    IN_RGB               lineColor;
  315.    IN_RGB               fillColor;
  316.    IN_LINESTYLE         lineStyle;
  317.    IN_FILLSTYLE         fillStyle;
  318.    IN_JOINSTYLE         joinStyle;
  319.    IN_POLYFILLMODE      polyFillMode;
  320.    IN_CURVESTYLE        curveStyle;
  321. } IN_V1_POLYGON_PARMS, FAR *IN_V1_POLYGON_PARMS_PTR;
  322.  
  323.  
  324.  
  325. /* IN_V1_AREA_PARMS:   Version 1 definition
  326.  */
  327. typedef struct tagApiAreaParmsV1 {
  328.    IN_OBJECT_TYPE       objectType;
  329.    IN_V1_POLYGON_PARMS  fillParms;
  330. } IN_V1_AREA_PARMS, FAR *IN_V1_AREA_PARMS_PTR;
  331.  
  332.  
  333.  
  334. /* IN_V1_ICON_PARMS:   Version 1 definition
  335.  */
  336. typedef struct tagApiIconParmsV1 {
  337.    USHORT               iconIndex;
  338. } IN_V1_ICON_PARMS, FAR *IN_V1_ICON_PARMS_PTR;
  339.  
  340.  
  341.  
  342. /* IN_V1_SYMBOL_PARMS:   Version 1 definition
  343.  */
  344. typedef struct tagApiSymbolParmsV1 {
  345.    char                 symbolFilename[256];
  346. } IN_V1_SYMBOL_PARMS, FAR *IN_V1_SYMBOL_PARMS_PTR;
  347.  
  348.  
  349.  
  350. /* IN_V1_TEXT_PARMS:   Version 1 definition
  351.  */
  352. typedef struct tagApiTextParmsV1 {
  353.    IN_RGB               color;
  354.    IN_TYPEFACE          typeface;
  355.    char                 fontName[82];
  356.    IN_MEASUREMENT       height;
  357.    IN_MEASUREMENT       width;
  358.    IN_ANGLE             rotation;
  359.    IN_JUSTIFICATION     justification;
  360.    IN_MIRROR            mirror;
  361.    IN_ANGLE             orientation;
  362.    IN_ANGLE             shear;
  363. } IN_V1_TEXT_PARMS, FAR *IN_V1_TEXT_PARMS_PTR;
  364.  
  365.  
  366.  
  367. /* IN_V1_ANNOTATION_PARMS:   Version 1 definition
  368.  */
  369. typedef struct tagApiAnnotationParmsV1 {
  370.    IN_RGB               color;
  371.    IN_TYPEFACE          typeface;
  372.    char                 fontName[82];
  373.    IN_MEASUREMENT       height;
  374.    IN_MEASUREMENT       width;
  375.    IN_ANGLE             rotation;
  376.    IN_JUSTIFICATION     justification;
  377.    IN_MIRROR            mirror;
  378.    IN_BOOL              iconized;
  379.    IN_BOOL              centered;
  380.    IN_ANGLE             orientation;
  381.    IN_ANGLE             shear;
  382.    USHORT               iconNumber;
  383.    IN_ICON_SIZE         iconSize;
  384. } IN_V1_ANNOTATION_PARMS, FAR *IN_V1_ANNOTATION_PARMS_PTR;
  385.  
  386.  
  387.  
  388. /* IN_V1_HOTSPOT_PARMS:   Version 1 definition
  389.  */
  390. typedef struct tagApiHotspotParmsV1 {
  391.    IN_V1_AREA_PARMS     areaParms;
  392.    IN_V1_ICON_PARMS     iconParms;
  393. } IN_V1_HOTSPOT_PARMS, FAR *IN_V1_HOTSPOT_PARMS_PTR;
  394.  
  395.  
  396.  
  397. /* IN_V1_DIMENSION_PARMS:   Version 1 definition
  398.  */
  399. typedef struct tagApiDimensionParmsV1 {
  400.    IN_MEASUREMENT       thickness;
  401.    IN_MEASUREMENT       arrowHeadSize;
  402.    IN_RGB               color;
  403.    IN_LINESTYLE         lineStyle;
  404.    IN_RASTEROP          rasterOp;
  405.    IN_CAPSTYLE          capStyle;
  406.    IN_BOOL              arrowsProp;
  407.    IN_BOOL              arrowsSolid;
  408.    IN_BOOL              arrowsDualHeaded;
  409.    IN_JUSTIFICATION     justification;
  410.    IN_MIRROR            mirror;
  411.    IN_TYPEFACE          typeface;
  412.    char                 fontName[82];
  413.    IN_MEASUREMENT       height;
  414.    IN_MEASUREMENT       width;
  415.    IN_ANGLE             rotation;
  416.    IN_DIMSTYLE          dimensionStyle;
  417. } IN_V1_DIMENSION_PARMS, FAR *IN_V1_DIMENSION_PARMS_PTR;
  418.  
  419.  
  420.  
  421. /* IN_V1_GROUP_OBJECT:   Version 1 definition
  422.  *
  423.  * NOTE:  The groupId[] string is dynamically allocated based on
  424.  *        the group identifier
  425.  *
  426.  * This structure is used for the following object types:
  427.  *     IN_OBJTYPE_GROUP
  428.  */
  429. typedef struct tagApiGroupObjectV1 {
  430.    IN_OBJECT_HEADER     header;
  431.    IN_GROUPFLAGS        flags;
  432.    char                 groupId[1];
  433. } IN_V1_GROUP_OBJECT, FAR *IN_V1_GROUP_OBJECT_PTR;
  434.  
  435.  
  436.  
  437. /* IN_V1_LINE_OBJECT:   Version 1 definition
  438.  *
  439.  * This structure is used for the following object types:
  440.  *     IN_OBJTYPE_LINE
  441.  */
  442. typedef struct tagApiLineObjectV1 {
  443.    IN_OBJECT_HEADER     header;
  444.    IN_V1_LINE_PARMS     parms;
  445.    IN_POINT             points[2];
  446. } IN_V1_LINE_OBJECT, FAR *IN_V1_LINE_OBJECT_PTR;
  447.  
  448.  
  449.  
  450. /* IN_V1_ARC_OBJECT:   Version 1 definition
  451.  *
  452.  * This structure is used for the following object types:
  453.  *     IN_OBJTYPE_ARC
  454.  */
  455. typedef struct tagApiArcObjectV1 {
  456.    IN_OBJECT_HEADER     header;
  457.    IN_V1_ARC_PARMS      parms;
  458.    IN_ANGLE             startAngle;
  459.    IN_ANGLE             endAngle;
  460.    IN_POINT             points[2];
  461. } IN_V1_ARC_OBJECT, FAR *IN_V1_ARC_OBJECT_PTR;
  462.  
  463.  
  464.  
  465. /* IN_V1_ELLIPSE_OBJECT:   Version 1 definition
  466.  *
  467.  * This structure is used for the following object types:
  468.  *     IN_OBJTYPE_ELLIPSE
  469.  */
  470. typedef struct tagApiEllipseObjectV1 {
  471.    IN_OBJECT_HEADER     header;
  472.    IN_V1_ELLIPSE_PARMS  parms;
  473.    IN_POINT             points[2];
  474. } IN_V1_ELLIPSE_OBJECT, FAR *IN_V1_ELLIPSE_OBJECT_PTR;
  475.  
  476.  
  477.  
  478. /* IN_V1_ARROW_OBJECT:   Version 1 definition
  479.  *
  480.  * This structure is used for the following object types:
  481.  *     IN_OBJTYPE_ARROW
  482.  */
  483. typedef struct tagApiArrowObjectV1 {
  484.    IN_OBJECT_HEADER     header;
  485.    IN_V1_ARROW_PARMS    parms;
  486.    IN_POINT             points[6];
  487. } IN_V1_ARROW_OBJECT, FAR *IN_V1_ARROW_OBJECT_PTR;
  488.  
  489.  
  490.  
  491. /* IN_V1_POLYLINE_OBJECT:   Version 1 definition
  492.  *
  493.  * NOTE:  The points[] array is dynamically allocated based on
  494.  *        the number of points in the object
  495.  *
  496.  * This structure is used for the following object types:
  497.  *     IN_OBJTYPE_POLYLINE
  498.  */
  499. typedef struct tagApiPolylineObjectV1 {
  500.    IN_OBJECT_HEADER      header;
  501.    IN_V1_POLYLINE_PARMS  parms;
  502.    USHORT                pointCount;
  503.    IN_POINT              points[1];
  504. } IN_V1_POLYLINE_OBJECT, FAR *IN_V1_POLYLINE_OBJECT_PTR;
  505.  
  506.  
  507.  
  508. /* IN_V1_POLYGON_OBJECT:   Version 1 definition
  509.  *
  510.  * NOTE:  The points[] array is dynamically allocated based on
  511.  *        the number of points in the object
  512.  *
  513.  * This structure is used for the following object types:
  514.  *     IN_OBJTYPE_POLYLINE
  515.  */
  516. typedef struct tagApiPolygonObjectV1 {
  517.    IN_OBJECT_HEADER      header;
  518.    IN_V1_POLYGON_PARMS   parms;
  519.    USHORT                pointCount;
  520.    IN_POINT              points[1];
  521. } IN_V1_POLYGON_OBJECT, FAR *IN_V1_POLYGON_OBJECT_PTR;
  522.  
  523.  
  524.  
  525. /* IN_V1_TEXT_OBJECT:   Version 1 definition
  526.  *
  527.  * NOTE:  The str[] array is dynamically allocated based on
  528.  *        the number of characters in the text
  529.  *
  530.  * This structure is used for the following object types:
  531.  *     IN_OBJTYPE_TEXT
  532.  */
  533. typedef struct tagApiTextObjectV1 {
  534.    IN_OBJECT_HEADER  header;
  535.    IN_V1_TEXT_PARMS  parms;
  536.    IN_POINT          point;
  537.    char              str[1];
  538. } IN_V1_TEXT_OBJECT, FAR *IN_V1_TEXT_OBJECT_PTR;
  539.  
  540.  
  541.  
  542. /* IN_V1_ANNOTATION_OBJECT:   Version 1 definition
  543.  *
  544.  * NOTE:  The str[] array is dynamically allocated based on
  545.  *        the number of characters in the text
  546.  *
  547.  * This structure is used for the following object types:
  548.  *     IN_OBJTYPE_ANNOTATION
  549.  */
  550. typedef struct tagApiAnnotationObjectV1 {
  551.    IN_OBJECT_HEADER        header;
  552.    IN_V1_ANNOTATION_PARMS  parms;
  553.    IN_POINT                point;
  554.    IN_ANNOTATION_TYPE      type;
  555.    char                    str[1];
  556. } IN_V1_ANNOTATION_OBJECT, FAR *IN_V1_ANNOTATION_OBJECT_PTR;
  557.  
  558.  
  559.  
  560. /* IN_V1_HOTSPOT_OBJECT:   Version 1 definition
  561.  *
  562.  * NOTE:  The data[] array is dynamically allocated based on
  563.  *        the number of bytes of data
  564.  *
  565.  * This structure is used for the following object types:
  566.  *     IN_OBJTYPE_HOTSPOT
  567.  */
  568. typedef struct tagApiHotspotObjectV1 {
  569.    IN_OBJECT_HEADER        header;
  570.    IN_V1_HOTSPOT_PARMS     parms;
  571.    ULONG                   dataSize;
  572.    char                    data[1];
  573. } IN_V1_HOTSPOT_OBJECT, FAR *IN_V1_HOTSPOT_OBJECT_PTR;
  574.  
  575.  
  576.  
  577. /* IN_V1_ICON_OBJECT:   Version 1 definition
  578.  *
  579.  * This structure is used for the following object types:
  580.  *     IN_OBJTYPE_ICON
  581.  */
  582. typedef struct tagApiIconObjectV1 {
  583.    IN_OBJECT_HEADER        header;
  584.    IN_V1_ICON_PARMS        parms;
  585.    IN_POINT                point;
  586. } IN_V1_ICON_OBJECT, FAR *IN_V1_ICON_OBJECT_PTR;
  587.  
  588.  
  589.  
  590. /* IN_V1_DIMENSION_OBJECT:   Version 1 definition
  591.  *
  592.  * This structure is used for the following object types:
  593.  *     IN_OBJTYPE_DIMENSION
  594.  */
  595. typedef struct tagApiDimensionObjectV1 {
  596.    IN_OBJECT_HEADER       header;
  597.    IN_V1_DIMENSION_PARMS  parms;
  598.    IN_DIM_ORIENTATION     orientation;
  599.    IN_POINT               points[3];
  600. } IN_V1_DIMENSION_OBJECT, FAR *IN_V1_DIMENSION_OBJECT_PTR;
  601.  
  602.  
  603. #endif
  604.  
  605.  
  606. /* INAPIOBJ.H */
  607. /* end of file */
  608.  
  609.