home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / drgmon.zip / drgdrop.h < prev    next >
C/C++ Source or Header  |  1993-12-05  |  20KB  |  496 lines

  1. /*********************************************************************
  2.  *                                                                   *
  3.  * MODULE NAME :  drgdrop.h              AUTHOR:  Rick Fishman       *
  4.  * DATE WRITTEN:  07-20-93                                           *
  5.  *                                                                   *
  6.  * DESCRIPTION:                                                      *
  7.  *                                                                   *
  8.  *  Common definitions and function prototypes for DRGDROP.EXE       *
  9.  *                                                                   *
  10.  * HISTORY:                                                          *
  11.  *                                                                   *
  12.  *  07-20-93 - Coding started.                                       *
  13.  *  12-05-93 - Fix default of DLGINFO.szType.                        *
  14.  *                                                                   *
  15.  *  Rick Fishman                                                     *
  16.  *  Code Blazers, Inc.                                               *
  17.  *  4113 Apricot                                                     *
  18.  *  Irvine, CA. 92720                                                *
  19.  *  CIS ID: 72251,750                                                *
  20.  *                                                                   *
  21.  *********************************************************************/
  22.  
  23. /*********************************************************************/
  24. /*------------------- APPLICATION DEFINITIONS -----------------------*/
  25. /*********************************************************************/
  26.  
  27. #define DEBUG_FILENAME        "drgdrop.dbg"
  28.  
  29. #define DRGDROP_ICON_FILENAME "drgdrop.ico"
  30.  
  31. #define INI_FILE_NAME         "drgdrop.ini"
  32. #define INI_APPLICATION_NAME  "InitData"
  33. #define DLGINFO_DEFAULTS      "DlgInfoDefaults"
  34.  
  35. #define TITLE_FOR_DRAGCNR_FRAME     "Container 1"
  36. #define TITLE_FOR_DROPCNR_FRAME     "Container 2"
  37.  
  38. #define CONTAINER_FONT        "8.Helv"
  39. #define DEBUG_WINDOW_FONT     "8.Helv"
  40.  
  41. #define BASE_TEMPFILE_NAME    "TEMP"
  42.  
  43. #define NBPID_FIRST           1     // Our own ids of our notebook pages
  44. #define NBPID_DRAGINFO        1
  45. #define NBPID_MISC            2
  46. #define NBPID_RMF             3
  47. #define NBPID_REPLY           4
  48.  
  49. #ifndef CRA_SOURCE            // As of 09/03/93, CRA_SOURCE not in toolkit hdrs
  50. #  define CRA_SOURCE          0x00004000L
  51. #endif
  52.  
  53. #define UM_SET_FOCUS          WM_USER
  54. #define UM_DUMP_DLGINFO       WM_USER + 1
  55. #define UM_GET_FOCUS_ID       WM_USER + 2
  56.  
  57. /*********************************************************************/
  58. /*----------------------- WINDOW DEFINITIONS ------------------------*/
  59. /*********************************************************************/
  60.  
  61. #define ID_DEBUGWIN_RESOURCES  9
  62.  
  63. #define ID_RESOURCES           10
  64.  
  65. #define ID_DRAGCNR             11
  66. #define ID_DROPCNR             12
  67.  
  68. #define ID_NBFRAME             13
  69.  
  70. #define IDD_MISC               14
  71. #define IDD_DRAGINFO           15
  72. #define IDD_RMF                16
  73. #define IDD_REPLY              17
  74.  
  75. #define ID_CONTEXT_MENU        20
  76.  
  77. #define IDM_DEBUGWIN_SAVE      30
  78. #define IDM_DEBUGWIN_PRINT     31
  79. #define IDM_DEBUGWIN_CLEAR     32
  80.  
  81. #define IDM_DRAGINFO_SETTINGS  40
  82. #define IDM_RMF_SETTINGS       41
  83. #define IDM_REPLY_SETTINGS     42
  84. #define IDM_MISC_SETTINGS      43
  85. #define IDM_SURFACE_LISTBOX    44
  86. #define IDM_EXIT               45
  87.  
  88. #define TYPE_LEN               100
  89. #define ADDL_MECHANISM_LEN     100
  90. #define ADDL_FORMAT_LEN        100
  91. #define GENERATED_RMF_LEN      300
  92. #define MANUAL_RMF_LEN         300
  93.  
  94. #define LB_MECHANISM           1000
  95. #define LB_FORMAT              1001
  96. #define EF_ADDL_MECHANISM      1002
  97. #define EF_ADDL_FORMAT         1003
  98. #define PB_GENERATE            1004
  99. #define MLE_GENERATED_RMF      1005
  100. #define CHK_MANUAL_RMF         1006
  101. #define MLE_MANUAL_RMF         1007
  102. #define RB_ALL_ITEMS           2000
  103. #define RB_FIRST_ITEM_ONLY     2001
  104. #define GB_DRAGOVER            2002
  105. #define RB_ALL_DROPS           2003
  106. #define RB_ONLY_OS2FILE        2004
  107. #define RB_ONLY_MSGNAMES       2005
  108. #define RB_EXPAND_STRUCTURES   2006
  109. #define CHK_SCROLL_TO_BOTTOM   2007
  110. #define CHK_OVERRIDE_DRAGOVER  3000
  111. #define ST_DROP_ACTION         3001
  112. #define CB_DROP_ACTION         3002
  113. #define ST_DEFAULT_OP          3003
  114. #define CB_DEFAULT_OP          3004
  115. #define CB_PRINTER_REPLY       3005
  116. #define CB_SHREDDER_REPLY      3006
  117. #define CB_OPERATION           4000
  118. #define CHK_OVERRIDE_HSTRS     4001
  119. #define CHK_OVERRIDE_ID        4002
  120. #define ST_ITEMID              4003
  121. #define EF_ITEMID              4004
  122. #define CB_TYPE                4005
  123. #define LB_CONTROL             4006
  124. #define LB_SUPPORTEDOPS        4007
  125. #define ST_CNR_NAME            4008
  126. #define EF_CNR_NAME            4009
  127. #define ST_SOURCE_NAME         4010
  128. #define EF_SOURCE_NAME         4011
  129. #define ST_TARGET_NAME         4012
  130. #define EF_TARGET_NAME         4013
  131. #define PB_DEFAULT             9000
  132. #define PB_UNDO                9001
  133.  
  134. /*********************************************************************/
  135. /*-------------------------- HELPER MACROS --------------------------*/
  136. /*********************************************************************/
  137.  
  138. #define INSTDATA(hwnd) ((PINSTANCE)WinQueryWindowPtr( hwnd, QWL_USER ))
  139. #define ANCHOR(hwnd)   (WinQueryAnchorBlock( hwnd ))
  140. #define HWNDERR(hwnd)  (ERRORIDERROR(WinGetLastError( ANCHOR( hwnd ))))
  141. #define HABERR(hab)    (ERRORIDERROR(WinGetLastError( hab )))
  142. #define PARENT(hwnd)   (WinQueryWindow( hwnd, QW_PARENT ))
  143. #define SetEFTextLimit(hwnd,ID,limit) \
  144.      (WinSendDlgItemMsg( hwnd,ID,EM_SETTEXTLIMIT,MPFROMSHORT(limit),NULL ))
  145. #define SetMLETextLimit(hwnd,ID,limit) \
  146.      (WinSendDlgItemMsg( hwnd,ID,MLM_SETTEXTLIMIT,MPFROMLONG(limit),NULL ))
  147.  
  148. /**********************************************************************/
  149. /*---------------------------- STRUCTURES ----------------------------*/
  150. /**********************************************************************/
  151.  
  152. typedef struct _CNRREC                            // CONTAINER RECORD STRUCTURE
  153. {
  154.   MINIRECORDCORE mrc;
  155.   char           szFileName[ CCHMAXPATH ];        // File that icon represents
  156.   char           szFullFileName[ CCHMAXPATH ];    // Same as above,path included
  157.  
  158. } CNRREC, *PCNRREC;
  159.  
  160. #define EXTRA_BYTES (sizeof( CNRREC ) - sizeof( MINIRECORDCORE ))
  161.  
  162. typedef struct _INSTANCE                          // FRAME WINDOW INSTANCE DATA
  163. {                                                 // (for the container windows)
  164.   PDRAGINFO pSavedDragInfo;                       // Current DRAGINFO structure
  165.   int       cDragItems;                           // Count of DRAGITEM's in drag
  166.   HWND      hwndDebug;                            // Frame's debug window handle
  167.   BOOL      fDragoverInProgress;                  // Is drag over this window?
  168.   BOOL      fGotFirstDragoverNotify;              // Is this first D.O.N. msg?
  169.   MRESULT   mrDragoverNotify;                     // Last MRESULT from D.O.N.
  170.   USHORT    usDragoverOp;                         // Last DRAGINFO.usOperation
  171.  
  172. } INSTANCE, *PINSTANCE;
  173.  
  174. typedef struct _DLGINFO
  175. {
  176.     BOOL fOnlyMessageNames;                       // Debug window no structures
  177.     BOOL fOnlyFirstItem;                          // Dbg win display just 1 item
  178.     BOOL fAllowAllDrops;                          // DragOver -All drops allowed
  179.     BOOL fUseManualRMF;                           // Don't use generated RMF
  180.     BOOL fUseDlgDragNames;                        // Use Cnr/Src/Targ below
  181.     BOOL fUseDlgItemID;                           // Use ItemID below
  182.     BOOL fUseDlgDragOvers;                        // Use DragOver... reply below
  183.     BOOL fScrollToBottom;                         // DebugWin last item on bottm
  184.     ULONG ulPrinterReply;                         // DM_PRINTOBJECT retvalue
  185.     ULONG ulShredderReply;                        // DM_DISCARDOBJECT retvalue
  186.     ULONG ulItemID;                               // DRAGITEM.ulItemID;
  187.     USHORT usOperation;                           // DRAGINFO.usOperation
  188.     USHORT fsControl;                             // DRAGITEM.fsControl
  189.     USHORT fsSupportedOps;                        // DRAGITEM.fsSupportedOps
  190.     USHORT usDragOverDrop;                        // DragOver drop retvalue
  191.     USHORT usDragOverDefOp;                       // DragOver DefOp retvalue
  192.     USHORT usPad;                                 // Used for struct alignment
  193.     char szType[ TYPE_LEN ];                      // DRAGITEM.hstrType
  194.     char szContainerName[ CCHMAXPATH ];           // DRAGITEM.hstrContainerName
  195.     char szSourceName[ CCHMAXPATH ];              // DRAGITEM.hstrSourceName
  196.     char szTargetName[ CCHMAXPATH ];              // DRAGITEM.hstrTarget
  197.     char szAddlMechanisms[ ADDL_MECHANISM_LEN ];  // UserDefined RMF mechanisms
  198.     char szAddlFormats[ ADDL_FORMAT_LEN ];        // UserDefined RMF formats
  199.     char szGeneratedRMF[ GENERATED_RMF_LEN ];     // Dialog-generated RMF string
  200.     char szManualRMF[ MANUAL_RMF_LEN ];           // User-entered RMF string
  201.  
  202. } DLGINFO, *PDLGINFO;
  203.  
  204. typedef struct _DRAGCONVERT                       // Used to convert an integer
  205. {                                                 //   to descriptive text to
  206.   int iItem;                                      //   display in the debug
  207.   PSZ szItem;                                     //   window or dialog box
  208.  
  209. } DRAGCONVERT, *PDRAGCONVERT;
  210.  
  211. typedef struct _NAMETOSTRING                      // Used to convert an internal
  212. {                                                 //   string to descriptive
  213.   PSZ szName;                                     //   text to display in the
  214.   PSZ szString;                                   //   debug window or dialog
  215.                                                   //   box
  216. } NAMETOSTRING, *PNAMETOSTRING;
  217.  
  218. typedef struct _PAGEDATA            // PER-PAGE DATA FOR A NOTEBOOK PAGE
  219. {
  220.     ULONG cb;                       // Size of the structure
  221.     PFNWP pfnwpDlg;                 // Window procedure address for the dialog
  222.     ULONG idDlg;                    // ID of the dialog box for this page
  223.     ULONG idPage;                   // Page id (our own numbers)
  224.     ULONG idFocus;                  // ID of the control to get initial focus
  225.  
  226. } PAGEDATA, *PPAGEDATA;
  227.  
  228. /**********************************************************************/
  229. /*----------------------- FUNCTION PROTOTYPES ------------------------*/
  230. /**********************************************************************/
  231.  
  232. // In drag.c
  233.  
  234. void    dragInit ( HWND hwndFrame, PCNRDRAGINIT pcdi );
  235. MRESULT dragOver ( HWND hwndFrame, PCNRDRAGINFO pcdi );
  236. void    dragLeave( HWND hwndFrame, PCNRDRAGINFO pcdi );
  237. void    dragDrop ( HWND hwndFrame, PCNRDRAGINFO pcdi );
  238. MRESULT dragMessage( HWND hwndFrame, ULONG msg, MPARAM mp1, MPARAM mp2 );
  239.  
  240. // In drgdrop.c
  241.  
  242. void Msg( PSZ szFormat, ... );
  243. BOOL RetrieveDlgInfo( HAB hab, PDLGINFO pDlgInfo );
  244. void SaveDlgInfo( HAB hab );
  245.  
  246. // In debugwin.c
  247.  
  248. HWND  dbgCreateWin( PSZ szTitle );
  249. SHORT dbgInsert( HWND hwndDbg, PSZ szFormat,... );
  250.  
  251. // In show.c
  252.  
  253. void showDragInfo( HWND hwndFrame, PSZ szCurrentOp, PDRAGINFO pDragInfo );
  254. void showDragTransfer( HWND hwndFrame, PSZ szCurrentOp,PDRAGTRANSFER pDragXfer);
  255. void showDragItem( HWND hwndFrame, PSZ szCurrentOp, PDRAGITEM pDragItem,
  256.                    int iOffset );
  257. void showRenderReply( HWND hwndFrame, PSZ pszPrefix, ULONG flReply );
  258. void showPrintReply( HWND hwndFrame, PSZ pszPrefix, ULONG flReply );
  259. void showDragoverNotifyInfo( HWND hwndFrame, PDRAGINFO pDraginfo, MRESULT mr );
  260.  
  261. // In book.c
  262.  
  263. HWND bookSetup( ULONG idInitialPage );
  264. void bookRefreshDlgInfo( void );
  265.  
  266. // In dlgmisc.c
  267.  
  268. FNWP wpMisc;
  269.  
  270. // In dlgdragi.c
  271.  
  272. FNWP wpDragInfo;
  273.  
  274. // In dlgrmf.c
  275.  
  276. FNWP wpRMF;
  277.  
  278. // In dlgreply.c
  279.  
  280. FNWP wpReply;
  281.  
  282. // In menu.c
  283.  
  284. void menuCreate( HWND hwndFrame );
  285. void menuCommand( HWND hwndFrame, ULONG idCommand );
  286. void menuEnd( HWND hwndFrame, ULONG idMenu, HWND hwndMenu );
  287.  
  288. /**********************************************************************/
  289. /*------------------------ GLOBAL VARIABLES --------------------------*/
  290. /**********************************************************************/
  291.  
  292. #ifdef GLOBALS_DEFINED
  293. #   define DATADEF
  294. #else
  295. #   define DATADEF extern
  296. #endif
  297.  
  298. DATADEF char szCurrentPath[ CCHMAXPATH ]; // Current path where pgm was loaded
  299.  
  300. DATADEF HPOINTER hptrCnrRec;     // Icon used in the containers
  301.  
  302. DATADEF HWND hwndDrag;           // Window that can drag and drop
  303. DATADEF HWND hwndDrop;           // Window that can only drop initially
  304. DATADEF HWND hwndBook;           // Settings notebook window handle
  305.  
  306. DATADEF DLGINFO dlgInfo;         // Information harvested from the notebook
  307.  
  308. DATADEF int cOperations;         // Structure counts from the arrays below
  309. DATADEF int cControlTypes;
  310. DATADEF int cSupportedOps;
  311. DATADEF int cTypes;
  312. DATADEF int cRenderReplyTypes;
  313. DATADEF int cPrintReplyTypes;
  314. DATADEF int cDragoverReplyTypes;
  315. DATADEF int cMechanisms;
  316. DATADEF int cFormats;
  317.  
  318. /**********************************************************************/
  319. /*------------------------- CONSTANT ARRAYS --------------------------*/
  320. /**********************************************************************/
  321.  
  322. #ifdef GLOBALS_DEFINED
  323.  
  324.     // These are constants used primarily for displaying information in the
  325.     // Debug windows. They are also used to fill listboxes,comboboxes in the
  326.     // Settings notebook.
  327.  
  328.     DRAGCONVERT dcOperation[] =
  329.     {
  330.         { DO_DEFAULT,   "DO_DEFAULT" },
  331.         { DO_UNKNOWN,   "DO_UNKNOWN" },
  332.         { DO_COPY,      "DO_COPY" },
  333.         { DO_LINK,      "DO_LINK" },
  334.         { DO_MOVE,      "DO_MOVE" },
  335.         { DO_CREATE,    "DO_CREATE" }
  336.     };
  337.  
  338.     #define OP_TYPES        (sizeof( dcOperation ) / sizeof( DRAGCONVERT ))
  339.  
  340.     DRAGCONVERT dcControl[] =
  341.     {
  342.         { DC_OPEN,              "DC_OPEN" },
  343.         { DC_REF,               "DC_REF" },
  344.         { DC_GROUP,             "DC_GROUP" },
  345.         { DC_CONTAINER,         "DC_CONTAINER" },
  346.         { DC_PREPARE,           "DC_PREPARE" },
  347.         { DC_REMOVEABLEMEDIA,   "DC_REMOVEABLEMEDIA" }
  348.     };
  349.  
  350.     #define CONTROL_TYPES   (sizeof( dcControl ) / sizeof( DRAGCONVERT ))
  351.  
  352.     DRAGCONVERT dcSupportedOp[] =
  353.     {
  354.         { DO_COPYABLE,  "DO_COPYABLE" },
  355.         { DO_LINKABLE,  "DO_LINKABLE" },
  356.         { DO_MOVEABLE,  "DO_MOVEABLE" }
  357.     };
  358.  
  359.     #define OPERATION_TYPES (sizeof( dcSupportedOp ) / sizeof( DRAGCONVERT ))
  360.  
  361.     DRAGCONVERT dcRenderReply[] =
  362.     {
  363.         { DMFL_NATIVERENDER,     "DMFL_NATIVERENDER" },
  364.         { DMFL_RENDERFAIL,       "DMFL_RENDERFAIL" },
  365.         { DMFL_RENDERRETRY,      "DMFL_RENDERRETRY" },
  366.         { DMFL_RENDEROK,         "DMFL_RENDEROK" },
  367.         { DMFL_TARGETSUCCESSFUL, "DMFL_TARGETSUCCESSFUL" },
  368.         { DMFL_TARGETFAIL,       "DMFL_TARGETFAIL" }
  369.     };
  370.  
  371.     #define RENDERREPLY_TYPES  (sizeof( dcRenderReply ) / sizeof( DRAGCONVERT ))
  372.  
  373.     DRAGCONVERT dcPrintReply[] =
  374.     {
  375.         { DRR_SOURCE, "DRR_SOURCE" },
  376.         { DRR_TARGET, "DRR_TARGET" },
  377.         { DRR_ABORT,  "DRR_ABORT" }
  378.     };
  379.  
  380.     #define PRINTREPLY_TYPES (sizeof( dcPrintReply ) / sizeof( DRAGCONVERT ))
  381.  
  382.     DRAGCONVERT dcDragoverReply[] =
  383.     {
  384.         { DOR_DROP,      "DOR_DROP" },
  385.         { DOR_NODROP,    "DOR_NODROP" },
  386.         { DOR_NODROPOP,  "DOR_NODROPOP" },
  387.         { DOR_NEVERDROP, "DOR_NEVERDROP" }
  388.     };
  389.  
  390.     #define DRAGOVERREPLY_TYPES \
  391.                            (sizeof( dcDragoverReply ) / sizeof( DRAGCONVERT ))
  392.  
  393.     PSZ pszMechanism[] =
  394.     {
  395.         { "DRM_OS2FILE" },
  396.         { "DRM_OBJECT" },
  397.         { "DRM_DDE" },
  398.         { "DRM_DISCARD" },
  399.         { "DRM_PRINT" },
  400.     };
  401.  
  402.     #define MECHANISM_TYPES (sizeof( pszMechanism ) / sizeof( PSZ ))
  403.  
  404.     PSZ pszFormat[] =
  405.     {
  406.         { "DRF_BITMAP" },
  407.         { "DRF_DIB" },
  408.         { "DRF_DIF" },
  409.         { "DRF_DSPBITMAP" },
  410.         { "DRF_METAFILE" },
  411.         { "DRF_OEMTEXT" },
  412.         { "DRF_OWNERDISPLAY" },
  413.         { "DRF_PTRPICT" },
  414.         { "DRF_RTF" },
  415.         { "DRF_SYLK" },
  416.         { "DRF_TEXT" },
  417.         { "DRF_TIFF" },
  418.         { "DRF_UNKNOWN" }
  419.     };
  420.  
  421.     #define FORMAT_TYPES (sizeof( pszFormat ) / sizeof( PSZ ))
  422.  
  423.     NAMETOSTRING ntsType[] =
  424.     {
  425.         { "DRT_ASM",      DRT_ASM },
  426.         { "DRT_BASIC",    DRT_BASIC },
  427.         { "DRT_BINDATA",  DRT_BINDATA },
  428.         { "DRT_BITMAP",   DRT_BITMAP },
  429.         { "DRT_C",        DRT_C },
  430.         { "DRT_COBOL",    DRT_COBOL },
  431.         { "DRT_DLL",      DRT_DLL },
  432.         { "DRT_DOSCMD",   DRT_DOSCMD },
  433.         { "DRT_EXE",      DRT_EXE },
  434.         { "DRT_FORTRAN",  DRT_FORTRAN },
  435.         { "DRT_ICON",     DRT_ICON },
  436.         { "DRT_LIB",      DRT_LIB },
  437.         { "DRT_METAFILE", DRT_METAFILE },
  438.         { "DRT_OS2CMD",   DRT_OS2CMD },
  439.         { "DRT_PASCAL",   DRT_PASCAL },
  440.         { "DRT_RESOURCE", DRT_RESOURCE },
  441.         { "DRT_TEXT",     DRT_TEXT },
  442.         { "DRT_UNKNOWN",  DRT_UNKNOWN }
  443.     };
  444.  
  445.     #define TYPE_TYPES (sizeof( ntsType ) / sizeof( NAMETOSTRING ))
  446.  
  447.     // These are the default dialog box settings that are used the first time
  448.     // the program is run and also if the user hits the 'Defaults' button on
  449.     // any of the dialog boxes in the Settings Notebook.
  450.  
  451.     DLGINFO dlgInfoDefaults =
  452.     {
  453.         FALSE,                                            // fOnlyMessageNames
  454.         FALSE,                                            // fOnlyFirstItem
  455.         TRUE,                                             // fAllowAllDrops
  456.         FALSE,                                            // fUseManualRMF
  457.         FALSE,                                            // fUseManualDragNames
  458.         FALSE,                                            // fUseManualItemID
  459.         FALSE,                                            // fUseManualDragOvers
  460.         TRUE,                                             // fScrollToBottom
  461.         DRR_SOURCE,                                       // usPrinterReply
  462.         DRR_SOURCE,                                       // usShredderReply
  463.         0,                                                // ulItemID
  464.         DO_DEFAULT,                                       // usOperation
  465.         0,                                                // fsControl
  466.         DO_COPYABLE | DO_MOVEABLE,                        // fsSupportedOps
  467.         DOR_DROP,                                         // usDragOverDrop
  468.         DO_COPY,                                          // usDragOverDefOp
  469.         0,                                                // usPad
  470.         DRT_UNKNOWN,                                      // szType
  471.         "",                                               // szContainerName
  472.         "",                                               // szSourceName
  473.         "",                                               // szTargetName
  474.         "",                                               // szAddlMechanisms
  475.         "",                                               // szAddlFormats
  476.         "(DRM_OS2FILE,DRM_DISCARD,DRM_PRINT)x(DRF_TEXT)", // szGeneratedRMF
  477.         ""                                                // szManualRMF
  478.     };
  479.  
  480. #else
  481.     extern DRAGCONVERT dcOperation[];
  482.     extern DRAGCONVERT dcControl[];
  483.     extern DRAGCONVERT dcSupportedOp[];
  484.     extern DRAGCONVERT dcRenderReply[];
  485.     extern DRAGCONVERT dcPrintReply[];
  486.     extern DRAGCONVERT dcDragoverReply[];
  487.     extern PSZ pszMechanism[];
  488.     extern PSZ pszFormat[];
  489.     extern NAMETOSTRING ntsType[];
  490.     extern DLGINFO dlgInfoDefaults;
  491. #endif
  492.  
  493. /***************************************************************************
  494.  *                         E N D   O F   S O U R C E                       *
  495.  ***************************************************************************/
  496.