home *** CD-ROM | disk | FTP | other *** search
/ PC & Mediji 2000 May / PCM_0005.iso / programi / intelcad / DATA1.CAB / Support / api / sds / sds.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-04  |  41.7 KB  |  993 lines

  1. /*    C:\DEV\LIB\SDS\SDS.H - SDS Api defines and structures.
  2.  *    Copyright (C) 1997-1998 Visio Corporation. All rights reserved.
  3.  *
  4.  *    Abstract
  5.  *  This header file ships with the product. Third party developers
  6.  *  need this with the sds.lib to create external sds applications.
  7.  *
  8.  *    $Revision: 6.4 $ $Date: 1999/07/22 11:22:29 $
  9.  *
  10.  */
  11.  
  12.  
  13. #pragma once
  14. #ifndef _SDS_H
  15. #define _SDS_H
  16.  
  17. // Includes
  18. #ifndef _INC_STDLIB
  19.     #include <stdlib.h>
  20. #endif
  21.  
  22. #if defined(__cplusplus)
  23. #ifndef    EXTERN_C
  24.     #define EXTERN_C    extern "C"
  25. #endif
  26.     extern "C"
  27.     {
  28. #endif
  29.  
  30. #ifndef    EXTERN_C
  31.     #define EXTERN_C
  32. #endif
  33.  
  34. /* The following defines are for compatibility only. */
  35. #define adsart(a)  short code=(a)
  36. #define _(a)       a
  37.  
  38.  
  39. typedef double                sds_real;
  40. typedef sds_real            sds_point[3];
  41. typedef long                sds_name[2];
  42. typedef sds_real            sds_matrix[4][4];
  43. typedef sds_real            *sds_pointp;
  44. typedef long                *sds_namep;
  45. typedef struct _sds_hdlg    *sds_hdlg;
  46. typedef struct _sds_htile    *sds_htile;
  47.  
  48. typedef struct {
  49.     sds_hdlg  dialog;
  50.     sds_htile tile;
  51.     char*     value;
  52.     void*     client_data;
  53.     int       reason;
  54.     long      x, y;
  55. } sds_callback_packet;
  56.  
  57. struct sds_binary {
  58.     short clen;
  59.     char *buf;
  60. };
  61.  
  62. union sds_u_val {
  63.    sds_real rreal;
  64.    sds_real rpoint[3];
  65.    short rint;
  66.    char *rstring;
  67.    long rlname[2];
  68.    long rlong;
  69.    struct sds_binary rbinary;
  70. };
  71.  
  72. struct sds_resbuf {
  73.     struct sds_resbuf *rbnext;
  74.     short restype;
  75.     union sds_u_val resval;
  76. };
  77.  
  78. struct sds_dobjll {
  79.     char         type;
  80.     short        color;
  81.     short        npts;
  82.     sds_real    *chain;
  83.     struct sds_dobjll *next;
  84. };
  85.  
  86. #define SDS_X             0
  87. #define SDS_Y             1
  88. #define SDS_Z             2
  89. #define SDS_T             3
  90.  
  91. #define SDS_TRUE          1
  92. #define SDS_FALSE         0
  93.  
  94. #define SDS_PAUSE         "\\"
  95.  
  96. #define SDS_RSG_NONULL    0x01
  97. #define SDS_RSG_NOZERO    0x02
  98. #define SDS_RSG_NONEG     0x04
  99. #define SDS_RSG_NOLIM     0x08
  100. #define SDS_RSG_GETZ      0x10
  101. #define SDS_RSG_DASH      0x20
  102. #define SDS_RSG_2D        0x40
  103. #define SDS_RSG_OTHER     0x80
  104. #define SDS_RSG_NOPMENU   0x100
  105. #define SDS_RSG_NOCANCEL  0x200
  106. #define SDS_RSG_NOVIEWCHG 0x400
  107. #define SDS_RSG_NODOCCHG  0x800
  108.  
  109. #define SDS_RQSAVE        14
  110. #define SDS_RQEND         15
  111. #define SDS_RQQUIT        16
  112. #define SDS_RQCFG         22
  113. #define SDS_RQXLOAD       100
  114. #define SDS_RQXUNLD       101
  115. #define SDS_RQSUBR        102
  116. #define SDS_RQHUP         105
  117. #define SDS_RQXHELP       118
  118.  
  119. #define SDS_RSRSLT        1
  120. #define SDS_RSERR         3
  121. #define SDS_RTERROR       -5001
  122. #define SDS_RTCAN         -5002
  123. #define SDS_RTREJ         -5003
  124. #define SDS_RTFAIL        -5004
  125. #define SDS_RTKWORD       -5005
  126. #define SDS_RTNONE        5000
  127. #define SDS_RTREAL        5001
  128. #define SDS_RTPOINT       5002
  129. #define SDS_RTSHORT       5003
  130. #define SDS_RTANG         5004
  131. #define SDS_RTSTR         5005
  132. #define SDS_RTENAME       5006
  133. #define SDS_RTPICKS       5007
  134. #define SDS_RTORINT       5008
  135. #define SDS_RT3DPOINT     5009
  136. #define SDS_RTLONG        5010
  137. #define SDS_RTVOID        5014
  138. #define SDS_RTLB          5016
  139. #define SDS_RTLE          5017
  140. #define SDS_RTDOTE        5018
  141. #define SDS_RTNIL         5019
  142. #define SDS_RTDXF0        5020
  143. #define SDS_RTT           5021
  144. #define SDS_RTNORM        5100
  145. #define SDS_RTBINARY      5022
  146.  
  147. #define COND_OP_CODE        -4
  148.  
  149. #define SDS_RTDRAGPT      5500
  150.  
  151. #define SDS_CBR_SELECT       1
  152. #define SDS_CBR_LOST_FOCUS   2
  153. #define SDS_CBR_DRAG         3
  154. #define SDS_CBR_DOUBLE_CLICK 4
  155.  
  156. #define SDS_DLGALLDONE   -1
  157. #define SDS_DLGCANCEL     0
  158. #define SDS_DLGOK         1
  159. #define SDS_DLGSTATUS     2
  160.  
  161. #define SDS_BGLCOLOR      -2
  162. #define SDS_DBGLCOLOR     -15
  163. #define SDS_DFGLCOLOR     -16
  164. #define SDS_LINELCOLOR    -18
  165.  
  166. #define SDS_LIST_CHANGE   1
  167. #define SDS_LIST_APPEND   2
  168. #define SDS_LIST_NEW      3
  169.  
  170.  
  171. //*****************************
  172. // SDS callback flags
  173. //*****************************
  174.  
  175. // Command Start/End.
  176. #define SDS_CBCMDBEGIN        0  // arg1="command name"     cast as (char *)
  177.                                  // Callback return  RTERROR will cause command to not be called.
  178. #define SDS_CBCMDEND          1     // arg1="command name"     cast as (char *)
  179.                                  // Return code does not matter.
  180.  
  181. // Mouse movements and Mouse buttons.
  182. #define SDS_CBMOUSEMOVE       2     // arg1=X pixel  arg2=Y pixel
  183. #define SDS_CBLBUTTONDN       3     // arg1=X pixel  arg2=Y pixel
  184. #define SDS_CBLBUTTONUP       4     // arg1=X pixel  arg2=Y pixel
  185. #define SDS_CBLBUTTONDBLCLK   5     // arg1=X pixel  arg2=Y pixel
  186. #define SDS_CBRBUTTONDN       6     // arg1=X pixel  arg2=Y pixel
  187. #define SDS_CBRBUTTONUP       7     // arg1=X pixel  arg2=Y pixel
  188.                                  // Callback return  RTERROR will cause point to be ignored.
  189.                                  // Cast arg1 and arg2 as (int*)
  190.  
  191. // Transforming a Selection Set.
  192. #define SDS_CBXFORMSS         8     // arg1=Selection set (ok to modify) cast as (sds_name)
  193.                                  // arg2=Transformation Matrix (ok to modify) cast as (sds_matrix)
  194.                                  // Callback return RTERROR will stop the transformation.
  195.  
  196. // Undo/Redo.
  197. #define SDS_CBENTUNDO         9     // arg1=Entname (ok to modify)    cast as (sds_name), arg2 below defines on undo type
  198.                                  // Callback return RTERROR will stop UNDO for this ent.
  199. #define SDS_CBENTREDO        10     // arg1=Entname (ok to modify)     cast as (sds_name), arg2 below defines on undo type
  200.                                  // Callback return RTERROR will stop REDO for this ent.
  201.  
  202. // Undo/Redo constants - Passed back as arg2 parameter so the user can tell what action is being undone.
  203. #define SDS_ADD_NOTICE        1
  204. #define SDS_MODIFY_NOTICE    2
  205. #define SDS_DELETE_NOTICE    3
  206.  
  207. // Palette Change.
  208. #define SDS_CBPALETTECHG     11     // arg1=HPALETTE cast as (HPALETTE)
  209.  
  210. // Open/Close/New/Save on documents.
  211. #define SDS_CBOPENDOC        12     // arg1=file name, cast as (char *)
  212. #define SDS_CBNEWDOC         13     // (all args NULL)
  213. #define SDS_CBCLOSEDOC       14     // arg1=file name, cast as (char *)
  214. #define SDS_CBSAVEDOC        15     // arg1= new file name, cast as (char *)
  215.                                  // arg2= old file name, cast as (char *)
  216.  
  217. // !!! See new callback SDS_CBDOCCHG below for better MDI control
  218. // Doc/View change (when the user activates a new MDI window).
  219. #define SDS_CBVIEWDOCCHG     16     // arg1=file name, cast as (char *)
  220.                                  // arg2=current window HWND, cast as (HWND)
  221.  
  222. // Changes to documents.
  223. #define SDS_CBENTDEL         17     // arg1=Entname to be deleted (or undeleted), cast as (sds_name)
  224.                                  // Callback return RTERROR will stop sds_entdel() for this ent.
  225. #define SDS_CBENTMAKE        18     // arg1=Entname of new entity, cast as (sds_name)
  226. #define SDS_CBENTMOD         19     // arg1=Entname of modified entity, cast as (sds_name)
  227.  
  228. // Grip edits.
  229. #define SDS_CBGRIPEDITBEG    20     // arg1=Entname being edited, cast as (sds_name)
  230.                                  // arg2=Point being edited, cast as (sds_point)
  231.                                  // Callback return RTERROR will stop grip edit.
  232. #define SDS_CBGRIPEDITEND    21     // arg1=Entname of entity that was edited, cast as (sds_name)
  233.                                  // arg2=Point being edited, cast as (sds_point)
  234.  
  235. #define SDS_CBVIEWCHANGE     22     // arg1=type of paint 
  236.                                  // 1=redraw, 2=shade, 3=hide, 4=view change (zoom, vpoint, etc.) 5=regen
  237.                                  // 
  238. // Mouse movements and Mouse buttons returning current UCS cordinates
  239. // Callback return  RTERROR will cause point to be ignored.
  240. #define SDS_CBMOUSEMOVEUCS       23  // arg1=X coord  arg2=Y coord arg3=Z coord
  241. #define SDS_CBLBUTTONDNUCS       24     // arg1=X coord  arg2=Y coord arg3=Z coord
  242. #define SDS_CBLBUTTONUPUCS       25     // arg1=X coord  arg2=Y coord arg3=Z coord
  243. #define SDS_CBLBUTTONDBLCLKUCS   26     // arg1=X coord  arg2=Y coord arg3=Z coord
  244. #define SDS_CBRBUTTONDNUCS       27     // arg1=X coord  arg2=Y coord arg3=Z coord
  245. #define SDS_CBRBUTTONUPUCS       28     // arg1=X coord  arg2=Y coord arg3=Z coord
  246.                                  // Cast arg1 and arg2 and arg3 as (double)
  247.  
  248. // Callbacks associated with painting and dragging
  249. #define SDS_CBBEGINPAINT         29  // no arguments
  250. #define SDS_CBENDPAINT             30  // no arguments
  251. #define SDS_CBENDMOUSEMOVE         31  // arg1=X coord  arg2=Y coord arg3 = is Dragging flag 
  252.                                  // Cast arg1 and arg2 as (int*) cast arg3 as bool
  253.  
  254. // Doc change (when the user activates a new MDI window).
  255. #define SDS_CBDOCCHG            32     // arg1=new file name, cast as (char *)
  256.                                       // arg2=new window, cast as HWND
  257.                                      // arg3=old window, cast as HWND 
  258.  
  259. //*****************************
  260. // end SDS callback flags
  261. //*****************************
  262.  
  263. #define SDS_MODE_ENABLE   0
  264. #define SDS_MODE_DISABLE  1
  265. #define SDS_MODE_SETFOCUS 2
  266. #define SDS_MODE_SETSEL   3
  267. #define SDS_MODE_FLIP     4
  268.  
  269. #define SDS_MAX_TILE_STR   40
  270. #define SDS_TILE_STR_LIMIT 255       
  271.  
  272. #define sds_name_set(nmFrom, nmTo)                (*(nmTo)=*(nmFrom),(nmTo)[1]=(nmFrom)[1])
  273. #define sds_point_set(ptFrom, ptTo)                (*(ptTo)=*(ptFrom),(ptTo)[1]=(ptFrom)[1],(ptTo)[2]=(ptFrom)[2])
  274. #define sds_name_clear(nmAnyName)                 nmAnyName[0]=nmAnyName[1]=0
  275. #define sds_name_nil(nmAnyName)                    (nmAnyName[0]==0 && nmAnyName[1]==0)
  276. #define sds_name_equal(nmNameOne, nmNameTwo)    (nmNameOne[0]==nmNameTwo[0] && nmNameOne[1]==nmNameTwo[1])
  277.  
  278.  
  279. // The following naming convention is being used here for variables in the prototypes:     (Mostly from "Programming Windows, by Charles Petzold)
  280. //
  281. //_Abbrev____Type_______________Example:__________________________________________________________________________________________________________
  282. //
  283. //       sw -- Switch (int)        int swExitMode        Note:  Use for any int that will only be zero or non-zero (not for Booleans, they would be "b")
  284. //       bs -- Bitset (int)        int bsAllowed        Note:  Use for any int variable containing a bitset
  285. //        n -- Int or Short        int nRType                
  286. //        d -- Double                double dAngle
  287. //        l -- Long                long lSetIndex
  288. //       pt -- sds_point            const sds_point ptFrom
  289. //       sz -- Pointer to a null-terminated string    const char *szAlertMsg    
  290. //        p -- Pointer            const void *pFirstPoint   (also, combines with any other, such as: double *pdRadians)
  291. //       rb -- sds_resbuf            const struct sds_resbuf *prbCmdList
  292. //       nm -- sds_name            const sds_name nmNextEnt
  293. //       mx -- sds_matrix            sds_matrix mxECStoWCS
  294. //   size -- size_t                size_t sizeBytesEach
  295. //________________________________________________________________________________________________________________________________________________
  296.  
  297. /* SDS protos for functions. */
  298.  
  299.  
  300. #if defined(_WINDOWS_)
  301.     HDC *sds_getviewhdc(void);
  302.     int sds_getrgbvalue(int nColor);
  303.     HPALETTE sds_getpalette(void);
  304.     HWND sds_getviewhwnd(void); 
  305.     HWND sds_getmainhwnd(void); 
  306. #endif
  307.  
  308. int SDS_main(int nARGC, char *nARGV[]);
  309.  
  310. void               sds_abort(const char *szAbortMsg);
  311. void               sds_abortintellicad(void);    
  312. int                   sds_agetcfg(const char *szSymbol, char  *szVariable);   // Not documented
  313. int                   sds_agetenv(const char *szSymbol, char  *szVariable);   // Not documented
  314. int                   sds_alert(const char *szAlertMsg);
  315. double             sds_angle(const sds_point ptStart, const sds_point ptEnd);
  316. int                sds_angtof(const char *szAngle, int nUnitType, double *pdAngle);
  317. int                   sds_angtof_absolute(const char *szAngle, int nUnitType, double *pdAngle);
  318. int                sds_angtos(double dAngle, int nUnitType, int nPrecision, char *szAngle);
  319. int                sds_angtos_end(double dAngle, int nUnitType, int nPrecision, char *szAngle);
  320. int                sds_angtos_convert(int ignoremode, double dAngle, int nUnitType, int nPrecision, char *szAngle);
  321. int                sds_angtos_dim(int ignoremode, double dAngle, int nUnitType, int nPrecision, char *szAngle);
  322. int                   sds_angtos_absolute(double dAngle, int nUnitType, int nPrecision, char *szAngle);
  323. int                   sds_arxload(const char *szARXProgram);
  324. struct sds_resbuf *sds_arxloaded(void);
  325. int                   sds_arxunload(const char *szARXProgram);
  326. int                sds_asetcfg(const char *szSymbol, const char *szValue);   // Not documented
  327. int                   sds_asetenv(const char *szSymbol, const char *szValue);   // Not documented
  328.  
  329. struct sds_resbuf *sds_buildlist(int nRType, ...);
  330. int                sds_callinmainthread(int (*fnDragEnts)(void *),void *pUserData);
  331. void              *sds_calloc(size_t sizeHowMany, size_t sizeBytesEach);
  332.  
  333. int                sds_cmd(const struct sds_resbuf *prbCmdList);
  334. int                sds_command(int nRType, ...);
  335. int                sds_cvunit(double dOldNum, const char *szOldUnit, const char *szNewUnit, double *pdNewNum);
  336.  
  337. int                sds_defun(const char *szFuncName, int nFuncCode);    
  338. int                   sds_dictadd(const sds_name nmDict, const char *szAddThis, const sds_name nmNonGraph);  // ??
  339. int                   sds_dictdel(const sds_name nmDict, const char *szDelThis);
  340. struct sds_resbuf *sds_dictnext(const sds_name nmDict, int swFirst);
  341. int                   sds_dictrename(const sds_name nmDict, const char *szOldName, const char *szNewName);
  342. struct sds_resbuf *sds_dictsearch(const sds_name nmDict, const char *szFindThis, int swFirst);
  343. double               sds_distance(const sds_point ptFrom, const sds_point ptTo);
  344. struct sds_dobjll *sds_dispobjs(const sds_name nmEntity,int nDispMode);
  345. int                sds_distof(const char *szDistance, int nUnitType, double *pdDistance);
  346. int                sds_draggen(const sds_name nmSelSet, const char *szDragMsg, int nCursor, int (*fnDragEnts)(sds_point ptCursorLoc, sds_matrix mxTransform), sds_point ptDestPoint);    //TODO
  347.  
  348. int                sds_entdel(const sds_name nmEntity);
  349. struct sds_resbuf *sds_entget(const sds_name nmEntity);
  350. struct sds_resbuf *sds_entgetx(const sds_name nmEntity, const struct sds_resbuf *prbAppList);
  351. int                sds_entlast(sds_name nmLastEnt);
  352. int                sds_entmake(const struct sds_resbuf *prbEntList);
  353. int                   sds_entmakex(const struct sds_resbuf *prbEntList, sds_name nmNewEnt);
  354. int                sds_entmod(const struct sds_resbuf *prbEntList);
  355. int                sds_entnext(const sds_name nmKnownEnt, sds_name nmNextEnt);
  356. int                sds_entsel(const char *szSelectMsg, sds_name nmEntity, sds_point ptSelected);
  357. int                sds_entupd(const sds_name nmEntity);
  358. void               sds_exit(int swAbnormalExit);
  359.  
  360. void               sds_fail(const char *szFailMsg);
  361. int                sds_findfile(const char *szLookFor, char *szPathFound);
  362. void               sds_free(void *pMemLoc);    
  363. void               sds_freedispobjs(struct sds_dobjll *pDispObjs);
  364.  
  365. int                sds_getangle(const sds_point ptStart, const char *szAngleMsg, double *pdRadians);
  366. char              *sds_getappname(void);
  367. struct sds_resbuf *sds_getargs(void);
  368. int                   sds_getcfg(const char *szSymbol, char  *szVariable, int nLength);  
  369. int                sds_getcname(const char *szOtherLang, char **pszEnglish);
  370. int                sds_getcorner(const sds_point ptStart, const char *szCornerMsg, sds_point ptOpposite);
  371. int                sds_getdist(const sds_point ptStart, const char *szDistMsg, double *pdDistance);
  372. struct sds_resbuf *sds_getdoclist(void);
  373. int                sds_getfiled(const char *szTitle, const char *szDefaultPath, const char *szExtension, int bsOptions, struct sds_resbuf *prbFileName);
  374. int                sds_getfuncode(void);
  375. int                sds_getinput(char *szEntry);
  376. int                sds_getint(const char *szIntMsg, int *pnInteger);
  377. int                sds_getkword(const char *szKWordMsg, char *szKWord);
  378. int                sds_getorient(const sds_point ptStart, const char *szOrientMsg, double *pdRadians);
  379. int                sds_getpoint(const sds_point ptReference, const char *szPointMsg, sds_point ptPoint);
  380. int                sds_getreal(const char *szRealMsg, double *pdReal);
  381. int                sds_getstring(int swSpaces, const char *szStringMsg, char *szString);
  382. int                sds_getsym(const char *szSymbol, struct sds_resbuf **pprbSymbolInfo);
  383. int                sds_gettbpos(const char *pToolBarName, sds_point ptTbPos);
  384. int                sds_getvar(const char *szSysVar, struct sds_resbuf *prbVarInfo);
  385. int                sds_graphscr(void);
  386. int                sds_grclear(void);
  387. int                   sds_grarc(const sds_point ptCenter, double dRadius, double dStartAngle, double dEndAngle, int nColor, int swHighlight);
  388. int                   sds_grfill(const sds_point *pptPoints, int nNumPoints, int nColor, int swHighlight);
  389. int                sds_grdraw(const sds_point ptFrom, const sds_point ptTo, int nColor, int swHighlight);
  390. int                sds_grread(int bsAllowed, int *pnInputType, struct sds_resbuf *prbInputValue);
  391. int                sds_grtext(int nWhere, const char *szTextMsg, int swHighlight);
  392. int                sds_grvecs(const struct sds_resbuf *prbVectList, sds_matrix mxDispTrans);
  393.  
  394. int                sds_handent(const char *szEntHandle, sds_name nmEntity);
  395. int                sds_help(char *szHelpFile, char *szContextID, int nMapNumber);
  396.  
  397. int                sds_init(int nARGC, char *nARGV[]);
  398. int                sds_initget(int bsAllowed, const char *szKeyWordList);
  399. int                sds_inters(const sds_point ptFrom1, const sds_point ptTo1, const sds_point ptFrom2, const sds_point ptTo2, int swFinite, sds_point ptIntersection);
  400. int                sds_invoke(const struct sds_resbuf *prbArguments,    struct sds_resbuf **pprbReturn);
  401. int                sds_isalnum(int nASCIIValue);
  402. int                sds_isalpha(int nASCIIValue);
  403. int                sds_iscntrl(int nASCIIValue);
  404. int                sds_isdigit(int nASCIIValue);
  405. int                sds_isgraph(int nASCIIValue);
  406. int                sds_islower(int nASCIIValue);
  407. int                sds_isprint(int nASCIIValue);
  408. int                sds_ispunct(int nASCIIValue);
  409. int                sds_isspace(int nASCIIValue);
  410. int                sds_isupper(int nASCIIValue);
  411. int                sds_isxdigit(int nASCIIValue);
  412.  
  413. int                sds_link(int nRSMsg);
  414. struct sds_resbuf *sds_loaded(void);
  415.  
  416. void              *sds_malloc(size_t sizeBytes);                        
  417. int                sds_menucmd(const char *szPartToDisplay);
  418. int                sds_menugroup(char *pMemuGroupName);
  419. int                sds_msize(void *pvBuffer); 
  420.  
  421. int                   sds_namedobjdict(sds_name nmDict);
  422. int                sds_nentsel(const char *szNEntMsg, sds_name nmEntity, sds_point ptEntPoint, sds_point ptECStoWCS[4], struct sds_resbuf **pprbNestBlkList);
  423. int                sds_nentselp(const char *szNEntMsg, sds_name nmEntity, sds_point ptEntPoint, int swUserPick, sds_matrix mxECStoWCS, struct sds_resbuf **pprbNestBlkList);
  424. struct sds_resbuf *sds_newrb(int nTypeOrDXF);
  425.  
  426. int                sds_osnap(const sds_point ptAperCtr, const char *szSnapModes, sds_point ptPoint);
  427.  
  428. void               sds_polar(const sds_point ptPolarCtr, double dAngle, double dDistance, sds_point ptPoint);
  429. int                sds_printf(const char *szPrintThis, ...);
  430. int                sds_progresspercent(int iPercentDone);    
  431. int                   sds_progressstart(void);    
  432. int                sds_progressstop(void);    
  433. int                sds_prompt(const char *szPromptMsg);
  434. int                sds_putsym(const char *szSymbol, struct sds_resbuf *prbSymbolInfo);
  435.  
  436. int                   sds_readaliasfile(char *szAliasFile);
  437. void              *sds_realloc(void *pOldMemLoc, size_t sizeBytes);    // TODO - Should return char*?
  438. int                sds_redraw(const sds_name nmEntity, int nHowToDraw);
  439. int                sds_regapp(const char *szApplication);
  440. int                sds_regappx(const char *szApplication, int swSaveAsR12); // I have no idea is 2nd param is right.
  441. int                sds_regfunc(int (*nFuncName)(void), int nFuncCode);    
  442. int                sds_relrb(struct sds_resbuf *prbReleaseThis);
  443. int                sds_retint(int nReturnInt);
  444. int                sds_retlist(const struct sds_resbuf *prbReturnList);
  445. int                sds_retname(const sds_name nmReturnName, int nReturnType);
  446. int                sds_retnil(void);
  447. int                sds_retpoint(const sds_point ptReturn3D);
  448. int                sds_retreal(double dReturnReal);
  449. int                sds_retstr(const char *szReturnString);
  450. int                sds_rett(void);
  451. int                sds_retval(const struct sds_resbuf *prbReturnValue);
  452. int                sds_retvoid(void);
  453. int                   sds_rp2pix(double dNumberX,double dNumberY,int *pPixelX,int *pPixelY);
  454. int                sds_rtos(double dNumber, int nUnitType, int nPrecision, char *szNumber);
  455.  
  456. int                sds_sendmessage(char *szCommandMsg);
  457. int                sds_setcallbackfunc(int (*cbfnptr)(int flag,void *arg1,void *arg2,void *arg3));
  458. int                sds_setfunhelp(char *szFunctionName, char *szHelpFile, char *szContextID, int nMapNumber);
  459. int                sds_setvar(const char *szSysVar, const struct sds_resbuf *prbVarInfo);
  460. int                sds_setview(const struct sds_resbuf *prbViews, int nWhichVPort); 
  461. int                sds_snvalid(const char *szTableName, int swAllowPipe);
  462. int                sds_ssadd(const sds_name nmEntToAdd, const sds_name nmSelSet, sds_name nmNewSet);
  463. int                sds_ssdel(const sds_name nmEntToDel, const sds_name nmSelSet);
  464. int                sds_ssfree(sds_name nmSetToFree);
  465. int                sds_ssget(const char *szSelMethod, const void *pFirstPoint, const void *pSecondPoint, const struct sds_resbuf *prbFilter, sds_name nmNewSet);    
  466. int                sds_ssgetfirst(struct sds_resbuf **pprbHaveGrips, struct sds_resbuf **pprbAreSelected);
  467. int                sds_sslength(const sds_name nmSelSet, long *plNumberOfEnts);
  468. int                sds_ssmemb(const sds_name nmEntity, const sds_name nmSelSet);
  469. int                sds_ssname(const sds_name nmSelSet, long lSetIndex, sds_name nmEntity);
  470. int                sds_ssnamex(struct sds_resbuf **pprbEntName, const sds_name nmSelSet, const long iIndex);
  471. int                sds_sssetfirst(const sds_name nmGiveGrips, const sds_name nmSelectThese);
  472. int                sds_swapscreen(void);
  473.  
  474. int                sds_tablet (const struct sds_resbuf *prbGetOrSet, struct sds_resbuf **pprbCalibration);
  475. struct sds_resbuf *sds_tblnext(const char *szTable, int swFirst);
  476. int                   sds_tblobjname(const char *szTable, const char *szEntInTable, sds_name nmEntName);
  477. struct sds_resbuf *sds_tblsearch(const char *szTable, const char *szFindThis, int swNextItem);
  478. int                sds_textbox(const struct sds_resbuf *prbTextEnt, sds_point ptCorner, sds_point ptOpposite);    
  479. int                sds_textpage(void);
  480. int                sds_textscr(void);
  481. int                sds_tolower(int nASCIIValue);
  482. int                sds_toupper(int nASCIIValue);
  483. int                sds_trans(const sds_point ptVectOrPtFrom, const struct sds_resbuf *prbCoordFrom, const struct sds_resbuf *prbCoordTo, int swVectOrDisp, sds_point ptVectOrPtTo);
  484.  
  485. int                   sds_ucs2rp(sds_point ptSour3D,sds_point ptDest3D);
  486. int                sds_update(int nWhichVPort,const sds_point ptCorner1,const sds_point ptCorner2);
  487. int                sds_undef(const char *szFuncName, int nFuncCode);
  488. int                sds_usrbrk(void);
  489.  
  490. int                sds_vports(struct sds_resbuf **prbViewSpecs);    
  491.  
  492. int                sds_wcmatch(const char *szCompareThis, const char *szToThis);
  493.  
  494. int                sds_xdroom(const sds_name nmEntity, long *plMemAvail);
  495. int                sds_xdsize(const struct sds_resbuf *prbEntData, long *plMemUsed);
  496. int                sds_xformss(const sds_name nmSetName, sds_matrix mxTransform);
  497. int                sds_xload(const char *szApplication);
  498. int                sds_xstrcase(char *szString);   // Not documented
  499. char              *sds_xstrsave(char *szSource, char **pszDest);   // Not documented
  500. int                sds_xunload(const char *szApplication); 
  501.  
  502.  
  503. //    These are used as arguments to sds_help.
  504. //    They match the Windows WinHelp definitons in WINUSER.H and are provided for convenience only.
  505. #define HELP_CONTENTS     0x0003L  /* display first topic */
  506. #define HELP_HELPONHELP   0x0004L  /* Display help on using help */
  507. #define HELP_PARTIALKEY   0x0105L  /* Display Search dialog */
  508.  
  509.  
  510. #if !defined(SDS_DONTUSEOURADS)
  511.  
  512.     #define SDS_USEOURDCL 1
  513.     
  514.     #define main           SDS_main
  515.     #define ads_main       SDS_main
  516.     #define acrxEntryPoint SDS_main
  517.  
  518.     #define  OL_GOOD         0
  519.     #define  OL_ESNVALID     1
  520.     #define  OL_ENAMEVALID   2
  521.     #define  OL_ESSMAX       3
  522.     #define  OL_ESSVALID     4
  523.     #define  OL_EBDEVALID    5
  524.     #define  OL_EXDEVALID    6
  525.     #define  OL_ENTSELPICK   7
  526.     #define  OL_EEOEF        8
  527.     #define  OL_EEOBD        9
  528.     #define  OL_EEMPDB      10
  529.     #define  OL_EDELVPORT   11
  530.     #define  OL_EACQPLINE   12
  531.     #define  OL_EHANDLE     13
  532.     #define  OL_ENOHAND     14
  533.     #define  OL_ETRANS      15
  534.     #define  OL_EXSPACE     16
  535.     #define  OL_EDELENT     17
  536.     #define  OL_ETBLNAME    18
  537.     #define  OL_ETBLARG     19
  538.     #define  OL_ERDONLY     20
  539.     #define  OL_ENONZERO    21
  540.     #define  OL_ERANGE      22
  541.     #define  OL_ERGBUSY     23
  542.     #define  OL_EMMTYPE     24
  543.     #define  OL_EMMLAY      25
  544.     #define  OL_EMMLT       26
  545.     #define  OL_EMMCOLOR    27
  546.     #define  OL_EMMSTYLE    28
  547.     #define  OL_EMMSHAPE    29
  548.     #define  OL_EMMFTYPE    30
  549.     #define  OL_EMODDEL     31
  550.     #define  OL_EMODSEQ     32
  551.     #define  OL_EMODHAND    33
  552.     #define  OL_EMODVPVIS   34
  553.     #define  OL_EMMLL       35
  554.     #define  OL_EMKTYPE     36
  555.     #define  OL_EMKPLINE    37
  556.     #define  OL_EMKCMPLX    38
  557.     #define  OL_EMKBNAME    39
  558.     #define  OL_EMKBFLAG    40
  559.     #define  OL_EMKDBNAME   41
  560.     #define  OL_EMKNORM     42
  561.     #define  OL_EMKNOBNM    43
  562.     #define  OL_EMKNOBFLG   44
  563.     #define  OL_EMKANON     45
  564.     #define  OL_EMKBLOCK    46
  565.     #define  OL_EMKMANDF    47
  566.     #define  OL_EMMXDTYPE   48
  567.     #define  OL_EMMXDNEST   49
  568.     #define  OL_EMMXDAPPID  50
  569.     #define  OL_EMMXDSIZE   51
  570.     #define  OL_ENTSELNULL  52
  571.     #define  OL_EMXDAPPID   53
  572.     #define  OL_EMMVPORT    54
  573.     #define  OL_INVEXT      55
  574.     #define  OL_EFLTR1      56
  575.     #define  OL_EFLTR2      57
  576.     #define  OL_EFLTR3      58
  577.     #define  OL_EFLTR4      59
  578.     #define  OL_EFLTR5      60
  579.     #define  OL_EFLTR6      61
  580.     #define  OL_EFLTR7      62
  581.     #define  OL_EFLTR8      63
  582.     #define  OL_EFLTR9      64
  583.     #define  OL_EFLTR10     65
  584.     #define  OL_EFLTR11     66
  585.     #define  OL_EFLTR12     67
  586.     #define  OL_TABNOT      68
  587.     #define  OL_TABNOCAL    69
  588.     #define  OL_TABERR      70
  589.     #define  OL_ENEWRB      71
  590.     #define  OL_ENULLPTR    72
  591.     #define  OL_EOPEN       73
  592.     #define  OL_ELOADED     74
  593.     #define  OL_EMAXAPP     75
  594.     #define  OL_EEXEC       76
  595.     #define  OL_EVERSION    77
  596.     #define  OL_EDENIED     78
  597.     #define  OL_EREFUSE     79
  598.     #define  OL_ENOTLOADED  80
  599.     #define  OL_ENOMEM      81
  600.     #define  OL_EXFMVALID   82
  601.     #define  OL_ESYMNAM     83
  602.     #define  OL_ESYMVAL     84
  603.     #define  OL_NONDIALOG   85
  604.  
  605.     /* Our additions (ACAD uses 0-100 currently): */
  606.  
  607.     #define  OL_EROPEN     501  /* Bad pathname or can't find/open. */
  608.     #define  OL_EWOPEN     502  /* Can't create DWG file. */
  609.     #define  OL_ESEEKREAD  503  /* fseek or fread error. */
  610.     #define  OL_EDWGVER    504  /* Not a DWG, or not a version we handle. */
  611.     #define  OL_EWALKING   505  /* Error walking the entities. */
  612.     #define  OL_ERDWGENT   506  /* Error reading a DWG entity. */
  613.     #define  OL_EBIGENT    507  /* Skipped ent that was too big for buffer. */
  614.     #define  OL_EDWGWRITE  508  /* fwrite error. */
  615.     #define  OL_ERNOTDWG   509  /* Appears not to be an AutoCAD drawing. */
  616.       /* These two are for entmakes where ACAD prints a message instead */
  617.       /* of setting ERRNO: */
  618.     #define  OL_EMKNESTBLK 510  /* "Cannot nest block definitions." */
  619.     #define  OL_EMKINVCOMP 511  /* "Invalid complex object." */
  620.  
  621.  
  622.     #define ads_pointp sds_pointp
  623.     #define ads_namep sds_namep
  624.  
  625.     #define ads_real sds_real
  626.     #define ads_point sds_point
  627.     #define ads_name sds_name
  628.     #define ads_matrix sds_matrix
  629.     #define ads_binary sds_binary
  630.     #define ads_u_val  sds_u_val
  631.     #define resbuf sds_resbuf
  632.  
  633.     #undef X
  634.     #undef Y
  635.     #undef Z
  636.     #undef T
  637.  
  638.     #define X SDS_X
  639.     #define Y SDS_Y
  640.     #define Z SDS_Z
  641.     #define T SDS_T
  642.  
  643.     #undef TRUE
  644.     #undef FALSE
  645.     
  646.     #define TRUE      SDS_TRUE          
  647.     #define FALSE     SDS_FALSE
  648.     
  649.     #define EOS       '\0'
  650.  
  651.     #if !defined(SDS_NOSETRCODES)
  652.  
  653.         #define RQSAVE    SDS_RQSAVE
  654.         #define RQEND     SDS_RQEND
  655.         #define RQQUIT    SDS_RQQUIT
  656.         #define RQCFG     SDS_RQCFG
  657.         #define RQXLOAD   SDS_RQXLOAD
  658.         #define RQXUNLD   SDS_RQXUNLD
  659.         #define RQHUP     SDS_RQHUP
  660.         #define RQXHELP   SDS_RQXHELP
  661.         #define RQSUBR    SDS_RQSUBR
  662.         #define RSRSLT    SDS_RSRSLT
  663.         #define RSERR     SDS_RSERR
  664.  
  665.          #define RTREJ     SDS_RTREJ
  666.         #define RTFAIL    SDS_RTFAIL
  667.  
  668.         #define PAUSE      SDS_PAUSE
  669.  
  670.         #define RSG_NONULL SDS_RSG_NONULL
  671.         #define RSG_NOZERO SDS_RSG_NOZERO
  672.         #define RSG_NONEG  SDS_RSG_NONEG
  673.         #define RSG_NOLIM  SDS_RSG_NOLIM
  674.         #define RSG_GETZ   SDS_RSG_GETZ
  675.         #define RSG_DASH   SDS_RSG_DASH
  676.         #define RSG_2D     SDS_RSG_2D
  677.         #define RSG_OTHER  SDS_RSG_OTHER
  678.  
  679.         #define RTNONE    SDS_RTNONE
  680.         #define RTREAL    SDS_RTREAL
  681.         #define RTPOINT   SDS_RTPOINT
  682.         #define RTSHORT   SDS_RTSHORT
  683.         #define RTANG     SDS_RTANG
  684.         #define RTSTR     SDS_RTSTR
  685.         #define RTENAME   SDS_RTENAME
  686.         #define RTPICKS   SDS_RTPICKS
  687.         #define RTORINT   SDS_RTORINT
  688.         #define RT3DPOINT SDS_RT3DPOINT
  689.         #define RTLONG    SDS_RTLONG
  690.         #define RTVOID    SDS_RTVOID
  691.         #define RTLB      SDS_RTLB
  692.         #define RTLE      SDS_RTLE
  693.         #define RTDOTE    SDS_RTDOTE
  694.         #define RTNIL     SDS_RTNIL
  695.         #define RTDXF0    SDS_RTDXF0
  696.         #define RTT       SDS_RTT
  697.         #define RTNORM    SDS_RTNORM
  698.         #define RTERROR   SDS_RTERROR
  699.         #define RTCAN     SDS_RTCAN
  700.         #define RTKWORD   SDS_RTKWORD
  701.         #define RTBINARY  SDS_RTBINARY 
  702.  
  703.     #endif /* !defined(SDS_NOSETRCODES) */
  704.  
  705.     #define ads_name_set      sds_name_set
  706.     #define ads_point_set     sds_point_set
  707.     #define ads_name_clear    sds_name_clear
  708.     #define ads_name_nil      sds_name_nil
  709.     #define ads_name_equal    sds_name_equal
  710.     #define ads_init          sds_init
  711.     #define ads_fail          sds_fail
  712.     #define ads_abort         sds_abort
  713.     #define ads_exit          sds_exit
  714.     #define ads_regfunc       sds_regfunc
  715.     #define ads_link          sds_link
  716.     #define ads_newrb         sds_newrb
  717.     #define ads_relrb         sds_relrb
  718.     #define ads_usrbrk        sds_usrbrk
  719.     #define ads_defun         sds_defun
  720.     #define ads_undef         sds_undef
  721.     #define ads_getfuncode    sds_getfuncode
  722.     #define ads_getargs       sds_getargs
  723.     #define ads_retlist       sds_retlist
  724.     #define ads_retval        sds_retval
  725.     #define ads_retpoint      sds_retpoint
  726.     #define ads_retstr        sds_retstr
  727.     #define ads_retname       sds_retname
  728.     #define ads_retint        sds_retint
  729.     #define ads_retreal       sds_retreal
  730.     #define ads_rett          sds_rett
  731.     #define ads_retnil        sds_retnil
  732.     #define ads_retvoid       sds_retvoid
  733.     #define ads_malloc          sds_malloc       
  734.     #define ads_free          sds_free         
  735.     #define ads_realloc          sds_realloc      
  736.     #define ads_calloc          sds_calloc       
  737.     #define ads_entdel        sds_entdel
  738.     #define ads_entgetx       sds_entgetx
  739.     #define ads_entget        sds_entget
  740.     #define ads_entlast       sds_entlast
  741.     #define ads_entnext       sds_entnext
  742.     #define ads_entupd        sds_entupd
  743.     #define ads_entmod        sds_entmod
  744.     #define ads_entmake       sds_entmake
  745.     #define ads_entmakex      sds_entmakex
  746.     #define ads_entsel        sds_entsel
  747.     #define ads_nentsel       sds_nentsel
  748.     #define ads_nentselp      sds_nentselp
  749.     #define ads_ssget         sds_ssget
  750.     #define ads_ssfree        sds_ssfree
  751.     #define ads_sslength      sds_sslength
  752.     #define ads_ssadd         sds_ssadd
  753.     #define ads_ssdel         sds_ssdel
  754.     #define ads_ssmemb        sds_ssmemb
  755.     #define ads_ssname        sds_ssname
  756.     #define ads_xdroom        sds_xdroom
  757.     #define ads_xdsize        sds_xdsize
  758.     #define ads_tblnext       sds_tblnext
  759.     #define ads_tblsearch     sds_tblsearch
  760.     #define ads_handent       sds_handent
  761.     #define ads_trans         sds_trans
  762.     #define ads_angtos        sds_angtos
  763.     #define ads_cvunit        sds_cvunit
  764.     #define ads_wcmatch       sds_wcmatch
  765.     #define ads_rtos          sds_rtos
  766.     #define ads_angtof        sds_angtof
  767.     #define ads_distof        sds_distof
  768.     #define ads_setvar        sds_setvar
  769.     #define ads_initget       sds_initget
  770.     #define ads_getsym        sds_getsym
  771.     #define ads_putsym        sds_putsym
  772.     #define ads_loaded        sds_loaded
  773.     #define ads_xload         sds_xload
  774.     #define ads_xunload       sds_xunload
  775.     #define ads_arxloaded     sds_arxloaded
  776.     #define ads_arxxload      sds_arxxload
  777.     #define ads_arxxunload    sds_arxxunload
  778.     #define ads_command       sds_command
  779.     #define ads_buildlist     sds_buildlist
  780.     #define ads_printf        sds_printf
  781.     #define ads_cmd           sds_cmd
  782.     #define ads_invoke        sds_invoke
  783.     #define ads_inters        sds_inters
  784.     #define ads_getvar        sds_getvar
  785.     #define ads_findfile      sds_findfile
  786.     #define ads_getstring     sds_getstring
  787.     #define ads_menucmd       sds_menucmd
  788.     #define ads_prompt        sds_prompt
  789.     #define ads_alert         sds_alert
  790.     #define ads_regapp        sds_regapp
  791.     #define ads_getappname    sds_getappname
  792.     #define ads_getangle      sds_getangle
  793.     #define ads_getcorner     sds_getcorner
  794.     #define ads_getdist       sds_getdist
  795.     #define ads_getorient     sds_getorient
  796.     #define ads_getpoint      sds_getpoint
  797.     #define ads_getint        sds_getint
  798.     #define ads_getkword      sds_getkword
  799.     #define ads_getreal       sds_getreal
  800.     #define ads_getinput      sds_getinput
  801.     #define ads_vports        sds_vports
  802.     #define ads_textscr       sds_textscr
  803.     #define ads_graphscr      sds_graphscr
  804.     #define ads_textpage      sds_textpage
  805.     #define ads_grclear       sds_grclear
  806.     #define ads_redraw        sds_redraw
  807.     #define ads_osnap         sds_osnap
  808.     #define ads_grread        sds_grread
  809.     #define ads_grtext        sds_grtext
  810.     #define ads_grdraw        sds_grdraw
  811.     #define ads_grvecs        sds_grvecs
  812.     #define ads_xformss       sds_xformss
  813.     #define ads_draggen       sds_draggen
  814.     #define ads_angle         sds_angle
  815.     #define ads_distance      sds_distance
  816.     #define ads_polar         sds_polar
  817.     #define ads_getfiled      sds_getfiled
  818.     #define ads_textbox       sds_textbox
  819.     #define ads_tablet        sds_tablet
  820.     #define ads_isalpha       sds_isalpha
  821.     #define ads_isupper       sds_isupper
  822.     #define ads_islower       sds_islower
  823.     #define ads_isdigit       sds_isdigit
  824.     #define ads_isxdigit      sds_isxdigit
  825.     #define ads_isspace       sds_isspace
  826.     #define ads_ispunct       sds_ispunct
  827.     #define ads_isalnum       sds_isalnum
  828.     #define ads_isprint       sds_isprint
  829.     #define ads_isgraph       sds_isgraph
  830.     #define ads_iscntrl       sds_iscntrl
  831.     #define ads_toupper       sds_toupper
  832.     #define ads_tolower       sds_tolower
  833.     #define ads_agetenv          sds_agetenv     
  834.     #define ads_asetenv          sds_asetenv     
  835.     #define ads_agetcfg          sds_agetcfg     
  836.     #define ads_asetcfg          sds_asetcfg     
  837.     #define ads_namedobjdict  sds_namedobjdict
  838.     #define ads_dictsearch      sds_dictsearch  
  839.     #define ads_dictnext      sds_dictnext    
  840.     #define ads_tblobjname      sds_tblobjname  
  841.     #define ads_getcname      sds_getcname    
  842.     #define ads_help          sds_help        
  843.     #define ads_regappx          sds_regappx     
  844.     #define ads_setfunhelp      sds_setfunhelp  
  845.     #define ads_setview          sds_setview     
  846.     #define ads_snvalid          sds_snvalid     
  847.     #define ads_ssgetfirst      sds_ssgetfirst  
  848.     #define ads_sssetfirst      sds_sssetfirst  
  849.     #define ads_ssnamex          sds_ssnamex     
  850.     #define ads__msize          sds__msize      
  851.     #define ads_xstrsave      sds_xstrsave    
  852.     #define ads_strdup          sds_xstrsave    
  853.     #define ads_xstrcase      sds_xstrcase    
  854.     #define adsw_acadMainWnd  sds_getmainhwnd    
  855.     #define ads_update        sds_update    
  856.      
  857.     #define SDS_DLLEXPORT __declspec(dllexport)
  858.  
  859.     #ifdef _WINDOWS_ 
  860.     #define    ENTRYARG    HWND
  861.     #else
  862.     #define    ENTRYARG
  863.     #endif
  864.     void SDS_DLLEXPORT SDS_EntryPoint( ENTRYARG);
  865.  
  866. #endif  /* SDS_DONTUSEOURADS */
  867.  
  868. // The following naming convention is being used here for variables in the prototypes:     (Mostly from "Programming Windows, by Charles Petzold)
  869. //
  870. //_Abbrev____Type_______________Example:__________________________________________________________________________________________________________
  871. //
  872. //        n -- Int or Short        int nRType                
  873. //        d -- Double                double dAngle
  874. //        l -- Long                long lSetIndex
  875. //        h -- Handle                sds_hdlg hDialog
  876. //        p -- Pointer            const void *pFirstPoint   (also, combines with any other, such as: double *pdRadians)
  877. //________________________________________________________________________________________________________________________________________________
  878.  
  879. /* Below is all of our DCL stuff. */
  880. int dlg_new_dialog(char *szDialogName,int nDialogFileID,void *pfnDef_Callback,sds_hdlg *hDialog);
  881. int dlg_load_dialog(char *szFileToLoad,int *nDialogFileID);
  882. int dlg_unload_dialog(int nDialogFileID);
  883. int dlg_start_dialog(sds_hdlg hDialog, int *nMessage);
  884. int dlg_done_dialog(sds_hdlg hDialog,long nMessage);
  885. int dlg_new_positioned_dialog(char *szDialogName, int nDialogFileID, void *pfnDef_Callback, int nXPos, int nYPos, sds_hdlg *hDialog);
  886. int dlg_done_positioned_dialog(sds_hdlg hDialog, int nMessage, int *nXPos, int *nYPos);
  887. int dlg_term_dialog(void);
  888.  
  889. int dlg_start_list(sds_hdlg hDialog,char *szControlKey, int nChangeAddNew,int nWhichItem);
  890. int dlg_add_list(char *szAddToList);
  891. int dlg_get_list_string(sds_hdlg hDialog, char *szControlKey, char *szListString, int nStringLength, int nWhichItem);
  892. int dlg_end_list(void);
  893.  
  894. int dlg_get_attr(sds_hdlg hDialog, char *szControlKey, char *szAttribName, char *szAttribInfo, int lInfoMaxLength);
  895. int dlg_get_attr_string(sds_htile hControl,char *szAttribName, char *szAttribInfo, long lInfoMaxLength);
  896.  
  897. int dlg_get_tile(sds_hdlg hDialog,char *szControlKey,char *szControlInfo,long lInfoMaxLength);
  898. int dlg_action_tile(sds_hdlg hDialog,char *szControlKey,void *pfnControlFunc);
  899. int dlg_client_data_tile(sds_hdlg hDialog, char *szControlKey, void *pApplicationData);
  900. int dlg_dimensions_tile(sds_hdlg hDialog, char *szControlKey, short *nWidthLess1, short *nHeightLess1);
  901. int dlg_mode_tile(sds_hdlg hDialog, char *szControlKey, int nTileState);
  902. int dlg_set_tile(sds_hdlg hDialog, char *szControlKey, char *szControlInfo);
  903.  
  904. int dlg_start_image(sds_hdlg hDialog, char *szControlKey);
  905. int dlg_fill_image(int nULCornerX, int nULCornerY, int nWidthLess1, int nHeightLess1, int nColor);
  906. int dlg_slide_image(int nULCornerX, int nULCornerY, int nWidthLess1, int nHeightLess1, char *szSnapshotName);
  907. int dlg_vector_image(int nXVectStart, int nYVectStart, int nXVectEnd, int nYVectEnd, int nColor);
  908. int dlg_end_image(void);
  909.  
  910.  
  911. #if defined(SDS_USEOURDCL)
  912.  
  913.     #undef  CALLB
  914.     #define CALLB  
  915.  
  916.     #define ads_hdlg sds_hdlg
  917.     #define ads_htile sds_htile
  918.     #define ads_callback_packet sds_callback_packet
  919.  
  920.     #ifdef __cplusplus
  921.         typedef void (*CLIENTFUNC) (sds_callback_packet *cpkt);
  922.     #else
  923.         #define CLIENTFUNC void *
  924.     #endif
  925.  
  926.     #define SDS_NULLCB ((CLIENTFUNC)0)
  927.  
  928.     #define NULLCB           SDS_NULLCB
  929.  
  930.     #define CBR_SELECT       SDS_CBR_SELECT
  931.     #define CBR_LOST_FOCUS   SDS_CBR_LOST_FOCUS
  932.     #define CBR_DRAG         SDS_CBR_DRAG
  933.     #define CBR_DOUBLE_CLICK SDS_CBR_DOUBLE_CLICK
  934.  
  935.     #define DLGCANCEL     SDS_DLGCANCEL
  936.     #define DLGOK         SDS_DLGOK
  937.     #define DLGALLDONE    SDS_DLGALLDONE
  938.  
  939.     #define DLGSTATUS     SDS_DLGSTATUS
  940.  
  941.     #define BGLCOLOR      SDS_BGLCOLOR   
  942.     #define DBGLCOLOR     SDS_DBGLCOLOR   
  943.     #define DFGLCOLOR     SDS_DFGLCOLOR   
  944.     #define LINELCOLOR     SDS_LINELCOLOR   
  945.  
  946.     #define LIST_CHANGE   SDS_LIST_CHANGE
  947.     #define LIST_APPEND   SDS_LIST_APPEND
  948.     #define LIST_NEW      SDS_LIST_NEW
  949.  
  950.     #define MODE_ENABLE   SDS_MODE_ENABLE
  951.     #define MODE_DISABLE  SDS_MODE_DISABLE
  952.     #define MODE_SETFOCUS SDS_MODE_SETFOCUS
  953.     #define MODE_SETSEL   SDS_MODE_SETSEL
  954.     #define MODE_FLIP     SDS_MODE_FLIP
  955.  
  956.     #define MAX_TILE_STR   SDS_MAX_TILE_STR 
  957.     #define TILE_STR_LIMIT SDS_TILE_STR_LIMIT       
  958.  
  959.  
  960.     #define ads_load_dialog            dlg_load_dialog
  961.     #define ads_unload_dialog          dlg_unload_dialog
  962.     #define ads_new_dialog             dlg_new_dialog
  963.     #define ads_new_positioned_dialog  dlg_new_positioned_dialog
  964.     #define ads_start_dialog           dlg_start_dialog
  965.     #define ads_term_dialog            dlg_term_dialog
  966.     #define ads_action_tile            dlg_action_tile
  967.     #define ads_done_dialog            dlg_done_dialog
  968.     #define ads_done_positioned_dialog dlg_done_positioned_dialog
  969.     #define ads_set_tile               dlg_set_tile
  970.     #define ads_client_data_tile       dlg_client_data_tile
  971.     #define ads_get_tile               dlg_get_tile
  972.     #define ads_get_attr               dlg_get_attr
  973.     #define ads_get_attr_string        dlg_get_attr_string
  974.     #define ads_start_list             dlg_start_list
  975.     #define ads_add_list               dlg_add_list
  976.     #define ads_end_list               dlg_end_list
  977.     #define ads_mode_tile              dlg_mode_tile
  978.     #define ads_dimensions_tile        dlg_dimensions_tile
  979.     #define ads_start_image            dlg_start_image
  980.     #define ads_vector_image           dlg_vector_image
  981.     #define ads_fill_image             dlg_fill_image
  982.     #define ads_slide_image            dlg_slide_image
  983.     #define ads_end_image              dlg_end_image
  984.     #define ads_get_list_string        dlg_get_list_string
  985.  
  986. #endif /* SDS_USEOURDCL */
  987.  
  988. #if defined(__cplusplus)
  989.     }
  990. #endif
  991.  
  992. #endif // _SDS_H
  993.