00001 #ifndef _LMSHARE_H
00002 #define _LMSHARE_H
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 #include <lmcons.h>
00008 #define SHARE_NETNAME_PARMNUM 1
00009 #define SHARE_TYPE_PARMNUM 3
00010 #define SHARE_REMARK_PARMNUM 4
00011 #define SHARE_PERMISSIONS_PARMNUM 5
00012 #define SHARE_MAX_USES_PARMNUM 6
00013 #define SHARE_CURRENT_USES_PARMNUM 7
00014 #define SHARE_PATH_PARMNUM 8
00015 #define SHARE_PASSWD_PARMNUM 9
00016 #define SHARE_FILE_SD_PARMNUM 501
00017 #define SHARE_REMARK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_REMARK_PARMNUM)
00018 #define SHARE_MAX_USES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_MAX_USES_PARMNUM)
00019 #define SHARE_FILE_SD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_FILE_SD_PARMNUM)
00020 #define SHI1_NUM_ELEMENTS 4
00021 #define SHI2_NUM_ELEMENTS 10
00022 #define STYPE_DISKTREE 0
00023 #define STYPE_PRINTQ 1
00024 #define STYPE_DEVICE 2
00025 #define STYPE_IPC 3
00026 #define STYPE_DFS 100
00027 #define STYPE_SPECIAL 0x80000000
00028 #define SHI_USES_UNLIMITED (DWORD)(-1)
00029 #define SESS_GUEST 1
00030 #define SESS_NOENCRYPTION 2
00031 #define SESI1_NUM_ELEMENTS 8
00032 #define SESI2_NUM_ELEMENTS 9
00033 #define PERM_FILE_READ 1
00034 #define PERM_FILE_WRITE 2
00035 #define PERM_FILE_CREATE 4
00036 typedef struct _FILE_INFO_2 { DWORD fi2_id;} FILE_INFO_2,*PFILE_INFO_2,*LPFILE_INFO_2;
00037 typedef struct _FILE_INFO_3 {
00038 DWORD fi3_id;
00039 DWORD fi3_permissions;
00040 DWORD fi3_num_locks;
00041 LPTSTR fi3_pathname;
00042 LPTSTR fi3_username;
00043 } FILE_INFO_3,*PFILE_INFO_3,*LPFILE_INFO_3;
00044 typedef struct _SHARE_INFO_0 { LPTSTR shi0_netname; } SHARE_INFO_0,*PSHARE_INFO_0,*LPSHARE_INFO_0;
00045 typedef struct _SHARE_INFO_1 {
00046 LPTSTR shi1_netname;
00047 DWORD shi1_type;
00048 LPTSTR shi1_remark;
00049 } SHARE_INFO_1,*PSHARE_INFO_1,*LPSHARE_INFO_1;
00050 typedef struct _SHARE_INFO_2 {
00051 LPTSTR shi2_netname;
00052 DWORD shi2_type;
00053 LPTSTR shi2_remark;
00054 DWORD shi2_permissions;
00055 DWORD shi2_max_uses;
00056 DWORD shi2_current_uses;
00057 LPTSTR shi2_path;
00058 LPTSTR shi2_passwd;
00059 } SHARE_INFO_2,*PSHARE_INFO_2,*LPSHARE_INFO_2;
00060 typedef struct _SHARE_INFO_502 {
00061 LPTSTR shi502_netname;
00062 DWORD shi502_type;
00063 LPTSTR shi502_remark;
00064 DWORD shi502_permissions;
00065 DWORD shi502_max_uses;
00066 DWORD shi502_current_uses;
00067 LPTSTR shi502_path;
00068 LPTSTR shi502_passwd;
00069 DWORD shi502_reserved;
00070 PSECURITY_DESCRIPTOR shi502_security_descriptor;
00071 } SHARE_INFO_502,*PSHARE_INFO_502,*LPSHARE_INFO_502;
00072 typedef struct _SHARE_INFO_1004 {
00073 LPTSTR shi1004_remark;
00074 } SHARE_INFO_1004,*PSHARE_INFO_1004,*LPSHARE_INFO_1004;
00075 typedef struct _SHARE_INFO_1006 {
00076 DWORD shi1006_max_uses;
00077 } SHARE_INFO_1006,*PSHARE_INFO_1006,*LPSHARE_INFO_1006;
00078 typedef struct _SHARE_INFO_1501 {
00079 DWORD shi1501_reserved;
00080 PSECURITY_DESCRIPTOR shi1501_security_descriptor;
00081 } SHARE_INFO_1501,*PSHARE_INFO_1501,*LPSHARE_INFO_1501;
00082 typedef struct _SESSION_INFO_0 { LPWSTR sesi0_cname; } SESSION_INFO_0,*PSESSION_INFO_0,*LPSESSION_INFO_0;
00083 typedef struct _SESSION_INFO_1 {
00084 LPTSTR sesi1_cname;
00085 LPTSTR sesi1_username;
00086 DWORD sesi1_num_opens;
00087 DWORD sesi1_time;
00088 DWORD sesi1_idle_time;
00089 DWORD sesi1_user_flags;
00090 } SESSION_INFO_1,*PSESSION_INFO_1,*LPSESSION_INFO_1;
00091 typedef struct _SESSION_INFO_2 {
00092 LPTSTR sesi2_cname;
00093 LPTSTR sesi2_username;
00094 DWORD sesi2_num_opens;
00095 DWORD sesi2_time;
00096 DWORD sesi2_idle_time;
00097 DWORD sesi2_user_flags;
00098 LPWSTR sesi2_cltype_name;
00099 } SESSION_INFO_2,*PSESSION_INFO_2,*LPSESSION_INFO_2;
00100 typedef struct _SESSION_INFO_10 {
00101 LPWSTR sesi10_cname;
00102 LPWSTR sesi10_username;
00103 DWORD sesi10_time;
00104 DWORD sesi10_idle_time;
00105 } SESSION_INFO_10,*PSESSION_INFO_10,*LPSESSION_INFO_10;
00106 typedef struct _SESSION_INFO_502 {
00107 LPWSTR sesi502_cname;
00108 LPWSTR sesi502_username;
00109 DWORD sesi502_num_opens;
00110 DWORD sesi502_time;
00111 DWORD sesi502_idle_time;
00112 DWORD sesi502_user_flags;
00113 LPWSTR sesi502_cltype_name;
00114 LPWSTR sesi502_transport;
00115 } SESSION_INFO_502,*PSESSION_INFO_502,*LPSESSION_INFO_502;
00116 typedef struct _CONNECTION_INFO_0 { DWORD coni0_id; } CONNECTION_INFO_0,*PCONNECTION_INFO_0,*LPCONNECTION_INFO_0;
00117 typedef struct _CONNECTION_INFO_1 {
00118 DWORD coni1_id;
00119 DWORD coni1_type;
00120 DWORD coni1_num_opens;
00121 DWORD coni1_num_users;
00122 DWORD coni1_time;
00123 LPWSTR coni1_username;
00124 LPWSTR coni1_netname;
00125 } CONNECTION_INFO_1,*PCONNECTION_INFO_1,*LPCONNECTION_INFO_1;
00126
00127 NET_API_STATUS WINAPI NetShareAdd(LMSTR,DWORD,LPBYTE,LPDWORD);
00128 NET_API_STATUS WINAPI NetShareCheck(LMSTR,LMSTR,LPDWORD);
00129 NET_API_STATUS WINAPI NetShareDel(LMSTR,LMSTR,DWORD);
00130 NET_API_STATUS WINAPI NetShareDelEx(LMSTR,DWORD,LPBYTE);
00131 NET_API_STATUS WINAPI NetShareDelSticky(LMSTR,LMSTR,DWORD);
00132 NET_API_STATUS WINAPI NetShareEnum(LMSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
00133 NET_API_STATUS WINAPI NetShareEnumSticky(LMSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
00134 NET_API_STATUS WINAPI NetShareGetInfo(LMSTR,LMSTR,DWORD,LPBYTE*);
00135 NET_API_STATUS WINAPI NetShareSetInfo(LMSTR,LMSTR,DWORD,LPBYTE,LPDWORD);
00136
00137 NET_API_STATUS WINAPI NetSessionDel(LMSTR,LMSTR,LMSTR);
00138 NET_API_STATUS WINAPI NetSessionEnum(LMSTR,LMSTR,LMSTR,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD,LPDWORD);
00139 NET_API_STATUS WINAPI NetSessionGetInfo(LMSTR,LMSTR,LMSTR,DWORD,LPBYTE*);
00140
00141 NET_API_STATUS WINAPI NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
00142 NET_API_STATUS WINAPI NetFileClose(LPWSTR,DWORD);
00143 NET_API_STATUS WINAPI NetFileEnum(LMSTR,LMSTR,LMSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD_PTR);
00144 NET_API_STATUS WINAPI NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*);
00145 #ifdef __cplusplus
00146 }
00147 #endif
00148 #endif