home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dsstlkt5.zip / dssos2tk / dss / DCDB.H < prev    next >
C/C++ Source or Header  |  1998-05-08  |  35KB  |  801 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Directory and Security Services (DSS)        */
  4. /*                            Version 5.0                                 */
  5. /*                   (C) Copyright IBM Corp. 1995                         */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                                                                        */
  8. /**************************************************************************/
  9.  
  10. /********************************************************************
  11.  *                                                                  *
  12.  *  About this file ...  DCDB.H                                     *
  13.  *                                                                  *
  14.  *  This file contains information about the DCDB (Domain Control   *
  15.  *  Data Base) APIs. For Each API class there is a section on:      *
  16.  *                                                                  *
  17.  *      Function prototypes.                                        *
  18.  *                                                                  *
  19.  *      Data structure templates.                                   *
  20.  *                                                                  *
  21.  *      Definition of special values.                               *
  22.  *                                                                  *
  23.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  24.  *         file depends on values defined in NETCONS.H.             *
  25.  *                                                                  *
  26.  ********************************************************************/
  27.  
  28. #if !defined NETDCDB_INCLUDED
  29. #pragma pack(1)
  30. #define NETDCDB_INCLUDED
  31.  
  32.  
  33. /****************************************************************
  34.  *                                                              *
  35.  *              Function prototypes - NetAliasXXX               *
  36.  *                                                              *
  37.  ****************************************************************/
  38.  
  39. extern API_FUNCTION
  40.  NetAliasAdd (const unsigned char LSFAR *,   /* server                    */
  41.               short,                         /* level (2)                 */
  42.               unsigned char LSFAR *,         /* buffer (send)             */
  43.               unsigned short);               /* buffer length             */
  44.  
  45. extern API_FUNCTION
  46.  NetAliasDel (const unsigned char LSFAR *,     /* server                    */
  47.               unsigned char LSFAR *,           /* alias                     */
  48.               unsigned long);                  /* reserved                  */
  49.  
  50. extern API_FUNCTION
  51.  NetAliasGetInfo (const unsigned char LSFAR *, /* server                    */
  52.                   unsigned char LSFAR *,       /* alias                     */
  53.                   short,                       /* level (0, 1, 2)           */
  54.                   unsigned char LSFAR *,       /* buffer (receive)          */
  55.                   unsigned short,              /* buffer length             */
  56.                   unsigned short LSFAR *);     /* bytes available           */
  57.  
  58. extern API_FUNCTION
  59.  NetAliasSetInfo (const unsigned char LSFAR *, /* server                    */
  60.                   unsigned char LSFAR *,       /* alias                     */
  61.                   short,                       /* level (1, 2)              */
  62.                   unsigned char LSFAR *,       /* buffer (send)             */
  63.                   unsigned short,              /* buffer length             */
  64.                   unsigned short);             /* parameter number          */
  65.  
  66. extern API_FUNCTION
  67.  NetAliasEnum (const unsigned char LSFAR *,  /* server                    */
  68.                short,                        /* level (0, 1, 2)           */
  69.                unsigned short,               /* type                      */
  70.                unsigned char LSFAR *,        /* buffer (receive)          */
  71.                unsigned short,               /* buffer length             */
  72.                unsigned short LSFAR *,       /* entries returned          */
  73.                unsigned short LSFAR *);      /* entries available         */
  74.  
  75.  
  76. /****************************************************************
  77.  *                                                              *
  78.  *              Data structure templates - Alias                *
  79.  *                                                              *
  80.  ****************************************************************/
  81.  
  82. struct alias_info_0 {
  83.    unsigned char                ai0_alias[ALIAS_LEN + 1];
  84. };
  85.  
  86. struct alias_info_1 {
  87.    unsigned char                ai1_alias[ALIAS_LEN + 1];
  88.    unsigned char                ai1_pad;
  89.    unsigned char LSFAR * LSPTR  ai1_remark;
  90.    unsigned short               ai1_type;
  91. };
  92.  
  93. struct alias_info_2 {
  94.    unsigned char                ai2_alias[ALIAS_LEN + 1];
  95.    unsigned char                ai2_pad_1;
  96.    unsigned char LSFAR * LSPTR  ai2_remark;
  97.    unsigned short               ai2_type;
  98.    unsigned short               ai2_location;
  99.    unsigned char                ai2_server[CNLEN + 1];
  100.    unsigned short               ai2_mode;
  101.    unsigned short               ai2_maxuses;
  102.    unsigned char                ai2_netname[NNLEN + 1]; /* file or print    */
  103.    unsigned char                ai2_pad_2;
  104.    unsigned char                ai2_queue[QNLEN + 1];   /* print or serial    */
  105.    unsigned char                ai2_pad_3;
  106.    unsigned char LSFAR * LSPTR  ai2_path;               /* file only          */
  107.    unsigned short               ai2_priority;           /* serial only        */
  108.    unsigned char LSFAR * LSPTR  ai2_device_pool;        /* serial only        */
  109. };
  110.  
  111. struct alias_info_10 {
  112.    char LSFAR * LSPTR           ai10_alias;
  113.    char LSFAR * LSPTR           ai10_global_name;
  114.    unsigned char                ai10_pad;
  115. };
  116.  
  117. struct alias_info_11 {
  118.    char LSFAR * LSPTR           ai11_alias;
  119.    char LSFAR * LSPTR           ai11_global_name;
  120.    unsigned char                ai11_pad[2];
  121.    unsigned char LSFAR * LSPTR  ai11_remark;
  122.    unsigned short               ai11_type;
  123. };
  124.  
  125. struct alias_info_12 {
  126.    unsigned char LSFAR * LSPTR  ai12_alias;
  127.    unsigned char LSFAR * LSPTR  ai12_global_name;
  128.    unsigned char                ai12_pad_1[2];
  129.    unsigned char LSFAR * LSPTR  ai12_remark;
  130.    unsigned short               ai12_type;
  131.    unsigned short               ai12_location;
  132.    unsigned char LSFAR * LSPTR  ai12_server;
  133.    unsigned char                ai12_pad_4[12];
  134.    unsigned short               ai12_mode;
  135.    unsigned short               ai12_maxuses;
  136.    unsigned char LSFAR * LSPTR  ai12_netname;            /* file or print    */
  137.    unsigned char                ai12_pad_2[10];
  138.    unsigned char                ai12_queue[QNLEN + 1];   /* print or serial    */
  139.    unsigned char                ai12_pad_3;
  140.    unsigned char LSFAR * LSPTR  ai12_path;               /* file only          */
  141.    unsigned short               ai12_priority;           /* serial only        */
  142.    unsigned char LSFAR * LSPTR  ai12_device_pool;        /* serial only        */
  143. };
  144.  
  145.  
  146.  
  147. #ifdef PURE_32
  148. /****************************************************************
  149.  *                                                              *
  150.  *              Function prototypes - NetAliasXXX               *
  151.  *              For "pure" 32-bit code                          *
  152.  *                                                              *
  153.  ****************************************************************/
  154.  
  155. extern API32_FUNCTION
  156.  Net32AliasAdd (const unsigned char *,      /* server                    */
  157.                 unsigned long,              /* level (2) - was signed short */
  158.                 unsigned char *,            /* buffer (send)             */
  159.                 unsigned long,              /* buffer length             */
  160.                 unsigned char *);           /* reserved                  */
  161.  
  162. extern API32_FUNCTION
  163.  Net32AliasDel (const unsigned char *,      /* server                    */
  164.                 unsigned char *,            /* alias                     */
  165.                 unsigned long,              /* reserved                  */
  166.                 unsigned char *);           /* reserved                  */
  167.  
  168. extern API32_FUNCTION
  169.  Net32AliasGetInfo (const unsigned char *,  /* server                    */
  170.                     unsigned char *,        /* alias                     */
  171.                     unsigned long,          /* level (0, 1, 2)--was short */
  172.                     unsigned char *,        /* buffer (receive)          */
  173.                     unsigned long,          /* buffer length             */
  174.                     unsigned long *,        /* bytes available           */
  175.                     unsigned char *);       /* reserved                  */
  176.  
  177. extern API32_FUNCTION
  178.  Net32AliasSetInfo (const unsigned char *,  /* server                    */
  179.                     unsigned char *,        /* alias                     */
  180.                     unsigned long,          /* level (1, 2)-- was short  */
  181.                     unsigned char *,        /* buffer (send)             */
  182.                     unsigned long,          /* buffer length             */
  183.                     unsigned long,          /* parameter number          */
  184.                     unsigned char *);       /* reserved                  */
  185.  
  186. extern API32_FUNCTION
  187.  Net32AliasEnum(
  188.        const unsigned char * pszServer,           /* server             */
  189.        unsigned long         ulLevel,             /* level (0, 1, 2)    */
  190.        unsigned long         ulType,              /* type               */
  191.        unsigned char       * pbBuffer,            /* buffer (receive)   */
  192.        unsigned long         ulBuflen,            /* buffer length      */
  193.        unsigned long       * pulEntriesReturned,  /* entries returned   */
  194.        unsigned long       * pulEntriesAvail,     /* entries available  */
  195.        unsigned char       * pszReserved);        /* reserved           */
  196.  
  197. #endif /* PURE_32 */
  198.  
  199.  
  200.  
  201. /****************************************************************
  202.  *                                                              *
  203.  *              Special values and constants - Alias            *
  204.  *                                                              *
  205.  ****************************************************************/
  206.  
  207. /*
  208.  * info structure levels
  209.  */
  210.  
  211. #define ALIAS_LEVEL_0      0
  212. #define ALIAS_LEVEL_1      1
  213. #define ALIAS_LEVEL_2      2
  214. #define ALIAS_LEVEL_10     10
  215. #define ALIAS_LEVEL_11     11
  216. #define ALIAS_LEVEL_12     12
  217.  
  218.  
  219. /*
  220.  * values for ai2_mode
  221.  */
  222.  
  223. #define ALIAS_MODE_STARTUP             0x0000
  224. #define ALIAS_MODE_BYADMIN             0x0001
  225.  
  226. /*
  227.  * value for ai2_mode (files alias only)
  228.  */
  229.  
  230. #define ALIAS_MODE_DYNAMIC             0x0002
  231.  
  232. /*
  233.  * values for ai2_location
  234.  */
  235.  
  236. #define ALIAS_LOCATION_INTERNAL        0x0000
  237. #define ALIAS_LOCATION_EXTERNAL_DOS    0x0001
  238. #define ALIAS_LOCATION_EXTERNAL_OS2    0x0002
  239. #define ALIAS_LOCATION_EXTERNAL_BOTH   0x0003
  240.  
  241. /*
  242.  * values for type
  243.  */
  244.  
  245. #define ALIAS_TYPE_FILE                0x0001
  246. #define ALIAS_TYPE_PRINTER             0x0002
  247. #define ALIAS_TYPE_SERIAL              0x0004
  248.  
  249.  
  250. /*
  251.  * values for alias SetInfo
  252.  */
  253.  
  254. #define ALIAS_REMARK_PARMNUM        3
  255. #define ALIAS_SERVER_PARMNUM        6
  256. #define ALIAS_MODE_PARMNUM          7
  257. #define ALIAS_MAXUSES_PARMNUM       8
  258. #define ALIAS_PATH_PARMNUM         13
  259. #define ALIAS_PRIORITY_PARMNUM     14
  260. #define ALIAS_DEVICEPOOL_PARMNUM   15
  261.  
  262. #define AI1_NUM_ELEMENTS            4
  263. #define AI2_NUM_ELEMENTS           15
  264.  
  265.  
  266. /*
  267.  * DCE CDS directory management flags
  268.  */
  269.  
  270. #define ALIAS_CREATE_DIRECTORY    0x1000
  271.                                         /* for AliasAdd - create
  272.                                            directories of global name
  273.                                            if they do not exist     */
  274.  
  275. /****************************************************************
  276.  *                                                              *
  277.  *              Function prototypes - Logon Assignments         *
  278.  *                                                              *
  279.  ****************************************************************/
  280.  
  281. extern API_FUNCTION
  282.  NetUserGetLogonAsn (const unsigned char LSFAR *, /* server                   */
  283.                      unsigned char LSFAR *,       /* user                     */
  284.                      short,                       /* level (1)                */
  285.                      unsigned short,              /* type                     */
  286.                      unsigned char LSFAR *,       /* buffer (receive)         */
  287.                      unsigned short,              /* buffer length            */
  288.                      unsigned short LSFAR *);     /* bytes available          */
  289.  
  290. extern API_FUNCTION
  291.  NetUserSetLogonAsn(const unsigned char LSFAR *, /* server                    */
  292.                     unsigned char LSFAR *,       /* user                      */
  293.                     short,                       /* level (1)                 */
  294.                     unsigned char LSFAR *,       /* buffer (send)             */
  295.                     unsigned short);             /* buffer length             */
  296.  
  297. /****************************************************************
  298.  *                                                              *
  299.  *              Data structure templates - Logon Assignments    *
  300.  *                                                              *
  301.  ****************************************************************/
  302.  
  303. struct logon_asn_info_1
  304.   {
  305.    unsigned long    lai1_reserved;
  306.    unsigned short   lai1_count;                 /* logon_asn_list structures */
  307.   };
  308.  
  309. struct logon_asn_list
  310.   {
  311.    unsigned char    lal_alias[ALIAS_LEN + 1];
  312.    unsigned char    lal_pad;
  313.    unsigned short   lal_type;
  314.    unsigned char    lal_device[DEVLEN + 1];     /* drive or device name */
  315.   };
  316.  
  317.  
  318.  
  319. #ifdef ANY_32_BIT
  320.  
  321. /*****************************************************
  322. **
  323. ** logon_asn_info_200  (for Net32... APIs only)
  324. **
  325. ** New info level to support global names.
  326. **
  327. ******************************************************
  328. */
  329. typedef struct logon_asn_info_200 
  330.   {
  331.    unsigned long   lai200_count;
  332.   } logon_asn_info_200_t;
  333.  
  334.  
  335. /*****************************************************
  336. **
  337. ** logon_asn_list_200  (for Net32... APIs only)
  338. **
  339. ** New info level to support global names.
  340. **
  341. ******************************************************
  342. */
  343. typedef struct logon_asn_list_200 
  344.   {
  345.    unsigned char   lal200_alias[ALIAS_LEN + 1];
  346.    unsigned char   lal200_pad_1[3];                  
  347.    unsigned char * lal200_global_name;
  348.    unsigned long   lal200_type;
  349.    unsigned char * lal200_device;
  350.   } logon_asn_list_200_t;
  351.  
  352. #endif /* ANY_32_BIT */
  353.  
  354.  
  355. #ifdef PURE_32
  356. /***************************************************************************
  357.  *                                                                         *
  358.  *     Function prototypes - Logon Assignments - "pure" 32-bit code        *
  359.  *                                                                         *
  360.  ***************************************************************************/
  361.  
  362. extern API32_FUNCTION
  363.  Net32UserGetLogonAsn (const unsigned char *, /* server                     */
  364.                        unsigned char *,       /* user                       */
  365.                        unsigned long,         /* level (1); was short       */
  366.                        unsigned long,         /* type; was short            */
  367.                        unsigned char *,       /* buffer (receive)           */
  368.                        unsigned long,         /* buffer length; was short   */
  369.                        unsigned long *,       /* bytes available; was short */
  370.                        unsigned char *);      /* reserved                   */
  371.  
  372. extern API32_FUNCTION
  373.  Net32UserSetLogonAsn (const unsigned char *, /* server                     */
  374.                        unsigned char *,       /* user                       */
  375.                        unsigned long,         /* level (1); was short       */
  376.                        unsigned char *,       /* buffer (send)              */
  377.                        unsigned long,         /* buffer length; was short   */
  378.                        unsigned char *);      /* reserved                   */
  379. #endif /* PURE_32 */
  380.  
  381.  
  382. /****************************************************************
  383.  *                                                              *
  384.  *              Function prototypes - Application Selectors     *
  385.  *                                                              *
  386.  ****************************************************************/
  387.  
  388. extern API_FUNCTION
  389.  NetUserGetAppSel(const unsigned char LSFAR *,  /* server                    */
  390.                   unsigned char LSFAR *,        /* user                      */
  391.                   short,                        /* level (1)                 */
  392.                   unsigned short,               /* type                      */
  393.                   unsigned char LSFAR *,        /* buffer (receive)          */
  394.                   unsigned short,               /* buffer length             */
  395.                   unsigned short LSFAR *);      /* bytes available           */
  396.  
  397. extern API_FUNCTION
  398.  NetUserSetAppSel(const unsigned char LSFAR *,  /* server                    */
  399.                   unsigned char LSFAR *,        /* user                      */
  400.                   short,                        /* level (1)                 */
  401.                   unsigned char LSFAR *,        /* buffer (send)             */
  402.                   unsigned short);              /* buffer length             */
  403.  
  404. /****************************************************************
  405.  *                                                              *
  406.  *              Data structure templates - Application Selectors*
  407.  *                                                              *
  408.  ****************************************************************/
  409.  
  410. struct app_sel_info_1
  411.   {
  412.    unsigned long    asi1_reserved;
  413.    unsigned short   asi1_count;                 /* app_sel_list structures */
  414.   };
  415.  
  416. struct app_sel_list
  417.   {
  418.    unsigned char    asl_appname[APP_LEN + 1];
  419.    unsigned char    asl_pad_1;
  420.    unsigned short   asl_apptype;
  421.    unsigned short   asl_reserved;
  422.   };
  423.  
  424.  
  425.  
  426. #ifdef ANY_32_BIT
  427. /*****************************************************
  428. **
  429. ** app_sel_info_200 (for Net32... APIs only)
  430. **
  431. ** New info level to support global names.
  432. **
  433. ******************************************************
  434. */
  435. typedef struct app_sel_info_200 
  436.   {
  437.    unsigned long   asi200_count;
  438.   } app_sel_info_200_t;
  439.  
  440.  
  441. /*****************************************************
  442. **
  443. ** app_sel_list_200 (for Net32... APIs only)
  444. **
  445. ** New info level to support global names.
  446. **
  447. ******************************************************
  448. */
  449. typedef struct app_sel_list_200 
  450.   {
  451.    unsigned char   asl200_appname[APP_LEN + 1];
  452.    unsigned char * asl200_global_name;
  453.    unsigned long   asl200_apptype;
  454.   } app_sel_list_200_t;
  455.  
  456. #endif /* ANY_32_BIT */
  457.  
  458.  
  459.  
  460. extern API_FUNCTION
  461.  NetUserDCDBInit (const unsigned char LSFAR *,  /* server    */
  462.                   unsigned char LSFAR *,        /* user      */
  463.                   unsigned long);               /* reserved  */
  464.  
  465.  
  466. #ifdef PURE_32
  467. /****************************************************************
  468.  *                                                              *
  469.  *  Function prototypes - Application Selectors, DBCD Init      *
  470.  *             For "pure" 32-bit code                           *
  471.  *                                                              *
  472.  ****************************************************************/
  473.  
  474. extern API32_FUNCTION
  475.  Net32UserGetAppSel(const unsigned char *, /* server                        */
  476.                     unsigned char *,       /* user                          */
  477.                     unsigned long,         /* level (1); was short          */
  478.                     unsigned long,         /* type; was short               */
  479.                     unsigned char *,       /* buffer (receive)              */
  480.                     unsigned long,         /* buffer length; was short      */
  481.                     unsigned long *,       /* bytes available; was short    */
  482.                     unsigned char *);      /* reserved                      */
  483.  
  484. extern API32_FUNCTION
  485.  Net32UserSetAppSel(const unsigned char *, /* server                        */
  486.                     unsigned char *,       /* user                          */
  487.                     unsigned long,         /* level (1); was short          */
  488.                     unsigned char *,       /* buffer (send)                 */
  489.                     unsigned long,         /* buffer length; was short      */
  490.                     unsigned char *);      /* reserved                      */
  491.  
  492. extern API32_FUNCTION
  493.  Net32UserDCDBInit (const unsigned char *, /* server                        */
  494.                     unsigned char *,       /* user                          */
  495.                     unsigned long,         /* reserved                      */
  496.                     unsigned char *);      /* reserved                      */
  497. #endif /* PURE_32 */
  498.  
  499. /****************************************************************
  500.  *                                                              *
  501.  *              Function prototypes - Applications              *
  502.  *                                                              *
  503.  ****************************************************************/
  504.  
  505. extern API_FUNCTION
  506.  NetAppAdd (const unsigned char LSFAR *,        /* server                    */
  507.             unsigned char LSFAR *,              /* NULL = DCDB.A or -> user  */
  508.             short,                              /* level (3)                 */
  509.             unsigned char LSFAR *,              /* buffer (send)             */
  510.             unsigned short);                    /* buffer length             */
  511.  
  512. extern API_FUNCTION
  513.  NetAppDel (const unsigned char LSFAR *,        /* server                    */
  514.             unsigned char LSFAR *,              /* NULL = DCDB.A or -> user  */
  515.             unsigned char LSFAR *,              /* name of app to delete     */
  516.             unsigned long);                     /* reserved                  */
  517.  
  518. extern API_FUNCTION
  519.  NetAppGetInfo (const unsigned char LSFAR *,    /* server                    */
  520.                 unsigned char LSFAR *,          /* NULL = DCDB.A or -> user  */
  521.                 unsigned char LSFAR *,          /* app name                  */
  522.                 short,                          /* level (0, 1, 2, 3)        */
  523.                 unsigned char LSFAR *,          /* buffer (receive)          */
  524.                 unsigned short,                 /* buflen                    */
  525.                 unsigned short LSFAR *);        /* bytes available           */
  526.  
  527. extern API_FUNCTION
  528.  NetAppSetInfo (const unsigned char LSFAR *,    /* server                    */
  529.                 unsigned char LSFAR *,          /* NULL = DCDB.A or -> user  */
  530.                 unsigned char LSFAR *,          /* appname                   */
  531.                 short,                          /* level (1, 2, 3)           */
  532.                 unsigned char LSFAR *,          /* buffer (send)             */
  533.                 unsigned short,                 /* buflen                    */
  534.                 unsigned short);                /* parmnum                   */
  535.  
  536. extern API_FUNCTION
  537.  NetAppEnum (const unsigned char LSFAR *,       /* server                    */
  538.              unsigned char LSFAR *,             /* NULL = DCDB.A or -> user  */
  539.              short,                             /* level (0, 1, 2, 3)        */
  540.              unsigned short,                    /* type                      */
  541.              unsigned char LSFAR *,             /* buffer (receive)          */
  542.              unsigned short,                    /* buflen                    */
  543.              unsigned short LSFAR *,            /* entries returned          */
  544.              unsigned short LSFAR *);           /* entries available         */
  545.  
  546.  
  547. /****************************************************************
  548.  *                                                              *
  549.  *            Data structure templates - Applications           *
  550.  *                                                              *
  551.  ****************************************************************/
  552. struct app_info_0 {
  553.    unsigned char        app0_name[APP_LEN + 1];
  554. };
  555.  
  556. struct app_info_1 {
  557.    unsigned char        app1_name[APP_LEN + 1];
  558.    unsigned char        app1_pad_1;
  559.    unsigned char LSFAR * LSPTR  app1_remark;
  560. };
  561.  
  562. /*
  563.  *  The level 2 structure allows one to enumerate, get or set information
  564.  *  about an application's fixed data only.
  565.  */
  566.  
  567. struct app_info_2 {
  568.    unsigned char        app2_name[APP_LEN + 1];
  569.    unsigned char        app2_pad_1;
  570.    unsigned char LSFAR * LSPTR  app2_remark;
  571.    unsigned char LSFAR * LSPTR  app2_command;
  572.    unsigned char LSFAR * LSPTR  app2_command_parms;
  573.    unsigned char        app2_app_alias_or_drv[ALIAS_LEN + 1];
  574.    unsigned char        app2_pad_2;
  575.    unsigned char        app2_app_drive;
  576.    unsigned char LSFAR * LSPTR  app2_app_path_to_dir;
  577.    unsigned char        app2_wrkdir_alias_or_drv[ALIAS_LEN + 1];
  578.    unsigned char        app2_pad_3;
  579.    unsigned char        app2_wrkdir_drive;
  580.    unsigned char LSFAR * LSPTR  app2_wrkdir_path_to_dir;
  581.    unsigned char        app2_prompt;
  582.    unsigned char        app2_interface;
  583.    unsigned char        app2_apptype;
  584. };
  585.  
  586. struct app_info_3 {
  587.    unsigned char        app3_name[APP_LEN + 1];
  588.    unsigned char        app3_pad_1;
  589.    unsigned char LSFAR * LSPTR  app3_remark;
  590.    unsigned char LSFAR * LSPTR  app3_command;
  591.    unsigned char LSFAR * LSPTR  app3_command_parms;
  592.    unsigned char        app3_app_alias_or_drv[ALIAS_LEN + 1];
  593.    unsigned char        app3_pad_2;
  594.    unsigned char        app3_app_drive;
  595.    unsigned char LSFAR * LSPTR  app3_app_path_to_dir;
  596.    unsigned char        app3_wrkdir_alias_or_drv[ALIAS_LEN + 1];
  597.    unsigned char        app3_pad_3;
  598.    unsigned char        app3_wrkdir_drive;
  599.    unsigned char LSFAR * LSPTR  app3_wrkdir_path_to_dir;
  600.    unsigned char        app3_prompt;
  601.    unsigned char        app3_interface;
  602.    unsigned char        app3_apptype;
  603.    unsigned short       app3_res_count;
  604. };
  605.  
  606. struct app_info_10 {
  607.    unsigned char LSFAR * LSPTR  app10_name;
  608.    unsigned char LSFAR * LSPTR  app10_globalname;
  609.    unsigned char        app10_pad;
  610. };
  611.  
  612. struct app_info_11 {
  613.    unsigned char LSFAR * LSPTR  app11_name;
  614.    unsigned char LSFAR * LSPTR  app11_globalname;
  615.    unsigned char        app11_pad_1[2];
  616.    unsigned char LSFAR * LSPTR  app11_remark;
  617. };
  618.  
  619. struct app_info_12 {
  620.    unsigned char LSFAR * LSPTR  app12_name;
  621.    unsigned char LSFAR * LSPTR  app12_globalname;
  622.    unsigned char        app12_pad_1[2];
  623.    unsigned char LSFAR * LSPTR  app12_remark;
  624.    unsigned char LSFAR * LSPTR  app12_command;
  625.    unsigned char LSFAR * LSPTR  app12_command_parms;
  626.    unsigned char LSFAR * LSPTR  app12_app_alias_or_drv;
  627.    unsigned char        app12_pad_2[6];
  628.    unsigned char        app12_app_drive;
  629.    unsigned char LSFAR * LSPTR  app12_app_path_to_dir;
  630.    unsigned char LSFAR * LSPTR  app12_wrkdir_alias_or_drv;
  631.    unsigned char        app12_pad_3[6];
  632.    unsigned char        app12_wrkdir_drive;
  633.    unsigned char LSFAR * LSPTR  app12_wrkdir_path_to_dir;
  634.    unsigned char        app12_prompt;
  635.    unsigned char        app12_interface;
  636.    unsigned char        app12_apptype;
  637. };
  638.  
  639. struct app_info_13 {
  640.    unsigned char LSFAR * LSPTR  app13_name;
  641.    unsigned char LSFAR * LSPTR  app13_globalname;
  642.    unsigned char        app13_pad_1[2];
  643.    unsigned char LSFAR * LSPTR  app13_remark;
  644.    unsigned char LSFAR * LSPTR  app13_command;
  645.    unsigned char LSFAR * LSPTR  app13_command_parms;
  646.    unsigned char LSFAR * LSPTR  app13_app_alias_or_drv;
  647.    unsigned char        app13_pad_2[6];
  648.    unsigned char        app13_app_drive;
  649.    unsigned char LSFAR * LSPTR  app13_app_path_to_dir;
  650.    unsigned char LSFAR * LSPTR  app13_wrkdir_alias_or_drv;
  651.    unsigned char        app13_pad_3[6];
  652.    unsigned char        app13_wrkdir_drive;
  653.    unsigned char LSFAR * LSPTR  app13_wrkdir_path_to_dir;
  654.    unsigned char        app13_prompt;
  655.    unsigned char        app13_interface;
  656.    unsigned char        app13_apptype;
  657.    unsigned short       app13_res_count;
  658. };
  659.  
  660. /*
  661.  * the following structure contains redirections required by the application
  662.  */
  663.  
  664. struct app_res_list {
  665.    unsigned char  arl_alias[ALIAS_LEN + 1];
  666.    unsigned char  arl_pad_1;
  667.    unsigned char  arl_device[DEVLEN + 1];
  668. };
  669.  
  670. struct app_res_list_10 {
  671.    unsigned char LSFAR * LSPTR  arl10_alias;
  672.    unsigned char  arl10_pad_1[6];
  673.    unsigned char  arl10_device[DEVLEN + 1];
  674. };
  675.  
  676.  
  677. #ifdef PURE_32
  678. /****************************************************************
  679.  *                                                              *
  680.  *              Function prototypes - Applications              *
  681.  *                                                              *
  682.  ****************************************************************/
  683. extern API32_FUNCTION
  684. Net32AppAdd (const unsigned char *,         /* server                    */
  685.               unsigned char *,              /* NULL = DCDB.A or -> user  */
  686.               unsigned long,                /* level (3); was short      */
  687.               unsigned char *,              /* buffer (send)             */
  688.               unsigned long,                /* buffer length; was USHORT */
  689.               unsigned char *);             /* reserved                  */
  690.  
  691. extern API32_FUNCTION
  692. Net32AppDel (const unsigned char *,         /* server                    */
  693.               unsigned char *,              /* NULL = DCDB.A or -> user  */
  694.               unsigned char *,              /* name of app to delete     */
  695.               unsigned long,                /* reserved                  */
  696.               unsigned char *);             /* reserved                  */
  697.  
  698. extern API32_FUNCTION
  699. Net32AppGetInfo (const unsigned char *,     /* server                    */
  700.                   unsigned char *,          /* NULL = DCDB.A or -> user  */
  701.                   unsigned char *,          /* app name                  */
  702.                   unsigned long,            /* level (0, 1, 2, 3); was short */
  703.                   unsigned char *,          /* buffer (receive)          */
  704.                   unsigned long,            /* buflen; was USHORT        */
  705.                   unsigned long  *,         /* bytes available; was USHORT */
  706.                   unsigned char *);         /* reserved                  */
  707.  
  708. extern API32_FUNCTION
  709. Net32AppSetInfo (const unsigned char *,     /* server                    */
  710.                   unsigned char *,          /* NULL = DCDB.A or -> user  */
  711.                   unsigned char *,          /* appname                   */
  712.                   unsigned long,            /* level (1, 2, 3); was short */
  713.                   unsigned char *,          /* buffer (send)             */
  714.                   unsigned long,            /* buflen;  was USHORT       */
  715.                   unsigned long,            /* parmnum; was USHORT       */
  716.                   unsigned char *);         /* reserved                  */
  717.  
  718. extern API32_FUNCTION
  719. Net32AppEnum (const unsigned char *,        /* server                    */
  720.                unsigned char *,             /* NULL = DCDB.A or -> user  */
  721.                unsigned long,               /* level (0, 1, 2, 3); was short */
  722.                unsigned long,               /* type; was USHORT          */
  723.                unsigned char *,             /* buffer (receive)          */
  724.                unsigned long,               /* buflen; was USHORT        */
  725.                unsigned long  *,            /* entries returned;  was USHORT */
  726.                unsigned long  *,            /* entries available; was USHORT */
  727.                unsigned char *);            /* reserved                  */
  728. #endif /* PURE_32 */
  729.  
  730.  
  731. /****************************************************************
  732.  *                                                              *
  733.  *              Special values and constants - Applications     *
  734.  *                                                              *
  735.  ****************************************************************/
  736.  
  737. /*
  738.  * the definitions below are used in various app_info_x.appx_flags elements
  739.  */
  740.  
  741. /*
  742.  * info structure levels
  743.  */
  744.  
  745. #define APP_LEVEL_0        0
  746. #define APP_LEVEL_1        1
  747. #define APP_LEVEL_2        2
  748. #define APP_LEVEL_3        3
  749. #define APP_LEVEL_10      10
  750. #define APP_LEVEL_11      11
  751. #define APP_LEVEL_12      12
  752. #define APP_LEVEL_13      13
  753.  
  754. /*
  755.  * appx.apptype:  application types  (also masks for NetAppEnum)
  756.  */
  757.  
  758. #define APP_DOS_PUBLIC   0x01
  759. #define APP_OS2_PUBLIC   0x02
  760. #define APP_OS2_PRIVATE  0x04
  761. #define APP_ALL          0x07
  762. #define APP_DOS_PRIVATE  0x08
  763. #define APP_ALL2         0x0F
  764. #define APP_TYPE_UNKNOWN 0x40
  765.  
  766. /*
  767.  * appx_flags.interface:  application interface - OS/2 apps only
  768.  */
  769.  
  770. #define APP_PM           0x1
  771. #define APP_PROT         0x2
  772. #define APP_VIO          0x4
  773.  
  774. /*
  775.  * values for application SetInfo
  776.  */
  777.  
  778. #define APP_REMARK_PARMNUM     3
  779. #define APP_CMDLINE_PARMNUM    4
  780. #define APP_CMDPARMS_PARMNUM   5
  781.  
  782. #define APP1_NUM_ELEMENTS    3
  783. #define APP2_NUM_ELEMENTS   16
  784.  
  785. /*
  786.  * The following characters are NOT allowed in application names
  787.  */
  788. #define INVALID_APPNAME_CHARS   " .\"/\\[]:|<>+=;,?*"
  789.  
  790. /*
  791.  * The following character is NOT allowed in a remark
  792.  */
  793. #define INVALID_REMARK_CHAR  "\\"
  794.  
  795.  
  796. #ifdef ANY_32_BIT
  797. #endif
  798.  
  799. #pragma pack ()
  800. #endif /* NETDCDB_INCLUDED */
  801.