home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / SHARES.H < prev    next >
C/C++ Source or Header  |  1997-09-05  |  24KB  |  573 lines

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