AD2.H
上传用户:hell82222
上传日期:2013-12-19
资源大小:1872k
文件大小:113k
源码类别:

CAD

开发平台:

Visual C++

  1. /* C:ICADDEVTHIRDPARTYMARCOMPAD2.H
  2.  * Copyright (C) 1988-1998 Visio Corporation. All rights reserved.
  3.  *
  4.  * Abstract
  5.  *
  6.  * <TODO : Add Abstract here>
  7.  *
  8.  */
  9.   /* ad2.h */
  10.   /* include file for OpenDWG Toolkit */
  11. #ifndef AD2HINCLUDED
  12. #define AD2HINCLUDED
  13. #ifdef AD_64BITLONG
  14. #define OdaLong int
  15. #endif
  16. #ifndef OdaLong
  17. #define OdaLong long
  18. #endif
  19. #ifndef VMSTUFFDEFINED
  20. #define VMSTUFFDEFINED
  21. typedef char * AD_VMADDR;
  22. #define AD_VMNULL NULL
  23. #endif
  24.   /* these are the equates for the constants which define the version of
  25.      the drawing being processed */
  26. #define AD_ACAD25 0  /* ac1002 */
  27. #define AD_ACAD26 1  /* ac1003 */
  28. #define AD_ACAD9  2  /* ac1004 */
  29. #define AD_ACAD10 3  /* ac1006 */
  30. #define AD_ACAD11 4  /* ac1009 */
  31. #define AD_ACAD13 5  /* ac1012 */
  32. #define AD_ACAD14 6
  33. #define AD_ACAD2000 7
  34. #define AD_MAXACADVER AD_ACAD2000
  35. #define AD_ENT_LINE       1
  36. #define AD_ENT_POINT      2
  37. #define AD_ENT_CIRCLE     3
  38. #define AD_ENT_SHAPE      4
  39. #define AD_ENT_ELLIPSE    5
  40. #define AD_ENT_SPLINE     6
  41. #define AD_ENT_TEXT       7
  42. #define AD_ENT_ARC        8
  43. #define AD_ENT_TRACE      9
  44. #define AD_ENT_REGION    10
  45. #define AD_ENT_SOLID     11
  46. #define AD_ENT_BLOCK     12
  47. #define AD_ENT_ENDBLK    13
  48. #define AD_ENT_INSERT    14
  49. #define AD_ENT_ATTDEF    15
  50. #define AD_ENT_ATTRIB    16
  51. #define AD_ENT_SEQEND    17
  52. #define AD_ENT_POLYLINE  19
  53. #define AD_ENT_VERTEX    20
  54. #define AD_ENT_LINE3D    21
  55. #define AD_ENT_FACE3D    22
  56. #define AD_ENT_DIMENSION 23
  57. #define AD_ENT_VIEWPORT  24
  58. #define AD_ENT_SOLID3D   25
  59. #define AD_ENT_RAY       26
  60. #define AD_ENT_XLINE     27
  61. #define AD_ENT_MTEXT     28
  62. #define AD_ENT_LEADER    29
  63. #define AD_ENT_TOLERANCE 30
  64. #define AD_ENT_MLINE     31
  65. #define AD_OBJ_DICTIONARY 32
  66. #define AD_OBJ_MLINESTYLE 33
  67. #define AD_OBJ_CLASS      34
  68. #define AD_ENT_BODY       35
  69. #define AD_OBJ_GROUP      36
  70. #define AD_OBJ_PROXY     100
  71. #define AD_OBJ_XRECORD   101
  72. #define AD_OBJ_IDBUFFER  102
  73. #define AD_GRENT_EXTENTS          1
  74. #define AD_GRENT_CIRCLE           2
  75. #define AD_GRENT_CIRCLE3PT        3
  76. #define AD_GRENT_CIRCULARARC      4
  77. #define AD_GRENT_CIRCULARARC3PT   5
  78. #define AD_GRENT_POLYLINE         6
  79. #define AD_GRENT_POLYGON          7
  80. #define AD_GRENT_MESH             8
  81. #define AD_GRENT_SHELL            9
  82. #define AD_GRENT_TEXT             10
  83. #define AD_GRENT_TEXT2            11
  84. #define AD_GRENT_XLINE            12
  85. #define AD_GRENT_RAY              13
  86. #define AD_GRENT_SUBENT_COLOR     14
  87.                                /* 15 ? */
  88. #define AD_GRENT_SUBENT_LAYER     16
  89.                                /* 17 ? */
  90. #define AD_GRENT_SUBENT_LINETYPE  18
  91. #define AD_GRENT_SUBENT_MARKER    19
  92. #define AD_GRENT_SUBENT_FILLON    20
  93.                                /* 21 ? */
  94. #define AD_GRENT_SUBENT_TRUECOLOR 22
  95. #define AD_GRENT_SUBENT_LNWEIGHT  23
  96. #define AD_GRENT_SUBENT_LTSCALE   24
  97. #define AD_GRENT_SUBENT_THICKNESS 25
  98. #define AD_GRENT_SUBENT_PLSTNAME  26
  99. #define AD_GRENT_PUSH_CLIP        27
  100. #define AD_GRENT_POP_CLIP         28
  101. #define AD_GRENT_PUSH_MODELXFORM  29
  102. #define AD_GRENT_PUSH_MODELXFORM2 30
  103. #define AD_GRENT_POP_MODELXFORM   31
  104. #define AD_GRENT_MDT_LINE         32
  105. #define AD_XD_STRING         1000
  106. #define AD_XD_APPOBJHANDLE   1001
  107. #define AD_XD_CONTROL        1002
  108. #define AD_XD_LAYEROBJHANDLE 1003
  109. #define AD_XD_BINDATA        1004
  110. #define AD_XD_OBJHANDLE      1005
  111. #define AD_XD_REALS          1010
  112. #define AD_XD_WORLDPOS       1011
  113. #define AD_XD_WORLDDISP      1012
  114. #define AD_XD_WORLDDIR       1013
  115. #define AD_XD_REAL           1040
  116. #define AD_XD_DIST           1041
  117. #define AD_XD_SCALE          1042
  118. #define AD_XD_INT            1070
  119. #define AD_XD_LONG           1071
  120. #define AD_IS_A_PROXYENT(a)  (a>=0x1F2)
  121. #define AD_IS_A_GENERIC_PROXYENT(a)  (a==0x1F2)
  122. #define AD_IS_A_GENERIC_PROXYOBJ(a)  (a==0x1F3)
  123. #define AD_ITEM_CLASS_PROXY_ENTITY 0x1F2
  124. #define AD_ITEM_CLASS_PROXY_OBJECT 0x1F3
  125. #define AD_PROXYCAP_NONE                    0
  126. #define AD_PROXYCAP_ERASEOK                 1
  127. #define AD_PROXYCAP_TRANSFORMOK             2
  128. #define AD_PROXYCAP_COLORCHANGEOK           4
  129. #define AD_PROXYCAP_LAYERCHANGEOK           8
  130. #define AD_PROXYCAP_LINETYPECHANGEOK       16
  131. #define AD_PROXYCAP_LINETYPESCALECHANGEOK  32
  132. #define AD_PROXYCAP_VISIBLITYCHANGEOK      64
  133. #define AD_PROXYCAP_CLONINGOK             128
  134. #define AD_PROXYCAP_LINEWEIGHTCHANGEOK    0x100
  135. #define AD_PROXYCAP_PLOTSTYLENAMECHANGEOK 0x200
  136. #define AD_PROXYCAP_ALLBUTCLONINGOK       0x37F
  137. #define AD_PROXYCAP_ALLOK                 0x3FF
  138. #define AD_PROXYCAP_R13FORMATPROXY      32768
  139. #define AD_VPENT_STATUS_PERSPECTIVEMODE      1
  140. #define AD_VPENT_STATUS_FRONTCLIP            2
  141. #define AD_VPENT_STATUS_BACKCLIP             4
  142. #define AD_VPENT_STATUS_UCSFOLLOW            8
  143. #define AD_VPENT_STATUS_NOTATEYE            16
  144. #define AD_VPENT_STATUS_UCSICON             32
  145. #define AD_VPENT_STATUS_UCSATORIGIN         64
  146. #define AD_VPENT_STATUS_FASTZOOM           128
  147. #define AD_VPENT_STATUS_SNAPON             256
  148. #define AD_VPENT_STATUS_GRIDON             512
  149. #define AD_VPENT_STATUS_SNAPSTYLEISO      1024
  150. #define AD_VPENT_STATUS_HIDDENINPLOT      2048
  151. #define AD_VPENT_STATUS_SNAPISOPAIRTOP    4096
  152. #define AD_VPENT_STATUS_SNAPISOPAIRRIGHT  8192
  153. #define AD_VPENT_STATUS_ZOOMLOCKING      16384
  154. #define AD_VPENT_STATUS_ALWAYS           32768
  155. #define AD_VPENT_STATUS_NONRECTCLIP      65536
  156. #define AD_VPENT_STATUS_OFF             131072
  157. #define adHasPrimTraits(a)         (a & 0xFFFFL)
  158. #define adPrimsHaveColors(a)       (a & 0x0001L)
  159. #define adPrimsHaveLayers(a)       (a & 0x0002L)
  160. #define adPrimsHaveLinetypes(a)    (a & 0x0004L)
  161. #define adPrimsHaveMarkers(a)      (a & 0x0020L)
  162. #define adPrimsHaveVisibilities(a) (a & 0x0040L)
  163. #define adPrimsHaveNormals(a)      (a & 0x0080L)
  164. #define adPrimsHaveOrientation(a)  (a & 0x0400L)
  165. #define adSetPrimsHaveColors(a)       (a |= 0x0001L)
  166. #define adSetPrimsHaveLayers(a)       (a |= 0x0002L)
  167. #define adSetPrimsHaveLinetypes(a)    (a |= 0x0004L)
  168. #define adSetPrimsHaveMarkers(a)      (a |= 0x0020L)
  169. #define adSetPrimsHaveVisibilities(a) (a |= 0x0040L)
  170. #define adSetPrimsHaveNormals(a)      (a |= 0x0080L)
  171. #define adSetPrimsHaveOrientation(a)  (a |= 0x0400L)
  172. #define AD_DWG 0
  173. #define AD_DXF 1
  174. #define AD_BDXF 2
  175. #define AD_MAX_STRLEN 512
  176. #define AD_R15_TO_R14_TRUNC_NAMELEN   26    /* AC2000 uses it while saving to minor versions */
  177. #define AD_MAX_R14_NAMELEN            31
  178. #define AD_MAX_TRUNC_NAMELEN          adGetMaxPreR15NameLength()
  179. #define AD_MAX_XREF_TRUNC_NAMELEN 4
  180. #define AD_EXPORT_AS_UPPERCASE    0
  181. #define AD_EXPORT_AS_LOWERCASE    1
  182. #define AD_EXPORT_AS_CURRENT_CASE 2
  183. #define AD_PAPERSPACE_HANDLE 0
  184. #define AD_MODELSPACE_HANDLE 1
  185. #define AD_TTF_OUTLINE     0x01
  186. #define AD_TTF_FILL        0x02
  187. #define AD_TTF_FREE_MEMORY 0x04
  188. #define AD_MAXVPORTS 49
  189. #define AD_VPMSKSIZE 8
  190. typedef struct advpmskstru {
  191.   unsigned char data[AD_VPMSKSIZE];
  192. } ADVPMSK;
  193. typedef unsigned char AD_OBJHANDLE[8];
  194. typedef void * AD_DB_HANDLE;
  195. #define AD_ARBITRARY_HANDLE   0
  196. #define AD_SOFT_POINTER_HANDLE 1
  197. #define AD_HARD_POINTER_HANDLE 2
  198. #define AD_SOFT_OWNER_HANDLE   3
  199. #define AD_HARD_OWNER_HANDLE   4
  200. #define NULLOBJHANDLE ""
  201. /* adExplodeProxyToList() function's flags: */
  202. #define AD_EP_CREATE_BLOCKS     1
  203. #define AD_EP_UNFILLED_AS_LINES 2
  204. #define AD_EP_POLYLINE_AS_LINES 4
  205. #define AD_EP_DEFAULT           (AD_EP_CREATE_BLOCKS | AD_EP_POLYLINE_AS_LINES)
  206. #define AD_DELETE_BLOBS 1
  207. #define AD_LEAVE_BLOBS 0
  208. #define AD_VERBOSITY_NONE 0
  209. #define AD_VERBOSITY_QUIET 1
  210. #define AD_VERBOSITY_VERBOSE 2
  211. #define AD_UNSAFEMODE 0
  212. #define AD_SAFEMODE 1
  213. #define AD_CRITERR_FILEREADERROR  1
  214. #define AD_CRITERR_MALLOCERROR    2
  215. #define AD_CRITERR_DISKFULL       3
  216. #define AD_CRITERR_WRITEABORT     4
  217. #define AD_CRITERR_BUFFEROVERRUN  5
  218. #define AD_CRITERR_BADDATA        6
  219. #define AD_DISKFULL_CALLWRITEABORT 0
  220. #define AD_DISKFULL_RETRY          1
  221. #define AD_DISKFULL_STOPWRITING    2
  222. #define BLKCTRL 0
  223. #define LAYERCTRL 1
  224. #define SHPFILECTRL 2
  225. #define LTYPECTRL 3
  226. #define VIEWCTRL 4
  227. #define UCSCTRL 5
  228. #define VPORTCTRL 6
  229. #define REGAPPCTRL 7
  230. #define DIMSTYLECTRL 8
  231. #define VPENTCTRL 9
  232. #define MLINEDICSHADOW 0
  233. #define GROUPDICSHADOW 1
  234. #define DICTIONARYSHADOW 2
  235. #define MSPACEBLKSHADOW 3
  236. #define PSPACEBLKSHADOW 4
  237. #define BYBLOCKLTPSHADOW 5
  238. #define BYLAYERLTPSHADOW 6
  239. #define MSPACEBLKENTSHADOW 7
  240. #define MSPACEENDBLKENTSHADOW 8
  241. #define PSPACEBLKENTSHADOW 9
  242. #define PSPACEENDBLKENTSHADOW 10
  243. #define CONTINUOUSLTPSHADOW 11
  244. #define LAYOUTDICSHADOW 12
  245. #define PLOTSETTINGSDICSHADOW 13
  246. #define PLOTSTYLEDICSHADOW 14
  247. #define AD_DXF_HEADER_PRESENT              1L
  248. #define AD_DXF_LTYPE_TABLE_PRESENT         2L
  249. #define AD_DXF_LAYER_TABLE_PRESENT         4L
  250. #define AD_DXF_SHAPEFILE_TABLE_PRESENT     8L
  251. #define AD_DXF_VIEW_TABLE_PRESENT         16L
  252. #define AD_DXF_VPORT_TABLE_PRESENT        32L
  253. #define AD_DXF_REGAPP_TABLE_PRESENT       64L
  254. #define AD_DXF_DIMSTYLE_TABLE_PRESENT    128L
  255. #define AD_DXF_UCS_TABLE_PRESENT         256L
  256. #define AD_DXF_BLKREC_TABLE_PRESENT      512L
  257. /* minimalheader1 is extents and version, 2 is extents only */
  258. #define AD_DXF_COMPLETE       0
  259. #define AD_DXF_MINIMALHEADER1 1
  260. #define AD_DXF_MINIMALHEADER2 2
  261. #define AD_DXF_ENTITIESONLY   4
  262. #ifndef TYPEDOBJHANDLESTRUDEFINED
  263. #define TYPEDOBJHANDLESTRUDEFINED
  264. typedef struct typedobjhandlestru {
  265.   AD_OBJHANDLE typedhandle;
  266.   char handletype;
  267. } AD_TYPEDOBJHANDLE,*PAD_TYPEDOBJHANDLE;
  268. #endif
  269. #define adHancpy(a,b)  memcpy(a,b,8)
  270. #define adHanclear(a)  memset(a,0,8)
  271. #ifdef AD_MEMCMPISSIGNED
  272. /* SUNOS4 ONLY */
  273. #define adHancmp(a,b)  adHancmp(a,b)
  274. #else
  275. #define adHancmp(a,b)  memcmp(a,b,8)
  276. #endif
  277. #define adHansame(a,b) (!adHancmp(a,b))
  278. #define AD_PAPERSPACE_ENT       1
  279. #define AD_EXTRUSION_INFO_VALID 2
  280. #define AD_INVISIBLE            4
  281. #define AD_POST_CLIPPED_EXT     8
  282. #define AD_FORMS_CLIP_BOUNDARY  16  /* Used internaly by viewkit */
  283. #define AD_BYBLOCK_PLOTSTYLE    32
  284. #define AD_BYLAYER_PLOTSTYLE    64
  285. #define adEntIsInPaperspace(a) (a & AD_PAPERSPACE_ENT)
  286. #define adEntHasExtrusion(a)   (a & AD_EXTRUSION_INFO_VALID)
  287. #define adEntIsInvisible(a)    (a & AD_INVISIBLE)
  288. #define adEntHasPostClipExt(a) (a & AD_POST_CLIPPED_EXT)
  289. #define adEntHasByBlockPlotStyle(a) (a & AD_BYBLOCK_PLOTSTYLE)
  290. #define adEntHasByLayerPlotStyle(a) (a & AD_BYLAYER_PLOTSTYLE)
  291. #define adSetEntIsInPaperspace(a) (a |= AD_PAPERSPACE_ENT)
  292. #define adSetEntHasExtrusion(a)   (a |= AD_EXTRUSION_INFO_VALID)
  293. #define adSetEntIsInvisible(a)    (a |= AD_INVISIBLE)
  294. #define adSetEntHasPostClipExt(a) (a |= AD_POST_CLIPPED_EXT)
  295. #define adSetEntHasByBlockPlotStyle(a) (a |= AD_BYBLOCK_PLOTSTYLE)
  296. #define adSetEntHasByLayerPlotStyle(a) (a |= AD_BYLAYER_PLOTSTYLE)
  297. #define adSetEntIsInModelspace(a) (a &= ~AD_PAPERSPACE_ENT)
  298. #define adSetEntHasNoExtrusion(a) (a &= ~AD_EXTRUSION_INFO_VALID)
  299. #define adSetEntIsNotInvisible(a) (a &= ~AD_INVISIBLE)
  300. #define adResetEntHasPostClipExt(a) (a &= ~AD_POST_CLIPPED_EXT)
  301. #define adResetEntHasByLayerPlotStyle(a) (a &= ~AD_BYLAYER_PLOTSTYLE)
  302. #define AD_PRELOAD_ALL 1
  303. #define AD_PRELOAD_PARTIAL 2
  304. /* flag "anders"  & other constants */
  305. #define AD_FACE3D_FACE1INVIS           1
  306. #define AD_FACE3D_FACE2INVIS           2
  307. #define AD_FACE3D_FACE3INVIS           4
  308. #define AD_FACE3D_FACE4INVIS           8
  309. #define AD_ATTDEF_INVIS                1
  310. #define AD_ATTDEF_CONST                2
  311. #define AD_ATTDEF_VERIFY               4
  312. #define AD_ATTDEF_PRESET               8
  313. #define AD_ATTRIB_INVIS                1
  314. #define AD_ATTRIB_CONST                2
  315. #define AD_ATTRIB_VERIFY               4
  316. #define AD_ATTRIB_PRESET               8
  317. #define AD_DIMTYPE_ROTATED             0
  318. #define AD_DIMTYPE_ALIGNED             1
  319. #define AD_DIMTYPE_ANGULAR             2
  320. #define AD_DIMTYPE_DIAMETER            3
  321. #define AD_DIMTYPE_RADIUS              4
  322. #define AD_DIMTYPE_ANGULAR3PT          5
  323. #define AD_DIMTYPE_ORDINATE            6
  324. #define AD_DIMTYPE_XORDDIM            64
  325. #define AD_DIMTYPE_TEXTPOS           128
  326. #define AD_MTEXT_ATTACH_TOPLEFT        1
  327. #define AD_MTEXT_ATTACH_TOPCENTER      2
  328. #define AD_MTEXT_ATTACH_TOPRIGHT       3
  329. #define AD_MTEXT_ATTACH_MIDDLELEFT     4
  330. #define AD_MTEXT_ATTACH_MIDDLECENTER   5
  331. #define AD_MTEXT_ATTACH_MIDDLERIGHT    6
  332. #define AD_MTEXT_ATTACH_BOTTOMLEFT     7
  333. #define AD_MTEXT_ATTACH_BOTTOMCENTER   8
  334. #define AD_MTEXT_ATTACH_BOTTOMRIGHT    9
  335. #define AD_MTEXT_ATTACH_TOLERANCE     10
  336. #define AD_MTEXT_DRAWDIR_LTOR          1
  337. #define AD_MTEXT_DRAWDIR_RTOL          2
  338. #define AD_MTEXT_DRAWDIR_TTOB          3
  339. #define AD_MTEXT_DRAWDIR_BTOT          4
  340. #define AD_PLINE_CLOSED                1
  341. #define AD_PLINE_CURVEFIT              2
  342. #define AD_PLINE_SPLINEFIT             4
  343. #define AD_PLINE_3DPLINE               8
  344. #define AD_PLINE_3DMESH               16
  345. #define AD_PLINE_CLOSEDN              32
  346. #define AD_PLINE_POLYFACEMESH         64
  347. #define AD_PLINE_CONTINUELT          128
  348. #define AD_PLINE_SURFTYPE_NONE         0
  349. #define AD_PLINE_SURFTYPE_QUAD         5
  350. #define AD_PLINE_SURFTYPE_CUBIC        6
  351. #define AD_PLINE_SURFTYPE_BEZIER       8
  352. #define AD_TEXT_GEN_BACKWARD           2
  353. #define AD_TEXT_GEN_UPSIDEDOWN         4
  354. #define AD_TEXT_JUST_LEFT              0
  355. #define AD_TEXT_JUST_CENTER            1
  356. #define AD_TEXT_JUST_RIGHT             2
  357. #define AD_TEXT_JUST_ALIGNED           3
  358. #define AD_TEXT_JUST_MIDDLE            4
  359. #define AD_TEXT_JUST_FIT               5
  360. #define AD_TEXT_VALIGN_BASELINE        0
  361. #define AD_TEXT_VALIGN_BOTTOM          1
  362. #define AD_TEXT_VALIGN_MIDDLE          2
  363. #define AD_TEXT_VALIGN_TOP             3
  364. #define AD_VERTEX_FROMFIT              1
  365. #define AD_VERTEX_HASTANGENT           2
  366. #define AD_VERTEX_SPLINEVERTEX         8
  367. #define AD_VERTEX_SPLINEFRAME         16
  368. #define AD_VERTEX_3DPLINE             32
  369. #define AD_VERTEX_3DMESHVERT          64
  370. #define AD_VERTEX_FACELIST           128
  371. #define AD_LEADER_PATH_STRAIGHT        0
  372. #define AD_LEADER_PATH_SPLINE          1
  373. #define AD_LEADER_ANNO_TEXT            0
  374. #define AD_LEADER_ANNO_TOLERANCE       1
  375. #define AD_LEADER_ANNO_BLOCK           2
  376. #define AD_LEADER_ANNO_NONE            3
  377. #define AD_SPLINE_CLOSED               1
  378. #define AD_SPLINE_PERIODIC             2
  379. #define AD_SPLINE_RATIONAL             4
  380. #define AD_SPLINE_PLANAR               8
  381. #define AD_SPLINE_LINEAR              16
  382. #define AD_MLINE_JUST_TOP              0
  383. #define AD_MLINE_JUST_ZERO             1
  384. #define AD_MLINE_JUST_BOTTOM           2
  385. #define AD_MLINE_LOCKED                1
  386. #define AD_MLINE_CLOSED                2
  387. #define AD_MLINE_SUPPRESS_START_CAPS   4
  388. #define AD_MLINE_SUPPRESS_END_CAPS     8
  389. #define AD_ENTRY_XREF_DEPENDENT        16
  390. #define AD_XREF_RESOLVED               32
  391. #define AD_REFERENCED                  64
  392. #define AD_BLOCK_ANONYMOUS             1
  393. #define AD_BLOCK_HASATTRIBUTES         2
  394. #define AD_BLOCK_XREF                  4
  395. #define AD_LAYER_OFF                   0
  396. #define AD_LAYER_ON                    1
  397. #define AD_LAYER_THAWED                0
  398. #define AD_LAYER_FROZEN                1
  399. #define AD_LAYER_VPFROZEN              2
  400. #define AD_LAYER_LOCKED                4
  401. #define AD_LAYER_NOCHANGE              -1
  402. #define AD_SHAPEFILE_SHAPES            1
  403. #define AD_SHAPEFILE_VERTICAL          4
  404. #define AD_SHAPEFILE_GEN_BACKWARD      2
  405. #define AD_SHAPEFILE_GEN_UPSIDEDOWN    4
  406. #define AD_VIEW_ISPAPERSPACE           1
  407. #define AD_MLSTYLE_FILL_ON             1
  408. #define AD_MLSTYLE_SHOW_MITERS         2
  409. #define AD_MLSTYLE_START_SQUARE        16
  410. #define AD_MLSTYLE_START_INNER_ARC     32
  411. #define AD_MLSTYLE_START_ROUND         64
  412. #define AD_MLSTYLE_END_SQUARE          256
  413. #define AD_MLSTYLE_END_INNER_ARC       512
  414. #define AD_MLSTYLE_END_ROUND           1024
  415. #define AD_LWPLINE_HAS_CONSTANT_WIDTH  4
  416. #define AD_LWPLINE_HAS_BULGES          16
  417. #define AD_LWPLINE_HAS_WIDTHS          32
  418. #define AD_LWPLINE_PLINEGEN            256
  419. #define AD_LWPLINE_IS_CLOSED           512
  420. #define AD_HATCH_PATHTYPE_LINE         1
  421. #define AD_HATCH_PATHTYPE_CIRCARC      2
  422. #define AD_HATCH_PATHTYPE_ELLIPARC     3
  423. #define AD_HATCH_PATHTYPE_SPLINE       4
  424. #define AD_HATCH_STYLE_NORMAL          0
  425. #define AD_HATCH_STYLE_OUTER           1
  426. #define AD_HATCH_STYLE_IGNORE          2
  427. #define AD_HATCH_PATHFLAG_DEFAULT      0
  428. #define AD_HATCH_PATHFLAG_EXTERNAL     1
  429. #define AD_HATCH_PATHFLAG_POLYLINE     2
  430. #define AD_HATCH_PATHFLAG_DERIVED      4
  431. #define AD_HATCH_PATHFLAG_TEXTBOX      8
  432. #define AD_HATCH_PATHFLAG_OUTERMOST   16
  433. #define AD_HATCH_PATTERNTYPE_USER       0
  434. #define AD_HATCH_PATTERNTYPE_PREDEFINED 1
  435. #define AD_HATCH_PATTERNTYPE_CUSTOM     2
  436. #define AD_IMAGE_CLIPBOUND_RECT        1
  437. #define AD_IMAGE_CLIPBOUND_POLYGON     2
  438. #define AD_IMAGE_DISPPROPS_SHOWIMAGE      1
  439. #define AD_IMAGE_DISPPROPS_SHOWNONALIGNED 2
  440. #define AD_IMAGE_DISPPROPS_USECLIP        4
  441. #define AD_IMAGE_DISPPROPS_TRANSON        8
  442. #define AD_ISDIMTYPE_ROTATED(a)             ((a & 7)==0)
  443. #define AD_ISDIMTYPE_ALIGNED(a)             ((a & 7)==1)
  444. #define AD_ISDIMTYPE_ANGULAR(a)             ((a & 7)==2)
  445. #define AD_ISDIMTYPE_DIAMETER(a)            ((a & 7)==3)
  446. #define AD_ISDIMTYPE_RADIUS(a)              ((a & 7)==4)
  447. #define AD_ISDIMTYPE_ANGULAR3PT(a)          ((a & 7)==5)
  448. #define AD_ISDIMTYPE_ORDINATE(a)            ((a & 7)==6)
  449. #define AD_ISDIMTYPE_XORDDIM(a)             (a & 64)
  450. #define AD_COLOR_RED                   1
  451. #define AD_COLOR_YELLOW                2
  452. #define AD_COLOR_GREEN                 3
  453. #define AD_COLOR_CYAN                  4
  454. #define AD_COLOR_BLUE                  5
  455. #define AD_COLOR_MAGENTA               6
  456. #define AD_COLOR_WHITE                 7
  457.   /* DXF HEADER VALUES */
  458. #ifndef ADHSTRUDEFINED
  459. #define ADHSTRUDEFINED
  460. typedef struct adhdstru {
  461. short  acadmaintver;   /* (R14) */
  462. char   acadver[7];
  463. double angbase;
  464. short  angdir;
  465. short  attdia;
  466. short  attmode;
  467. short  attreq;
  468. short  aunits;
  469. short  auprec;
  470. short  axismode;
  471. double axisunit[2];
  472. double backz;
  473. short  blipmode;
  474. short  cecolor;
  475. double celtscale;
  476. short  celweight; /* A2K */
  477. short  cepsntype; /* A2K */
  478. double chamfera;
  479. double chamferb;
  480. double chamferc;
  481. double chamferd;
  482. short  cmljust;
  483. double cmlscale;
  484. short  coords;
  485. short  cyclecurr;
  486. short  cyclekeep;
  487. char   delobj;
  488. short  dimadec; /* A2K */
  489. char   dimalt;
  490. char   dimaltd;
  491. double dimaltf;
  492. double dimaltrnd; /* A2K */
  493. short  dimalttd;       /* (R13) */
  494. char   dimalttz;       /* (R13) */
  495. short  dimaltu;        /* (R13) */
  496. char   dimaltz;        /* (R13) */
  497. char   dimapost[121];  /* max chars 15, null terminated */
  498. char   dimaso;
  499. double dimasz;
  500. short  dimaunit;       /* (R13) */
  501. short  dimazin; /* A2K */
  502. char   dimblk[AD_MAX_STRLEN];     /* max chars 31, null terminated */
  503. AD_OBJHANDLE dimblkobjhandle;
  504. char   dimblk1[AD_MAX_STRLEN];    /* max chars 31, null terminated */
  505. AD_OBJHANDLE dimblk1objhandle;
  506. char   dimblk2[AD_MAX_STRLEN];    /* max chars 31, null terminated */
  507. AD_OBJHANDLE dimblk2objhandle;
  508. double dimcen;
  509. short  dimclrd;        /* (R11) */
  510. short  dimclre;        /* (R11) */
  511. short  dimclrt;        /* (R11) */
  512. short  dimdec;         /* (R13) */
  513. double dimdle;
  514. double dimdli;
  515. short  dimdsep; /* A2K */
  516. double dimexe;
  517. double dimexo;
  518. char   dimfit;         /* (R13) */
  519. short  dimfrac;        /* A2K */
  520. double dimgap;
  521. char   dimjust;        /* (R13) */
  522. char   dimldrblk[AD_MAX_STRLEN]; /* A2K */
  523. AD_OBJHANDLE dimldrblkobjhandle;
  524. double dimlfac;
  525. char   dimlim;
  526. short  dimlwd; /* A2K */
  527. short  dimlwe; /* A2K */
  528. char   dimpost[121];   /* max chars 15, null terminated */
  529. double dimrnd;
  530. char   dimsah;
  531. double dimscale;
  532. char   dimsd1;         /* (R13) */
  533. char   dimsd2;         /* (R13) */
  534. char   dimse1;
  535. char   dimse2;
  536. char   dimsho;
  537. char   dimsoxd;
  538. char   dimtad;
  539. short  dimtdec;        /* (R13) */
  540. double dimtfac;        /* (R11) */
  541. char   dimtih;
  542. char   dimtix;
  543. double dimtm;
  544. short  dimtmove; /* A2K */
  545. char   dimtofl;
  546. char   dimtoh;
  547. char   dimtol;
  548. char   dimtolj;        /* (R13) */
  549. double dimtp;
  550. double dimtsz;
  551. double dimtvp;
  552. double dimtxt;
  553. char   dimtzin;        /* (R13) */
  554. short  dimunit;        /* (R13) */
  555. char   dimupt;         /* (R13) */
  556. char   dimzin;
  557. char   dispsilh;
  558. short  dragmode;
  559. short  dwgcodepage;
  560. double elevation;
  561. char   endcaps;
  562. double extmin[3];
  563. double extmax[3];
  564. char   extnames; /* A2K */
  565. double facetres;       /* (R13) */
  566. short  fastzoom;
  567. double filletrad;
  568. short  fillmode;
  569. char   fingerprintguid[39];
  570. short  flatland;
  571. double frontz;
  572. short  gridmode;
  573. double gridunit[2];
  574. short  handles;
  575. AD_OBJHANDLE handseed;
  576. char   hyperlinkbase[256];
  577. double insbase[3];
  578. short  insunits; /* A2K */
  579. short  isolines;      /* (R13) */
  580. char   joinstyle;
  581. double lenslength;
  582. short  limcheck;
  583. double limmin[2];
  584. double limmax[2];
  585. double ltscale;
  586. short  lunits;
  587. short  luprec;
  588. char   lwdisplay;
  589. short  maxactvp;         /* (R11) */
  590. unsigned short measurement;  /* (R14) */
  591. char   menu[512];
  592. short  mirrtext;
  593. short  olestartup;
  594. short  orthomode;
  595. short  osmode;
  596. short  pdmode;
  597. double pdsize;
  598. double pelevation;     /* (R11) */
  599. char   pellipse;       /* (R13) */
  600. double pextmin[3];
  601. double pextmax[3];
  602. char   pickstyle;
  603. double pinsbase[3];    /* (R11) */
  604. short  plimcheck;      /* (R11) */
  605. double plimmin[2];     /* (R11) */
  606. double plimmax[2];     /* (R11) */
  607. short  plinegen;
  608. double plinewid;       /* (R11) */
  609. char   proxygraphics;
  610. short  psltscale;
  611. char   pstylemode; /* A2K */
  612. double psvpscale; /* A2K */
  613. double pucsorg[3];     /* (R11) */
  614. double pucsorgback[3];     /* (R11) */
  615. double pucsorgbottom[3];     /* (R11) */
  616. double pucsorgfront[3];     /* (R11) */
  617. double pucsorgleft[3];     /* (R11) */
  618. double pucsorgright[3];     /* (R11) */
  619. double pucsorgtop[3];     /* (R11) */
  620. short  pucsorthoview;
  621. double pucsxdir[3];    /* (R11) */
  622. double pucsydir[3];    /* (R11) */
  623. short  qtextmode;
  624. short  regenmode;
  625. short  shadedge;        /* (R11) */
  626. short  shadedif;        /* (R11) */
  627. double sketchinc;
  628. short  skpoly;
  629. double snapang;
  630. double snapbase[2];
  631. short  snapisopair;
  632. short  snapmode;
  633. short  snapstyle;
  634. double snapunit[2];
  635. short  splframe;
  636. short  splinesegs;
  637. short  splinetype;
  638. char   stylesheet[AD_MAX_STRLEN];
  639. short  surftab1;
  640. short  surftab2;
  641. short  surftype;
  642. short  surfu;
  643. short  surfv;
  644. double target[3];
  645. OdaLong   tdcreate[2];
  646. OdaLong   tdindwg[2];
  647. OdaLong   tducreate[2];
  648. OdaLong   tdupdate[2];
  649. OdaLong   tdusrtimer[2];
  650. OdaLong   tduupdate[2];
  651. short  textqlty;     /* (R13) */
  652. double textsize;
  653. double thickness;
  654. short  tilemode;     /* (R11) */
  655. double tracewid;
  656. short  treedepth;
  657. short  tstackalign;
  658. short  tstacksize;
  659. short  ucsflag;
  660. short  ucsicon;
  661. char   ucsname[AD_MAX_STRLEN];
  662. double ucsorg[3];
  663. double ucsorgback[3];     /* (R11) */
  664. double ucsorgbottom[3];     /* (R11) */
  665. double ucsorgfront[3];     /* (R11) */
  666. double ucsorgleft[3];     /* (R11) */
  667. double ucsorgright[3];     /* (R11) */
  668. double ucsorgtop[3];     /* (R11) */
  669. short  ucsorthoview;
  670. double ucsxdir[3];
  671. double ucsydir[3];
  672. short  unitmode;     /* (R11) */
  673. short  useri[5];
  674. double userr[5];
  675. short  usrtimer;
  676. char   versionguid[39];
  677. double viewctr[3];
  678. double viewsize;
  679. double viewtwisthdr;
  680. short  visretain;   /* (R11) */
  681. double vpointhdr[3];
  682. short  worldview;
  683. char   xedit; /* A2K */
  684. AD_OBJHANDLE curltypeobjhandle;  /* (R13) */
  685. AD_OBJHANDLE curlayerobjhandle;  /* (R13) */
  686. AD_OBJHANDLE curmlstyleobjhandle;  /* (R13) */
  687. AD_OBJHANDLE curdimstyleobjhandle;  /* (R13) */
  688. AD_OBJHANDLE curdimtextstyleobjhandle;
  689. AD_OBJHANDLE curpucsobjhandle;
  690. AD_OBJHANDLE curtextstyleobjhandle;  /* (R13) */
  691. AD_OBJHANDLE curucsobjhandle;
  692. AD_OBJHANDLE curucsbaseobjhandle;
  693. AD_OBJHANDLE curucsorthorefobjhandle;
  694. AD_OBJHANDLE curpucsbaseobjhandle;
  695. AD_OBJHANDLE curpucsorthorefobjhandle;
  696. AD_OBJHANDLE plotstyleByObjHandle;
  697. char hdrstr[4][AD_MAX_STRLEN];          /* (R13) */
  698. double hdrdoub[4];           /* (R13) */
  699. OdaLong hdrlong[2];
  700. short hdrshort;
  701. } AD_DWGHDR,*PAD_DWGHDR;
  702. #endif
  703.   /* end of dxf header variables */
  704. typedef struct doubrectstru {
  705.   double xmin;
  706.   double ymin;
  707.   double xmax;
  708.   double ymax;
  709. } DOUBRECT, *PDOUBRECT;
  710. typedef struct doubrectfullstru {
  711.   double pt0[4];
  712.   double pt1[4];
  713. } DOUBRECTFULL, *PDOUBRECTFULL;
  714. #ifndef ADBLOBCTRLDEFINED
  715. #define ADBLOBCTRLDEFINED
  716. typedef struct adblobctrlstru {
  717.   short blobmagic;
  718.   char *buf;
  719.   AD_VMADDR vmaddr,vmblobctrladdr;
  720.   OdaLong size,bytesleft;
  721.   char writingthisblob;
  722.   short curbufindex,bytesinbuf;
  723.   short chunksize;
  724. } AD_BLOB_CTRL, *PAD_BLOB_CTRL;
  725. #endif
  726.   /* entity structures */
  727. #ifndef ADENHDSTRUDEFINED
  728. #define ADENHDSTRUDEFINED
  729. typedef struct adenhdstru {
  730.   unsigned short enttype;   /* changed to short on R13 */
  731.   AD_OBJHANDLE  enthandle;
  732.   AD_OBJHANDLE  entlayerobjhandle;
  733.   AD_OBJHANDLE  entltypeobjhandle;
  734.   AD_OBJHANDLE  xdicobjhandle;  /* new in 14 */
  735.   double entthickness;
  736.   short  entcolor;
  737.   double extrusion[3];
  738.   double entltscale;
  739.   unsigned char entflags;  /* ps, extru, invisible */
  740.   short lineweight;
  741.   OdaLong userdata;
  742.   AD_VMADDR xdblob;
  743.   OdaLong numreactors;
  744.   AD_VMADDR reactorblob;
  745.   AD_OBJHANDLE ownerobjhandle;
  746.   AD_OBJHANDLE plotstyleobjhandle; /* [ingr 94] */
  747. } AD_ENT_HDR,*PAD_ENT_HDR;
  748. #endif
  749. #ifndef ADTDATADEFINED
  750. #define ADTDATADEFINED
  751.   typedef struct adtdatastru {
  752.     double height;
  753.     double rotang;
  754.     double widthfactor;
  755.     double oblique;
  756.     char   generationflag;
  757.     char   justification;
  758.     char   vertalignment;
  759.     double secondtextloc[2];
  760.     AD_OBJHANDLE shapefileobjhandle;
  761.   } AD_TDATA,*PAD_TDATA;
  762. #endif
  763. #ifndef ADENSTRUDEFINED
  764. #define ADENSTRUDEFINED
  765. typedef struct adacisstru {
  766.   double pt0[3];
  767.   AD_VMADDR ldblob;
  768.   AD_VMADDR imgdata;
  769.   char objcamefromdwgfile;
  770. } AD_ACIS,*PAD_ACIS;
  771. typedef struct adarcstru {
  772.   double pt0[3];
  773.   double radius;
  774.   double stang;
  775.   double endang;
  776. } AD_ARC,*PAD_ARC;
  777. typedef struct adarcalignedtextstru {
  778.   char text[1024];
  779.   char fontname[AD_MAX_STRLEN];
  780.   char bigfontname[AD_MAX_STRLEN];
  781.   AD_OBJHANDLE textstyleobjhandle;
  782.   double pt0[3];
  783.   double radius;
  784.   double widthfactor;
  785.   double height;
  786.   double charspacing;
  787.   double offsetfromarc;
  788.   double rightoffset;
  789.   double leftoffset;
  790.   double startangle;
  791.   double endangle;
  792.   short  charorder;
  793.   short  direction;
  794.   short  alignment;
  795.   short  side;
  796.   short  bold;
  797.   short  italic;
  798.   short  underline;
  799.   short  charset;
  800.   short  pitch;
  801.   short  fonttype;
  802.   OdaLong   color;
  803.   short  wizardflag;
  804.   AD_VMADDR grblob;
  805.   AD_OBJHANDLE arcobjhandle;
  806. } AD_ARCALIGNEDTEXT, *PAD_ARCALIGNEDTEXT;
  807. typedef struct adattdefstru {
  808.   double pt0[3];
  809.   char   attflag;
  810.   short  fieldwidth;
  811.   AD_TDATA tdata;
  812.   char   prompt[1024];
  813.   char   tag[1024];
  814.   char   defaultval[1024];
  815. } AD_ATTDEF,*PAD_ATTDEF;
  816. typedef struct adattribstru {
  817.   double pt0[3];
  818.   char   attflag;
  819.   short  fieldwidth;
  820.   AD_TDATA tdata;
  821.   char   tag[513];  /* was 257 */
  822.   char   attval[2049]; /* was 257 */
  823. } AD_ATTRIB,*PAD_ATTRIB;
  824. typedef struct adblockstru {
  825.   double base[3];
  826.   char   name2[AD_MAX_STRLEN];
  827.   char   xrefpath[512];
  828. } AD_BLOCK,*PAD_BLOCK;
  829. typedef struct adcirclestru {
  830.   double pt0[3];
  831.   double radius;
  832. } AD_CIRCLE,*PAD_CIRCLE;
  833. typedef struct addimensionstru {
  834.   short  dimcloneinfopresent;
  835.   double dimcloneinspt[3];
  836.   unsigned char   dimflag;
  837.   double arcdefpt[3];
  838.   double defpt2[3];
  839.   double defpt3[3];
  840.   double defpt4[3];
  841.   double leaderlen;
  842.   double dimrotang;
  843.   double dimtextrot;
  844.   double dimoblique;
  845.   double dimtextmidpt[3];
  846.   double dimlinedefpt[3];
  847.   double ucsxangle;
  848.   short attachpt;
  849.   short linespacingstyle;
  850.   double linespacingfactor;
  851.   double actualmeasurement;
  852.   AD_OBJHANDLE blockheaderobjhandle;
  853.   AD_OBJHANDLE dimstyleobjhandle;
  854.   double reserved;
  855.   char   dimtext[1024];   /* keep this at the end of the structure */
  856. } AD_DIM,*PAD_DIM;
  857. typedef struct adellipsestru {
  858.   double pt0[3];
  859.   double pt1offset[3];
  860.   double minortomajorratio,startparam,endparam;
  861. } AD_ELLIPSE,*PAD_ELLIPSE;
  862. typedef struct adface3dstru {
  863.   double pt0[3];
  864.   double pt1[3];
  865.   double pt2[3];
  866.   double pt3[3];
  867.   short  faceflag;
  868. } AD_FACE3D,*PAD_FACE3D;
  869. typedef struct adhatchstru {
  870.   double pt0[3];
  871.   char name[AD_MAX_STRLEN];
  872.   unsigned short associative,solidfill;
  873.   AD_VMADDR pathblob;
  874.   OdaLong numpaths;
  875.   unsigned short style;
  876.   unsigned short patterntype;
  877.   double angle;
  878.   double scaleorspacing;
  879.   unsigned short doublehatch;
  880.   unsigned short numdeflines;
  881.   AD_VMADDR hatchblob,boundaryobjblob;
  882.   double pixelsize;
  883.   AD_VMADDR seedpointblob;
  884.   OdaLong numseedpoints;
  885. } AD_HATCH, *PAD_HATCH;
  886. typedef struct hatchlinedefstru {
  887.   double angle;
  888.   double spacing[2];
  889.   double origin[2];
  890.   short  numdashitems;
  891.   double *dashitems;
  892. } AD_HATCHLINEDEF, *PAD_HATCHLINEDEF;
  893. typedef struct hatchpattstru {
  894.   AD_HATCHLINEDEF *linedef;
  895.   unsigned short style;
  896.   unsigned short numlinedefs;
  897. } AD_HATCHPATT, *PAD_HATCHPATT;
  898. typedef struct adimagestru {
  899.   OdaLong classversion;
  900.   double pt0[3];
  901.   double size[2];
  902.   double uvec[3],vvec[3];
  903.   unsigned short clipping,brightness,contrast,fade,clipboundtype;
  904.   unsigned short displayprops;
  905.   OdaLong numclipverts;
  906.   double rectclipvert0[2],rectclipvert1[2];
  907.   AD_VMADDR polyclipvertblob;
  908.   AD_VMADDR grblob;
  909.   AD_OBJHANDLE imagedefobjhandle,imagedefreactorobjhandle;
  910.   AD_VMADDR bmpblob;                   /* for AD3 -- to hold bmp data */
  911. } AD_IMAGE, *PAD_IMAGE;
  912. typedef struct adinsertstru {
  913.   short  attribsfollow;
  914.   double pt0[3];
  915.   double xscale;
  916.   double yscale;
  917.   double zscale;
  918.   double rotang;
  919.   double rowdist;
  920.   double coldist;
  921.   short  numrows;
  922.   short  numcols;
  923.   AD_OBJHANDLE blockheaderobjhandle;
  924. } AD_INSERT,*PAD_INSERT;
  925. typedef struct adleaderstru {
  926.   unsigned short numpoints;
  927.   unsigned char pathtype,arrowheadon,hooklineonxdir,hashookline;
  928.   unsigned short annotype,colorforbyblock;
  929.   double annoht,annowid;
  930.   double txtoffset[3];
  931.   double xdir[3];
  932.   double offsettoblkinspt[3];
  933.   AD_OBJHANDLE annohandle,dimstyleobjhandle;
  934.   AD_VMADDR ldblob;
  935. } AD_LEADER,*PAD_LEADER;
  936. typedef struct adline3dstru {
  937.   double pt0[3];
  938.   double pt1[3];
  939. } AD_LINE3D,*PAD_LINE3D;
  940. typedef struct adlinestru {
  941.   double pt0[3];
  942.   double pt1[3];
  943. } AD_LINE,*PAD_LINE;
  944. typedef struct adlwplinestru {
  945.   OdaLong numpoints;
  946.   unsigned short flag;
  947.   double elevation;
  948.   double constantwidth;
  949.   AD_VMADDR ldblob;
  950. } AD_LWPLINE,*PAD_LWPLINE;
  951. typedef struct admlinestru {
  952.   double scale;
  953.   short  justification;
  954.   short  openclosed,linesinstyle;
  955.   OdaLong   numverts;
  956.   double basept[3];
  957.   AD_OBJHANDLE mlinestyleobjhandle;
  958.   AD_VMADDR ldblob;
  959. } AD_MLINE,*PAD_MLINE;
  960. typedef struct admtextstru {
  961.   double pt0[3];
  962.   double xdir[3];
  963.   double ht,refrectwid;
  964.   char   attachpt;
  965.   char   drawdir;
  966.   double boxht,boxwid;
  967.   short  linespacingstyle;
  968.   double linespacingfactor;
  969.   AD_OBJHANDLE shapefileobjhandle;
  970.   AD_VMADDR ldblob;
  971.   char   textstr[257];
  972. } AD_MTEXT,*PAD_MTEXT;
  973. typedef struct adole2framestru {
  974.   short flag;
  975.   short mode;
  976.   char  rawchar;
  977.   OdaLong  databytes;
  978.   double pt0[3],pt1[3];
  979.   AD_VMADDR datablob;
  980. } AD_OLE2FRAME,*PAD_OLE2FRAME;
  981. typedef struct adpolylinestru {
  982.   double z1;
  983.   double startwidth;
  984.   double endwidth;
  985.   short  fittype;
  986.   short  meshmdensity;
  987.   short  meshndensity;
  988.   short  meshm;
  989.   short  meshn;
  990.   unsigned short  polyflag;
  991. } AD_PLINE,*PAD_PLINE;
  992. typedef struct adpointstru {
  993.   double pt0[3];
  994.   double ucsxangle;
  995. } AD_POINT,*PAD_POINT;
  996. typedef struct adproxyentstru {
  997.   short entclassid;
  998.   short appclassid;
  999.   OdaLong entdatabits;
  1000.   OdaLong numobjids;
  1001.   OdaLong objectdrawingformat;
  1002.   short origdataformat;
  1003.   AD_VMADDR entdatablob;
  1004.   AD_VMADDR objidblob;
  1005.   AD_VMADDR grblob;
  1006. AD_VMADDR satblob;
  1007. } AD_PROXYENT,*PAD_PROXYENT;
  1008. typedef struct adraystru {
  1009.   double pt0[3],unitvec[3];
  1010. } AD_RAY,*PAD_RAY;
  1011. typedef struct adrtextstru {
  1012.   double pt0[3];
  1013.   double rotang;
  1014.   double height;
  1015.   AD_OBJHANDLE textstyleobjhandle;
  1016.   short typeflag;
  1017.   AD_VMADDR grblob;
  1018.   char contents[1024];
  1019. } AD_RTEXT, *PAD_RTEXT;
  1020. typedef struct adshapestru {
  1021.   double pt0[3];
  1022.   double scale;
  1023.   unsigned char whichshape;
  1024.   double rotang;
  1025.   double widthfactor;
  1026.   double oblique;
  1027.   AD_OBJHANDLE shapefileobjhandle;
  1028. } AD_SHAPE,*PAD_SHAPE;
  1029. typedef struct adsolidstru {
  1030.   double pt0[3];
  1031.   double pt1[3];
  1032.   double pt2[3];
  1033.   double pt3[3];
  1034. } AD_SOLID,*PAD_SOLID;
  1035. typedef struct adsplinestru {
  1036.   short  degree;
  1037.   short  flag;
  1038.   unsigned short numknots,numctlpts,numfitpts;
  1039.   double knottol,ctltol,fittol;
  1040.   double starttangent[3],endtangent[3];
  1041.   AD_VMADDR ldblob;
  1042. } AD_SPLINE,*PAD_SPLINE;
  1043. typedef struct adtextstru {
  1044.   double pt0[3];
  1045.   AD_TDATA tdata;
  1046.   char   textstr[2048];
  1047. } AD_TEXT,*PAD_TEXT;
  1048. typedef struct adtolerancestru {
  1049.   double pt0[3];
  1050.   double xdir[3];
  1051.   AD_OBJHANDLE dimstyleobjhandle;
  1052.   double textht;
  1053.   char textstr[1024];
  1054. } AD_TOLERANCE,*PAD_TOLERANCE;
  1055. typedef struct adtracestru {
  1056.   double pt0[3];
  1057.   double pt1[3];
  1058.   double pt2[3];
  1059.   double pt3[3];
  1060. } AD_TRACE,*PAD_TRACE;
  1061. typedef struct advertexstru {
  1062.   double pt0[3];
  1063.   unsigned short vertexflag;
  1064.   double startwidth;
  1065.   double endwidth;
  1066.   short  startwidthvalid;
  1067.   short  endwidthvalid;
  1068.   double bulge;
  1069.   double tangentdir;
  1070.   short  polyfacevertcount;
  1071.   short  polyfacevert[4];
  1072. } AD_VERTEX,*PAD_VERTEX;
  1073. typedef struct advpentstru {
  1074.   AD_VMADDR frozenlayerblob;
  1075.   OdaLong   numfrozenlayers;
  1076.   short  flag;
  1077.   short  stackval;
  1078.   double cen[3];
  1079.   double width;
  1080.   double height;
  1081.   short  id;
  1082.   char   purgedflag;             /* flag indicating entry has been purged */
  1083.   short  xrefindex;     /* index of xref from which this item came */
  1084.   AD_OBJHANDLE objhandle;
  1085.   AD_OBJHANDLE clipboundobjhandle;
  1086.   unsigned OdaLong   statusflags;
  1087.   short  rendermode;
  1088.   char   stylesheet[AD_MAX_STRLEN];
  1089.   short  ucsvp;
  1090.   short  ucsiconatucsorigin;
  1091.   double ucsorg[3];
  1092.   double ucsxdir[3];
  1093.   double ucsydir[3];
  1094.   short  ucsorthoviewtype;
  1095.   double ucselevation;
  1096.   AD_OBJHANDLE ucsobjhandle;
  1097.   AD_OBJHANDLE baseucsobjhandle;
  1098. /* new with A2K -- these variables, which control the display of the modelspace view
  1099.    which is seen through the viewport entity, moved out of xdata and into the entity */
  1100.   double viewtarget[3];
  1101.   double viewdir[3];
  1102.   double viewtwist;
  1103.   double viewheight;
  1104.   double viewcenter[2];
  1105.   double viewlenslength;
  1106.   double viewfrontclip;
  1107.   double viewbackclip;
  1108.   short  viewcirclezoom;
  1109.   double viewsnapdist[2];
  1110.   double viewgriddist[2];
  1111.   double viewsnapangle;
  1112.   double viewsnapbase[2];
  1113.   AD_OBJHANDLE hdrObjHandle;
  1114.   char   name[AD_MAX_STRLEN];      /* important -- name should be last field */
  1115. } AD_VPENT,*PAD_VPENT;
  1116. typedef struct adwipeoutstru {
  1117.   OdaLong classversion;
  1118.   double pt0[3];
  1119.   double size[2];
  1120.   double uvec[3],vvec[3];
  1121.   unsigned short clipping,brightness,contrast,fade,clipboundtype;
  1122.   unsigned short displayprops;
  1123.   OdaLong numclipverts;
  1124.   double rectclipvert0[2],rectclipvert1[2];
  1125.   AD_VMADDR polyclipvertblob;
  1126.   AD_VMADDR grblob;
  1127.   AD_OBJHANDLE imagedefobjhandle,imagedefreactorobjhandle;
  1128. } AD_WIPEOUT, *PAD_WIPEOUT;
  1129. typedef struct adxlinestru {
  1130.   double pt0[3],unitvec[3];
  1131. } AD_XLINE,*PAD_XLINE;
  1132. typedef union adenunion {
  1133.   AD_ACIS      acisobj;
  1134.   AD_ARC       arc;
  1135.   AD_ARCALIGNEDTEXT arcalignedtext;
  1136.   AD_ATTDEF    attdef;
  1137.   AD_ATTRIB    attrib;
  1138.   AD_BLOCK     block;
  1139.   AD_CIRCLE    circle;
  1140.   AD_DIM       dim;
  1141.   AD_ELLIPSE   ellipse;
  1142.   AD_FACE3D    face3d;
  1143.   AD_HATCH     hatch;
  1144.   AD_IMAGE     image;
  1145.   AD_INSERT    insert;
  1146.   AD_LEADER    leader;
  1147.   AD_LINE      line;
  1148.   AD_LINE3D    line3d;
  1149.   AD_LWPLINE   lwpline;
  1150.   AD_MLINE     mline;
  1151.   AD_MTEXT     mtext;
  1152.   AD_OLE2FRAME ole2frame;
  1153.   AD_PLINE     pline;
  1154.   AD_POINT     point;
  1155.   AD_PROXYENT  proxyent;
  1156.   AD_RAY       ray;
  1157.   AD_RTEXT     rtext;
  1158.   AD_SHAPE     shape;
  1159.   AD_SOLID     solid;
  1160.   AD_SPLINE    spline;
  1161.   AD_TEXT      text;
  1162.   AD_TOLERANCE tolerance;
  1163.   AD_TRACE     trace;
  1164.   AD_VERTEX    vertex;
  1165.   AD_VPENT     vpent;
  1166.   AD_WIPEOUT   wipeout;
  1167.   AD_XLINE     xline;
  1168. } AD_ENT,*PAD_ENT;
  1169. #endif
  1170. #ifndef ADXDSTRUDEFINED
  1171. #define ADXDSTRUDEFINED
  1172. typedef union xdunion {
  1173.   double xd3dpt[3];              /* extended data 3d point x, */
  1174.   AD_OBJHANDLE xdappobjhandle;      /* objhandle of app for R13+ */
  1175.   char   xdbindata[128];         /* extended data binary data */
  1176.   char   xdcontrol;              /* { or } */
  1177.   AD_OBJHANDLE xdhandle;            /* extended data database handle */
  1178.   double xddist;                 /* extended data distance */
  1179.   short  xdint;                  /* extended data integer */
  1180.   AD_OBJHANDLE xdentlayerobjhandle; /* extended data layer object handle */
  1181.   OdaLong   xdlong;                 /* extended data long integer */
  1182.   double xdreal;                 /* extended data real number */
  1183.   double xdscale;                /* extended data scale factor */
  1184.   char   xdstring[2050];         /* extended data string */
  1185.   double xdworlddir[3];          /* extended data world direction xyz */
  1186.   double xdworlddisp[3];         /* extended data world displacement xyz */
  1187.   double xdworldpos[3];          /* extended data world position xyz */
  1188. } AD_XD_DATA,*PAD_XD_DATA;
  1189. typedef struct adxdstru {
  1190.   short xddxfnumber;
  1191.   short xdbindatalength;        /* size of the data for binary data */
  1192.   AD_XD_DATA xddata;
  1193. } AD_XD,*PAD_XD;
  1194. #endif
  1195.   /* end of entity values */
  1196. #ifndef ADTBLSTRUSDEFINED
  1197. #define ADTBLSTRUSDEFINED
  1198. typedef struct adappstru {
  1199.   AD_OBJHANDLE ownerobjhandle;
  1200.   short  xrefindex;            /* index of xref from which this item came */
  1201.   char   purgedflag;           /* flag indicating entry has been purged */
  1202.   char   flag;
  1203.   char   name[AD_MAX_STRLEN];
  1204.   AD_OBJHANDLE objhandle;
  1205.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1206.   AD_VMADDR xdblob;
  1207.   OdaLong numreactors;
  1208.   AD_VMADDR reactorblob;
  1209. char   isSymbolTableRecord;
  1210. } AD_APP,*PAD_APP;
  1211. typedef struct adblkhstru {
  1212.   AD_OBJHANDLE ownerobjhandle;
  1213.   AD_OBJHANDLE layoutobjhandle;
  1214.   AD_VMADDR previewblob;
  1215.   char   flag;                   /* flag for block */
  1216.   char   name[AD_MAX_STRLEN];               /* name of block */
  1217.   char   purgedflag;             /* flag indicating entry has been purged */
  1218.   short  xrefindex;              /* index of xref from which this item came */
  1219.   AD_OBJHANDLE objhandle;
  1220.   char   xrefblkisoverlaid;      /* if an xref and this is 1 it's overlaid, */
  1221.                                  /* otherwise it's attached (R13+ only) */
  1222.   AD_VMADDR xdblob;
  1223.   AD_VMADDR entitylist;
  1224.   char   unloaded;               /* Xref is unloaded */
  1225.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1226.   OdaLong numreactors;
  1227.   AD_VMADDR reactorblob;
  1228.   char description[1024];
  1229.   AD_VMADDR blkrefsblob;
  1230. } AD_BLKH,*PAD_BLKH;
  1231. typedef struct adclassstru {
  1232.   unsigned short classnum;
  1233.   char classdxfname[AD_MAX_STRLEN];
  1234.   char cplusplusclassname[AD_MAX_STRLEN];
  1235.   char appname[AD_MAX_STRLEN];
  1236.   short version;
  1237.   short wasaproxy,itemclassid;
  1238. } AD_CLASS, *PAD_CLASS;
  1239. typedef struct addicstru {
  1240.   OdaLong numdicitems;
  1241.   AD_VMADDR itemblob;
  1242.   short hardownerflag;
  1243.   short cloningflag;
  1244. } AD_DIC,*PAD_DIC;
  1245. typedef struct addicitemstru {
  1246.   char str[AD_MAX_STRLEN];
  1247.   AD_OBJHANDLE itemhandle;
  1248. } AD_DICITEM,*PAD_DICITEM;
  1249. typedef struct addimstylestru {
  1250.   AD_OBJHANDLE ownerobjhandle;
  1251.   short  xrefindex;     /* index of xref from which this item came */
  1252.   char   flag;                   /* flag for dimstyle */
  1253.   char   purgedflag;             /* 1 if purged */
  1254.   char   name[AD_MAX_STRLEN];               /* name of dimension style */
  1255.   short  dimadec;
  1256.   char   dimalt;                 /* these ds variables are the dim vars */
  1257.   char   dimaltd;                /* associated with the dimension style */
  1258.   double dimaltf;                /* currently being read from the */
  1259.   double dimaltrnd;
  1260.   char   dimapost[AD_MAX_STRLEN];           /* dimstyle table (R11) */
  1261.   double dimasz;
  1262.   short  dimazin;
  1263. /*  char   dimblk[33]; */
  1264.   AD_OBJHANDLE dimblkobjhandle;
  1265. /*  char   dimblk1[33]; */
  1266.   AD_OBJHANDLE dimblk1objhandle;
  1267. /*  char   dimblk2[33]; */
  1268.   AD_OBJHANDLE dimblk2objhandle;
  1269.   double dimcen;
  1270.   short  dimclrd;
  1271.   short  dimclre;
  1272.   short  dimclrt;
  1273.   double dimdle;
  1274.   double dimdli;
  1275.   double dimexe;
  1276.   double dimexo;
  1277.   double dimgap;
  1278.   double dimlfac;
  1279.   char   dimlim;
  1280.   char   dimpost[AD_MAX_STRLEN];
  1281.   double dimrnd;
  1282.   char   dimsah;
  1283.   double dimscale;
  1284.   char   dimse1;
  1285.   char   dimse2;
  1286.   double dimtfac;
  1287.   char   dimtih;
  1288.   double dimtm;
  1289.   char   dimtoh;
  1290.   char   dimtofl;
  1291.   char   dimtol;
  1292.   double dimtp;
  1293.   double dimtsz;
  1294.   double dimtxt;
  1295.   double dimtvp;
  1296.   char   dimsoxd;
  1297.   char   dimtad;
  1298.   char   dimtix;
  1299.   char   dimzin;
  1300. /* new with R13 */
  1301.   short  dimalttd;
  1302.   char   dimalttz;
  1303.   short  dimaltu;
  1304.   char   dimaltz;
  1305.   short  dimaunit;
  1306.   short  dimdec;
  1307.   char   dimfit;
  1308.   char   dimjust;
  1309.   char   dimsd1;
  1310.   char   dimsd2;
  1311.   short  dimtdec;
  1312.   char   dimtolj;
  1313.   char   dimtzin;
  1314.   short  dimunit;
  1315.   char   dimupt;
  1316.   short  dimfrac;
  1317.   short  dimdsep;
  1318.   short  dimtmove;
  1319.   AD_OBJHANDLE dimldrblk;
  1320.   short  dimlwd;
  1321.   short  dimlwe;
  1322.   AD_OBJHANDLE objhandle,shapefileobjhandle;
  1323.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1324.   AD_VMADDR xdblob;
  1325.   OdaLong numreactors;
  1326.   AD_VMADDR reactorblob;
  1327. } AD_DIMSTYLE,*PAD_DIMSTYLE;
  1328. typedef struct adgrpstru {
  1329.   char str[AD_MAX_STRLEN];
  1330.   OdaLong numgrouphandles;
  1331.   short unnamed,selectable;
  1332.   AD_VMADDR entryblob;
  1333. } AD_GRP,*PAD_GRP;
  1334. typedef struct adlaystru {
  1335.   AD_OBJHANDLE ownerobjhandle;
  1336.   char   purgedflag;             /* flag indicating entry has been purged */
  1337.   short  xrefindex;              /* index of xref from which this item came */
  1338.   short  color;                  /* index of layer color */
  1339.   char   flag;                   /* layer flag */
  1340.   char   name[AD_MAX_STRLEN];               /* name of layer */
  1341.   AD_OBJHANDLE linetypeobjhandle;   /* handle of linetype for this layer */
  1342.   AD_OBJHANDLE objhandle;
  1343.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1344.   AD_VMADDR xdblob;
  1345.   ADVPMSK vpfrozflags;           /* used internally by display routines */
  1346.   void  *ad3reserved2;           /* used internally by display routines */
  1347.   void  *ad3reserved3;           /* [ingr 94a] used internally by display routines */
  1348.   OdaLong numreactors;
  1349.   AD_VMADDR reactorblob;
  1350.   AD_OBJHANDLE xrefblkhobjhandle;  /* if brought in from an xref, block header
  1351.                                       for the xref, else all 0 */
  1352.   short plotflag;
  1353.   short lineweight;
  1354.   AD_OBJHANDLE plotstyleobjhandle;
  1355. } AD_LAY,*PAD_LAY;
  1356. struct adltpsegstru {
  1357.   double val;
  1358.   short  complexshapecode;
  1359.   double scale;
  1360.   double rotang;
  1361.   double xoffset;
  1362.   double yoffset;
  1363.   AD_OBJHANDLE shapeentryobjhandle;
  1364.   short shapeflag;
  1365.   unsigned short stroffset;
  1366. } ;
  1367. typedef struct adltpstru {
  1368.   AD_OBJHANDLE ownerobjhandle;
  1369.   char   purgedflag;             /* flag indicating entry has been purged */
  1370.   short  xrefindex;              /* index of xref from which this item came */
  1371.   char   name[AD_MAX_STRLEN];               /* name of linetype */
  1372.   char   text[512];              /* "picture" of linetype */
  1373.   char   alignflag;              /* linetype alignment flag */
  1374.   char   flag;                   /* linetype flag */
  1375.   short  numlinetypesegs;        /* number of valid entries in segdata array */
  1376.                                  /* replaces "numlinetypevals */
  1377.   double patternlength;          /* length of linetype pattern */
  1378.   struct adltpsegstru segdata[30];
  1379.   AD_OBJHANDLE objhandle;
  1380.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1381.   char   ltypetextstr[256];
  1382.   AD_VMADDR xdblob;
  1383.   OdaLong numreactors;
  1384.   AD_VMADDR reactorblob;
  1385.   AD_OBJHANDLE xrefblkhobjhandle;  /* if brought in from an xref, block header
  1386.                                       for the xref, else all 0 */
  1387.   AD_DB_HANDLE dbhandle;
  1388. } AD_LTYPE,*PAD_LTYPE;
  1389. typedef struct admlstylestru {
  1390.   char  name[AD_MAX_STRLEN];
  1391.   unsigned short flag;
  1392.   char  desc[256];
  1393.   unsigned short fillcolor;
  1394.   double startang,endang;
  1395.   unsigned char linesinstyle;
  1396.   AD_VMADDR seginfoblob;
  1397. } AD_MLSTYLE,*PAD_MLSTYLE;
  1398. typedef struct admlstyleseginfostru {
  1399.   short segcolor;
  1400.   short ltindex;
  1401.   double offset;
  1402. } AD_MLSTYLESEGINFO,*PAD_MLSTYLESEGINFO;
  1403. typedef struct adshptbstru {
  1404.   AD_OBJHANDLE ownerobjhandle;
  1405.   char   bigfontname[256];       /* big font filename for text style */
  1406.   char   purgedflag;             /* flag indicating entry has been purged */
  1407.   short  xrefindex;              /* index of xref from which this item came */
  1408.   char   flag2;                  /* secondary shape flag */
  1409.   char   flag;                   /* shape flag */
  1410.   char   name[AD_MAX_STRLEN];    /* name of shape */
  1411.   char   file[256];              /* shape file name */
  1412.   double angle;                  /* oblique angle for shape entity */
  1413.   double height;                 /* shape height */
  1414.   double width;                  /* widthfactor of shape */
  1415.   double lastshapeheight;        /* last shape height */
  1416.   AD_OBJHANDLE objhandle;
  1417.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1418.   AD_VMADDR xdblob;
  1419.   OdaLong numreactors;
  1420.   AD_VMADDR reactorblob;
  1421.   void  *vshfile,*vbfshfile;     /* internal use -- loaded shapefile data */
  1422.   AD_OBJHANDLE xrefblkhobjhandle;  /* if brought in from an xref, block header
  1423.                                       for the xref, else all 0 */
  1424. } AD_SHPTB,*PAD_SHPTB;
  1425. typedef struct aducsstru {
  1426.   AD_OBJHANDLE ownerobjhandle;
  1427.   char   purgedflag;           /* flag indicating entry has been purged */
  1428.   short  xrefindex;            /* index of xref from which this item came */
  1429.   char   flag;
  1430.   char   name[AD_MAX_STRLEN];
  1431.   double org[3];
  1432.   double xdir[3];
  1433.   double ydir[3];
  1434.   AD_OBJHANDLE objhandle;
  1435.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1436.   AD_VMADDR xdblob;
  1437.   OdaLong numreactors;
  1438.   AD_VMADDR reactorblob;
  1439.   short orthoviewtype;
  1440.   short orthographictype;
  1441.   double elevation;
  1442.   AD_OBJHANDLE orthoviewrefobjhandle;
  1443.   AD_OBJHANDLE lasthandle;
  1444.   double orthovieworigin[3];
  1445. } AD_UCS,*PAD_UCS;
  1446. typedef struct adviewstru {
  1447.   AD_OBJHANDLE ownerobjhandle;
  1448.   char   purgedflag;
  1449.   short  xrefindex;            /* index of xref from which this item came */
  1450.   double backclip;
  1451.   double center[2];            /* view center */
  1452.   double dir[3];               /* view direction */
  1453.   char   flag;
  1454.   char   flag2;
  1455.   double frontclip;
  1456.   double ht;
  1457.   double lenslength;
  1458.   char   name[AD_MAX_STRLEN];
  1459.   double target[3];
  1460.   double twist;
  1461.   short  viewmode;
  1462.   double width;
  1463.   short  rendermode;
  1464.   short  isassociateducs;
  1465.   double ucsorg[3];
  1466.   double ucsxdir[3];
  1467.   double ucsydir[3];
  1468.   short  ucsorthoviewtype;
  1469.   double ucselevation;
  1470.   AD_OBJHANDLE ucsobjhandle;
  1471.   AD_OBJHANDLE baseucsobjhandle;
  1472.   AD_OBJHANDLE objhandle;
  1473.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1474.   AD_VMADDR xdblob;
  1475.   OdaLong numreactors;
  1476.   AD_VMADDR reactorblob;
  1477. } AD_VIEW,*PAD_VIEW;
  1478. typedef struct advportstru {
  1479.   AD_OBJHANDLE ownerobjhandle;
  1480.   char   purgedflag;           /* flag indicating entry has been purged */
  1481.   short  xrefindex;            /* index of xref from which this item came */
  1482.   char   flag;
  1483.   char   name[AD_MAX_STRLEN];
  1484.   double ll[2];
  1485.   double ur[2];
  1486.   double snapbase[2];
  1487.   double snapdist[2];
  1488.   double griddist[2];
  1489.   double center[2];
  1490.   double viewdir[3];
  1491.   double target[3];
  1492.   double viewtwist;
  1493.   double viewheight;
  1494.   short  viewmode;
  1495.   short  zoomperc;
  1496.   short  fastzoom;
  1497.   short  ucsicon;
  1498.   double aspect;
  1499.   double backclip;
  1500.   double frontclip;
  1501.   short  gridmode;
  1502.   double lenslength;
  1503.   short  snapisopair;
  1504.   short  snapmode;
  1505.   double snaprot;
  1506.   short  snapstyle;
  1507.   short  rendermode;
  1508.   short  ucsvp;
  1509.   double ucsorg[3];
  1510.   double ucsxdir[3];
  1511.   double ucsydir[3];
  1512.   short  ucsorthoviewtype;
  1513.   double ucselevation;
  1514.   AD_OBJHANDLE ucsobjhandle;
  1515.   AD_OBJHANDLE baseucsobjhandle;
  1516.   AD_OBJHANDLE objhandle;
  1517.   AD_OBJHANDLE xdicobjhandle;    /* objh of xdictionary */
  1518.   AD_VMADDR xdblob;
  1519.   OdaLong numreactors;
  1520.   AD_VMADDR reactorblob;
  1521. } AD_VPORT,*PAD_VPORT;
  1522. /* PROXOBJSTUFF */
  1523. typedef struct addictionaryvarobjstru {
  1524.   short intval;
  1525.   char str[256];
  1526. } AD_DICTIONARYVAR,*PAD_DICTIONARYVAR;
  1527. typedef struct addictionarywdfltobjstru {
  1528.   OdaLong numitems;
  1529.   short cloningflag;
  1530.   AD_VMADDR itemblob;
  1531.   AD_OBJHANDLE defaultobjectobjhandle;
  1532. } AD_DICTIONARYWDFLT,*PAD_DICTIONARYWDFLT;
  1533. typedef struct adplaceholderobjstru {
  1534.   short unused;
  1535. } AD_PLACEHOLDER,*PAD_PLACEHOLDER;
  1536. typedef struct advbaprojectobjstru {
  1537.   OdaLong datalength;
  1538.   AD_VMADDR datablob;
  1539. } AD_VBAPROJECT, *PAD_VBAPROJECT;
  1540. typedef struct adidbufferobjstru {
  1541.   OdaLong numobjids;
  1542.   AD_VMADDR objidblob;
  1543. } AD_IDBUFFER,*PAD_IDBUFFER;
  1544. typedef struct adimagedefobjstru {
  1545.   OdaLong classversion;  /* was dxf90 0==R14*/
  1546.   char filepath[512];
  1547.   double size[2];
  1548.   double pixelsize[2];  /* was dxf11 */
  1549.   short imageisloaded;  /* 0==unloaded, 1==loaded  was dxf280*/
  1550.   short resunits;  /* was dxf281 0==none, 2==cm, 5==in */
  1551. } AD_IMAGEDEF,*PAD_IMAGEDEF;
  1552. typedef struct adimagedefreactorobjstru {
  1553.   OdaLong classversion; /* 2==R14 version, was dxf90 */
  1554.   AD_VMADDR reactorblob;
  1555. } AD_IMAGEDEFREACTOR,*PAD_IMAGEDEFREACTOR;
  1556. typedef struct adlayerindexstru {
  1557.   OdaLong numentries;
  1558.   OdaLong timestamp1,timestamp2;
  1559.   AD_VMADDR datablob;
  1560.   AD_VMADDR handleblob;
  1561. } AD_LAYERINDEX, *PAD_LAYERINDEX;
  1562. typedef struct adplotsettingsobjstru {
  1563.   char pagesetupname[AD_MAX_STRLEN];
  1564.   char printerorconfigfilename[AD_MAX_STRLEN];
  1565.   char papersize[AD_MAX_STRLEN];
  1566.   char plotviewname[AD_MAX_STRLEN];
  1567.   double leftmargin;
  1568.   double bottommargin;
  1569.   double rightmargin;
  1570.   double topmargin;
  1571.   double paperwidth;
  1572.   double paperheight;
  1573.   double origin[2];
  1574.   double windowmin[2];
  1575.   double windowmax[2];
  1576.   double realworldunits;
  1577.   double drawingunits;
  1578.   short  plotlayoutflag;
  1579.   short  plotpaperunits;
  1580.   short plotrotation;
  1581.   short plottype;
  1582.   char currentstylesheet[AD_MAX_STRLEN];
  1583.   short scaletype;
  1584.   double scalefactor;
  1585.   double paperimageorigin[2];
  1586. } AD_PLOTSETTINGS, *PAD_PLOTSETTINGS;
  1587. typedef struct adlayoutobjstru {
  1588.   char name[AD_MAX_STRLEN];
  1589.   short flag;
  1590.   short taborder;
  1591.   AD_PLOTSETTINGS plotsettings;
  1592.   double limmin[2];
  1593.   double limmax[2];
  1594.   double inspt[3];
  1595.   double extmin[3];
  1596.   double extmax[3];
  1597.   double elev;
  1598.   double ucsorg[3];
  1599.   double ucsxdir[3];
  1600.   double ucsydir[3];
  1601.   short  ucsorthoviewtype;
  1602.   AD_OBJHANDLE pspaceblockrec;
  1603.   AD_OBJHANDLE lastactivevport;
  1604.   AD_OBJHANDLE ucsobjhandle;
  1605.   AD_OBJHANDLE baseucsobjhandle;
  1606. } AD_LAYOUT,*PAD_LAYOUT;
  1607. typedef struct adobjectptrstru {
  1608.   AD_VMADDR datablob;
  1609.   OdaLong databits;
  1610. } AD_OBJECTPTR, *PAD_OBJECTPTR;
  1611. typedef struct adproxyobjstru {
  1612.   OdaLong databits;
  1613.   OdaLong numobjids;
  1614.   AD_VMADDR datablob;
  1615.   AD_VMADDR objidblob;
  1616.   OdaLong objectdrawingformat;
  1617.   short origdataformat;
  1618.   OdaLong classID;
  1619. } AD_PROXYOBJ,*PAD_PROXYOBJ;
  1620. typedef struct adrastervariablesobjstru {
  1621.   OdaLong classversion; /* 0==R14 version, was dxf90 */
  1622.   short displayframe;  /* was dxf70 */
  1623.   short displayquality;  /* was dxf71 */
  1624.   short units;  /* was dxf72 */
  1625. } AD_RASTERVARIABLES,*PAD_RASTERVARIABLES;
  1626. typedef struct adwipeoutvariablesobjstru {
  1627.   short dxf70;
  1628. } AD_WIPEOUTVARIABLES,*PAD_WIPEOUTVARIABLES;
  1629. typedef struct adsortentstablestru {
  1630.   AD_OBJHANDLE owner;
  1631.   OdaLong numentries;
  1632.   AD_VMADDR sorthandleblob,handleblob;
  1633. } AD_SORTENTSTABLE, *PAD_SORTENTSTABLE;
  1634. typedef struct adspatialindexstru {
  1635.   OdaLong timestamp1,timestamp2;
  1636.   double doubleVals[6];
  1637.   OdaLong len310;
  1638.   AD_VMADDR blob310;
  1639.   AD_VMADDR datablob;
  1640.   OdaLong databits;
  1641.   AD_OBJHANDLE parentInsertHandle;
  1642. } AD_SPATIALINDEX, *PAD_SPATIALINDEX;
  1643. typedef struct adspatialfilterobjstru {
  1644.   unsigned short numpts;
  1645.   AD_VMADDR ptblob;
  1646.   double extrusion[3];
  1647.   double clipboundorigin[3]; /* was dxf11 */
  1648.   short displayboundary /* was dxf71 */,frontclipon,backclipon;
  1649.   double frontclip,backclip;
  1650.   double inverseblocktransmat[4][3],clipboundtransmat[4][3]; /* was dxf40blob */
  1651. } AD_SPATIALFILTER, *PAD_SPATIALFILTER;
  1652. typedef struct adxrecordobjstru {
  1653.   OdaLong databits;
  1654.   AD_VMADDR datablob;
  1655.   short cloningflag;
  1656. } AD_XRECORD,*PAD_XRECORD;
  1657. typedef struct addimassocdatastru {
  1658. char name[AD_MAX_STRLEN];
  1659. short osSnapType;
  1660. short mainSubEntType;
  1661. OdaLong mainGsMarker;
  1662. double nearOsnap;
  1663. double osnapPoint[3];
  1664. short hasLastPointRef;
  1665. long xrefHandleCount;
  1666. AD_OBJHANDLE xrefObjHandles[8];
  1667.   long mainHandleCount;
  1668. AD_OBJHANDLE mainObjHandles[8];
  1669.   long intHandleCount;
  1670. AD_OBJHANDLE intObjHandles[8];
  1671. OdaLong subEntIntType;
  1672. OdaLong intGsMarker;
  1673.   long intXrefHandleCount;
  1674. AD_OBJHANDLE intXrefObjHandles[8];
  1675. } AD_DIMASSOCELEMENT, *PAD_DIMASSOCELEMENT;
  1676. typedef struct addimassocobjstru {
  1677. AD_OBJHANDLE dimensionObjHandle;
  1678. OdaLong associativityFlag;
  1679. short transSpaceFlag;
  1680. short rotatedDimType;
  1681. AD_DIMASSOCELEMENT elements[8];
  1682. } AD_DIMASSOC, *PAD_DIMASSOC;
  1683. typedef struct adttfstrokedatastru
  1684. {
  1685.   double advance;
  1686.   AD_VMADDR *blobs;
  1687.   unsigned short numBoundaries;
  1688.   unsigned short *counts;
  1689.   int strokeFlags;
  1690. } AD_TTF_STROKE_DATA, *PAD_TTF_STROKE_DATA;
  1691. typedef struct ttfdatastru
  1692. {
  1693.   char filename[AD_MAX_STRLEN];
  1694.   char facename[AD_MAX_STRLEN];
  1695.   int  ttFlags;
  1696.   short iNoBoldItalicFileFlag;/* Set to 1 for a second attempt at TTF file searching (bold or italic not found */
  1697. } AD_TTF_DATA, *PAD_TTF_DATA;
  1698. #endif
  1699. /* table structures */
  1700. #ifndef ADTBSTRUDEFINED
  1701. #define ADTBSTRUDEFINED
  1702. typedef union adtbunion {
  1703.   AD_APP      app;
  1704.   AD_BLKH     blkh;
  1705.   AD_DIMSTYLE dimst;
  1706.   AD_LAY      lay;
  1707.   AD_LTYPE    ltype;
  1708.   AD_SHPTB    shptb;
  1709.   AD_UCS      ucs;
  1710.   AD_VIEW     view;
  1711.   AD_VPORT    vport;
  1712. } AD_TB,*PAD_TB;
  1713. typedef struct adobjhdrstru {
  1714.   AD_OBJHANDLE  objhandle;
  1715.   unsigned short objtype;
  1716.   AD_VMADDR     xdblob;
  1717.   AD_VMADDR     reactorblob;
  1718.   OdaLong          numreactors;
  1719.   AD_OBJHANDLE  ownerobjhandle;
  1720.   AD_OBJHANDLE  xdicobjhandle;
  1721. } AD_OBJ_HDR, *PAD_OBJ_HDR;
  1722. typedef union adobjunion {
  1723.   AD_DIC        dic;
  1724.   AD_DICTIONARYVAR  dictionaryvar;
  1725.   AD_GRP        grp;
  1726.   AD_IDBUFFER   idbuffer;
  1727.   AD_IMAGEDEF   imagedef;
  1728.   AD_IMAGEDEFREACTOR imagedefreactor;
  1729.   AD_MLSTYLE    mlstyle;
  1730.   AD_PROXYOBJ   proxyobj;
  1731.   AD_RASTERVARIABLES rastervariables;
  1732.   AD_SORTENTSTABLE sortentstable;
  1733.   AD_SPATIALFILTER   spatialfilter;
  1734.   AD_XRECORD    xrecord;
  1735.   AD_OBJECTPTR  objectptr;
  1736.   AD_LAYERINDEX layerindex;
  1737.   AD_SPATIALINDEX spatialindex;
  1738.   AD_PLOTSETTINGS plotsettings;
  1739.   AD_DICTIONARYWDFLT dictionarywdflt;
  1740.   AD_PLACEHOLDER placeholder;
  1741.   AD_LAYOUT layout;
  1742.   AD_VBAPROJECT vbaproject;
  1743.   AD_WIPEOUTVARIABLES wipeoutvariables;
  1744. AD_DIMASSOC dimassoc;
  1745. } AD_OBJ,*PAD_OBJ;
  1746. #endif
  1747.   /* end of table values */
  1748. #define AD_COLOR_BYBLOCK  0
  1749. #define AD_COLOR_BYLAYER  256
  1750. #define AD_LTP_BYLAYER 32767
  1751. #define AD_LTP_BYBLOCK 32766
  1752. /* [ingr 94] */
  1753. #define AD_WEIGHT_DEFAULT 0xFFFD
  1754. #define AD_WEIGHT_BYBLOCK 0xFFFE
  1755. #define AD_WEIGHT_BYLAYER 0xFFFF
  1756. #define AD_UNKNOWNSHAPENO 255
  1757. /* c++ goes nuts if you don't have the prototypes in place */
  1758. #ifdef __cplusplus
  1759. #ifndef AD_PROTOTYPES
  1760. #define AD_PROTOTYPES
  1761. #endif
  1762. #endif
  1763. #ifdef AD_PROTOTYPES
  1764. #define _(a) a
  1765. #else
  1766. #define _(a) ()
  1767. #endif
  1768. #ifdef __cplusplus
  1769. extern "C" {
  1770. #endif
  1771. #ifndef ADERRORDEFINED
  1772. #define ADERRORDEFINED
  1773. typedef enum tagader {
  1774.   AD_NO_ERROR,
  1775.   AD_CANT_ALLOC_CONTROL_BLOCK,
  1776.   AD_GENERAL_FAILURE,
  1777.   AD_CANT_OPEN_FILE,
  1778.   AD_ERROR_READING_HEADER,
  1779.   AD_CANT_DETERMINE_FILE_TYPE,
  1780.   AD_CANT_INIT_FILE_SYSTEM,
  1781.   AD_CANT_ALLOC_FILE_CONTROL,
  1782.   AD_UNSUPPORTED_ACAD_VERSION,
  1783.   AD_ERROR_XD_READ_ALLOC,
  1784.   AD_ERROR_XD_WRITE_ALLOC,
  1785.   AD_CANT_ALLOC_READ_BUFFER,
  1786.   AD_CANT_ALLOC_WRITE_BUFFER,
  1787.   AD_CANT_SET_WRITE_BUFFER,
  1788.   AD_CANT_CREATE_DXF_TEMP_LIST,
  1789.   AD_CANT_ALLOC_WRITE_BLOCKS,
  1790.   AD_CHAR_NOT_IN_FONT,
  1791.   AD_FONT_NOT_IN_TABLE,
  1792.   AD_CANT_ALLOC_TEMP_STRING,
  1793.   AD_CANT_OPEN_XREF_TEMP_FILE,
  1794.   AD_CANT_OPEN_XREF,
  1795.   AD_UNSUPPORTED_WRITE_VERSION,
  1796.   AD_UNSUPPORTED_DXF_VERSION,
  1797.   AD_NO_BMP_IN_DWG_FILE,
  1798.   AD_CANT_OPEN_BMP_OUTPUT_FILE,
  1799.   AD_NO_WMF_IN_DWG_FILE,
  1800.   AD_CANT_OPEN_WMF_OUTPUT_FILE,
  1801.   AD_DISK_FULL,
  1802.   AD_NOT_ENOUGH_MEMORY_TO_DRAW_LEADER,
  1803.   AD_NOT_ENOUGH_MEMORY_TO_DRAW_SPLINE,
  1804.   AD_UNEXPECTED_END_OF_FILE,
  1805.   AD_ERROR_IN_DXF_HEADER,
  1806.   AD_ERROR_IN_DXF_ENTITIES,
  1807.   AD_ERROR_IN_DXF_TABLES,
  1808.   AD_ERROR_IN_DXF_BLOCKS,
  1809.   AD_ERROR_IN_DXF_OBJECTS,
  1810.   AD_VM_TOO_MANY_PAGE_FRAMES,
  1811.   AD_VM_TOO_MANY_PAGES_IN_FILE,
  1812.   AD_VM_ATTEMPT_TO_MALLOC_ZERO_BYTES,
  1813.   AD_VM_BAD_MAGIC_ON_MALLOC,
  1814.   AD_VM_TRIED_TO_FREE_A_NULL_PTR,
  1815.   AD_VM_TRIED_TO_FREE_A_FREE_PTR,
  1816.   AD_VM_TRIED_TO_FREE_A_NON_MALLOCED_PTR,
  1817.   AD_VM_NOT_ENOUGH_MEMORY_TO_INIT,
  1818.   AD_VM_FILE_WRITE_FAILED,
  1819.   AD_ERROR_LOADING_LINETYPES,
  1820.   AD_ERROR_LOADING_LAYERS,
  1821.   AD_ERROR_LOADING_CLASSES,
  1822.   AD_ERROR_LOADING_VPORTS,
  1823.   AD_ERROR_LOADING_UCSS,
  1824.   AD_ERROR_LOADING_REGAPPS,
  1825.   AD_ERROR_LOADING_VIEWS,
  1826.   AD_ERROR_LOADING_SHAPES,
  1827.   AD_ERROR_LOADING_DIMSTYLES,
  1828.   AD_ERROR_LOADING_BLOCKHEADERS,
  1829.   AD_ERROR_LOADING_ENTITIES,
  1830.   AD_ERROR_LOADING_OBJECTS,
  1831.   AD_CANT_ALLOC_FOR_FILE_SAVE,
  1832.   AD_ERROR_WRITING_HEADER,
  1833.   AD_CANT_RESOLVE_HDRCURLAYER,
  1834.   AD_CANT_RESOLVE_HDRCURLTYPE,
  1835.   AD_CANT_RESOLVE_HDRCURDIMSTYLE,
  1836.   AD_CANT_RESOLVE_HDRCURUCS,
  1837.   AD_CANT_RESOLVE_HDRCURPUCS,
  1838.   AD_CANT_RESOLVE_HDRCURTEXTSTYLE,
  1839.   AD_CANT_RESOLVE_HDRCURDIMTEXTSTYLE,
  1840.   AD_CANT_RESOLVE_LAYER,
  1841.   AD_CANT_RESOLVE_LTYPE,
  1842.   AD_CANT_RESOLVE_STYLE,
  1843.   AD_CANT_RESOLVE_DIMSTYLE,
  1844.   AD_ERROR_RESOLVING_VPENTS,
  1845.   AD_CANT_RESOLVE_XD_APP_INDEX,
  1846.   AD_CANT_RESOLVE_XD_ENT_LAYER,
  1847.   AD_CANT_FIND_BLOCK_FOR_ENTITY_READ,
  1848.   AD_NO_ENTITIES_FOR_BLOCK,
  1849.   AD_CANT_RESOLVE_BLOCKHEADER,
  1850.   AD_NO_LINETYPES_IN_LIST,
  1851.   AD_DID_NOT_FIND_LINETYPE_TO_DELETE,
  1852.   AD_NO_REGAPPS_IN_LIST,
  1853.   AD_DID_NOT_FIND_REGAPP_TO_DELETE,
  1854.   AD_NO_SHAPEFILES_IN_LIST,
  1855.   AD_DID_NOT_FIND_SHAPEFILE_TO_DELETE,
  1856.   AD_NO_DIMSTYLES_IN_LIST,
  1857.   AD_DID_NOT_FIND_DIMSTYLE_TO_DELETE,
  1858.   AD_NO_VIEWS_IN_LIST,
  1859.   AD_DID_NOT_FIND_VIEW_TO_DELETE,
  1860.   AD_NO_VPORTS_IN_LIST,
  1861.   AD_DID_NOT_FIND_VPORT_TO_DELETE,
  1862.   AD_NO_UCSS_IN_LIST,
  1863.   AD_DID_NOT_FIND_UCS_TO_DELETE,
  1864.   AD_NO_LAYERS_IN_LIST,
  1865.   AD_DID_NOT_FIND_LAYER_TO_DELETE,
  1866.   AD_NO_BLOCKHEADERS_IN_LIST,
  1867.   AD_DID_NOT_FIND_BLOCKHEADER_TO_DELETE,
  1868.   AD_ERROR_REMOVING_PURGED_ITEMS,
  1869.   AD_DROPPED_SHAPE_ENTITY_FROM_FILE,
  1870.   AD_CANT_READ_HEADER_BLOCK,
  1871.   AD_ERROR_DELETING_ENT_XDATA,
  1872.   AD_ERROR_DELETING_ENT_LONGDATA,
  1873.   AD_ERROR_DELETING_ENTITY,
  1874.   AD_ERROR_DELETING_REGAPP_XDATA,
  1875.   AD_ERROR_DELETING_REGAPP,
  1876.   AD_ERROR_FREEING_REGAPP,
  1877.   AD_ERROR_DELETING_LAYER_XDATA,
  1878.   AD_ERROR_DELETING_LAYER,
  1879.   AD_ERROR_FREEING_LAYER,
  1880.   AD_ERROR_DELETING_LTYPE_XDATA,
  1881.   AD_ERROR_DELETING_LTYPE,
  1882.   AD_ERROR_FREEING_LTYPE,
  1883.   AD_ERROR_DELETING_SHPTB_XDATA,
  1884.   AD_ERROR_DELETING_SHPTB,
  1885.   AD_ERROR_FREEING_SHPTB,
  1886.   AD_ERROR_DELETING_VIEW_XDATA,
  1887.   AD_ERROR_DELETING_VIEW,
  1888.   AD_ERROR_FREEING_VIEW,
  1889.   AD_ERROR_DELETING_VPORT_XDATA,
  1890.   AD_ERROR_DELETING_VPORT,
  1891.   AD_ERROR_FREEING_VPORT,
  1892.   AD_ERROR_DELETING_DIMSTYLE_XDATA,
  1893.   AD_ERROR_DELETING_DIMSTYLE,
  1894.   AD_ERROR_FREEING_DIMSTYLE,
  1895.   AD_ERROR_DELETING_UCS_XDATA,
  1896.   AD_ERROR_DELETING_UCS,
  1897.   AD_ERROR_FREEING_UCS,
  1898.   AD_ERROR_DELETING_BLOCKHDR_XDATA,
  1899.   AD_ERROR_DELETING_BLOCKHDR_PREVIEWBLOB,
  1900.   AD_ERROR_DELETING_BLOCKHDR,
  1901.   AD_ERROR_FREEING_BLOCKHDR,
  1902.   AD_CANT_RESOLVE_HDR_MLSTYLE,
  1903.   AD_ERROR_LOADING_ENTITY_LIST,
  1904.   AD_ERROR_LOADING_BLOCK_ENTITIES,
  1905.   AD_ERROR_RESOLVING_HEADER,
  1906.   AD_CANT_GET_CURMLSTYLE,
  1907.   AD_CANT_ADD_DEFAULT_OBJECTS,
  1908.   AD_CANT_MALLOC_FOR_RASTER_FILE_WRITE,
  1909.   AD_ERROR_IN_RASTER_DATA,
  1910.   AD_UNABLE_TO_ALLOC_VM_MEMORY,
  1911.   AD_MAX_MEM_BLKS_EXCEEDED,
  1912.   AD_ATTEMPT_TO_READ_FROM_NON_EXISTENT_VM_BLOCK,
  1913.   AD_FILE_HAS_NO_BMP,
  1914.   AD_FILE_HAS_NO_WMF,
  1915.   AD_FILE_ALREADY_HAS_BMP,
  1916.   AD_FILE_ALREADY_HAS_WMF,
  1917.   AD_ERROR_LOADING_BMP,
  1918.   AD_ERROR_LOADING_WMF,
  1919.   AD_ERROR_ON_BLOCK_ENT_READ,
  1920.   AD_ERROR_FLUSHING_OBJECT_TO_VM,
  1921.   AD_ERROR_ON_LAYER_READ_START,
  1922.   AD_ERROR_READING_LAYER,
  1923.   AD_COULDNT_FIND_VPENT_HDR_HANDLE,
  1924.   AD_ERROR_CLOSING_FILE,
  1925.   AD_ATTEMPT_TO_DELETE_FROM_NULL_LIST,
  1926.   AD_ENTITY_NOT_FOUND_IN_LIST,
  1927.   AD_DUPLICATE_HANDLE_IN_FILE,
  1928.   AD_INCOMPLETE_ACIS_ENTRY,
  1929.   AD_UNEXPECTED_END_OF_FILE_IN_DXF,
  1930.   AD_INVALID_DXF_VERSION,
  1931.   AD_CANT_ALLOC_BLOB_BUF,
  1932.   AD_ERROR_WRITING_DICTIONARY_OBJECT,
  1933.   AD_ERROR_DELETING_PROXY_DATA,
  1934.   AD_ERROR_DELETING_PROXY_OBJIDS,
  1935.   AD_ERROR_WRITING_PROXY_OBJECT,
  1936.   AD_ATTEMPT_TO_READ_FROM_NULL_BLOB,
  1937.   AD_ATTEMPT_TO_WRITE_TO_NULL_BLOB,
  1938.   AD_NO_OBJECTS_IN_LIST,
  1939.   AD_UNKNOWN_XRECORD_TYPE_READ,
  1940.   AD_ATTEMPT_TO_WRITE_UNKNOWN_XRECORD_TYPE,
  1941.   AD_CANNOT_PROCESS_LARGE_PROXY_ENT,
  1942.   AD_DID_NOT_FIND_OBJECT_TO_DELETE,
  1943.   AD_ERROR_FREEING_OBJECT,
  1944.   AD_ERROR_DELETING_OBJECT,
  1945.   AD_CANT_FIND_LEADER_DIMSTYLE,
  1946.   AD_ATTEMPT_TO_ADD_DUPLICATE_HANDLE,
  1947.   AD_BTREE_ERROR,
  1948.   AD_CANT_FIND_TOLERANCE_DIMSTYLE,
  1949.   AD_ERROR_DELETING_DURING_REPLACE,
  1950.   AD_NO_CLASSES_IN_LIST,
  1951.   AD_ERROR_DELETING_CLASS_XDATA,
  1952.   AD_ERROR_DELETING_CLASS,
  1953.   AD_ERROR_FREEING_CLASS,
  1954.   AD_DID_NOT_FIND_CLASS_TO_DELETE,
  1955.   AD_ERROR_ALLOCATING_TMP_HEADER,
  1956.   AD_UNABLE_TO_OPEN_INIT_FILE,
  1957.   AD_INCORRECT_INIT_FILE_VERSION,
  1958.   AD_BAD_HEADER_SIZE,
  1959.   AD_BAD_HEADER_CRC,
  1960.   AD_BAD_DWG_INFO,
  1961.   AD_BAD_ENTITY,
  1962.   AD_BAD_BLOCKHEADER,
  1963.   AD_BAD_LAYER,
  1964.   AD_BAD_SHAPEFILE,
  1965.   AD_BAD_LINETYPE,
  1966.   AD_BAD_VIEW,
  1967.   AD_BAD_UCS,
  1968.   AD_BAD_VPORT,
  1969.   AD_BAD_REGAPP,
  1970.   AD_BAD_DIMSTYLE,
  1971.   AD_BAD_VPORTENTHDR,
  1972.   AD_BAD_BLOCKENTITY,
  1973.   AD_BAD_EXTRAENTITY,
  1974.   AD_BAD_SECONDHEADER,
  1975.   AD_BAD_OBJECT,
  1976.   AD_BAD_CLASSDEF,
  1977.   AD_OBJ_MAP_WRITE_ERROR,
  1978.   AD_NO_PSPACE_VPORT_FOUND,
  1979.   AD_CANT_REPLACE_DIFFERING_OBJECTS,
  1980.   AD_ERROR_ALLOC_PARENT_BUF,
  1981.   AD_ERROR_ALLOCATING_CODEPAGE_BUF,
  1982.   AD_ERROR_ALLOC_PROXY_BUFFER,
  1983.   AD_ERROR_ALLOCATING_BTREE_BUFFER,
  1984.   AD_ERROR_ALLOCATING_BLOB_BUFFER,
  1985.   AD_ERROR_ALLOC_OBJHANDLE_BUFFER,
  1986.   AD_ERROR_ALLOC_BESTENTRY_BUF,
  1987.   AD_ERROR_ALLOC_VP_PTR,
  1988.   AD_CANT_ALLOC_VM_BTNODE,
  1989.   AD_CANT_ALLOC_VM_BLOB,
  1990.   AD_CANT_ALLOC_VM_TEMPMEM,
  1991.   AD_CANT_ALLOC_VM_HDR,
  1992.   AD_CANT_ALLOC_VM_LLIST,
  1993.   AD_CANT_ALLOC_VM_LLALLOC,
  1994.   AD_CANT_ALLOC_VM_LTYPE,
  1995.   AD_CANT_ALLOC_VM_BLKH,
  1996.   AD_CANT_ALLOC_VM_BINDATA,
  1997.   AD_CANT_ALLOC_VM_STRU,
  1998.   AD_CANT_ALLOC_LWPLINE_TEMP,
  1999.   AD_CANT_ALLOC_HATCH_DATA,
  2000.   AD_CANT_FIND_ENTITY_TO_REPLACE,
  2001.   AD_CANT_SET_CURRENT_NODE,
  2002.   AD_ERROR_ON_ENTITY_ADD_DURING_REPLACE,
  2003.   AD_ERROR_ON_VPENT_LIST_UPDATE,
  2004.   AD_CANT_CREATE_IDBUFFER_CLASS,
  2005.   AD_ATTEMPT_TO_ADD_NULL_HANDLE,
  2006.   AD_INSERT_OF_BAD_BLOCK,
  2007.   AD_CANT_ALLOC_VERTEX,
  2008.   AD_CANT_ALLOC_LINETYPE,
  2009.   AD_CANT_ALLOC_SHPTB,
  2010.   AD_CANT_ALLOC_VIEW_MATRICES,
  2011.   AD_CANT_ALLOC_SKIP_VERTEX,
  2012.   AD_CANT_ALLOC_POINT_MATRIX,
  2013.   AD_CANT_ALLOC_SHAPE_MATRICES,
  2014.   AD_CANT_ALLOC_POLYLINE,
  2015.   AD_CANT_ALLOC_PL_STORAGE,
  2016.   AD_CANT_ALLOC_VERT,
  2017.   AD_CANT_ALLOC_BLOCK,
  2018.   AD_CANT_ALLOC_MLINE_TYPE,
  2019.   AD_CANT_ALLOC_SOLMAT,
  2020.   AD_CANT_ALLOC_ELLIPSE_VIEWMAT,
  2021.   AD_CANT_ALLOC_MLINE_ARCS_VIEWMAT,
  2022.   AD_CANT_ALLOC_MLINE_ARC_CAPS,
  2023.   AD_CANT_ALLOC_SEGLTYPES,
  2024.   AD_CANT_ALLOC_MESH_VERTS,
  2025.   AD_CANT_ALLOC_GRDATA_STORAGE,
  2026.   AD_CANT_ALLOC_SHELL_VERTS,
  2027.   AD_CANT_ALLOC_SHELL_FACES,
  2028.   AD_CANT_ALLOC_GRSHELL_PRIMS,
  2029.   AD_CANT_ALLOC_PROXY_IMG_VIEWMAT,
  2030.   AD_CANT_ALLOC_MLINE_LTYPE,
  2031.   AD_CANT_ALLOC_MLINE_SEGLTYPES,
  2032.   AD_CANT_ALLOC_TEXT_SHMAT,
  2033.   AD_CANT_ALLOC_MTEXT_STORAGE,
  2034.   AD_CANT_ALLOC_MTEXT_SHMAT,
  2035.   AD_CANT_ALLOC_SECOND_VERT,
  2036.   AD_CANT_ALLOC_VERT_TEMPPTR,
  2037.   AD_CANT_ALLOC_POLYARC_VERT,
  2038.   AD_CANT_ALLOC_POLYMESH_VERT,
  2039.   AD_CANT_ALLOC_POLYMESH_POINTS,
  2040.   AD_CANT_ALLOC_POLYMESH_VPTR,
  2041.   AD_CANT_ALLOC_SHP_SMALLINDEX,
  2042.   AD_CANT_ALLOC_SHP_TEMP,
  2043.   AD_CANT_ALLOC_BIGINDEX_TEMP,
  2044.   AD_CANT_ALLOC_BIGINDEX,
  2045.   AD_CANT_ALLOC_SHP_DATABLOCK,
  2046.   AD_CANT_ALLOC_TEMP_ADHD,
  2047.   AD_CANT_ALLOC_DRAW_TEMPS,
  2048.   AD_CANT_ALLOC_SPLINE_STUFF,
  2049.   AD_CANT_ALLOC_AD3_CTRL_BLOCKS,
  2050.   AD_CANT_ALLOC_LT_SHAPE_SHMAT,
  2051.   AD_CANT_FIND_GROUP_DICTIONARY,
  2052.   AD_CANT_SEEK_GROUP_DICTIONARY,
  2053.   AD_CANT_ADD_GROUP,
  2054.   AD_CANT_READ_DIC_ITEM_BLOB,
  2055.   AD_CANT_REPLACE_DICTIONARY_OBJ,
  2056.   AD_CANT_REPLACE_ENTITY,
  2057.   AD_CANT_SEEK_ENTITY,
  2058.   AD_CANT_ALLOC_AD_INTERNAL_DATA,
  2059.   AD_CANT_MALLOC_FOR_RASTER_ADD,
  2060.   AD_R14_BETA_FORMAT_UNSUPPORTED,
  2061.   AD_VPENT_WITH_NO_XDATA,
  2062.   AD_CANT_RESOLVE_ENTITY_XDATA,
  2063.   AD_CANT_ADD_ENTITY,
  2064.   AD_CANT_ADD_ENTHANDLE_TO_INDEX,
  2065.   AD_CANT_ADD_VPENT_TO_LIST,
  2066.   AD_DUPLICATE_HANDLE,
  2067.   AD_ERROR_ALLOCATING_SHAPEFILE,
  2068.   AD_CANT_INIT_SHFILE_SYSTEM,
  2069.   AD_INIT_DATA_MUST_BE_LOADED,
  2070.   AD_UNABLE_TO_OPEN_FONT,
  2071.   AD_UNABLE_TO_OPEN_BIGFONT,
  2072.   AD_DXF_LINE_TOO_LONG,
  2073.   AD_DXF_LINE_CONTAINS_NON_NUMS,
  2074.   AD_BAD_OBJHANDLE_IN_HEADER,
  2075.   AD_PROBABLE_BAD_VPENT_DATA,
  2076.   AD_ERROR_IN_VPENT_HEADER,
  2077.   AD_HANDLE_NOT_FOUND_IN_BTREE,
  2078.   AD_UNABLE_TO_SET_CURRENT_NODE_IN_LIST,
  2079.   AD_UNABLE_TO_GET_REQUESTED_ITEM,
  2080.   AD_SAVE_ATTEMPTED_TO_INCOMPATIBLE_VERSION,
  2081.   AD_ERROR_IN_ACIS_READ,
  2082. AD_ATTEMPT_TO_ADD_BLOCK_WITH_DUPLICATE_NAME
  2083. } ader ;
  2084. #endif
  2085. #ifndef AD2GRDATASTRUDEFINED
  2086. #define AD2GRDATASTRUDEFINED
  2087. typedef struct adgrcirclestru {
  2088.   double pt0[3],radius,normal[3];
  2089. } AD_GR_CIRCLE,*PAD_GR_CIRCLE;
  2090. typedef struct adgrcir3ptstru {
  2091.   double pt0[3],pt1[3],pt2[3];
  2092. } AD_GR_CIR3PT,*PAD_GR_CIR3PT;
  2093. typedef struct adgrcircarcstru {
  2094.   double pt0[3],radius,normal[3],startvector[3],sweepangle;
  2095.   OdaLong arctype;
  2096. } AD_GR_CIRCARC,*PAD_GR_CIRCARC;
  2097. typedef struct adgrcircarc3ptstru {
  2098.   double pt0[3],pt1[3],pt2[3];
  2099.   OdaLong arctype;
  2100. } AD_GR_CIRCARC3PT,*PAD_GR_CIRCARC3PT;
  2101. typedef struct adgrplinestru {
  2102.   OdaLong numpts;
  2103. } AD_GR_PLINE,*PAD_GR_PLINE;
  2104. typedef struct adgrpolygonstru {
  2105.   OdaLong numpts;
  2106. } AD_GR_POLYGON,*PAD_GR_POLYGON;
  2107. typedef struct adgrvertexstru {
  2108.   double pt0[3];
  2109. } AD_GR_VERTEX,*PAD_GR_VERTEX;
  2110. typedef struct adgrmeshstru {
  2111.   OdaLong rows,cols;
  2112.   double *vertex;
  2113.   unsigned OdaLong edgeprimflag,faceprimflag,vertprimflag;
  2114.   short *edgecolorid,*edgelayerid,*edgelinetypeid;
  2115.   OdaLong *edgegsmarker,*edgevisibility;
  2116.   short *facecolorid,*facelayerid;
  2117.   OdaLong *facegsmarker;
  2118.   double *facenormal;
  2119.   OdaLong *facevisibility;
  2120.   double *vertexnormal;
  2121.   OdaLong vertexorientation;
  2122. } AD_GR_MESH,*PAD_GR_MESH;
  2123. typedef struct adgrshellreadstru {
  2124.   OdaLong numpts;
  2125.   double *vertex;
  2126.   OdaLong numfaceentries;
  2127.   OdaLong *faceentry;
  2128.   unsigned OdaLong edgeprimflag,faceprimflag,vertprimflag;
  2129.   short *edgecolorid,*edgelayerid,*edgelinetypeid;
  2130.   OdaLong *edgegsmarker,*edgevisibility;
  2131.   short *facecolorid,*facelayerid;
  2132.   OdaLong *facegsmarker;
  2133.   double *facenormal;
  2134.   OdaLong *facevisibility;
  2135.   double *vertexnormal;
  2136.   OdaLong vertexorientation;
  2137. } AD_GR_SHELL,*PAD_GR_SHELL;
  2138. #define AD_PROXY_TEXT_MAXLEN 1024
  2139. typedef struct adgrtextstru {
  2140.   double pt0[3];
  2141.   double normal[3],direction[3],height,widthfactor,oblique;
  2142.   char textstr[AD_PROXY_TEXT_MAXLEN];
  2143. } AD_GR_TEXT,*PAD_GR_TEXT;
  2144. typedef struct adgrtext2stru {
  2145.   double pt0[3];
  2146.   double normal[3],direction[3];
  2147.   char textstr[AD_PROXY_TEXT_MAXLEN];
  2148.   char raw;
  2149.   OdaLong length;
  2150.   double height,
  2151.     widthfactor,
  2152.     oblique,
  2153.     trackingpercent;
  2154.   unsigned char backward,
  2155.     upsidedown,
  2156.     vertical,
  2157.     underlined,
  2158.     overlined;
  2159.   char fontfile[AD_MAX_STRLEN];
  2160.   char bigfontfile[AD_MAX_STRLEN];
  2161. } AD_GR_TEXT2,*PAD_GR_TEXT2;
  2162. typedef struct adgrxlinestru {
  2163.   double pt0[3],pt1[3];
  2164. } AD_GR_XLINE, *PAD_GR_XLINE;
  2165. typedef struct adgrraystru {
  2166.   double pt0[3],pt1[3];
  2167. } AD_GR_RAY, *PAD_GR_RAY;
  2168. typedef struct tagAD_GR_XFORM2 {
  2169.   double  normal[3];
  2170. } AD_GR_XFORM2, *PAD_GR_XFORM2;
  2171. typedef struct tagAD_GR_EXTENTS {
  2172.   double  min[3];
  2173.   double  max[3];
  2174. } AD_GR_EXTENTS, *PAD_GR_EXTENTS;
  2175. typedef struct tagAD_GR_TRUECOLOR {
  2176.   unsigned char  Red;
  2177.   unsigned char  Green;
  2178.   unsigned char  Blue;
  2179. } AD_GR_TRUECOLOR, *PAD_GR_TRUECOLOR;
  2180. #define AD_PLOTSTYLE_BYLAYER                0
  2181. #define AD_PLOTSTYLE_BYBLOCK                1
  2182. #define AD_PLOTSTYLE_IS_DICT_DEFAULT        2
  2183. #define AD_PLOTSTYLE_BY_ID                  3
  2184. typedef struct tagAD_GR_PLOTSTYLE {
  2185.   OdaLong  Type;   /* one of the constants just above */
  2186.   OdaLong  PlotStyleIndex;
  2187. } AD_GR_PLOTSTYLE, *PAD_GR_PLOTSTYLE;
  2188. /* points blob ('ptblob' member)
  2189.    must be deletet by caller of adReadGrblobData() */
  2190. typedef AD_SPATIALFILTER AD_GR_CLIP, *PAD_GR_CLIP;
  2191. typedef struct ad2grdatastru {
  2192.   OdaLong grtype;
  2193.   OdaLong lNextGrPos;
  2194.   union grbodyunion {
  2195.     AD_GR_CIRCLE      circle;
  2196.     AD_GR_CIR3PT      circle3pt;
  2197.     AD_GR_CIRCARC     circulararc;
  2198.     AD_GR_CIRCARC3PT  circulararc3pt;
  2199.     AD_GR_PLINE       pline;
  2200.     AD_GR_POLYGON     polygon;
  2201.     AD_GR_MESH        mesh;
  2202.     AD_GR_SHELL       shell;
  2203.     AD_GR_TEXT        text;
  2204.     AD_GR_TEXT2       text2;
  2205.     AD_GR_XLINE       xline;
  2206.     AD_GR_RAY         ray;
  2207.     AD_GR_CLIP        clip;
  2208.     AD_GR_XFORM2      xform2;
  2209.     AD_GR_TRUECOLOR   AdTrueColor;
  2210.     AD_GR_PLOTSTYLE   PlotStyle;
  2211.     OdaLong              LineWeight;
  2212.     OdaLong              colorindex;
  2213.     OdaLong              layerindex;
  2214.     OdaLong              linetypeindex;
  2215.     OdaLong              markerindex;
  2216.     OdaLong              fillon;
  2217.     double            ModelXForm[4][4];
  2218.     double            LineTypeScale;
  2219.     double            Thickness;
  2220.     AD_GR_EXTENTS     Extents;
  2221.   } grbody;
  2222. } AD_GR_DATA,*PAD_GR_DATA;
  2223. #endif
  2224. #ifndef ADCDECL
  2225. #define ADCDECL
  2226. #endif
  2227. #ifndef ODT_WIN32ONLY
  2228. extern  int            odiow_fclose _((void *f));
  2229. extern  void *         odiow_fopen _((void *path,char *accessmodes));
  2230. extern  int            odiow_fputs _((const char *str,void *f));
  2231. extern  int            odiow_fread _((void *buf, unsigned int size, unsigned int num, void *f));
  2232. extern  int            odiow_fseek _((void *f, OdaLong offset, int whence));
  2233. extern  OdaLong           odiow_ftell _((void *f));
  2234. extern  int            odiow_fwrite _((void *b,int size,int count, void *f));
  2235. #endif
  2236. extern  int            odior_fclose _((void *f));
  2237. extern  short          odior_feof _((void *f));
  2238. extern  unsigned char  odior_fgetc _((void *f));
  2239. extern  char *         odior_fgetdxfline _((char *s, unsigned int n, void *f));
  2240. extern  OdaLong           odior_flength _((void *f));
  2241. extern  void *         odior_fopen _((void *path));
  2242. extern  int            odior_fread _((void *buf, unsigned int size, unsigned int num, void *f));
  2243. extern  int            odior_fseek _((void *f, OdaLong offset, int whence));
  2244. extern  OdaLong           odior_ftell _((void *f));
  2245. extern  int            odior_access _((void *path, int mode));
  2246. #ifndef ODT_WIN32ONLY
  2247. extern  void *         odmem_malloc _((int size));
  2248. extern  void           odmem_free _((void *loc));
  2249. extern short           odvm_init _((void));
  2250. extern short           odvm_term _((void));
  2251. extern short           odvm_readbytes _((char *ptr,AD_VMADDR vmloc,unsigned short bytes));
  2252. extern short           odvm_writebytes _((AD_VMADDR vmloc,char *ptr,unsigned short bytes));
  2253. extern AD_VMADDR       odvm_malloc _((unsigned num_bytes));
  2254. #endif
  2255. extern short           odvm_free _((AD_VMADDR ptr));
  2256. extern double          od_atof _((char *string));
  2257. extern  void   ADCDECL adAcceptR14BetaFiles _(());
  2258. extern  void   ADCDECL adAddA2kExtras _((short add));
  2259. extern  short  ADCDECL adAddBlockheader _((AD_DB_HANDLE handle,PAD_BLKH blkh));
  2260. extern  short  ADCDECL adAddBmp _((AD_DB_HANDLE handle,void *fs));
  2261. extern  short  ADCDECL adAddBmpFromBuffer _((AD_DB_HANDLE handle,void *buffer,unsigned short size));
  2262. extern  short  ADCDECL adAddClass _((AD_DB_HANDLE handle,PAD_CLASS cls));
  2263. extern  short  ADCDECL adAddDimstyle _((AD_DB_HANDLE handle,PAD_DIMSTYLE dimst));
  2264. extern  short  ADCDECL adAddEntityToList _((AD_DB_HANDLE handle,AD_VMADDR addlist,PAD_ENT_HDR adenhd,PAD_ENT aden));
  2265. extern  short  ADCDECL adAddEntityToListAfter _((AD_DB_HANDLE handle,AD_VMADDR addlist,PAD_ENT_HDR adenhd,PAD_ENT aden,AD_OBJHANDLE afterthisobj));
  2266. extern  short  ADCDECL adAddImageEntityToListAfter _((AD_DB_HANDLE handle,AD_VMADDR list,PAD_ENT_HDR adenhd, PAD_IMAGE image, AD_OBJHANDLE after, char *imagelogicalname,char *imagepath,double *imagesize,double *pixelsize,short resunits,short displayFrame));
  2267. #define adAddImageEntityToList(handle, list, adenhd, image, imagelogicalname, imagepath, imagesize, pixelsize, resunits, displayFrame) 
  2268.         adAddImageEntityToListAfter (handle, list, adenhd, image, NULL, imagelogicalname, imagepath, imagesize, pixelsize, resunits, displayFrame)
  2269. extern  short  ADCDECL adAddLayer _((AD_DB_HANDLE handle,PAD_LAY lay));
  2270. extern  short  ADCDECL adAddLinetype _((AD_DB_HANDLE handle,PAD_LTYPE ltp));
  2271. extern  short  ADCDECL adAddObject _((AD_DB_HANDLE handle,PAD_OBJ_HDR adobhd,PAD_OBJ adob));
  2272. extern  short  ADCDECL adAddReactorToEntity _((PAD_ENT_HDR adenhd,AD_OBJHANDLE reactor));
  2273. extern  short  ADCDECL adAddReactorToObject _((PAD_OBJ_HDR adenhd,AD_OBJHANDLE reactor));
  2274. extern  short  ADCDECL adAddRegapp _((AD_DB_HANDLE handle,PAD_APP app));
  2275. extern  short  ADCDECL adAddShapefile _((AD_DB_HANDLE handle,PAD_SHPTB shptb));
  2276. extern  short  ADCDECL adAddUcs _((AD_DB_HANDLE handle,PAD_UCS ucs));
  2277. extern  short  ADCDECL adAddView _((AD_DB_HANDLE handle,PAD_VIEW view));
  2278. extern  short  ADCDECL adAddVport _((AD_DB_HANDLE handle,PAD_VPORT vport));
  2279. extern  void   ADCDECL adAdjustArcAngles _((int adjust));
  2280. extern  char  * ADCDECL adAdVersion _((void));
  2281. extern  void   ADCDECL adAllowInvalidDxfVersions _((char allow));
  2282. extern  unsigned short ADCDECL  adArcAlignedTextEnttype _((AD_DB_HANDLE handle));
  2283. extern  short  ADCDECL adAsciiCodePageToShort _((char *codepagestr,short *index));
  2284. extern  void   ADCDECL adAsciiHexToBinary _((char *readbuf,char *storebuf,short *validchars));
  2285. extern  OdaLong ADCDECL adAsciiHexToBinaryCount _((char *readbuf));
  2286. extern  void   ADCDECL adAsciiHexToBinaryEx _((char *readbuf,char *storebuf,long *validchars));
  2287. extern  void   ADCDECL adAsciiObjhandleToBinary _((char *readbuf,unsigned char *handlebuf));
  2288. extern  short  ADCDECL adAudit _((AD_DB_HANDLE handle, short auditmode, short verbosemode, short (*auditmsg)(char *)));
  2289. extern  void   ADCDECL adBinaryHexToAscii _((unsigned char *bindata,short bindatalength,char *tempstr));
  2290. extern  void   ADCDECL adBinaryObjhandleToAscii _((AD_OBJHANDLE enthandle,char *tempstr));
  2291. extern  short  ADCDECL adBlobSeek _((PAD_BLOB_CTRL bcptr,OdaLong offset));
  2292. extern  OdaLong   ADCDECL adBlobSize _((PAD_BLOB_CTRL bcptr));
  2293. extern  OdaLong   ADCDECL adBlobSizeFromVmaddr _((AD_VMADDR blob));
  2294. extern  OdaLong   ADCDECL adBlobTell _((PAD_BLOB_CTRL bcptr));
  2295. extern  OdaLong   ADCDECL adBmpSize _((AD_DB_HANDLE handle));
  2296. extern  OdaLong   ADCDECL adBmpSizeFromFile _((void *infile));
  2297. extern  void   ADCDECL adCalcPlineArcCenter _((double *pt1,double *pt2,double inclang,double *cenx,double *ceny,double *rad));
  2298. extern  void   ADCDECL adCloseAd2 _((void));
  2299. extern  short  ADCDECL adCloseFile _((AD_DB_HANDLE handle));
  2300. extern  short  ADCDECL adCodePageCharToUnicode _((short origcodepage,unsigned short codepagechar,unsigned short *unicodechar));
  2301. extern  short  ADCDECL adComputeBulge _((double *stpt,double *endpt,double *center,double *bulge));
  2302. extern  short  ADCDECL adComputeNewTextParms _((AD_DB_HANDLE handle, char *str, double *pt0, PAD_TDATA tdata,char *smfontfile, char *bigfontfile));
  2303. extern  void   ADCDECL adConvertPlinesOnLoad _((short convert));
  2304. extern  AD_VMADDR ADCDECL adCreateBlobEx _((short chunksize));
  2305. #define                adCreateBlob() adCreateBlobEx(4096)
  2306. extern  short  ADCDECL adCreateGroup _((AD_DB_HANDLE handle,char *name,char *groupdesc,AD_OBJHANDLE groupobjhandle,OdaLong numgroupitems,AD_VMADDR groupentblob,AD_VMADDR entlist,short unnamed, short selectable, AD_VMADDR xdata));
  2307. extern  void   ADCDECL adCreateMissingDimblks _((short create));
  2308. extern  short  ADCDECL adCreateStandardArrowHeadBlock(AD_DB_HANDLE dbHandle, PAD_TB adtb, char *stdArrowTypeName, AD_OBJHANDLE arrowblkhandle);
  2309. extern  short  ADCDECL adCreateXrefBlock _((AD_DB_HANDLE handle,char *blkpath,char *blkname,char overlaid,AD_OBJHANDLE blkhobjhandle));
  2310. extern  AD_OBJHANDLE * ADCDECL adCtrlObjhandlePtr _((AD_DB_HANDLE handle));
  2311. extern  void   ADCDECL adDecodeAcadDate _((OdaLong *longs,short *day,short *month,short *year,short *hour,short *mins,short *sec));
  2312. extern  void   ADCDECL adDecodeAcadDateEx _((OdaLong *longs,short *day,short *month,short *year,short *hour,short *mins,short *sec,short *ms));
  2313. extern  void   ADCDECL adDecodeAcadTime _((OdaLong *longs, short *days, short *hours, short *minutes,short *seconds));
  2314. extern  void   ADCDECL adDecodeAcadTimeEx _((OdaLong *longs, short *days, short *hours, short *minutes,short *seconds,short *ms));
  2315. extern  void   ADCDECL adDefaultExamineFile _((char *oldfile,char *newfile,void *userdata));
  2316. extern  short  ADCDECL adDeleteBlob _((AD_VMADDR blob));
  2317. extern  short  ADCDECL adDeleteBlockheader _((AD_DB_HANDLE handle,AD_OBJHANDLE blhhandle));
  2318. extern  short  ADCDECL adPurgeBlockheader _((AD_DB_HANDLE handle,AD_OBJHANDLE blhhandle));
  2319. extern  short  ADCDECL adDeleteBmp _((AD_DB_HANDLE handle));
  2320. extern  short  ADCDECL adDeleteClass _((AD_DB_HANDLE handle,unsigned short classnum));
  2321. extern  short  ADCDECL adDeleteDimstyle _((AD_DB_HANDLE handle,AD_OBJHANDLE dimhandle));
  2322. extern  short  ADCDECL adDeleteEntity _((AD_DB_HANDLE handle,AD_VMADDR list,AD_OBJHANDLE enthandle,short deleteblobs));
  2323. extern  short  ADCDECL adDeleteLayer _((AD_DB_HANDLE handle,AD_OBJHANDLE layhandle));
  2324. extern  short  ADCDECL adDeleteLinetype _((AD_DB_HANDLE handle,AD_OBJHANDLE ltphandle));
  2325. extern  short  ADCDECL adDeleteObject _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle));
  2326. extern  short  ADCDECL adDeleteRegapp _((AD_DB_HANDLE handle,AD_OBJHANDLE apphandle));
  2327. extern  short  ADCDECL adDeleteShapefile _((AD_DB_HANDLE handle,AD_OBJHANDLE shphandle));
  2328. extern  short  ADCDECL adDeleteUcs _((AD_DB_HANDLE handle,AD_OBJHANDLE ucshandle));
  2329. extern  short  ADCDECL adDeleteView _((AD_DB_HANDLE handle,AD_OBJHANDLE viehandle));
  2330. extern  short  ADCDECL adDeleteVport _((AD_DB_HANDLE handle,AD_OBJHANDLE vpohandle));
  2331. extern  short  ADCDECL adDeleteWmf _((AD_DB_HANDLE handle));
  2332. extern  short  ADCDECL adDicAddItem _((AD_DB_HANDLE handle, PAD_OBJ_HDR pDicHdr, PAD_OBJ pDicObj, const char* szItemName, const AD_OBJHANDLE hItem));
  2333. extern  unsigned short ADCDECL  adDictionaryvarObjtype _((AD_DB_HANDLE handle));
  2334. extern unsigned short  adDictionarywdfltObjtype _((AD_DB_HANDLE handle));
  2335. extern  unsigned short ADCDECL  adDimAssocObjtype _((AD_DB_HANDLE handle));
  2336. extern  void   ADCDECL adDisposeHatchPattern _((PAD_HATCHPATT pHatchPat));
  2337. extern  short  ADCDECL adDwgSmellsBad _((void *path));
  2338. extern  OdaLong   ADCDECL adDxfQualityFlags _((AD_DB_HANDLE handle));
  2339. extern  double ADCDECL adEllipseAngleFromParameter _((double ellipseparam,double minmajratio));
  2340. extern  double ADCDECL adEllipseParameterFromAngle _((double ellipseangle,double minmajratio));
  2341. extern  void   ADCDECL adEncodeAcadDate _((short day,short month,short year,short hour,short mins, short sec,OdaLong *longs));
  2342. extern  void   ADCDECL adEncodeAcadDateEx _((short day,short month,short year,short hour,short mins, short sec,short ms,OdaLong *longs));
  2343. extern  void   ADCDECL adEncodeAcadTime _((short days,short hours,short mins,short seconds,OdaLong *longs));
  2344. extern  void   ADCDECL adEncodeAcadTimeEx _((short days,short hours,short mins,short seconds,short ms,OdaLong *longs));
  2345. extern  short  ADCDECL adEndBlobAppend _((PAD_BLOB_CTRL bcptr));
  2346. extern  short  ADCDECL adEndBlobRead _((PAD_BLOB_CTRL bcptr));
  2347. extern  short  ADCDECL adEndBlobWrite _((PAD_BLOB_CTRL bcptr));
  2348. extern  short  ADCDECL adEndProxyDataRead _((AD_DB_HANDLE handle));
  2349. extern  AD_VMADDR ADCDECL adEndProxyDataWrite _((AD_DB_HANDLE handle,OdaLong *numbits));
  2350. extern  AD_VMADDR ADCDECL adEntityList _((AD_DB_HANDLE handle,AD_OBJHANDLE whichblk));
  2351. extern  short  ADCDECL adError _((void));
  2352. extern  short  ADCDECL adErrorClear _((void));
  2353. extern  void   ADCDECL adErrorObjhandle _((AD_OBJHANDLE thehandle));
  2354. extern  char * ADCDECL adErrorStr _((short aderror));
  2355. extern  short  ADCDECL adExplodeProxyToList _((AD_DB_HANDLE handle, PAD_ENT_HDR pProxyHdr, PAD_ENT pProxyEnt, AD_VMADDR pEntList, unsigned int flags, AD_OBJHANDLE after));
  2356. extern  short  ADCDECL adExtractBmpFromFileToBuffer _((void *infile,void *buffer, OdaLong *bytes));
  2357. extern  short  ADCDECL adExtractBmpFromFileToFile _((void *infile,void *outbmp));
  2358. extern  short  ADCDECL adExtractBmpToBuffer _((AD_DB_HANDLE hadnle, void *bufout, OdaLong *outbytes));
  2359. extern  short  ADCDECL adExtractBmpToFile _((AD_DB_HANDLE handle,void *fn));
  2360. extern  short  ADCDECL adFileDisplayableInPaperspace _((AD_DB_HANDLE handle));
  2361. extern  short  ADCDECL adFileHasBmp _((AD_DB_HANDLE handle));
  2362. extern  short  ADCDECL adFileHasWmf _((AD_DB_HANDLE handle));
  2363. extern  short  ADCDECL adFileSavedInModelSpace _((AD_DB_HANDLE handle,short tilemode));
  2364. extern  short  ADCDECL adFileTypeLoaded _((AD_DB_HANDLE handle));
  2365. extern  short  ADCDECL adFileVersionLoaded _((AD_DB_HANDLE handle));
  2366. extern  short  ADCDECL adFindBlockheaderByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2367. extern  short  ADCDECL adFindClassByName _((AD_DB_HANDLE handle, char *name, PAD_CLASS theClass));
  2368. extern  short  ADCDECL adFindDimstyleByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2369. extern  short  ADCDECL adFindLayerByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2370. extern  short  ADCDECL adFindLinetypeByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2371. extern  short  ADCDECL adFindRegappByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2372. extern  short  ADCDECL adFindShapefileByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2373. extern  short  ADCDECL adFindUcsByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2374. extern  short  ADCDECL adFindViewByName _((AD_DB_HANDLE handle, char *name, AD_OBJHANDLE thehandle));
  2375. extern  void   ADCDECL adForceAddingHandles _((short force));
  2376. extern  void   ADCDECL adGenerateObjhandle _((AD_DB_HANDLE handle,unsigned char *newhandle));
  2377. extern  short  ADCDECL adGetBlockheader _((AD_DB_HANDLE handle,PAD_BLKH adblkh));
  2378. extern  short  ADCDECL adGetBlockHandle _((AD_DB_HANDLE dwghan, AD_OBJHANDLE handle, short type));
  2379. extern  void*  ADCDECL adGetCallbackUserdata _((AD_DB_HANDLE handle));
  2380. extern  short  ADCDECL adGetClass _((AD_DB_HANDLE handle,PAD_CLASS clss));
  2381. extern  short  ADCDECL adGetClassNameFromId _((AD_DB_HANDLE handle, short id, char* retName));
  2382. extern  short  ADCDECL adGetDimstyle _((AD_DB_HANDLE handle,PAD_DIMSTYLE addimst));
  2383. extern  short  ADCDECL adGetEntity _((AD_VMADDR list,PAD_ENT_HDR adenhd,PAD_ENT aden));
  2384. extern  short  ADCDECL adGetLayer _((AD_DB_HANDLE handle,PAD_LAY adlay));
  2385. extern  short  ADCDECL adGetLayerState _((AD_DB_HANDLE handle, AD_OBJHANDLE layhandle, char *on, char *frozen, char *vpfrozen, char *locked));
  2386. extern  short  ADCDECL adGetLinetype _((AD_DB_HANDLE handle,PAD_LTYPE adltype));
  2387. extern  short  ADCDECL adGetObject _((AD_DB_HANDLE handle,PAD_OBJ_HDR adobhd,PAD_OBJ adob));
  2388. extern  short  ADCDECL adGetRegapp _((AD_DB_HANDLE handle,PAD_APP adapp));
  2389. extern  short  ADCDECL adGetShapefile _((AD_DB_HANDLE handle,PAD_SHPTB adshptb));
  2390. extern  short  ADCDECL adGetShapefileAndNumber _((AD_DB_HANDLE handle, char *dxfnamestr, AD_OBJHANDLE shpfileobjhandle,unsigned char *whichshape));
  2391. extern  short  ADCDECL adGetUcs _((AD_DB_HANDLE handle,PAD_UCS aducs));
  2392. extern  short  ADCDECL adGetView _((AD_DB_HANDLE handle,PAD_VIEW adview));
  2393. extern  short  ADCDECL adGetVport _((AD_DB_HANDLE handle,PAD_VPORT advport));
  2394. extern  unsigned short ADCDECL  adHatchEnttype _((AD_DB_HANDLE handle));
  2395. extern  PAD_DWGHDR ADCDECL adHeaderPointer _((AD_DB_HANDLE handle));
  2396. extern  unsigned short ADCDECL  adIdbufferObjtype _((AD_DB_HANDLE handle));
  2397. extern  void           ADCDECL  adIgnoreBadInsertBlockHandles _((short ignore));
  2398. extern  void           ADCDECL  adIgnoreBadVpEntData _((short ignore));
  2399. extern  unsigned short ADCDECL  adImageEnttype _((AD_DB_HANDLE handle));
  2400. extern  unsigned short ADCDECL  adImagedefObjtype _((AD_DB_HANDLE handle));
  2401. extern  unsigned short ADCDECL  adImagedefreactorObjtype _((AD_DB_HANDLE handle));
  2402. extern  short  ADCDECL adIncrementObjhandle _((AD_OBJHANDLE handle));
  2403. extern  short  ADCDECL adInitAd2 _((const char * initfilepath, short *initerror));
  2404. extern  short  ADCDECL adIsSupportedProxyEntType _((AD_DB_HANDLE handle, unsigned short enttype));
  2405. extern  unsigned short adLayerindexObjtype _((AD_DB_HANDLE handle));
  2406. extern  unsigned short adLayoutObjtype _((AD_DB_HANDLE handle));
  2407. extern  AD_DB_HANDLE ADCDECL  adLoadFile _((void *fn,char preloadstrat,short addA2kObjs));
  2408. extern  AD_DB_HANDLE ADCDECL  adLoadFileUserData _((void *fn2,char preloadstrat, short addA2kObjs, void* userdata));
  2409. /* Function below returns dbhandle of XREF attached to the main drawing.
  2410.  * If XREF is not loaded yet it will be loaded and attached.
  2411.  * XREFs attached to main drawing will be closed if adClose() called for main drawing */
  2412. extern  AD_DB_HANDLE ADCDECL  adGetXrefDbHandle _((AD_DB_HANDLE main, void *filename));
  2413. extern  const char * ADCDECL  adGetFileLoadName _((AD_DB_HANDLE handle));
  2414. extern  short ADCDECL  adLoadedR14Beta _(());
  2415. extern  unsigned short ADCDECL  adLwplineEnttype _((AD_DB_HANDLE handle));
  2416. extern  AD_DB_HANDLE ADCDECL  adNewFile _((AD_OBJHANDLE *stockobjhandle, PAD_CLASS classes, short numClasses, short version));
  2417. extern  short  ADCDECL adNextClassnum _((AD_DB_HANDLE handle));
  2418. extern  OdaLong   ADCDECL adNumBlockheaders _((AD_DB_HANDLE handle));
  2419. extern  OdaLong   ADCDECL adNumClasses _((AD_DB_HANDLE handle));
  2420. extern  OdaLong   ADCDECL adNumDimstyles _((AD_DB_HANDLE handle));
  2421. extern  OdaLong   ADCDECL adNumEntities _((AD_DB_HANDLE handle,AD_OBJHANDLE theblk));
  2422. extern  OdaLong   ADCDECL adNumLayers _((AD_DB_HANDLE handle));
  2423. extern  OdaLong   ADCDECL adNumLinetypes _((AD_DB_HANDLE handle));
  2424. extern  OdaLong   ADCDECL adNumObjects _((AD_DB_HANDLE handle));
  2425. extern  OdaLong   ADCDECL adNumRegapps _((AD_DB_HANDLE handle));
  2426. extern  void   ADCDECL adNumsFromFaceEntryList _((OdaLong *faceentry,OdaLong numentries,OdaLong *numfaces,OdaLong *numedges));
  2427. extern  OdaLong   ADCDECL adNumShapefiles _((AD_DB_HANDLE handle));
  2428. extern  OdaLong   ADCDECL adNumUcs _((AD_DB_HANDLE handle));
  2429. extern  short  ADCDECL adNumValidCodePages _((void));
  2430. extern  OdaLong   ADCDECL adNumViews _((AD_DB_HANDLE handle));
  2431. extern  OdaLong   ADCDECL adNumVports _((AD_DB_HANDLE handle));
  2432. extern  char   ADCDECL adObjhandleValidChars _((AD_OBJHANDLE han));
  2433. extern  unsigned short adObjectptrObjtype _((AD_DB_HANDLE handle));
  2434. extern  unsigned short ADCDECL  adOle2frameEnttype _((AD_DB_HANDLE handle));
  2435. extern  unsigned short adPlaceholderObjtype _((AD_DB_HANDLE handle));
  2436. extern  unsigned short adPlotsettingsObjtype _((AD_DB_HANDLE handle));
  2437. extern  void   ADCDECL adProcessXDataCodepages _((int process));
  2438. extern  unsigned short ADCDECL  adRastervariablesObjtype _((AD_DB_HANDLE handle));
  2439. extern  short  ADCDECL adReadAcisString _((PAD_BLOB_CTRL bcptr,char *str));
  2440. extern  int    ADCDECL adReadAcisStringn _((PAD_BLOB_CTRL bcptr, char *str, int len, char *readEOLN));
  2441. extern  short  ADCDECL adReadBlob2Double _((PAD_BLOB_CTRL bcptr,double *d));
  2442. extern  short  ADCDECL adReadBlob3Double _((PAD_BLOB_CTRL bcptr,double *d));
  2443. extern  short  ADCDECL adReadBlobByte _((PAD_BLOB_CTRL bcptr, char *buf));
  2444. extern  OdaLong   ADCDECL adReadBlobBytesLong _((PAD_BLOB_CTRL bcptr, void *buf,unsigned OdaLong num));
  2445. #define adReadBlobBytes(bcptr, buf, num)    
  2446.                        ((short)adReadBlobBytesLong(bcptr, buf, (unsigned OdaLong)num))
  2447. extern  short  ADCDECL adReadBlobDouble _((PAD_BLOB_CTRL bcptr,double *d));
  2448. extern  short  ADCDECL adReadBlobLong _((PAD_BLOB_CTRL bcptr,OdaLong *l));
  2449. extern  short  ADCDECL adReadBlobObjhandle _((PAD_BLOB_CTRL bcptr,AD_OBJHANDLE objhandle));
  2450. extern  short  ADCDECL adReadBlobShort _((PAD_BLOB_CTRL bcptr,short *s));
  2451. extern  short  ADCDECL adReadBlobString _((PAD_BLOB_CTRL bcptr,char *str,unsigned short maxsize));
  2452. extern  short  ADCDECL adReadDicItem _((PAD_BLOB_CTRL bcptr,PAD_DICITEM dicitem));
  2453. extern  short  ADCDECL adReadExtendeddata _((PAD_BLOB_CTRL bcptr,PAD_XD adxd));
  2454. extern  short  ADCDECL adReadGrblobData _((PAD_BLOB_CTRL bcptr,PAD_GR_DATA data));
  2455. extern  short  ADCDECL adReadGrblobLong _((PAD_BLOB_CTRL bcptr, OdaLong* pLong));
  2456. extern  short  ADCDECL adReadGrblobVertexPt _((PAD_BLOB_CTRL bcptr,double *pt));
  2457. extern  short  ADCDECL adReadGrshellFaceEntries _((PAD_BLOB_CTRL bcptr,OdaLong numentries,OdaLong *entry));
  2458. extern  short  ADCDECL adReadHatchPattern _((PAD_HATCH pHatch, PAD_HATCHPATT pHatchPat));
  2459. extern  short  ADCDECL adReadHeaderBlock _((AD_DB_HANDLE handle,PAD_DWGHDR adhd));
  2460. extern  short  ADCDECL adReadMlstyleSeginfo _((PAD_BLOB_CTRL bcptr,PAD_MLSTYLESEGINFO seginfo));
  2461. extern  short  ADCDECL adReadMtextBlock _((PAD_BLOB_CTRL bcptr,char *str));
  2462. extern  short  ADCDECL adReadPrimColors _((PAD_BLOB_CTRL bcptr,OdaLong numedges,short *colorarray));
  2463. extern  short  ADCDECL adReadPrimFlags _((PAD_BLOB_CTRL bcptr,unsigned OdaLong *flags));
  2464. extern  short  ADCDECL adReadPrimLayerids _((PAD_BLOB_CTRL bcptr,OdaLong numedges,short *layeridarray));
  2465. extern  short  ADCDECL adReadPrimLinetypeids _((PAD_BLOB_CTRL bcptr,OdaLong numedges,short *linetypeidarray));
  2466. extern  short  ADCDECL adReadPrimMarkers _((PAD_BLOB_CTRL bcptr,OdaLong numitems,OdaLong *marker));
  2467. extern  short  ADCDECL adReadPrimNormals _((PAD_BLOB_CTRL bcptr,OdaLong numitems,double *normal));
  2468. extern  short  ADCDECL adReadPrimOrientation _((PAD_BLOB_CTRL bcptr,OdaLong *orientation));
  2469. extern  short  ADCDECL adReadPrimVisibilities _((PAD_BLOB_CTRL bcptr,OdaLong numitems,OdaLong *visibility));
  2470. extern  short  ADCDECL adReadXrecordItem _((PAD_BLOB_CTRL bcptr,PAD_XD adxd));
  2471. extern  short  ADCDECL adReadProxyDataBinary _((char *a,short *len));
  2472. extern  short  ADCDECL adReadProxyDataBool _((unsigned char *a));
  2473. extern  short  ADCDECL adReadProxyDataChar _((char *a));
  2474. extern  short  ADCDECL adReadProxyDataDouble _((double *a));
  2475. extern  short  ADCDECL adWriteProxyDataDoubleWithDefault _((double a, double def));
  2476. extern  short  ADCDECL adReadProxyDataInt16 _((short *a));
  2477. extern  short  ADCDECL adReadProxyDataInt32 _((OdaLong *a));
  2478. extern  short  ADCDECL adReadProxyDataObjhandle _((AD_OBJHANDLE a));
  2479. extern  short  ADCDECL adReadProxyDataPoint2d _((double *a));
  2480. extern  short  ADCDECL adReadProxyDataPoint3d _((double *a));
  2481. extern  short  ADCDECL adReadProxyDataScale3d _((double *a));
  2482. extern  short  ADCDECL adReadProxyDataString _((char *a));
  2483. extern  short  ADCDECL adReadProxyDataTypedObjhandle _((AD_DB_HANDLE handle, PAD_TYPEDOBJHANDLE a));
  2484. extern  short  ADCDECL adReadProxyDataUInt16 _((unsigned short *a));
  2485. extern  short  ADCDECL adReadProxyDataUInt32 _((unsigned OdaLong *a));
  2486. extern  short  ADCDECL adReadProxyDataUInt8 _((unsigned char *a));
  2487. extern  short  ADCDECL adReadProxyDataVector2d _((double *a));
  2488. extern  short  ADCDECL adReadProxyDataVector3d _((double *a));
  2489. extern  short  ADCDECL adReadProxyDataVoidstardata _((char *a,unsigned short len));
  2490. extern  short  ADCDECL adReadProxyEntityObjid _((PAD_BLOB_CTRL bcptr, PAD_TYPEDOBJHANDLE oh));
  2491. extern  short  ADCDECL adReadProxyObjectObjid _((PAD_BLOB_CTRL bcptr, PAD_TYPEDOBJHANDLE oh));
  2492. extern  short  ADCDECL adReplaceBlockheader _((AD_DB_HANDLE handle,PAD_BLKH theblkh));
  2493. extern  short  ADCDECL adReplaceClass _((AD_DB_HANDLE handle,PAD_CLASS theclass));
  2494. extern  short  ADCDECL adReplaceDimstyle _((AD_DB_HANDLE handle,PAD_DIMSTYLE thedimstyle));
  2495. extern  short  ADCDECL adReplaceEntity _((AD_DB_HANDLE handle,AD_VMADDR list,AD_OBJHANDLE oldhandle,PAD_ENT_HDR adenhd,PAD_ENT aden));
  2496. extern  short  ADCDECL adReplaceLayer _((AD_DB_HANDLE handle,PAD_LAY thelay));
  2497. extern  short  ADCDECL adReplaceLinetype _((AD_DB_HANDLE handle,PAD_LTYPE theltp));
  2498. extern  short  ADCDECL adReplaceObject _((AD_DB_HANDLE handle,PAD_OBJ_HDR adobhd, PAD_OBJ adob));
  2499. extern  short  ADCDECL adReplaceRegapp _((AD_DB_HANDLE handle,PAD_APP theapp));
  2500. extern  short  ADCDECL adReplaceShapefile _((AD_DB_HANDLE handle,PAD_SHPTB theshptb));
  2501. extern  short  ADCDECL adReplaceUcs _((AD_DB_HANDLE handle,PAD_UCS theucs));
  2502. extern  short  ADCDECL adReplaceView _((AD_DB_HANDLE handle,PAD_VIEW theview));
  2503. extern  short  ADCDECL adReplaceVport _((AD_DB_HANDLE handle,PAD_VPORT thevport));
  2504. extern  void   ADCDECL adRewindBlob _((PAD_BLOB_CTRL bcptr));
  2505. extern  unsigned short ADCDECL  adRtextEnttype _((AD_DB_HANDLE handle));
  2506. extern  short  ADCDECL adSaveFile _((AD_DB_HANDLE handle,void *name,char filetype,short version,short dxfnegz,short dxfdecprec,short dxfwritezeroes,char r12dxfvbls));
  2507. extern  short  ADCDECL adSeekBlockheader _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_BLKH adblkh));
  2508. extern  short  ADCDECL adSeekDimstyle _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_DIMSTYLE addimst));
  2509. extern  short  ADCDECL adSeekEntity _((AD_DB_HANDLE handle,AD_VMADDR list,AD_OBJHANDLE thehandle,PAD_ENT_HDR adenhd,PAD_ENT aden));
  2510. extern  short  ADCDECL adSeekLayer _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_LAY adlay));
  2511. extern  short  ADCDECL adSeekLinetype _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_LTYPE adltp));
  2512. extern  short  ADCDECL adSeekObject _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_OBJ_HDR adobhd,PAD_OBJ adob));
  2513. extern  short  ADCDECL adSeekRegapp _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_APP theapp));
  2514. extern  short  ADCDECL adSeekShapefile _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_SHPTB theshptb));
  2515. extern  short  ADCDECL adSeekUcs _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_UCS theucs));
  2516. extern  short  ADCDECL adSeekView _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_VIEW theview));
  2517. extern  short  ADCDECL adSeekVport _((AD_DB_HANDLE handle,AD_OBJHANDLE thehandle,PAD_VPORT thevport));
  2518. extern  short  ADCDECL adSetActivePaperSpaceBlock _((AD_DB_HANDLE handle, AD_OBJHANDLE blkhandle));
  2519. extern  void   ADCDECL adSetAd2BadshapefileFn _((void (*adBadshapefile)(char *shapeffilename,void *userdata)));
  2520. extern  void   ADCDECL adSetAd2OpenInitFileFn _((void * (*OpenInitFile)(const char*)));
  2521. extern  void   ADCDECL adSetAd2ReadInitFileCharFn _((unsigned char (*ReadInitFileChar)(void*)));
  2522. extern  void   ADCDECL adSetAd2ReadInitFileCharsFn _((int (*ReadInitFileChars)(void *buf, unsigned int size, unsigned int num, void *f)));
  2523. extern  void   ADCDECL adSetAd2SeekInitFileFn _((int (*SeekInitFile)(void *f, OdaLong offset, int whence)));
  2524. extern  void   ADCDECL adSetAd2CloseInitFileFn _((int (*ad_CloseInitFile)(void *f)));
  2525. extern  void   ADCDECL adSetAd2CriticalErrorFn _((short (*ad_CriticalError)(short errorno)));
  2526. extern  void   ADCDECL adSetAd2DxfscanometerFn _((void (*ad_Dxfscanometer)(short percent)));
  2527. extern  void   ADCDECL adSetAd2ExamineEntityLoadFn _((void (*ad_ExamineEntityDuringLoad)(PAD_ENT_HDR adenhd,PAD_ENT aden)));
  2528. extern  void   ADCDECL adSetAd2ExamineshapefileFn _((void (*adExamineshapefile)(char *shapefile,char *newshapefile,void *userdata)));
  2529. extern  void   ADCDECL adSetAd2ExamineTTFFn _((void (*examineTTF)(PAD_TTF_DATA, void *userdata)));
  2530. extern  void   ADCDECL adSetAd2LoadometerFn _((void (*ad_Loadometer)(short percent)));
  2531. extern  void   ADCDECL adSetAd2SaveometerFn _((void (*ad_Saveometer)(short percent)));
  2532. extern  void   ADCDECL adSetAd2WarningFn _((void (*ad_Warning)(short errorno)));
  2533. extern  void   ADCDECL adSetCallbackUserdata _((AD_DB_HANDLE handle,void *userdata));
  2534. extern  void   ADCDECL adSetDefaultBlockheader _((PAD_BLKH blkh));
  2535. extern  void   ADCDECL adSetDefaultDimstyle _((AD_DB_HANDLE handle,PAD_DIMSTYLE dimst));
  2536. extern  short  ADCDECL adSetDefaultDimstyleFromHeader _((AD_DB_HANDLE handle,PAD_DIMSTYLE dimst));
  2537. extern  void   ADCDECL adSetDefaultLayer _((AD_DB_HANDLE handle,PAD_LAY lay));
  2538. extern  void   ADCDECL adSetDefaultLinetype _((PAD_LTYPE ltp));
  2539. extern  void   ADCDECL adSetDefaultMlstyle _((PAD_MLSTYLE mlstyle));
  2540. extern  void   ADCDECL adSetDefaultRegapp _((PAD_APP app));
  2541. extern  void   ADCDECL adSetDefaultShapefile _((PAD_SHPTB shptb));
  2542. extern  void   ADCDECL adSetDefaultUcs _((PAD_UCS ucs));
  2543. extern  void   ADCDECL adSetDefaultView _((PAD_VIEW vie));
  2544. extern  void   ADCDECL adSetDefaultVport _((PAD_VPORT vpo));
  2545. extern  void   ADCDECL adSetDxfWriteCompleteness _((short completeness));
  2546. extern  void   ADCDECL adSetEntityDefaults _((AD_DB_HANDLE handle,PAD_ENT_HDR adenhd,PAD_ENT aden));
  2547. extern  void   ADCDECL adSetExportCase _((short exportCase));
  2548. extern  void   ADCDECL adSetHandovermode _((char mode));
  2549. extern  void   ADCDECL adSetHandseed _((AD_DB_HANDLE handle,unsigned char *newhandseed));
  2550. extern  void   ADCDECL adSetHeaderDefaults _((PAD_DWGHDR adhd));
  2551. extern  void   ADCDECL adSetInternalHandseed _((AD_DB_HANDLE dwghan, AD_OBJHANDLE handle));
  2552. extern  short  ADCDECL adSetLayerState _((AD_DB_HANDLE handle, AD_OBJHANDLE layhandle, char on, char frozen, char vpfrozen, char locked));
  2553. extern  void   ADCDECL adSetMacCreatorAndFiletype _((char *creator,char *filetype));
  2554. extern  void   ADCDECL adSetNewFileStartHandle _((AD_OBJHANDLE nfsh));
  2555. extern  short  ADCDECL adSetObjectDefaults _((AD_DB_HANDLE handle,PAD_OBJ_HDR adobhd,PAD_OBJ adob));
  2556. extern  void   ADCDECL adSetPfbScale _((double scale));
  2557. extern  void   ADCDECL adSetupDwgRead _((void));
  2558. extern  void   ADCDECL adSetupDxfRead _((void));
  2559. extern  void   ADCDECL adSetViewportEntityDefaults _((PAD_VPENT vpent));
  2560. extern  void   ADCDECL adSetVmFilePath _((char *newpath));
  2561. extern  AD_OBJHANDLE * ADCDECL adShadowObjhandlePtr _((AD_DB_HANDLE handle));
  2562. extern  const char *   ADCDECL adCodePageName _((short cp));
  2563. #define adShortCodePageToAscii(index, codepagestr) strcpy(codepagestr, adCodePageName(index))
  2564. extern  unsigned short adSortentstableObjtype _((AD_DB_HANDLE handle));
  2565. extern  unsigned short ADCDECL  adSpatialfilterObjtype _((AD_DB_HANDLE handle));
  2566. extern  unsigned short adSpatialindexObjtype _((AD_DB_HANDLE handle));
  2567. extern  PAD_BLOB_CTRL ADCDECL adStartBlobAppend _((AD_VMADDR blob));
  2568. extern  PAD_BLOB_CTRL ADCDECL adStartBlobRead _((AD_VMADDR blob));
  2569. extern  PAD_BLOB_CTRL ADCDECL adStartBlobWrite _((AD_VMADDR blob));
  2570. extern  short  ADCDECL adStartBlockheaderGet _((AD_DB_HANDLE handle));
  2571. extern  short  ADCDECL adStartClassGet _((AD_DB_HANDLE handle));
  2572. extern  short  ADCDECL adStartDimstyleGet _((AD_DB_HANDLE handle));
  2573. extern  short  ADCDECL adStartEntityGet _((AD_VMADDR list));
  2574. extern  short  ADCDECL adStartGrblobDataRead _((PAD_BLOB_CTRL bcptr));
  2575. extern  short  ADCDECL adStartGrblobDataWrite _((PAD_BLOB_CTRL bcptr));
  2576. extern  short  ADCDECL adStartLayerGet _((AD_DB_HANDLE handle));
  2577. extern  short  ADCDECL adStartLinetypeGet _((AD_DB_HANDLE handle));
  2578. extern  short  ADCDECL adStartObjectGet _((AD_DB_HANDLE handle));
  2579. extern  short  ADCDECL adStartRegappGet _((AD_DB_HANDLE handle));
  2580. extern  short  ADCDECL adStartShapefileGet _((AD_DB_HANDLE handle));
  2581. extern  short  ADCDECL adStartUcsGet _((AD_DB_HANDLE handle));
  2582. extern  short  ADCDECL adStartViewGet _((AD_DB_HANDLE handle));
  2583. extern  short  ADCDECL adStartVportGet _((AD_DB_HANDLE handle));
  2584. extern  short  ADCDECL adStartProxyDataRead _((AD_DB_HANDLE handle,AD_VMADDR proxyentdata));
  2585. extern  short  ADCDECL adStartProxyDataWrite _((AD_DB_HANDLE handle));
  2586. extern  void   ADCDECL adStopLoading _((void));
  2587. extern  short  adTextBoundingBox _((AD_DB_HANDLE handle,unsigned char *textstr, PAD_TDATA tdata,short vertflag,char *shfilename,char *bffilename,short usesimplex,PDOUBRECTFULL textbb,double *bottomy));
  2588. extern  short  ADCDECL adUnicodeToCodePageChar _((unsigned short unicodechar,short codepage,short *codepagechar));
  2589. extern  short  ADCDECL adValHdrStr _((char *acadverr));
  2590. extern  unsigned short adVbaProjectObjtype _((AD_DB_HANDLE handle));
  2591. extern  unsigned short ADCDECL  adWipeoutEnttype _((AD_DB_HANDLE handle));
  2592. extern unsigned short  adWipeoutVariablesObjtype _((AD_DB_HANDLE handle));
  2593. extern  short  ADCDECL adWriteAcisString _((PAD_BLOB_CTRL bcptr,char *str));
  2594. extern  short  ADCDECL adWriteBlob2Double _((PAD_BLOB_CTRL bcptr,double *d));
  2595. extern  short  ADCDECL adWriteBlob3Double _((PAD_BLOB_CTRL bcptr,double *d));
  2596. extern  short  ADCDECL adWriteBlobByte _((PAD_BLOB_CTRL bcptr, char ch));
  2597. extern  short  ADCDECL adWriteBlobBytesLong _((PAD_BLOB_CTRL bcptr, void *buf, unsigned OdaLong num));
  2598. #define adWriteBlobBytes(bcptr, buf, num)   
  2599.                        adWriteBlobBytesLong(bcptr, buf, (unsigned OdaLong)num)
  2600. extern  short  ADCDECL adWriteBlobDouble _((PAD_BLOB_CTRL bcptr,double *d));
  2601. extern  short  ADCDECL adWriteBlobLong _((PAD_BLOB_CTRL bcptr,OdaLong *l));
  2602. extern  short  ADCDECL adWriteBlobObjhandle _((PAD_BLOB_CTRL bcptr,AD_OBJHANDLE objhandle));
  2603. extern  short  ADCDECL adWriteBlobShort _((PAD_BLOB_CTRL bcptr,short *s));
  2604. extern  short  ADCDECL adWriteBlobString _((PAD_BLOB_CTRL bcptr,char *str));
  2605. extern  short  ADCDECL adWriteDicItem _((PAD_BLOB_CTRL bcptr,PAD_DICITEM dicitem));
  2606. extern  short  ADCDECL adWriteExtendeddata _((PAD_BLOB_CTRL bcptr,PAD_XD adxd));
  2607. extern  short  ADCDECL adWriteGrblobData _((PAD_BLOB_CTRL bcptr,PAD_GR_DATA data));
  2608. extern  short  ADCDECL adWriteGrblobVertexPt _((PAD_BLOB_CTRL bcptr,double *pt));
  2609. extern  short  ADCDECL adWriteGrshellFaceEntries _((PAD_BLOB_CTRL bcptr,OdaLong numentries,OdaLong *entries));
  2610. extern  short  ADCDECL adWriteHeaderBlock _((AD_DB_HANDLE handle,PAD_DWGHDR adhd));
  2611. extern  short  ADCDECL adWriteMlstyleSeginfo _((PAD_BLOB_CTRL bcptr,PAD_MLSTYLESEGINFO seginfo));
  2612. extern  short  ADCDECL adWriteMtextBlock _((PAD_BLOB_CTRL bcptr,char *str));
  2613. extern  short  ADCDECL adWriteXrecordItem _((PAD_BLOB_CTRL bcptr,PAD_XD adxd));
  2614. extern  short  ADCDECL adWriteProxyEntityObjid _((PAD_BLOB_CTRL bcptr, PAD_TYPEDOBJHANDLE oh));
  2615. extern  short  ADCDECL adWriteProxyDataBinary _((char *a,short len));
  2616. extern  short  ADCDECL adWriteProxyDataBool _((unsigned char a));
  2617. extern  short  ADCDECL adWriteProxyDataChar _((char a));
  2618. extern  short  ADCDECL adWriteProxyDataDouble _((double a));
  2619. extern  short  ADCDECL adWriteProxyDataInt16 _((short a));
  2620. extern  short  ADCDECL adWriteProxyDataInt32 _((OdaLong a));
  2621. extern  short  ADCDECL adWriteProxyDataObjhandle _((AD_OBJHANDLE a));
  2622. extern  short  ADCDECL adWriteProxyDataPoint2d _((double *a));
  2623. extern  short  ADCDECL adWriteProxyDataPoint3d _((double *a));
  2624. extern  short  ADCDECL adWriteProxyDataScale3d _((double *a));
  2625. extern  short  ADCDECL adWriteProxyDataString _((char *a));
  2626. extern  short  ADCDECL adWriteProxyDataTypedObjhandle _((AD_DB_HANDLE handle, PAD_TYPEDOBJHANDLE a));
  2627. extern  short  ADCDECL adWriteProxyDataUInt16 _((unsigned short a));
  2628. extern  short  ADCDECL adWriteProxyDataUInt32 _((unsigned OdaLong a));
  2629. extern  short  ADCDECL adWriteProxyDataUInt8 _((unsigned char a));
  2630. extern  short  ADCDECL adWriteProxyDataVector2d _((double *a));
  2631. extern  short  ADCDECL adWriteProxyDataVector3d _((double *a));
  2632. extern  short  ADCDECL adWriteProxyDataVoidstardata _((char *a,unsigned short size));
  2633. extern  short  ADCDECL adWriteProxyObjectObjid _((PAD_BLOB_CTRL bcptr, PAD_TYPEDOBJHANDLE oh));
  2634. extern  unsigned short ADCDECL  adXrecordObjtype _((AD_DB_HANDLE handle));
  2635. extern  void   ADCDECL adSetPreloadEntityFilter _((char *filters)); /* [ingr 109] */
  2636. /* these macros are provided for compatibility with version 6 of AD */
  2637. #define adReadDicReactor(bcptr,reactor)           adReadBlobObjhandle(bcptr,reactor)
  2638. #define adReadGroupEntryHandle(bcptr,objhandle)   adReadBlobObjhandle(bcptr,objhandle)
  2639. #define adReadGroupReactor(bcptr,reactor)         adReadBlobObjhandle(bcptr,reactor)
  2640. #define adReadGrshellNumFaceEntries(bcptr,l)      adReadBlobLong(bcptr,l)
  2641. #define adReadLeaderPoint(bcptr,a)                adReadBlob3Double(bcptr,a)
  2642. #define adReadMlineAreafillparm(bcptr,d)          adReadBlobDouble(bcptr,d)
  2643. #define adReadMlineSegparm(bcptr,d)               adReadBlobDouble(bcptr,d)
  2644. #define adReadMlineVertpts(b,p,v,m) 
  2645.   adReadBlob3Double(b,p); adReadBlob3Double(b,v); adReadBlob3Double(b,m)
  2646. #define adReadNumMlineAreafillparms(bcptr,num)    adReadBlobShort(bcptr,num)
  2647. #define adReadNumMlineSegparms(bcptr,num)         adReadBlobShort(bcptr,num)
  2648. #define adReadSplineCtlpt(bcptr,d)                adReadBlob3Double(bcptr,d)
  2649. #define adReadSplineFitpt(bcptr,d)                adReadBlob3Double(bcptr,d)
  2650. #define adReadSplineKnot(bcptr,d)                 adReadBlobDouble(bcptr,d)
  2651. #define adReadSplineWeight(bcptr,d)               adReadBlobDouble(bcptr,d)
  2652. #define adReadProxyObjectReactor(bcptr,reactor)   adReadBlobObjhandle(bcptr,reactor)
  2653. #define adWriteDicReactor(bcptr,reactor)          adWriteBlobObjhandle(bcptr,reactor)
  2654. #define adWriteGroupEntryHandle(bcptr,objhandle)  adWriteBlobObjhandle(bcptr,objhandle)
  2655. #define adWriteGroupReactor(bcptr,reactor)        adWriteBlobObjhandle(bcptr,reactor)
  2656. #define adWriteGrshellNumFaceEntries(bcptr,l)     adWriteBlobLong(bcptr,l)
  2657. #define adWriteLeaderPoint(bcptr,a)               adWriteBlob3Double(bcptr,a)
  2658. #define adWriteMlineAreafillParm(bcptr,d)         adWriteBlobDouble(bcptr,d)
  2659. #define adWriteMlineSegparm(bcptr,d)              adWriteBlobDouble(bcptr,d)
  2660. #define adWriteMlineVertpts(b,p,v,m) 
  2661.   adWriteBlob3Double(b,p); adWriteBlob3Double(b,v); adWriteBlob3Double(b,m)
  2662. #define adWriteNumMlineAreafillparms(bcptr,num)   adWriteBlobShort(bcptr,num)
  2663. #define adWriteNumMlineSegparms(bcptr,num)        adWriteBlobShort(bcptr,num)
  2664. #define adWriteSplineCtlpt(bcptr,d)               adWriteBlob3Double(bcptr,d)
  2665. #define adWriteSplineFitpt(bcptr,d)               adWriteBlob3Double(bcptr,d)
  2666. #define adWriteSplineKnot(bcptr,d)                adWriteBlobDouble(bcptr,d)
  2667. #define adWriteSplineWeight(bcptr,d)              adWriteBlobDouble(bcptr,d)
  2668. #define adWriteProxyObjectReactor(bcptr,reactor)  adWriteBlobObjhandle(bcptr,reactor)
  2669. /* Plotstyle additions [ingr 94] */
  2670. #define ADPST_LEN_DESCRIPTION       AD_MAX_STRLEN
  2671. #define ADPST_LEN_NAME              AD_MAX_STRLEN
  2672. #define ADPST_NUM_ACI_SLOTS         255
  2673. #define ADPST_NUM_LINEWEIGHTS       27
  2674. #define AD_COLOR_USEOBJECT          -1
  2675. #define AD_WEIGHT_USEOBJECT         0
  2676. #define AD_COLORPOLICY_INDEX        1
  2677. #define AD_COLORPOLICY_GRAYSCALE    3
  2678. #define AD_COLORPOLICY_NODITHER     4
  2679. #define AD_COLORPOLICY_RGB          5
  2680. #define AD_ENDSTYLE_BUTT            0
  2681. #define AD_ENDSTYLE_SQUARE          1
  2682. #define AD_ENDSTYLE_ROUND           2
  2683. #define AD_ENDSTYLE_DIAMOND         3
  2684. #define AD_ENDSTYLE_USEOBJECT       4
  2685. #define AD_JOINSTYLE_MITER          0
  2686. #define AD_JOINSTYLE_BEVEL          1
  2687. #define AD_JOINSTYLE_ROUND          2
  2688. #define AD_JOINSTYLE_DIAMOND        3
  2689. #define AD_JOINSTYLE_USEOBJECT      5
  2690. #define AD_LINETYPE_LTPSOLID                            0
  2691. #define AD_LINETYPE_LTPDASHED                           1
  2692. #define AD_LINETYPE_LTPDOTTED                           2
  2693. #define AD_LINETYPE_LTPDASHDOT                          3
  2694. #define AD_LINETYPE_LTPSHORTDASH                        4
  2695. #define AD_LINETYPE_LTPMEDIUMDASH                       5
  2696. #define AD_LINETYPE_LTPLONGDASH                         6
  2697. #define AD_LINETYPE_LTPSHORTDASHX2                      7
  2698. #define AD_LINETYPE_LTPMEDIUMDASHX2                     8
  2699. #define AD_LINETYPE_LTPLONGDASHX2                       9
  2700. #define AD_LINETYPE_LTPMEDIUMLONGDASH                   10
  2701. #define AD_LINETYPE_LTPMEDIUMDASHSHORTDASHSHORTDASH     11
  2702. #define AD_LINETYPE_LTPLONGDASHSHORTDASH                12
  2703. #define AD_LINETYPE_LTPLONGDASHDOTDOT                   13
  2704. #define AD_LINETYPE_LTPLONGDASHDOT                      14
  2705. #define AD_LINETYPE_LTPMEDIUMDASHDOTSHORTDASHDOT        15
  2706. #define AD_LINETYPE_LTPSPARSEDOT                        16
  2707. #define AD_LINETYPE_LTPISODASH                          17
  2708. #define AD_LINETYPE_LTPISODASHSPACE                     18
  2709. #define AD_LINETYPE_LTPISOLONGDASHDOT                   19
  2710. #define AD_LINETYPE_LTPISOLONGDASHDOUBLEDOT             20
  2711. #define AD_LINETYPE_LTPISOLONGDASHTRIPLEDOT             21
  2712. #define AD_LINETYPE_LTPISODOT                           22
  2713. #define AD_LINETYPE_LTPISOLONGDASHSHORTDASH             23
  2714. #define AD_LINETYPE_LTPISOLONGDASHDOUBLESHORTDASH       24
  2715. #define AD_LINETYPE_LTPISODASHDOT                       25
  2716. #define AD_LINETYPE_LTPISODOUBLEDASHDOT                 26
  2717. #define AD_LINETYPE_LTPISODASHDOUBLEDOT                 27
  2718. #define AD_LINETYPE_LTPISODOUBLEDASHDOUBLEDOT           28
  2719. #define AD_LINETYPE_LTPISODASHTRIPLEDOT                 29
  2720. #define AD_LINETYPE_LTPISODOUBLEDASHTRIPLEDOT           30
  2721. #define AD_LINETYPE_USEOBJECT                           31
  2722. #define AD_FILLSTYLE_SOLID              64
  2723. #define AD_FILLSTYLE_CHECKERBOARD       65
  2724. #define AD_FILLSTYLE_CROSSHATCH         66
  2725. #define AD_FILLSTYLE_DIAMONDS           67
  2726. #define AD_FILLSTYLE_HORIZONTALBARS     68
  2727. #define AD_FILLSTYLE_SLANTLEFT          69
  2728. #define AD_FILLSTYLE_SLANTRIGHT         70
  2729. #define AD_FILLSTYLE_SQUAREDOTS         71
  2730. #define AD_FILLSTYLE_VERTICALBARS       72
  2731. #define AD_FILLSTYLE_USEOBJECT          73
  2732. /************/
  2733. /* Typedefs */
  2734. /************/
  2735. /* Plot style. */
  2736. typedef struct tagADPLOTSTYLE
  2737. {
  2738.     char                    szName[ADPST_LEN_NAME];
  2739.     char                    szLocalizedName[ADPST_LEN_NAME];
  2740.     char                    szDescription[ADPST_LEN_DESCRIPTION];
  2741.     OdaLong                    nColor;
  2742.     short                   nColorPolicy;
  2743.     short                   nPhysicalPenNumber;
  2744.     short                   nVirtualPenNumber;
  2745.     short                   nScreen;
  2746.     double                  dblLinePatternSize;
  2747.     short                   nLinetype;
  2748.     char                    bAdaptiveLinetype;
  2749.     short                   nLineweight;
  2750.     short                   nFillStyle;
  2751.     short                   nEndStyle;
  2752.     short                   nJoinStyle;
  2753.     AD_OBJHANDLE            objhandle;
  2754.     struct tagADPLOTSTYLE*  pNext;
  2755. } ADPLOTSTYLE;
  2756. /* Plot style table. */
  2757. typedef struct tagADPLOTSTYLETABLE
  2758. {
  2759.     char            bAciTableAvailable;
  2760.     char            bApplyScaleFactor;
  2761.     char            szDescription[ADPST_LEN_DESCRIPTION];
  2762.     double          dblScaleFactor;
  2763.     short           nCustomLineweightDisplayUnits;
  2764.     short           nNumStyles;
  2765.     ADPLOTSTYLE*    pStyles;
  2766.     ADPLOTSTYLE**   aAciTable;
  2767.     double          aLineweights[ADPST_NUM_LINEWEIGHTS];
  2768. } ADPLOTSTYLETABLE;
  2769. /* typed object iterator */
  2770. typedef struct adobjiterstru
  2771. {
  2772. AD_DB_HANDLE dwghandle;
  2773. int numObjects;
  2774. PAD_BLOB_CTRL itemBlobCtrl;
  2775. AD_DICITEM curItem;
  2776. } AD_OBJ_ITER, *PAD_OBJ_ITER;
  2777. /***********************/
  2778. /* Function prototypes */
  2779. /***********************/
  2780. /* adpstr.c */
  2781. extern  short  ADCDECL adReadPlotStyleTable _((char *pszInputFile, ADPLOTSTYLETABLE **ppTable));
  2782. extern  short  ADCDECL adResolvePlotStyleObjhandles _((AD_DB_HANDLE handle, ADPLOTSTYLETABLE *pTable));
  2783. extern  short  ADCDECL adFindPlotStyleByName _((char *pszSearchName, ADPLOTSTYLETABLE *pTable, ADPLOTSTYLE **ppStyle));
  2784. extern  short  ADCDECL adFindPlotStyleByLocalizedName _((char *pszSearchName, ADPLOTSTYLETABLE *pTable, ADPLOTSTYLE **ppStyle));
  2785. extern  short  ADCDECL adFindPlotStyleByHandle _((AD_OBJHANDLE objhandle, ADPLOTSTYLETABLE *pTable, ADPLOTSTYLE **ppStyle));
  2786. extern  short  ADCDECL adFreePlotStyleTable _((ADPLOTSTYLETABLE *pTable));
  2787. /* End of plotstyle additions [ingr 94] */
  2788. /*******************************************************************************
  2789.  * Find Spatial Filter object associated with given INSERT entity
  2790.  */
  2791. extern int ADCDECL adLookUpSpatialFilter       /* Returns 1 if Spatial Filter object found, 0 - if not */
  2792. _((
  2793.     AD_DB_HANDLE    handle,   /* (In)  Drawing handle */
  2794.     PAD_ENT_HDR     adenhd,   /* (In)  Insert entity header */
  2795.     AD_OBJHANDLE *  hanRet    /* (Out) Spatial Filter obj handle */
  2796. ));
  2797. /*******************************************************************
  2798.  * Get integer value of variable stored as DICTIONARYVAR
  2799.  */
  2800. extern int ADCDECL adGetDictionaryvarInt         /* returns variable value */
  2801. _((
  2802.             AD_DB_HANDLE cbptr,   /* Drawing handle */
  2803.             const char * VarName, /* variable name */
  2804.             int Default           /* default value */
  2805. ));
  2806. extern  void  ADCDECL adSetMaxPreR15NameLength _((short maxlen));
  2807. extern  short ADCDECL adGetMaxPreR15NameLength _(());
  2808. /*******************************************************************
  2809.  * Get drawing units name
  2810.  */
  2811. extern char * ADCDECL adGetUnitsStr _((AD_DB_HANDLE handle));
  2812. extern short ADCDECL adDicGetItem _((/* returns 1 if item having given name found
  2813.                                                 0 - if no item found */
  2814.                    AD_DB_HANDLE   handle,     /* In */
  2815.                    PAD_OBJ        pDicObj,    /* In */
  2816.                    const char*    szItemName, /* In - item name to search */
  2817.                    AD_OBJHANDLE  *phItem));   /* Out - pointer to return item handle */
  2818. extern short ADCDECL adAnsiCp2Acad _((unsigned int AnsiCP)); /* Get Acad CP from ANSI CP */
  2819. extern unsigned int  ADCDECL adAcadCp2Ansi _((short AcadCP)); /* Get Ansi CP from Acad CP */
  2820. extern void  ADCDECL adSetAcp _((short CodePage));  /* Set active code page */
  2821. extern short ADCDECL adGetAcp _(());                /* Get active code page */
  2822. extern short ADCDECL adIsLeadByte _((unsigned char thebyte, short codepage));  /* Test if character is multibyte */
  2823.       /* Return character (possibly 2-byte). Advance string pointer to next character */
  2824. extern unsigned short ADCDECL adGetCodePageChar _((unsigned char ** pStringPtr, short codepage));
  2825.       /* Store character (possibly 2-byte) in string. Advance string pointer to next character */
  2826. extern void ADCDECL adPutCodePageChar _((unsigned short thechar, unsigned char ** pStringPtr, short codepage));
  2827. extern int ADCDECL adAcadCharLen _((unsigned char *str, short codepage));
  2828. extern unsigned char * ADCDECL adStrChar _((unsigned char * pString, unsigned short thechar, short codepage));
  2829. extern void ADCDECL adAcadCharCpyN _((unsigned char ** dst, unsigned char ** src, int num, short codepage));
  2830. extern int ADCDECL adAcadStrLen _((unsigned char *str, short codepage));
  2831. /*
  2832.   Starts typed objects get.
  2833.   name - name of the typed objects(ACAD_LAYOUT,
  2834.     ACAD_MLINESTYLE, ACAD_GROUP, ACAD_PLOTSETTINGS,
  2835. ACAD_PLOTSTYLENAME, ACDBHEADERROUNDTRIPXREC)
  2836.   Iter - Iterator
  2837. */
  2838. short adStartTypedObjectGet _((const char* name, PAD_OBJ_ITER Iter));
  2839. const char* adGetTypedObjectName _((PAD_OBJ_ITER Iter));
  2840. unsigned char* adGetTypedObjectHandle _((PAD_OBJ_ITER Iter));
  2841. short adGetTypedObject _((PAD_OBJ_ITER Iter, PAD_OBJ_HDR hdr, PAD_OBJ obj));
  2842. short adNextTypedObject _((PAD_OBJ_ITER Iter));
  2843. void adEndTypedObjectGet _((PAD_OBJ_ITER Iter));
  2844. /* Purge loaded SHX and TTF font files */
  2845. extern void ADCDECL adUnloadFontFiles _((AD_DB_HANDLE handle));
  2846. #ifdef __cplusplus
  2847. }
  2848. #endif
  2849. #endif