home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / SHARES.H < prev    next >
C/C++ Source or Header  |  1999-04-29  |  24KB  |  575 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Local Area Network (LAN) Server              */
  4. /*                            Version 5.03                                */
  5. /*                   (C) Copyright IBM Corp. 1988, 1998                   */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                                                                        */
  8. /**************************************************************************/
  9. /********************************************************************/
  10.  
  11. /********************************************************************
  12.  *                                                                  *
  13.  *  About this file ...  SHARES.H                                   *
  14.  *                                                                  *
  15.  *  This file contains information about the NetShare, NetSession,  *
  16.  *  NetFile, and NetConnection APIs.  For each API class there is   *
  17.  *  a section on:                                                   *
  18.  *                                                                  *
  19.  *      Function prototypes.                                        *
  20.  *                                                                  *
  21.  *      Data structure templates.                                   *
  22.  *                                                                  *
  23.  *      Definition of special values.                               *
  24.  *                                                                  *
  25.  *                                                                  *
  26.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  27.  *         file depends on values defined in NETCONS.H.             *
  28.  *                                                                  *
  29.  *         This file is always included by LAN.H.                   *
  30.  *                                                                  *
  31.  ********************************************************************/
  32.  
  33.  
  34.  
  35. /****************************************************************
  36.  *                                                              *
  37.  *              Share Class                                     *
  38.  *                                                              *
  39.  ****************************************************************/
  40.  
  41. #if (defined( INCL_NETSHARE ) || !defined( LAN_INCLUDED )) \
  42.     && !defined( NETSHARE_INCLUDED )
  43.  
  44. #define NETSHARE_INCLUDED
  45. #ifdef ANY_32_BIT
  46. #pragma pack(1)
  47. #endif
  48.  
  49. /****************************************************************
  50.  *                                                              *
  51.  *              Function prototypes - SHARE                     *
  52.  *                                                              *
  53.  ****************************************************************/
  54.  
  55.  
  56. extern API_FUNCTION
  57.   NetShareAdd ( const unsigned char LSFAR * pszServer,
  58.                 short                       sLevel,
  59.                 const unsigned char LSFAR * pbBuffer,
  60.                 unsigned short              cbBuffer );
  61.  
  62. extern API_FUNCTION
  63.   NetShareCheck ( const unsigned char LSFAR *     pszServer,
  64.                   const unsigned char LSFAR *     pszDeviceName,
  65.                   unsigned short LSFAR *          pusType );
  66.  
  67. extern API_FUNCTION
  68.   NetShareDel ( const unsigned char LSFAR * pszServer,
  69.                 const unsigned char LSFAR * pszNetName,
  70.                 unsigned short              usReserved );
  71.  
  72. extern API_FUNCTION
  73.   NetShareEnum ( const unsigned char LSFAR *     pszServer,
  74.                  short                           sLevel,
  75.                  unsigned char LSFAR *           pbBuffer,
  76.                  unsigned short                  cbBuffer,
  77.                  unsigned short LSFAR *          pcEntriesRead,
  78.                  unsigned short LSFAR *          pcTotalAvail );
  79.  
  80. extern API_FUNCTION
  81.   NetShareGetInfo ( const unsigned char LSFAR *     pszServer,
  82.                     const unsigned char LSFAR *     pszNetName,
  83.                     short                           sLevel,
  84.                     unsigned char LSFAR *           pbBuffer,
  85.                     unsigned short                  cbBuffer,
  86.                     unsigned short LSFAR *          pcbTotalAvail );
  87.  
  88. extern API_FUNCTION
  89.   NetShareSetInfo ( const unsigned char LSFAR * pszServer,
  90.                     const unsigned char LSFAR * pszNetName,
  91.                     short                       sLevel,
  92.                     const unsigned char LSFAR * pbBuffer,
  93.                     unsigned short              cbBuffer,
  94.                     short                       sParmNum );
  95.  
  96.  
  97. /****************************************************************
  98.  *                                                              *
  99.  *              Data structure templates - SHARE                *
  100.  *                                                              *
  101.  ****************************************************************/
  102.  
  103. struct share_info_0 {
  104.     unsigned char      shi0_netname[NNLEN+1];
  105. };  /* share_info_0 */
  106.  
  107. struct share_info_1 {
  108.     unsigned char      shi1_netname[NNLEN+1];
  109.     unsigned char      shi1_pad1;
  110.     unsigned short     shi1_type;
  111.     unsigned char LSFAR * LSPTR shi1_remark;
  112. };  /* share_info_1 */
  113.  
  114. struct share_info_2 {
  115.     unsigned char      shi2_netname[NNLEN+1];
  116.     unsigned char      shi2_pad1;
  117.     unsigned short     shi2_type;
  118.     unsigned char LSFAR * LSPTR shi2_remark;
  119.     unsigned short     shi2_permissions;
  120.     unsigned short     shi2_max_uses;
  121.     unsigned short     shi2_current_uses;
  122.     unsigned char LSFAR * LSPTR shi2_path;
  123.     unsigned char      shi2_passwd[SHPWLEN+1];
  124.     unsigned char      shi2_pad2;
  125. };  /* share_info_2 */
  126.  
  127.  
  128.  
  129. #ifdef PURE_32
  130. /****************************************************************
  131.  *                                                              *
  132.  *              Function prototypes - SHARE                     *
  133.  *                for "pure" 32-bit code                        *
  134.  *                                                              *
  135.  ****************************************************************/
  136.  
  137. extern API32_FUNCTION
  138. Net32ShareAdd ( const unsigned char * pszServer,
  139.                 unsigned long         ulLevel,           /* was signed short */
  140.                 const unsigned char * pbBuffer,
  141.                 unsigned long         ulBuffer );        /* was USHORT */
  142.  
  143. extern API32_FUNCTION
  144. Net32ShareCheck ( const unsigned char * pszServer,
  145.                   const unsigned char * pszDeviceName,
  146.                   unsigned long       * pulType );      /* was USHORT */
  147.  
  148. extern API32_FUNCTION
  149. Net32ShareDel ( const unsigned char * pszServer,
  150.                 const unsigned char * pszNetName,
  151.                 unsigned long         ulReserved );     /* was USHORT */
  152.  
  153. extern API32_FUNCTION
  154. Net32ShareEnum ( const unsigned char     * pszServer,
  155.                  unsigned long     ulLevel,       /* was signed short */
  156.                  unsigned char   * pbBuffer,
  157.                  unsigned long     ulBuffer,       /* was USHORT */
  158.                  unsigned long   * pulEntriesRead, /* was USHORT */
  159.                  unsigned long   * pulTotalAvail );/* was USHORT */
  160.  
  161. extern API32_FUNCTION
  162. Net32ShareGetInfo ( const unsigned char     * pszServer,
  163.                     const unsigned char     * pszNetName,
  164.                     unsigned long     ulLevel,        /* was signed short */
  165.                     unsigned char   * pbBuffer,
  166.                     unsigned long     ulBuffer,        /* was USHORT */
  167.                     unsigned long   * pulTotalAvail ); /* was USHORT */
  168.  
  169. extern API32_FUNCTION
  170. Net32ShareSetInfo ( const unsigned char    * pszServer,
  171.                     const unsigned char    * pszNetName,
  172.                     unsigned long    ulLevel,     /* was signed short */
  173.                     const unsigned char    * pbBuffer,
  174.                     unsigned long    ulBuffer,    /* was USHORT */
  175.                     unsigned long    ulParmNum ); /* was signed short */
  176. #endif /* PURE_32 */
  177.  
  178. /****************************************************************
  179.  *                                                              *
  180.  *          Special values and constants - SHARE                *
  181.  *                                                              *
  182.  ****************************************************************/
  183.  
  184.  
  185. /*
  186.  *      Values for parmnum parameter to NetShareSetInfo.
  187.  */
  188.  
  189. #define SHI_REMARK_PARMNUM              4
  190. #define SHI_PERMISSIONS_PARMNUM         5
  191. #define SHI_MAX_USES_PARMNUM            6
  192. #define SHI_PASSWD_PARMNUM              9
  193.  
  194. #define SHI1_NUM_ELEMENTS               4
  195. #define SHI2_NUM_ELEMENTS              10
  196.  
  197.  
  198. /*
  199.  *      Share types (shi1_type and shi2_type fields).
  200.  */
  201.  
  202. #define STYPE_DISKTREE                  0
  203. #define STYPE_PRINTQ                    1
  204. #define STYPE_DEVICE                    2
  205. #define STYPE_IPC                       3
  206.  
  207. #define SHI_USES_UNLIMITED              -1
  208.  
  209. #endif /* NETSHARE_INCLUDED */
  210.  
  211.  
  212. /****************************************************************
  213.  *                                                              *
  214.  *         Session Class                                        *
  215.  *                                                              *
  216.  ****************************************************************/
  217.  
  218. #if (defined( INCL_NETSESSION ) || !defined( LAN_INCLUDED )) \
  219.     && !defined( NETSESSION_INCLUDED )
  220.  
  221. #define NETSESSION_INCLUDED
  222.  
  223.  
  224. /****************************************************************
  225.  *                                                              *
  226.  *              Function prototypes - SESSION                   *
  227.  *                                                              *
  228.  ****************************************************************/
  229.  
  230. extern API_FUNCTION
  231.   NetSessionDel ( const unsigned char LSFAR * pszServer,
  232.                   const unsigned char LSFAR * pszClientName,
  233.                   short              sReserved );
  234.  
  235. extern API_FUNCTION
  236.   NetSessionEnum ( const unsigned char LSFAR *     pszServer,
  237.                    short                  sLevel,
  238.                    unsigned char LSFAR *           pbBuffer,
  239.                    unsigned short         cbBuffer,
  240.                    unsigned short LSFAR * pcEntriesRead,
  241.                    unsigned short LSFAR * pcTotalAvail );
  242.  
  243. extern API_FUNCTION
  244.   NetSessionGetInfo ( const unsigned char LSFAR *     pszServer,
  245.                       const unsigned char LSFAR *     pszClientName,
  246.                       short                  sLevel,
  247.                       unsigned char LSFAR *           pbBuffer,
  248.                       unsigned short         cbBuffer,
  249.                       unsigned short LSFAR * pcbTotalAvail );
  250.  
  251.  
  252. /****************************************************************
  253.  *                                                              *
  254.  *            Data structure templates - SESSION                *
  255.  *                                                              *
  256.  ****************************************************************/
  257.  
  258.  
  259. struct session_info_0 {
  260.     unsigned char LSFAR * LSPTR sesi0_cname;
  261. };  /* session_info_0 */
  262.  
  263. struct session_info_1 {
  264.     unsigned char LSFAR * LSPTR sesi1_cname;
  265.     unsigned char LSFAR * LSPTR sesi1_username;
  266.     unsigned short     sesi1_num_conns;
  267.     unsigned short     sesi1_num_opens;
  268.     unsigned short     sesi1_num_users;
  269.     unsigned long      sesi1_time;
  270.     unsigned long      sesi1_idle_time;
  271.     unsigned long      sesi1_user_flags;
  272. };  /* session_info_1 */
  273.  
  274. struct session_info_2 {
  275.     unsigned char LSFAR * LSPTR sesi2_cname;
  276.     unsigned char LSFAR * LSPTR sesi2_username;
  277.     unsigned short     sesi2_num_conns;
  278.     unsigned short     sesi2_num_opens;
  279.     unsigned short     sesi2_num_users;
  280.     unsigned long      sesi2_time;
  281.     unsigned long      sesi2_idle_time;
  282.     unsigned long      sesi2_user_flags;
  283.     unsigned char LSFAR * LSPTR sesi2_cltype_name;
  284. };  /* session_info_2 */
  285.  
  286. struct session_info_10 {
  287.         unsigned char LSFAR * LSPTR sesi10_cname;
  288.         unsigned char LSFAR * LSPTR sesi10_username;
  289.         unsigned long      sesi10_time;
  290.         unsigned long      sesi10_idle_time;
  291. };  /* session_info_10 */
  292.  
  293.  
  294.  
  295. #ifdef PURE_32
  296. /****************************************************************
  297.  *                                                              *
  298.  *              Function prototypes - SESSION                   *
  299.  *                                                              *
  300.  ****************************************************************/
  301.  
  302. extern API32_FUNCTION
  303. Net32SessionDel (const unsigned char    * pszServer,
  304.                  const unsigned char    * pszClientName,
  305.                  unsigned long    ulReserved);  /* was signed short */
  306.  
  307. extern API32_FUNCTION
  308. Net32SessionEnum (const unsigned char    * pszServer,
  309.                   unsigned long    ulLevel,         /* was signed short */
  310.                   unsigned char  * pbBuffer,
  311.                   unsigned long    ulBuffer,        /* was USHORT */
  312.                   unsigned long  * pulEntriesRead,  /* was USHORT */
  313.                   unsigned long  * pulTotalAvail);  /* was USHORT */
  314.  
  315. extern API32_FUNCTION
  316. Net32SessionGetInfo (const unsigned char    * pszServer,
  317.                      const unsigned char    * pszClientName,
  318.                      unsigned long    ulLevel,        /* was signed short */
  319.                      unsigned char  * pbBuffer,
  320.                      unsigned long    ulBuffer,       /* was USHORT */
  321.                      unsigned long  * pulTotalAvail); /* was USHORT */
  322. #endif /* PURE_32 */
  323.  
  324.  
  325.  
  326. /****************************************************************
  327.  *                                                              *
  328.  *        Special values and constants - SESSION                *
  329.  *                                                              *
  330.  ****************************************************************/
  331.  
  332. /*
  333.  *      Bits defined in sesi1_user_flags.
  334.  */
  335.  
  336. #define SESS_GUEST              1       /* session is logged on as a guest */
  337. #define SESS_NOENCRYPTION       2       /* session is not using encryption */
  338.  
  339.  
  340. #define SESI1_NUM_ELEMENTS      8
  341. #define SESI2_NUM_ELEMENTS      9
  342.  
  343. #endif /* NETSESSION_INCLUDED */
  344.  
  345.  
  346. /****************************************************************
  347.  *                                                              *
  348.  *              Connection Class                                *
  349.  *                                                              *
  350.  ****************************************************************/
  351.  
  352. #if (defined( INCL_NETCONNECTION ) || !defined( LAN_INCLUDED )) \
  353.     && !defined( NETCONNECTION_INCLUDED )
  354.  
  355. #define NETCONNECTION_INCLUDED
  356.  
  357.  
  358. /****************************************************************
  359.  *                                                              *
  360.  *              Function prototypes - CONNECTION                *
  361.  *                                                              *
  362.  ****************************************************************/
  363.  
  364. extern API_FUNCTION
  365.   NetConnectionEnum ( const unsigned char LSFAR *     pszServer,
  366.                       const unsigned char LSFAR *     pszQualifier,
  367.                       short                  sLevel,
  368.                       unsigned char LSFAR *           pbBuffer,
  369.                       unsigned short         cbBuffer,
  370.                       unsigned short LSFAR * pcEntriesRead,
  371.                       unsigned short LSFAR * pcTotalAvail );
  372.  
  373.  
  374. /****************************************************************
  375.  *                                                              *
  376.  *              Data structure templates - CONNECTION           *
  377.  *                                                              *
  378.  ****************************************************************/
  379.  
  380. struct connection_info_0 {
  381.     unsigned short      coni0_id;
  382. };  /* connection_info_0 */
  383.  
  384. struct connection_info_1 {
  385.     unsigned short     coni1_id;
  386.     unsigned short     coni1_type;
  387.     unsigned short     coni1_num_opens;
  388.     unsigned short     coni1_num_users;
  389.     unsigned long      coni1_time;
  390.     unsigned char LSFAR * LSPTR coni1_username;
  391.     unsigned char LSFAR * LSPTR coni1_netname;
  392. };  /* connection_info_1 */
  393.  
  394.  
  395. #ifdef PURE_32
  396. /****************************************************************
  397.  *                                                              *
  398.  *       Function prototypes - CONNECTION (32-Bit)              *
  399.  *                                                              *
  400.  ****************************************************************/
  401.  
  402. extern API32_FUNCTION
  403.   Net32ConnectionEnum ( const unsigned char    * pszServer,
  404.                         const unsigned char    * pszQualifier,
  405.                         unsigned long    ulLevel,         /* was signed short*/
  406.                         unsigned char  * pbBuffer,
  407.                         unsigned long    ulBuffer,        /* was USHORT */
  408.                         unsigned long  * pulEntriesRead,  /* was PUSHORT*/
  409.                         unsigned long  * pulTotalAvail ); /* was PUSHORT*/
  410. #endif /* PURE_32 */
  411.  
  412.  
  413. #endif /* NETCONNECTION_INCLUDED */
  414.  
  415.  
  416. /****************************************************************
  417.  *                                                              *
  418.  *              File Class                                      *
  419.  *                                                              *
  420.  ****************************************************************/
  421.  
  422. #if (defined( INCL_NETFILE ) || !defined( LAN_INCLUDED )) \
  423.     && !defined( NETFILE_INCLUDED )
  424.  
  425. #define NETFILE_INCLUDED
  426.  
  427.  
  428. /****************************************************************
  429.  *                                                              *
  430.  *              Function prototypes - FILE                      *
  431.  *                                                              *
  432.  ****************************************************************/
  433.  
  434. extern API_FUNCTION
  435.   NetFileClose ( const unsigned char LSFAR * pszServer,
  436.                  unsigned short     usFileId );
  437.  
  438. extern API_FUNCTION
  439.   NetFileClose2 ( const unsigned char LSFAR * pszServer,
  440.                   unsigned long      ulFileId );
  441.  
  442. extern API_FUNCTION
  443.   NetFileEnum ( const unsigned char LSFAR *     pszServer,
  444.                 const unsigned char LSFAR *     pszBasePath,
  445.                 short                  sLevel,
  446.                 unsigned char LSFAR *           pbBuffer,
  447.                 unsigned short         cbBuffer,
  448.                 unsigned short LSFAR * pcEntriesRead,
  449.                 unsigned short LSFAR * pcTotalAvail );
  450.  
  451. extern API_FUNCTION
  452.   NetFileEnum2 ( const unsigned char LSFAR *     pszServer,
  453.                  const unsigned char LSFAR *     pszBasePath,
  454.                  const unsigned char LSFAR *     pszUserName,
  455.                  short                  sLevel,
  456.                  unsigned char LSFAR *           pbBuffer,
  457.                  unsigned short         cbBuffer,
  458.                  unsigned short LSFAR * pcEntriesRead,
  459.                  unsigned short LSFAR * pcEntriesRemaining,
  460.                  void LSFAR *           pResumeKey );
  461.  
  462. extern API_FUNCTION
  463.   NetFileGetInfo ( const unsigned char LSFAR *     pszServer,
  464.                    unsigned short         usFileId,
  465.                    short                  sLevel,
  466.                    unsigned char LSFAR *           pbBuffer,
  467.                    unsigned short         cbBuffer,
  468.                    unsigned short LSFAR * pcbTotalAvail );
  469.  
  470. extern API_FUNCTION
  471.   NetFileGetInfo2 ( const unsigned char LSFAR *     pszServer,
  472.                     unsigned long          ulFileId,
  473.                     short                  sLevel,
  474.                     unsigned char LSFAR *           pbBuffer,
  475.                     unsigned short         cbBuffer,
  476.                     unsigned short LSFAR * pcbTotalAvail );
  477.  
  478.  
  479. /****************************************************************
  480.  *                                                              *
  481.  *              Data structure templates - FILE                 *
  482.  *                                                              *
  483.  ****************************************************************/
  484.  
  485. struct file_info_0 {
  486.     unsigned short      fi0_id;
  487. };  /* file_info_0 */
  488.  
  489. struct file_info_1 {
  490.     unsigned short     fi1_id;
  491.     unsigned short     fi1_permissions;
  492.     unsigned short     fi1_num_locks;
  493.     unsigned char LSFAR * LSPTR fi1_pathname;
  494.     unsigned char LSFAR * LSPTR fi1_username;
  495. };  /* file_info_1 */
  496.  
  497. struct file_info_2 {
  498.     unsigned long       fi2_id;
  499. };  /* file_info_2 */
  500.  
  501. struct file_info_3 {
  502.     unsigned long      fi3_id;
  503.     unsigned short     fi3_permissions;
  504.     unsigned short     fi3_num_locks;
  505.     unsigned char LSFAR * LSPTR fi3_pathname;
  506.     unsigned char LSFAR * LSPTR fi3_username;
  507. };  /* file_info_3 */
  508.  
  509.  
  510. struct res_file_enum_2 {
  511.     unsigned short      res_pad;         /* not used now */
  512.     unsigned short      res_fs;          /* server type */
  513.     unsigned long       res_pro;          /* progressive */
  514. };  /* res_file_enum_2 */
  515.  
  516. #ifdef  PURE_32
  517. /****************************************************************
  518.  *                                                              *
  519.  *              Function prototypes - FILE                      *
  520.  *                for "pure" 32-bit code                        *
  521.  *                                                              *
  522.  ****************************************************************/
  523. extern API32_FUNCTION
  524. Net32FileClose2 ( const unsigned char    * pszServer,
  525.                   unsigned long    ulFileId );
  526.  
  527. extern API32_FUNCTION
  528. Net32FileEnum2 ( const unsigned char    * pszServer,
  529.                  const unsigned char    * pszBasePath,
  530.                  const unsigned char    * pszUserName,
  531.                  unsigned long    ulLevel,             /*was signed short*/
  532.                  unsigned char  * pbBuffer,
  533.                  unsigned long    ulBuffer,            /* was USHORT */
  534.                  unsigned long  * pulEntriesRead,      /* was PUSHORT*/
  535.                  unsigned long  * pulEntriesRemaining, /* was PUSHORT*/
  536.                  void           * pResumeKey );
  537.  
  538. extern API32_FUNCTION
  539. Net32FileGetInfo2 ( const unsigned char    * pszServer,
  540.                     unsigned long    ulFileId,
  541.                     unsigned long    ulLevel,          /*was signed short*/
  542.                     unsigned char  * pbBuffer,
  543.                     unsigned long    ulBuffer,         /* was USHORT */
  544.                     unsigned long  * pulTotalAvail );  /* was PUSHORT*/
  545. #endif /* PURE_32 */
  546.  
  547.  
  548.  
  549. /****************************************************************
  550.  *                                                              *
  551.  *              Special values and constants - FILE             *
  552.  *                                                              *
  553.  ****************************************************************/
  554.  
  555.                                         /* bit values for permissions */
  556. #define PERM_FILE_READ          0x1     /* user has read access */
  557. #define PERM_FILE_WRITE         0x2     /* user has write access */
  558. #define PERM_FILE_CREATE        0x4     /* user has create access */
  559.  
  560.  
  561. typedef struct res_file_enum_2 FRK;
  562.  
  563. #define FRK_INIT( f )   \
  564.         {               \
  565.                 (f).res_pad = 0L;       \
  566.                 (f).res_fs = 0; \
  567.                 (f).res_pro = 0;        \
  568.         }
  569.  
  570.  
  571. #ifdef ANY_32_BIT
  572. #pragma pack()
  573. #endif
  574. #endif /* NETFILE_INCLUDED */
  575.