1 /***********************************************************************\
2 *                                lmrepl.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmrepl;
11 pragma(lib, "netapi32.lib");
12 
13 private import win32.lmcons, win32.windef;
14 
15 const REPL_ROLE_EXPORT=1;
16 const REPL_ROLE_IMPORT=2;
17 const REPL_ROLE_BOTH=3;
18 
19 const REPL_INTERVAL_INFOLEVEL  = PARMNUM_BASE_INFOLEVEL+0;
20 const REPL_PULSE_INFOLEVEL     = PARMNUM_BASE_INFOLEVEL+1;
21 const REPL_GUARDTIME_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+2;
22 const REPL_RANDOM_INFOLEVEL    = PARMNUM_BASE_INFOLEVEL+3;
23 
24 const REPL_UNLOCK_NOFORCE=0;
25 const REPL_UNLOCK_FORCE=1;
26 const REPL_STATE_OK=0;
27 const REPL_STATE_NO_MASTER=1;
28 const REPL_STATE_NO_SYNC=2;
29 const REPL_STATE_NEVER_REPLICATED=3;
30 const REPL_INTEGRITY_FILE=1;
31 const REPL_INTEGRITY_TREE=2;
32 const REPL_EXTENT_FILE=1;
33 const REPL_EXTENT_TREE=2;
34 
35 const REPL_EXPORT_INTEGRITY_INFOLEVEL = PARMNUM_BASE_INFOLEVEL+0;
36 const REPL_EXPORT_EXTENT_INFOLEVEL    = PARMNUM_BASE_INFOLEVEL+1;
37 
38 struct REPL_INFO_0 {
39 	DWORD rp0_role;
40 	LPWSTR rp0_exportpath;
41 	LPWSTR rp0_exportlist;
42 	LPWSTR rp0_importpath;
43 	LPWSTR rp0_importlist;
44 	LPWSTR rp0_logonusername;
45 	DWORD rp0_interval;
46 	DWORD rp0_pulse;
47 	DWORD rp0_guardtime;
48 	DWORD rp0_random;
49 }
50 alias REPL_INFO_0* PREPL_INFO_0, LPREPL_INFO_0;
51 
52 struct REPL_INFO_1000 {
53 	DWORD rp1000_interval;
54 }
55 alias REPL_INFO_1000* PREPL_INFO_1000, LPREPL_INFO_1000;
56 
57 struct REPL_INFO_1001 {
58 	DWORD rp1001_pulse;
59 }
60 alias REPL_INFO_1001* PREPL_INFO_1001, LPREPL_INFO_1001;
61 
62 struct REPL_INFO_1002 {
63 	DWORD rp1002_guardtime;
64 }
65 alias REPL_INFO_1002* PREPL_INFO_1002, LPREPL_INFO_1002;
66 
67 struct REPL_INFO_1003 {
68 	DWORD rp1003_random;
69 }
70 alias REPL_INFO_1003* PREPL_INFO_1003, LPREPL_INFO_1003;
71 
72 struct REPL_EDIR_INFO_0 {
73 	LPWSTR rped0_dirname;
74 }
75 alias REPL_EDIR_INFO_0* PREPL_EDIR_INFO_0, LPREPL_EDIR_INFO_0;
76 
77 struct REPL_EDIR_INFO_1 {
78 	LPWSTR rped1_dirname;
79 	DWORD rped1_integrity;
80 	DWORD rped1_extent;
81 }
82 alias REPL_EDIR_INFO_1* PREPL_EDIR_INFO_1, LPREPL_EDIR_INFO_1;
83 
84 struct REPL_EDIR_INFO_2 {
85 	LPWSTR rped2_dirname;
86 	DWORD rped2_integrity;
87 	DWORD rped2_extent;
88 	DWORD rped2_lockcount;
89 	DWORD rped2_locktime;
90 }
91 alias REPL_EDIR_INFO_2* PREPL_EDIR_INFO_2, LPREPL_EDIR_INFO_2;
92 
93 struct REPL_EDIR_INFO_1000 {
94 	DWORD rped1000_integrity;
95 }
96 alias REPL_EDIR_INFO_1000* PREPL_EDIR_INFO_1000, LPREPL_EDIR_INFO_1000;
97 
98 struct REPL_EDIR_INFO_1001 {
99 	DWORD rped1001_extent;
100 }
101 alias REPL_EDIR_INFO_1001* PREPL_EDIR_INFO_1001, LPREPL_EDIR_INFO_1001;
102 
103 struct REPL_IDIR_INFO_0 {
104 	LPWSTR rpid0_dirname;
105 }
106 alias REPL_IDIR_INFO_0* PREPL_IDIR_INFO_0, LPREPL_IDIR_INFO_0;
107 
108 struct REPL_IDIR_INFO_1 {
109 	LPWSTR rpid1_dirname;
110 	DWORD rpid1_state;
111 	LPWSTR rpid1_mastername;
112 	DWORD rpid1_last_update_time;
113 	DWORD rpid1_lockcount;
114 	DWORD rpid1_locktime;
115 }
116 alias REPL_IDIR_INFO_1* PREPL_IDIR_INFO_1, LPREPL_IDIR_INFO_1;
117 
118 extern (Windows) {
119 NET_API_STATUS NetReplGetInfo(LPCWSTR,DWORD,PBYTE*);
120 NET_API_STATUS NetReplSetInfo(LPCWSTR,DWORD,PBYTE,PDWORD);
121 NET_API_STATUS NetReplExportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
122 NET_API_STATUS NetReplExportDirDel(LPCWSTR,LPCWSTR);
123 NET_API_STATUS NetReplExportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
124 NET_API_STATUS NetReplExportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
125 NET_API_STATUS NetReplExportDirSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
126 NET_API_STATUS NetReplExportDirLock(LPCWSTR,LPCWSTR);
127 NET_API_STATUS NetReplExportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
128 NET_API_STATUS NetReplImportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
129 NET_API_STATUS NetReplImportDirDel(LPCWSTR,LPCWSTR);
130 NET_API_STATUS NetReplImportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
131 NET_API_STATUS NetReplImportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
132 NET_API_STATUS NetReplImportDirLock(LPCWSTR,LPCWSTR);
133 NET_API_STATUS NetReplImportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
134 }