home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 October / Chip_1997-10_cd.bin / zkuste / antek / disk2 / adk / include / adk.h_ / adk.h
C/C++ Source or Header  |  1997-07-08  |  16KB  |  468 lines

  1. #ifndef    _ADK_H_
  2. #define    _ADK_H_
  3.  
  4. #ifdef    __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. #define    A_VERSION    120
  9.  
  10. /* A_EXPORT is defined only when building ADK.DLL */
  11. #if    defined(A_16BIT)
  12. #define    A_API        _far _pascal _export
  13. #define    A_CALLBACK    _far _pascal _export
  14. #elif    defined(A_EXPORT)
  15. #define    A_API        _declspec(dllexport) __stdcall
  16. #define    A_CALLBACK    __stdcall
  17. #else
  18. #define    A_API        _declspec(dllimport) __stdcall
  19. #define    A_CALLBACK    __stdcall
  20. #endif
  21.  
  22. enum A_StatusE    {
  23.         A_CMD_CALL    = 0,/* AMOEBA calls your cmd */
  24.         A_LOAD        = 1,/* load application */
  25.         A_UNLOAD    = 2,/* unload application */
  26.         A_NEW        = 3,/* new drawing, prototype loaded */
  27.         A_OPEN_BEFORE    = 4,/* drawing will be loaded */
  28.         A_OPEN_AFTER    = 5,/* drawing loaded */
  29.         A_SAVE_BEFORE    = 6,/* drawing is to be saved */
  30.         A_SAVE_AFTER    = 7,/* drawing was saved */
  31.         A_DISCARD    = 8,/* drawing is to be discarded */
  32.         A_END        = 100,/* ACC only - end application */
  33.         };
  34. /*
  35. general error codes from any A_ function
  36. error codes less than -1000 are reserved for interface error, other numbers can
  37. be used for function errors
  38. */
  39.     /* already initialized A_Init() */
  40. #define A_ERROR_ALREADY_INITIALIZED    -1000
  41.     /* function called without initializing */
  42. #define A_ERROR_NOT_INITIALIZED        -1001
  43.     /* function called, but AMOEBA is not waiting for commands */
  44. #define    A_ERROR_NOT_REENTRANT        -1002
  45.     /* any other error */
  46. #define    A_ERROR_INTERNAL        -1003
  47.     /* WM_QUIT found in message queue */
  48. #define    A_ERROR_MSG            -1004
  49.     /* AMOEBA terminated */
  50. #define    A_ERROR_CONNECTION_TERMINATED    -1005
  51.     /* incompatible IPC interface */
  52. #define    A_ERROR_INCOMPATIBLE_IPC_INTERFACE -1006
  53.     /* incompatible DLL interface */
  54. #define    A_ERROR_INCOMPATIBLE_DLL_INTERFACE -1007
  55.     /* universal/generic thunk error */
  56. #define    A_ERROR_THUNK            -1008
  57.     /* bad VARIANT argument type,
  58.     this is a ACC error, but placed here */
  59. #define    A_ERR_VARIANT_TYPE        -1009
  60.     /* function parameter required A_ADK() */
  61. #define    A_ERROR_PARAMETER_REQUIRED    -1010
  62.     /* no error */
  63. #define    A_ERROR_OK            0
  64.  
  65. /* use current layer, color, linetype, textstyle */        
  66. #define    A_USE_CURRENT        0x80000003l
  67. #define    A_USE_CURRENT_ENT    ((A_EntH)0x80000003l)
  68.  
  69. /* no entity */
  70. #define    A_NO_REF    ((A_EntH)0x80000000l)
  71.  
  72. /* length of any name in database */
  73. #define A_MAX_NAME        32
  74.  
  75. /* for type safety reasons */
  76. #ifdef    A_NOSTRICT
  77. #define    A_DECL_HANDLE(name)    typedef long name
  78. #else
  79. #define A_DECL_HANDLE(name) struct name##__ {long _;}; typedef struct name##__ FAR*name
  80. #endif
  81.  
  82. A_DECL_HANDLE(A_EntH);
  83. A_DECL_HANDLE(A_ArrayH);
  84.  
  85. typedef struct
  86.     {
  87.     double    x;
  88.     double    y;
  89.     } A_PointS, A_VectorS;
  90.  
  91. typedef struct
  92.     {
  93.     A_PointS    Min;
  94.     A_PointS    Max;
  95.     } A_RectS;
  96.  
  97. typedef struct
  98.     {
  99.     double    m[3][3];
  100.     } A_MatrixS;
  101.  
  102. typedef unsigned long A_COLORREF;
  103.  
  104. typedef void    (A_CALLBACK A_StatusF)(long,long);
  105. typedef void    (A_CALLBACK A_ErrorF)(long);
  106.  
  107. /* basic functions */
  108. long    A_API A_Adk(long,A_StatusF*,A_ErrorF*);
  109. long    A_API A_AdkMsg(long,LPVOID FAR*,A_StatusF*,A_ErrorF*);
  110. #ifndef    A_16BIT
  111. /* internal entry point for utadk.dll */
  112. long    A_API A_Adk16(HTASK,LPCTSTR,long,A_StatusF*,A_ErrorF*);
  113. long    A_API A_AdkMsg16(HTASK,LPCTSTR,long,void**,A_StatusF*,A_ErrorF*);
  114. #endif
  115.  
  116. long    A_API A_DefCmd(const char FAR*,long,long);
  117. long    A_API A_UnDefCmd(long);
  118. long    A_API A_CallCmd(const char FAR*);
  119.  
  120. /* input/output functions */
  121. long    A_API A_Prompt(const char FAR*);
  122.  
  123. /* ARC functions */
  124. long    A_API A_ARC_Make(A_PointS,double,double,double,A_EntH,A_COLORREF,long,double,long,A_EntH FAR*);
  125. long    A_API A_ARC_Get(A_EntH,A_PointS FAR*,double FAR*,double FAR*,double FAR*,A_EntH FAR*,A_COLORREF FAR*,long FAR*,double FAR*);
  126. long    A_API A_ARC_Change(A_EntH,A_PointS,double,double,double,A_EntH,A_COLORREF,long,double);
  127.  
  128. /* hidden/visible, preset/ask flags */
  129. #define A_ATTR_HIDDEN        0x1
  130. #define A_ATTR_PRESET        0x2
  131. #define A_ATTR_INSERTED        0x80
  132.  
  133. long    A_API A_ATTR_Make(const char FAR*,const char FAR*,const char FAR*,A_PointS,double,double,A_EntH,long,A_EntH,A_COLORREF,long,long,A_EntH FAR*);
  134. long    A_API A_ATTR_Get(A_EntH,char FAR[A_MAX_NAME + 1],const char FAR*FAR*,const char FAR*FAR*,A_PointS FAR*,double FAR*,double FAR*,A_EntH FAR*,long FAR*,A_EntH FAR*,A_COLORREF FAR*,long FAR*);
  135. long    A_API A_ATTR_Change(A_EntH,const char FAR*,const char FAR*,const char FAR*,A_PointS,double,double,A_EntH,long,A_EntH,A_COLORREF,long);
  136.  
  137. /* BLOCK functions */
  138. long    A_API A_BLOCK_Make(A_MatrixS,A_MatrixS,const char FAR*,A_ArrayH,A_EntH FAR*);
  139. long    A_API A_BLOCK_Get(A_EntH,A_MatrixS FAR*,A_MatrixS FAR*,char FAR[A_MAX_NAME + 1],A_ArrayH FAR*,long FAR*);
  140. long    A_API A_BLOCK_Change(A_EntH,A_MatrixS,A_MatrixS,const char FAR*,A_ArrayH);
  141. long    A_API A_BLOCK_GetEnt(const char FAR*,A_EntH FAR*);
  142. long    A_API A_BLOCK_Num(void);
  143. long    A_API A_BLOCK_GetNth(long,A_EntH FAR*);
  144.  
  145. /* CIRCLE functions */
  146. long    A_API A_CIRCLE_Make(A_PointS,double,A_EntH,A_COLORREF,long,double,long,A_EntH FAR*);
  147. long    A_API A_CIRCLE_Get(A_EntH,A_PointS FAR*,double FAR*,A_EntH FAR*,A_COLORREF FAR*,long FAR*,double FAR*);
  148. long    A_API A_CIRCLE_Change(A_EntH,A_PointS,double,A_EntH,A_COLORREF,long,double);
  149.  
  150. /* INSERT functions */
  151. #define A_INSERT_COLOR_BY    ((COLORREF)0xFFFFFFFE)
  152. #define A_INSERT_LINETYPE_BY    -2
  153.  
  154. long    A_API A_INSERT_Make(A_EntH,A_MatrixS,A_MatrixS,A_EntH,A_COLORREF,long,A_ArrayH,long,A_EntH FAR*);
  155. long    A_API A_INSERT_Get(A_EntH,A_EntH FAR*,A_MatrixS FAR*,A_MatrixS FAR*,A_EntH FAR*,A_COLORREF FAR*,long FAR*,A_ArrayH FAR*);
  156. long    A_API A_INSERT_Change(A_EntH,A_EntH,A_MatrixS,A_MatrixS,A_EntH,A_COLORREF,long,A_ArrayH);
  157. long    A_API A_INSERT_AttrGet(A_EntH,A_MatrixS FAR*,A_ArrayH FAR*);
  158. long    A_API A_INSERT_AttrMake(A_EntH,A_MatrixS,const char FAR*,A_EntH FAR*);
  159.  
  160. /* LAYER functions */
  161. #define A_LAYER_FREEZE    0x1
  162. #define A_LAYER_LOCK    0x2
  163. #define A_LAYER_SPECIAL    0x4
  164.  
  165. #define A_LAYER_COLOR_BY    ((A_COLORREF)0xFFFFFFFF)
  166. #define A_LAYER_LINETYPE_BY    -1
  167.  
  168. long    A_API A_LAYER_Make(const char FAR*,A_COLORREF,long,long,A_EntH FAR*);
  169. long    A_API A_LAYER_Get(A_EntH,char FAR[A_MAX_NAME + 1],A_COLORREF FAR*,long FAR*,long FAR*,long FAR*);
  170. long    A_API A_LAYER_Change(A_EntH,const char FAR*,A_COLORREF,long,long);
  171. long    A_API A_LAYER_GetCurrent(A_EntH FAR*);
  172. long    A_API A_LAYER_SetCurrent(A_EntH);
  173. long    A_API A_LAYER_GetEnt(const char FAR*,A_EntH FAR*);
  174. long    A_API A_LAYER_Num(void);
  175. long    A_API A_LAYER_GetNth(long,A_EntH FAR*);
  176.  
  177. /* LINE functions */
  178. long    A_API A_LINE_Make(A_PointS,A_PointS,A_EntH,A_COLORREF,long,double,long,A_EntH FAR*);
  179. long    A_API A_LINE_Get(A_EntH,A_PointS FAR*,A_PointS FAR*,A_EntH FAR*,A_COLORREF FAR*,long FAR*,double FAR*);
  180. long    A_API A_LINE_Change(A_EntH,A_PointS,A_PointS,A_EntH,A_COLORREF,long,double);
  181.  
  182. /* SOLID functions */
  183. long    A_API A_SOLID_Make(A_PointS,A_PointS,A_PointS,A_PointS,A_EntH,A_COLORREF,long,A_EntH FAR*);
  184. long    A_API A_SOLID_Get(A_EntH,A_PointS FAR*,A_PointS FAR*,A_PointS FAR*,A_PointS FAR*,A_EntH FAR*,A_COLORREF FAR*);
  185. long    A_API A_SOLID_Change(A_EntH,A_PointS,A_PointS,A_PointS,A_PointS,A_EntH,A_COLORREF);
  186.  
  187. /* TEXT functions */
  188. #define A_TEXT_ALIGN_BOTTOM    0x0
  189. #define A_TEXT_ALIGN_TOP    0x1
  190. #define A_TEXT_ALIGN_BASELINE    0x2
  191. #define A_TEXT_ALIGN_VERTICAL    0x3
  192.  
  193. #define A_TEXT_ALIGN_LEFT    0x0
  194. #define A_TEXT_ALIGN_RIGHT    0x4
  195. #define A_TEXT_ALIGN_CENTER    0x8
  196. #define A_TEXT_ALIGN_HORIZONTAL    0xC
  197.  
  198. long    A_API A_TEXT_Make(const char FAR*,A_PointS,double,double,A_EntH,long,A_EntH,A_COLORREF,long,A_EntH FAR*);
  199. long    A_API A_TEXT_Get(A_EntH,const char FAR* FAR*,A_PointS FAR*,double FAR*,double FAR*,A_EntH FAR*,long FAR*,A_EntH FAR*,A_COLORREF FAR*);
  200. long    A_API A_TEXT_Change(A_EntH,const char FAR*,A_PointS,double,double,A_EntH,long,A_EntH,A_COLORREF);
  201.  
  202. /* TEXTSTYLE functions */
  203. #define A_TEXTSTYLE_ITALIC    0x1
  204. #define A_TEXTSTYLE_UNDERLINE    0x2
  205. #define A_TEXTSTYLE_STRIKEOUT    0x4
  206.  
  207. long    A_API A_TEXTSTYLE_Make(const char FAR*,double,long,long,const char FAR*,long,A_EntH FAR*);
  208. long    A_API A_TEXTSTYLE_Get(A_EntH,char FAR[A_MAX_NAME + 1],double FAR*,long FAR*,long FAR*,char FAR[A_MAX_NAME + 1],long FAR*,long FAR*);
  209. long    A_API A_TEXTSTYLE_Change(A_EntH,const char FAR*,double,long,long,const char FAR*,long);
  210. long    A_API A_TEXTSTYLE_GetCurrent(A_EntH FAR*);
  211. long    A_API A_TEXTSTYLE_SetCurrent(A_EntH);
  212. long    A_API A_TEXTSTYLE_GetEnt(const char FAR*,A_EntH FAR*);
  213. long    A_API A_TEXTSTYLE_Num(void);
  214. long    A_API A_TEXTSTYLE_GetNth(long,A_EntH FAR*);
  215.  
  216. /* general entity properties */
  217. long    A_API A_E_GetLayer(A_EntH,A_EntH FAR*);
  218. long    A_API A_E_SetLayer(A_EntH,A_EntH);
  219. long    A_API A_E_GetWidth(A_EntH,double FAR*);
  220. long    A_API A_E_SetWidth(A_EntH,double);
  221. long    A_API A_E_GetColor(A_EntH,A_COLORREF FAR*);
  222. long    A_API A_E_SetColor(A_EntH,A_COLORREF);
  223. long    A_API A_E_GetLineType(A_EntH,long FAR*);
  224. long    A_API A_E_SetLineType(A_EntH,long);
  225. long    A_API A_E_Trans(A_ArrayH,A_MatrixS,long,A_ArrayH FAR*);
  226.  
  227. /* GET functions */
  228. #define    A_GET_BAD_SEL    0
  229. #define    A_GET_CANCEL    1
  230. #define    A_GET_OK    2
  231. #define    A_GET_DEFAULT    3
  232. #define    A_GET_DRAG    4 /* only internal */
  233. #define    A_GET_KWORD    5 /* base index for keywords */
  234.  
  235. typedef    long    (CALLBACK A_GetDragF)(void FAR*,A_PointS,A_MatrixS FAR*);
  236.  
  237. long    A_API A_GetEnt(const char FAR*,const char FAR*,const char FAR*,A_EntH FAR*,A_PointS FAR*);
  238. long    A_API A_GetSelection(A_ArrayH FAR*);
  239. long    A_API A_GetString(const char FAR*,const char FAR*,const char FAR* FAR*);
  240. long    A_API A_GetLong(const char FAR*,const char FAR*,const char FAR*,long FAR*);
  241. long    A_API A_GetDouble(const char FAR*,const char FAR*,const char FAR*,double FAR*);
  242. long    A_API A_GetPoint(const char FAR*,const char FAR*,const char FAR*,A_PointS FAR*);
  243. long    A_API A_GetPointDrag(const char FAR*,const char FAR*,const char FAR*,A_ArrayH,const A_PointS FAR*,A_GetDragF FAR*,void FAR*,A_PointS FAR*);
  244. long    A_API A_GetAngle(const char FAR*,const char FAR*,const char FAR*,A_ArrayH,A_PointS,double FAR*,double FAR*);
  245. long    A_API A_GetKWord(const char FAR*,const char FAR*,const char FAR*);
  246. long    A_API A_DrawLine(A_PointS,A_PointS);
  247. long    A_API A_DrawArc(A_PointS,double,double,double);
  248.  
  249. long    A_API A_WriteEnt(const char FAR*,A_EntH);
  250. long    A_API A_ReadEnt(const char FAR*,A_EntH FAR*);
  251. long    A_API A_DelEnt(A_EntH);
  252. long    A_API A_GetAllEnts(A_ArrayH FAR*);
  253.  
  254. enum A_DrawMethodE                         
  255.     {// adisplay.h A_display_methodE
  256.     A_DRAW_NORMAL        = 0,
  257.     A_DRAW_ERASE        = 1,
  258.     A_DRAW_HIGHLIGHT    = 2,
  259.     };
  260. long    A_API A_Draw(A_EntH,A_DrawMethodE);
  261.  
  262. enum    A_DisplayE
  263.     {
  264.     A_DISPLAY_STOP        = 0,
  265.     A_DISPLAY_FLUSH        = 1,
  266.     A_DISPLAY_REDRAW    = 2
  267.     };
  268.  
  269. long    A_API A_Display(A_DisplayE);
  270. long    A_API A_GetWinTrans(long,A_MatrixS FAR*);
  271. long    A_API A_SetWinTrans(long,A_MatrixS);
  272. long    A_API A_GetWinSize(long,A_PointS FAR*);
  273. long    A_API A_GetBoundRect(A_ArrayH,A_MatrixS,long,A_RectS FAR*);
  274. long    A_API A_GetMainWin(HWND FAR*);
  275.  
  276. enum    A_UndoE
  277.     {
  278.     A_UNDO_STEP        = 0,
  279.     A_REDO_STEP        = 1,
  280.     A_UNDO_BEGIN        = 2,
  281.     A_UNDO_END        = 3,
  282.     A_UNDO_REMOVE_ALL    = 4
  283.     };
  284.  
  285. long    A_API A_Undo(A_UndoE);
  286.  
  287. enum    A_EntTypeE
  288.     {
  289.     A_ENT_UNKNOWN    = 0,
  290.     A_ENT_ARC    = 1,
  291.     A_ENT_ATTR    = 2,
  292.     A_ENT_BLOCK    = 3,
  293.     A_ENT_CIRCLE    = 4,
  294.     A_ENT_INSERT    = 5,
  295.     A_ENT_LAYER    = 6,
  296.     A_ENT_LINE    = 7,
  297.     A_ENT_SOLID    = 8,
  298.     A_ENT_TEXT    = 9,
  299.     A_ENT_TEXTSTYLE    = 10,
  300.     A_ENT_HATCH    = 11,
  301.     A_ENT_HATCHSTYLE= 12,
  302.     A_ENT_DIMLIN    = 13,
  303.     A_ENT_DIMANG    = 14,
  304.     A_ENT_DIMRAD    = 15,
  305.     A_ENT_DIMSTYLE    = 16,
  306.     };
  307.  
  308. long    A_API A_GetEntType(A_EntH,A_EntTypeE FAR*);
  309.  
  310. enum    A_V_TypeE 
  311.     {// avars.h A_varsC::TypE
  312.     A_V_STRING    = 1,
  313.     A_V_DOUBLE    = 2,
  314.     A_V_INTEGER    = 3,
  315.     A_V_POINT    = 4,
  316.     };
  317.  
  318. enum    A_V_LocationE
  319.     {// avars.h A_varsC::LocationE
  320.     A_V_INI        = 1,
  321.     A_V_NOUNDO    = 2,
  322.     A_V_UNDO    = 3
  323.     };
  324.  
  325. typedef union
  326.     {
  327.     const char FAR*    pString;
  328.     double        Double;
  329.     long        Integer;
  330.     A_PointS    Point;
  331.     } A_V_ValueU;
  332.  
  333. long    A_API A_V_Registry(const char FAR*,A_V_LocationE,A_V_TypeE,A_V_ValueU);
  334. long    A_API A_V_UnRegistry(const char FAR*);
  335. long    A_API A_V_GetIndex(const char FAR*);
  336. long    A_API A_V_GetName(long,char FAR[A_MAX_NAME + 1]);
  337. long    A_API A_V_Get(const char FAR*,A_V_TypeE FAR*,A_V_ValueU FAR*);
  338. long    A_API A_V_GetByIndex(long,A_V_TypeE FAR*,A_V_ValueU FAR*);
  339. long    A_API A_V_Set(const char FAR*,A_V_TypeE,A_V_ValueU);
  340. long    A_API A_V_SetByIndex(long,A_V_TypeE,A_V_ValueU);
  341.  
  342. /* dynamic arrays */
  343. #define    A_A_EMPTY    0l
  344.  
  345. enum    A_A_TypeE
  346.         {
  347.         A_A_ENTITY    = 0
  348.         };
  349.  
  350. long    A_API A_A_Alloc(A_A_TypeE,A_ArrayH FAR*);
  351. long    A_API A_A_Free(A_ArrayH);
  352. long    A_API A_A_Length(A_ArrayH);
  353. long    A_API A_A_InsEnt(A_ArrayH,long,A_EntH);
  354. long    A_API A_A_Del(A_ArrayH,long);
  355. long    A_API A_A_GetEnt(A_ArrayH,long,A_EntH FAR*);
  356.  
  357. /* X-data functions */
  358. enum    A_X_TypeE
  359.     {// axdata.h A_xdataC::TypeE
  360.     A_X_ARRAY    = 1,
  361.     A_X_STRING    = 2,
  362.     A_X_CHAR    = 3,
  363.     A_X_SHORT    = 4,
  364.     A_X_LONG    = 5,
  365.     A_X_DOUBLE    = 6,
  366.     A_X_POINT    = 7,
  367.     A_X_LENGTH    = 8,
  368.     A_X_ANGLE    = 9,
  369.     A_X_MIRROR    = 10,
  370.     A_X_POSITION    = 11,
  371.     A_X_VECTOR    = 12,
  372.     A_X_DIRECTION    = 13,
  373.     A_X_ENTITY    = 14,
  374.         A_X_VCHUNK    = 15,
  375.         A_X_CCHUNK    = 16
  376.     };
  377.  
  378. typedef struct
  379.     {
  380.     const void FAR*    pChunk;
  381.     long        nLength;
  382.     } A_X_ChunkS;
  383.  
  384. typedef union
  385.     {
  386.     const char FAR*    pString;
  387.     long        Long;/* also Short and Char values - no packing problems */
  388.     double        Double;
  389.     A_PointS    Point;
  390.     A_EntH        Entity;
  391.     A_X_ChunkS    Chunk;
  392.     } A_X_DataU;
  393.  
  394. A_DECL_HANDLE(A_X_StructH);
  395. A_DECL_HANDLE(A_X_DataH);
  396.  
  397. long    A_API A_X_Registry(const char FAR*,A_X_StructH FAR*);
  398. long    A_API A_X_UnRegistry(A_X_StructH);
  399. long    A_API A_X_GetIndex(const char FAR*,A_X_StructH FAR*);
  400. long    A_API A_X_GetDesc(A_X_StructH,const char FAR* FAR*);
  401. long    A_API A_X_GetStruct(A_EntH,long,A_X_StructH FAR*);
  402. long    A_API A_X_DeleteData(A_EntH,A_X_StructH);
  403. long    A_API A_X_CreateData(A_X_StructH,A_EntH,long,A_X_DataH FAR*);
  404. long    A_API A_X_SetIndex(A_X_DataH,long,long,long);
  405. long    A_API A_X_SetData(A_X_DataH,long,A_X_TypeE,A_X_DataU);
  406. long    A_API A_X_GetData(A_X_DataH,long,A_X_TypeE FAR*,A_X_DataU FAR*);
  407. long    A_API A_X_PutData(A_EntH,A_X_DataH);
  408. long    A_API A_X_FreeData(A_X_DataH);
  409.  
  410. /* select from database */
  411. long    A_API A_S_Reset(void);
  412. long    A_API A_S_PutLong(long);
  413. long    A_API A_S_PutArray(A_ArrayH);
  414. long    A_API A_S_PutDouble(double);
  415. long    A_API A_S_PutPoint(A_PointS);
  416. long    A_API A_S_PutString(const char FAR*);
  417. long    A_API A_S_Select(A_ArrayH,const char FAR*,A_ArrayH FAR*);
  418.  
  419. /* application control */
  420. long    A_API A_P_GetDirs(const char FAR* FAR*);
  421. long    A_API A_P_SetDirs(const char FAR*);
  422. long    A_API A_P_Load(const char FAR*);
  423. long    A_API A_P_UnLoad(const char FAR*);
  424. long    A_API A_P_Reset(long);
  425. long    A_API A_P_Next(const char FAR* FAR*);
  426. long    A_API A_P_FindFile(const char FAR*,const char FAR*,char FAR*,long);
  427. long    A_API A_P_SetCaption(const char FAR*);
  428.  
  429. /* geom 2D functions */
  430. double        A_API A_G_SMulVV(A_VectorS,A_VectorS);
  431. double        A_API A_G_VMulVV(A_VectorS,A_VectorS);
  432. A_VectorS    A_API A_G_AddVV(A_VectorS,A_VectorS);
  433. A_VectorS    A_API A_G_SubVV(A_VectorS,A_VectorS);
  434. A_VectorS    A_API A_G_PerpenV(A_VectorS,long);
  435. A_VectorS    A_API A_G_MulVR(A_VectorS,double);
  436. A_VectorS    A_API A_G_NormV(A_VectorS);
  437. double        A_API A_G_LenV(A_VectorS);
  438. double        A_API A_G_DistPP(A_PointS,A_PointS);
  439. A_PointS    A_API A_G_MidP(A_PointS,A_PointS);
  440. long        A_API A_G_IntersLL(A_PointS,A_VectorS,A_PointS,A_VectorS,double FAR*,double FAR*);
  441. long        A_API A_G_Colinear(A_PointS,A_PointS,A_PointS,double);
  442. long        A_API A_G_ParsA(A_PointS,A_PointS,A_PointS,A_PointS,double FAR*,double FAR*,double FAR*,double FAR*,long FAR*);
  443. long        A_API A_G_GetTA(A_PointS,A_PointS,A_PointS,long,A_PointS,double FAR*);
  444. long        A_API A_G_SetTA(A_PointS,A_PointS,A_PointS,long,double,A_PointS FAR*);
  445. long        A_API A_G_IntersLC(A_PointS,A_PointS,A_PointS,double,double FAR*,double FAR*);
  446. long        A_API A_G_IntersCC(A_PointS,double,A_PointS,double,A_PointS*,A_PointS FAR*);
  447. A_PointS    A_API A_G_Polar(double,double);
  448. double        A_API A_G_Angle(A_VectorS);
  449.  
  450. /* matrix 2D functions */
  451. A_MatrixS    A_API A_M_Ident();
  452. A_MatrixS    A_API A_M_Move(A_VectorS);
  453. A_MatrixS    A_API A_M_Scale(double);
  454. A_MatrixS    A_API A_M_Rotate(double);
  455. A_MatrixS    A_API A_M_Mirror(A_VectorS);
  456. long        A_API A_M_Inverse(A_MatrixS,A_MatrixS FAR*);
  457. A_VectorS    A_API A_M_MulMV(A_MatrixS,A_VectorS);
  458. A_PointS    A_API A_M_MulMP(A_MatrixS,A_PointS);
  459. A_MatrixS    A_API A_M_MulMM(A_MatrixS,A_MatrixS);
  460. A_MatrixS    A_API A_M_Compose(double,long,double,A_VectorS);
  461. long        A_API A_M_Decompose(A_MatrixS,double,double FAR*,long FAR*,double FAR*,A_VectorS FAR*);
  462.  
  463. #ifdef    __cplusplus
  464. } /*extern "C"*/
  465. #endif
  466.  
  467. #endif
  468.