1 | /*
|
---|
2 | * NetDrive for OS/2 External Plugin's level 2 header file.
|
---|
3 | *
|
---|
4 | * (C) COPYRIGHT Blueprint Software Works, Inc. 1999-2004.
|
---|
5 | * ALL RIGHTS RESERVED.
|
---|
6 | */
|
---|
7 |
|
---|
8 | #ifndef __EXTPL2__H
|
---|
9 | #define __EXTPL2__H
|
---|
10 |
|
---|
11 | #include <ndfs.h>
|
---|
12 |
|
---|
13 | #ifdef __cplusplus
|
---|
14 | extern "C" {
|
---|
15 | #endif
|
---|
16 |
|
---|
17 | #pragma pack(1)
|
---|
18 |
|
---|
19 | /* Plugin attributes */
|
---|
20 | #define NDPA_REUSE_FILE_CONNECTIONS (0x1)
|
---|
21 |
|
---|
22 | #ifdef __EMX__
|
---|
23 | #define DEFINE_HANDLE(a) struct _##a; typedef struct _##a *a;
|
---|
24 | #else
|
---|
25 | #define DEFINE_HANDLE(a) struct _##a; typedef struct _##a *##a;
|
---|
26 | #endif
|
---|
27 |
|
---|
28 | #ifndef __EXTPL__H
|
---|
29 | DEFINE_HANDLE(HRESOURCE)
|
---|
30 | DEFINE_HANDLE(HCONNECTION)
|
---|
31 | #endif
|
---|
32 |
|
---|
33 | DEFINE_HANDLE(NDPROPERTYHANDLE)
|
---|
34 | DEFINE_HANDLE(NDMUTEX)
|
---|
35 | DEFINE_HANDLE(NDFILEHANDLE)
|
---|
36 |
|
---|
37 | #define DOSATTR_READONLY 0x01
|
---|
38 | #define DOSATTR_HIDDEN 0x02
|
---|
39 | #define DOSATTR_SYSTEM 0x04
|
---|
40 | #define DOSATTR_VOLLABEL 0x08
|
---|
41 | #define DOSATTR_DIRECTORY 0x10
|
---|
42 | #define DOSATTR_ARCHIVED 0x20
|
---|
43 | #define DOSATTR_NON83 0x40
|
---|
44 |
|
---|
45 | #define DOSATTR_NEEDEA 0x80
|
---|
46 |
|
---|
47 | // flags for NDPLFILEINFO::ulFlags
|
---|
48 | #define NDFILE_PARENT (0x1)
|
---|
49 | #define NDFILE_ROOT (0x2)
|
---|
50 |
|
---|
51 | typedef struct _NDFILEINFO
|
---|
52 | {
|
---|
53 | FILESTATUS3 stat; // standard OS/2 file information
|
---|
54 | ULONG ulFlags; // see NDFILE_PARENT, NDFILE_ROOT
|
---|
55 | UCHAR cchName; // length of the file name
|
---|
56 | CHAR *pszName; // address of the name
|
---|
57 | CHAR *pszUpperName; // address of the uppercased name
|
---|
58 | } NDFILEINFO;
|
---|
59 |
|
---|
60 | typedef struct _NDFILEINFOL
|
---|
61 | {
|
---|
62 | FILESTATUS3L stat; // standard OS/2 file information
|
---|
63 | ULONG ulFlags; // see NDFILE_PARENT, NDFILE_ROOT
|
---|
64 | UCHAR cchName; // length of the file name
|
---|
65 | CHAR *pszName; // address of the name
|
---|
66 | CHAR *pszUpperName; // address of the uppercased name
|
---|
67 | } NDFILEINFOL;
|
---|
68 |
|
---|
69 | typedef struct _NDDATABUF
|
---|
70 | {
|
---|
71 | ULONG ulSize;
|
---|
72 | void *pData;
|
---|
73 | } NDDATABUF;
|
---|
74 |
|
---|
75 |
|
---|
76 | typedef struct _NDFSALLOCATE
|
---|
77 | {
|
---|
78 | ULONG cSectorUnit;
|
---|
79 | ULONG cUnit;
|
---|
80 | ULONG cUnitAvail;
|
---|
81 | USHORT cbSector;
|
---|
82 | } NDFSALLOCATE;
|
---|
83 |
|
---|
84 | enum {
|
---|
85 | ND_PROP_STRING = 0,
|
---|
86 | ND_PROP_ULONG = 1
|
---|
87 | };
|
---|
88 |
|
---|
89 | typedef struct _NDPROPERTYINFO
|
---|
90 | {
|
---|
91 | ULONG ulType;
|
---|
92 | ULONG ulReserved;
|
---|
93 | CHAR *szName;
|
---|
94 | CHAR *szDefaultValue;
|
---|
95 | } NDPROPERTYINFO;
|
---|
96 |
|
---|
97 | /* defines for fsphWildMatch's ignorecase parameter */
|
---|
98 | #define ND_CASE_SENSITIVE 0
|
---|
99 | #define ND_IGNORE_CASE 1
|
---|
100 |
|
---|
101 | typedef struct _NDPATHELEMENT
|
---|
102 | {
|
---|
103 | ULONG length;
|
---|
104 | CHAR *name;
|
---|
105 | CHAR *upperName;
|
---|
106 | } NDPATHELEMENT;
|
---|
107 |
|
---|
108 | typedef struct _NDTIMEDATE
|
---|
109 | {
|
---|
110 | int seconds;
|
---|
111 | int minutes;
|
---|
112 | int hours;
|
---|
113 | int day;
|
---|
114 | int month;
|
---|
115 | int year;
|
---|
116 | } NDTIMEDATE;
|
---|
117 |
|
---|
118 | DEFINE_HANDLE(NDTIMEHANDLE)
|
---|
119 |
|
---|
120 | /*
|
---|
121 | * Logging levels
|
---|
122 | */
|
---|
123 | #define ND_LL_DEBUG (5)
|
---|
124 | #define ND_LL_INFO (4)
|
---|
125 | #define ND_LL_WARN (3)
|
---|
126 | #define ND_LL_ERROR (2)
|
---|
127 | #define ND_LL_FATAL (1)
|
---|
128 | #define ND_LL_NONE (0)
|
---|
129 |
|
---|
130 | DEFINE_HANDLE(NDLOGHANDLE)
|
---|
131 |
|
---|
132 | #define NDMSGID(a) ((char *)(a & 0xFFFFul))
|
---|
133 |
|
---|
134 | typedef struct _PLUGINHELPERTABLE2
|
---|
135 | {
|
---|
136 | ULONG cb;
|
---|
137 |
|
---|
138 | int (PNDENTRY fsphQueryStringProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const CHAR **pvalue, ULONG *plen);
|
---|
139 | int (PNDENTRY fsphQueryUlongProperty) (NDPROPERTYHANDLE handle, const CHAR *name, ULONG *pvalue);
|
---|
140 | int (PNDENTRY fsphSetProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const CHAR *value);
|
---|
141 | int (PNDENTRY fsphParseProperty) (NDPROPERTYHANDLE handle, const CHAR *s);
|
---|
142 |
|
---|
143 | int (PNDENTRY fsphAddFileFind16) (void *plist, FILEFINDBUF *pFindBuf, int cEntries, void *data, ULONG dataLength, ULONG flags);
|
---|
144 | int (PNDENTRY fsphAddFileFind32) (void *plist, FILEFINDBUF3 *pFindBuf, void *data, ULONG dataLength, ULONG flags);
|
---|
145 | void (PNDENTRY fsphInitFileFindBuf3) (FILEFINDBUF3 *pbuf, FILESTATUS3 *pstat, char *name);
|
---|
146 |
|
---|
147 | int (PNDENTRY fsphWildMatch) (const CHAR *pat, const CHAR *str, int ignorecase);
|
---|
148 | int (PNDENTRY fsphAttrMatch) (ULONG pat, ULONG attr);
|
---|
149 |
|
---|
150 | int (PNDENTRY fsphSetResourceData) (void *plist, void *data, ULONG dataLength);
|
---|
151 | int (PNDENTRY fsphGetResourceData) (NDFILEINFO *pfi, NDDATABUF *pdata, int expectedSize);
|
---|
152 | int (PNDENTRY fsphGetFileInfoData) (NDFILEINFO *pfi, NDDATABUF *pdata, int expectedSize);
|
---|
153 |
|
---|
154 | NDPATHELEMENT * (PNDENTRY fsphPathElemNext) (int index, NDPATHELEMENT *pel);
|
---|
155 | NDPATHELEMENT * (PNDENTRY fsphPathElemPrev) (int index, NDPATHELEMENT *pel);
|
---|
156 | NDPATHELEMENT * (PNDENTRY fsphNameElem) (int index);
|
---|
157 | int (PNDENTRY fsphIsLastElem) (int index, NDPATHELEMENT *pel);
|
---|
158 |
|
---|
159 | int (PNDENTRY fsphUpperCase) (CHAR *str);
|
---|
160 | int (PNDENTRY fsphUpperCase2) (CHAR *str, int len);
|
---|
161 |
|
---|
162 | int (PNDENTRY fsphGEA16to32) (GEALIST *fpGEAList, GEA2LIST *fpGEA2List);
|
---|
163 | int (PNDENTRY fsphGEA32to16) (GEA2LIST *fpGEA2List, GEALIST *fpGEAList);
|
---|
164 | int (PNDENTRY fsphFEA16to32) (FEALIST *fpFEAList, FEA2LIST *fpFEA2List);
|
---|
165 | int (PNDENTRY fsphFEA32to16) (FEA2LIST *fpFEA2List, FEALIST *fpFEAList);
|
---|
166 |
|
---|
167 | int (PNDENTRY fsphGetCurrentDateTime) (FDATE *pDate, FTIME *pTime);
|
---|
168 | void (PNDENTRY fsphUnixTimeToDosDate) (ULONG time, FDATE *pd, FTIME *pt);
|
---|
169 | void (PNDENTRY fsphDosDateToUnixTime) (FDATE d, FTIME t, ULONG *ptime);
|
---|
170 | void (PNDENTRY fsphTimeUnix2TimeDate) (ULONG time, NDTIMEDATE *ptd);
|
---|
171 | void (PNDENTRY fsphTimeTimeDate2Unix) (NDTIMEDATE *ptd, ULONG *ptime);
|
---|
172 | int (PNDENTRY fsphTimeCreateHandle) (NDTIMEHANDLE *phandle, const CHAR *pTZ);
|
---|
173 | void (PNDENTRY fsphTimeDeleteHandle) (NDTIMEHANDLE handle);
|
---|
174 | void (PNDENTRY fsphTimeLocal2GMT) (NDTIMEHANDLE handle, NDTIMEDATE *plocal, NDTIMEDATE *pgmt);
|
---|
175 | void (PNDENTRY fsphTimeGMT2Local) (NDTIMEHANDLE handle, NDTIMEDATE *pgmt, NDTIMEDATE *plocal);
|
---|
176 |
|
---|
177 | INT (PNDENTRY fsphCharIsDBCS) (CHAR c);
|
---|
178 | USHORT (PNDENTRY fsphLoadChar) (CHAR **pps);
|
---|
179 | CHAR * (PNDENTRY fsphCopyChar) (CHAR **pdst, CHAR *src);
|
---|
180 | CHAR * (PNDENTRY fsphStrChr) (const CHAR *pStr, CHAR c);
|
---|
181 | CHAR * (PNDENTRY fsphStrRChr) (const CHAR *pStr, CHAR c);
|
---|
182 | INT (PNDENTRY fsphStrCmp) (const CHAR *s1, const CHAR *s2);
|
---|
183 | INT (PNDENTRY fsphStrNCmp) (const CHAR *s1, const CHAR *s2, INT n);
|
---|
184 | INT (PNDENTRY fsphStrICmp) (const CHAR *s1, const CHAR *s2);
|
---|
185 | INT (PNDENTRY fsphStrNICmp) (const CHAR *s1, const CHAR *s2, INT n);
|
---|
186 |
|
---|
187 | INT (PNDENTRY fsphQueryFilePtr) (ULONG *pulFilePtr);
|
---|
188 | INT (PNDENTRY fsphQueryFileSize) (ULONG *pulFileSize);
|
---|
189 | INT (PNDENTRY fsphSetFilePtr) (ULONG ulFileSize, ULONG ulCurrent, LONG lOffset, ULONG ulMethod, ULONG *pulActual);
|
---|
190 |
|
---|
191 | INT (PNDENTRY fsphSetAttrPattern) (void *plist, ULONG ulAttribute);
|
---|
192 |
|
---|
193 | ULONG (PNDENTRY fsphQueryCurrentCp) (void);
|
---|
194 |
|
---|
195 | CHAR (PNDENTRY fsphCpTranslateChar) (ULONG idCpSource, CHAR cSource, ULONG idCpDest);
|
---|
196 | BOOL (PNDENTRY fsphCpTranslateString) (ULONG idCpSource, const CHAR *pszSource, ULONG idCpDest, ULONG cbLenDest, CHAR *pszDest);
|
---|
197 |
|
---|
198 | BOOL (PNDENTRY fsphAsciiToUnicode) (ULONG idCpSource, PSZ pszSource, ULONG cbLenDest, USHORT *pDest);
|
---|
199 | BOOL (PNDENTRY fsphUnicodeToAscii) (USHORT *pSource, ULONG idCpDest, ULONG cbLenDest, CHAR *pDest);
|
---|
200 |
|
---|
201 | INT (PNDENTRY fsphLogOpen) (NDLOGHANDLE *phandle, ULONG loglevel, const char *logfile, const char *msgfile);
|
---|
202 | void (PNDENTRY fsphLogMsg) (NDLOGHANDLE handle, ULONG ll, CHAR *msg, INT argc, ...);
|
---|
203 | void (PNDENTRY fsphLogClose) (NDLOGHANDLE handle);
|
---|
204 |
|
---|
205 | INT (PNDENTRY fsphSetUlongProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const ULONG value);
|
---|
206 |
|
---|
207 | void (PNDENTRY fsphLogMsg2) (NDLOGHANDLE handle, ULONG ll, CHAR *msg, INT argc, CHAR **args);
|
---|
208 |
|
---|
209 | void * (PNDENTRY fsphAllocMem) (ULONG size);
|
---|
210 | void * (PNDENTRY fsphReallocMem) (void *p, ULONG size);
|
---|
211 | void (PNDENTRY fsphFreeMem) (void *p);
|
---|
212 |
|
---|
213 | void (PNDENTRY fsphUlong2String) (ULONG number, CHAR *string, INT n, INT base);
|
---|
214 | void (PNDENTRY fsphLong2String) (LONG number, CHAR *string, INT n, INT base);
|
---|
215 | INT (PNDENTRY fsphString2Ulong) (const CHAR *string, CHAR **pstring2, ULONG *pvalue, INT base);
|
---|
216 | INT (PNDENTRY fsph_vsnprintf) (CHAR *buf, INT n, const CHAR *fmt, CHAR **args);
|
---|
217 | INT (PNDENTRY fsph_snprintf) (CHAR *buf, INT n, const CHAR *fmt, ...);
|
---|
218 |
|
---|
219 | INT (PNDENTRY fsphCreateMutex) (NDMUTEX *pmutex);
|
---|
220 | INT (PNDENTRY fsphRequestMutex) (NDMUTEX mutex, ULONG ulTimeout);
|
---|
221 | INT (PNDENTRY fsphReleaseMutex) (NDMUTEX mutex);
|
---|
222 | void (PNDENTRY fsphCloseMutex) (NDMUTEX mutex);
|
---|
223 |
|
---|
224 | INT (PNDENTRY fsphQueryFileStatus) (FILESTATUS3 *pstat3);
|
---|
225 |
|
---|
226 | INT (PNDENTRY fsphUniStrLen) (USHORT *str);
|
---|
227 |
|
---|
228 | INT (PNDENTRY fsphQueryFileOpenMode) (ULONG *pulOpenMode);
|
---|
229 | } PLUGINHELPERTABLE2;
|
---|
230 |
|
---|
231 | // large files support (> 2Gb)
|
---|
232 | typedef struct _PLUGINHELPERTABLE2L
|
---|
233 | {
|
---|
234 | ULONG cb;
|
---|
235 |
|
---|
236 | int (PNDENTRY fsphQueryStringProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const CHAR **pvalue, ULONG *plen);
|
---|
237 | int (PNDENTRY fsphQueryUlongProperty) (NDPROPERTYHANDLE handle, const CHAR *name, ULONG *pvalue);
|
---|
238 | int (PNDENTRY fsphSetProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const CHAR *value);
|
---|
239 | int (PNDENTRY fsphParseProperty) (NDPROPERTYHANDLE handle, const CHAR *s);
|
---|
240 |
|
---|
241 | int (PNDENTRY fsphAddFileFind16) (void *plist, FILEFINDBUF *pFindBuf, int cEntries, void *data, ULONG dataLength, ULONG flags);
|
---|
242 | int (PNDENTRY fsphAddFileFind32) (void *plist, FILEFINDBUF3 *pFindBuf, void *data, ULONG dataLength, ULONG flags);
|
---|
243 | void (PNDENTRY fsphInitFileFindBuf3) (FILEFINDBUF3 *pbuf, FILESTATUS3 *pstat, char *name);
|
---|
244 |
|
---|
245 | int (PNDENTRY fsphWildMatch) (const CHAR *pat, const CHAR *str, int ignorecase);
|
---|
246 | int (PNDENTRY fsphAttrMatch) (ULONG pat, ULONG attr);
|
---|
247 |
|
---|
248 | int (PNDENTRY fsphSetResourceData) (void *plist, void *data, ULONG dataLength);
|
---|
249 | int (PNDENTRY fsphGetResourceData) (NDFILEINFOL *pfi, NDDATABUF *pdata, int expectedSize);
|
---|
250 | int (PNDENTRY fsphGetFileInfoData) (NDFILEINFOL *pfi, NDDATABUF *pdata, int expectedSize);
|
---|
251 |
|
---|
252 | NDPATHELEMENT * (PNDENTRY fsphPathElemNext) (int index, NDPATHELEMENT *pel);
|
---|
253 | NDPATHELEMENT * (PNDENTRY fsphPathElemPrev) (int index, NDPATHELEMENT *pel);
|
---|
254 | NDPATHELEMENT * (PNDENTRY fsphNameElem) (int index);
|
---|
255 | int (PNDENTRY fsphIsLastElem) (int index, NDPATHELEMENT *pel);
|
---|
256 |
|
---|
257 | int (PNDENTRY fsphUpperCase) (CHAR *str);
|
---|
258 | int (PNDENTRY fsphUpperCase2) (CHAR *str, int len);
|
---|
259 |
|
---|
260 | int (PNDENTRY fsphGEA16to32) (GEALIST *fpGEAList, GEA2LIST *fpGEA2List);
|
---|
261 | int (PNDENTRY fsphGEA32to16) (GEA2LIST *fpGEA2List, GEALIST *fpGEAList);
|
---|
262 | int (PNDENTRY fsphFEA16to32) (FEALIST *fpFEAList, FEA2LIST *fpFEA2List);
|
---|
263 | int (PNDENTRY fsphFEA32to16) (FEA2LIST *fpFEA2List, FEALIST *fpFEAList);
|
---|
264 |
|
---|
265 | int (PNDENTRY fsphGetCurrentDateTime) (FDATE *pDate, FTIME *pTime);
|
---|
266 | void (PNDENTRY fsphUnixTimeToDosDate) (ULONG time, FDATE *pd, FTIME *pt);
|
---|
267 | void (PNDENTRY fsphDosDateToUnixTime) (FDATE d, FTIME t, ULONG *ptime);
|
---|
268 | void (PNDENTRY fsphTimeUnix2TimeDate) (ULONG time, NDTIMEDATE *ptd);
|
---|
269 | void (PNDENTRY fsphTimeTimeDate2Unix) (NDTIMEDATE *ptd, ULONG *ptime);
|
---|
270 | int (PNDENTRY fsphTimeCreateHandle) (NDTIMEHANDLE *phandle, const CHAR *pTZ);
|
---|
271 | void (PNDENTRY fsphTimeDeleteHandle) (NDTIMEHANDLE handle);
|
---|
272 | void (PNDENTRY fsphTimeLocal2GMT) (NDTIMEHANDLE handle, NDTIMEDATE *plocal, NDTIMEDATE *pgmt);
|
---|
273 | void (PNDENTRY fsphTimeGMT2Local) (NDTIMEHANDLE handle, NDTIMEDATE *pgmt, NDTIMEDATE *plocal);
|
---|
274 |
|
---|
275 | INT (PNDENTRY fsphCharIsDBCS) (CHAR c);
|
---|
276 | USHORT (PNDENTRY fsphLoadChar) (CHAR **pps);
|
---|
277 | CHAR * (PNDENTRY fsphCopyChar) (CHAR **pdst, CHAR *src);
|
---|
278 | CHAR * (PNDENTRY fsphStrChr) (const CHAR *pStr, CHAR c);
|
---|
279 | CHAR * (PNDENTRY fsphStrRChr) (const CHAR *pStr, CHAR c);
|
---|
280 | INT (PNDENTRY fsphStrCmp) (const CHAR *s1, const CHAR *s2);
|
---|
281 | INT (PNDENTRY fsphStrNCmp) (const CHAR *s1, const CHAR *s2, INT n);
|
---|
282 | INT (PNDENTRY fsphStrICmp) (const CHAR *s1, const CHAR *s2);
|
---|
283 | INT (PNDENTRY fsphStrNICmp) (const CHAR *s1, const CHAR *s2, INT n);
|
---|
284 |
|
---|
285 | INT (PNDENTRY fsphQueryFilePtr) (LONGLONG *pllFilePtr);
|
---|
286 | INT (PNDENTRY fsphQueryFileSize) (LONGLONG *pllFileSize);
|
---|
287 | INT (PNDENTRY fsphSetFilePtr) (LONGLONG llFileSize, LONGLONG llCurrent, LONGLONG lOffset, ULONG ulMethod, LONGLONG *pllActual);
|
---|
288 |
|
---|
289 | INT (PNDENTRY fsphSetAttrPattern) (void *plist, ULONG ulAttribute);
|
---|
290 |
|
---|
291 | ULONG (PNDENTRY fsphQueryCurrentCp) (void);
|
---|
292 |
|
---|
293 | CHAR (PNDENTRY fsphCpTranslateChar) (ULONG idCpSource, CHAR cSource, ULONG idCpDest);
|
---|
294 | BOOL (PNDENTRY fsphCpTranslateString) (ULONG idCpSource, const CHAR *pszSource, ULONG idCpDest, ULONG cbLenDest, CHAR *pszDest);
|
---|
295 |
|
---|
296 | BOOL (PNDENTRY fsphAsciiToUnicode) (ULONG idCpSource, PSZ pszSource, ULONG cbLenDest, USHORT *pDest);
|
---|
297 | BOOL (PNDENTRY fsphUnicodeToAscii) (USHORT *pSource, ULONG idCpDest, ULONG cbLenDest, CHAR *pDest);
|
---|
298 |
|
---|
299 | INT (PNDENTRY fsphLogOpen) (NDLOGHANDLE *phandle, ULONG loglevel, const char *logfile, const char *msgfile);
|
---|
300 | void (PNDENTRY fsphLogMsg) (NDLOGHANDLE handle, ULONG ll, CHAR *msg, INT argc, ...);
|
---|
301 | void (PNDENTRY fsphLogClose) (NDLOGHANDLE handle);
|
---|
302 |
|
---|
303 | INT (PNDENTRY fsphSetUlongProperty) (NDPROPERTYHANDLE handle, const CHAR *name, const ULONG value);
|
---|
304 |
|
---|
305 | void (PNDENTRY fsphLogMsg2) (NDLOGHANDLE handle, ULONG ll, CHAR *msg, INT argc, CHAR **args);
|
---|
306 |
|
---|
307 | void * (PNDENTRY fsphAllocMem) (ULONG size);
|
---|
308 | void * (PNDENTRY fsphReallocMem) (void *p, ULONG size);
|
---|
309 | void (PNDENTRY fsphFreeMem) (void *p);
|
---|
310 |
|
---|
311 | void (PNDENTRY fsphUlong2String) (ULONG number, CHAR *string, INT n, INT base);
|
---|
312 | void (PNDENTRY fsphLong2String) (LONG number, CHAR *string, INT n, INT base);
|
---|
313 | INT (PNDENTRY fsphString2Ulong) (const CHAR *string, CHAR **pstring2, ULONG *pvalue, INT base);
|
---|
314 | INT (PNDENTRY fsph_vsnprintf) (CHAR *buf, INT n, const CHAR *fmt, CHAR **args);
|
---|
315 | INT (PNDENTRY fsph_snprintf) (CHAR *buf, INT n, const CHAR *fmt, ...);
|
---|
316 |
|
---|
317 | INT (PNDENTRY fsphCreateMutex) (NDMUTEX *pmutex);
|
---|
318 | INT (PNDENTRY fsphRequestMutex) (NDMUTEX mutex, ULONG ulTimeout);
|
---|
319 | INT (PNDENTRY fsphReleaseMutex) (NDMUTEX mutex);
|
---|
320 | void (PNDENTRY fsphCloseMutex) (NDMUTEX mutex);
|
---|
321 |
|
---|
322 | INT (PNDENTRY fsphQueryFileStatus) (FILESTATUS3L *pstat);
|
---|
323 |
|
---|
324 | INT (PNDENTRY fsphUniStrLen) (USHORT *str);
|
---|
325 |
|
---|
326 | INT (PNDENTRY fsphQueryFileOpenMode) (ULONG *pulOpenMode);
|
---|
327 |
|
---|
328 | int (PNDENTRY fsphAddFile32L) (void *plist, FILESTATUS3L *pstat, char *name, ULONG namelen, void *data, ULONG dataLength, ULONG flags);
|
---|
329 |
|
---|
330 | USHORT (PNDENTRY fsphGetChar) (const char *p);
|
---|
331 | const char * (PNDENTRY fsphNextChar) (const char *p);
|
---|
332 |
|
---|
333 | INT (PNDENTRY fsphString2longlong) (const CHAR *string, CHAR **pstring2, long long *pvalue, INT base);
|
---|
334 |
|
---|
335 | int (PNDENTRY fsphTimeDateToUnixTime) (const NDTIMEDATE *ptimedate, unsigned long *ptimelow, unsigned long *ptimehigh, int isgmt, int togmt);
|
---|
336 |
|
---|
337 | int (PNDENTRY fsphGetCurrentDateTime2) (NDTIMEDATE *ptimedate);
|
---|
338 | } PLUGINHELPERTABLE2L;
|
---|
339 |
|
---|
340 | #pragma pack()
|
---|
341 |
|
---|
342 | // flags for NdpRsrcQueryInfo pulFlags parameter
|
---|
343 | #define ND_RSRC_AVAILABLE (1)
|
---|
344 |
|
---|
345 | // return codes for NdpRsrcCompare
|
---|
346 | #define ND_RSRC_EQUAL (0)
|
---|
347 | #define ND_RSRC_DIFFERENT (1)
|
---|
348 |
|
---|
349 |
|
---|
350 | // Plugin Entry points
|
---|
351 | #ifdef NDPL_LARGEFILES
|
---|
352 | #define PLUGINHELPERTABLE2 PLUGINHELPERTABLE2L
|
---|
353 | #define NDFILEINFO NDFILEINFOL
|
---|
354 | #endif
|
---|
355 |
|
---|
356 | extern const char *NdpTypes[];
|
---|
357 | extern const NDPROPERTYINFO *NdpPropertiesInfo[];
|
---|
358 | extern const unsigned long NdpAttribute;
|
---|
359 | int NDENTRY NdpPluginLoad (PLUGINHELPERTABLE2 *pPHT2);
|
---|
360 | int NDENTRY NdpPluginFree (void);
|
---|
361 |
|
---|
362 | /* resource functions */
|
---|
363 | int NDENTRY NdpMountResource (HRESOURCE *presource, int type, NDPROPERTYHANDLE properties);
|
---|
364 | int NDENTRY NdpFreeResource (HRESOURCE resource);
|
---|
365 | int NDENTRY NdpCreateConnection (HRESOURCE resource, HCONNECTION *pconn);
|
---|
366 | int NDENTRY NdpFreeConnection (HCONNECTION conn);
|
---|
367 |
|
---|
368 | int NDENTRY NdpRsrcCompare (HRESOURCE resource, HRESOURCE resource2);
|
---|
369 | int NDENTRY NdpRsrcUpdate (HRESOURCE resource, HRESOURCE resource2);
|
---|
370 |
|
---|
371 | int NDENTRY NdpRsrcQueryInfo (HRESOURCE resource, ULONG *pulFlags, void *pdata, ULONG insize, ULONG *poutlen);
|
---|
372 | int NDENTRY NdpRsrcQueryFSAttach (HRESOURCE resource, void *in, ULONG insize, PULONG poutlen);
|
---|
373 | int NDENTRY NdpRsrcQueryFSAllocate (HRESOURCE resource, NDFSALLOCATE *pfsa);
|
---|
374 |
|
---|
375 | /* path functions */
|
---|
376 | int NDENTRY NdpQueryPathInfo (HCONNECTION conn, void *plist, char *szPath);
|
---|
377 | int NDENTRY NdpDeletePathInfo (HRESOURCE resource, NDFILEINFO *pfi);
|
---|
378 | int NDENTRY NdpDiscardResourceData (HRESOURCE resource, NDDATABUF *pdatabuf);
|
---|
379 | int NDENTRY NdpRefresh (HCONNECTION conn, char *path, int tree);
|
---|
380 | int NDENTRY NdpSetPathInfo (HCONNECTION conn, NDFILEINFO *pfi, char *szPathName);
|
---|
381 | int NDENTRY NdpEAQuery (HCONNECTION conn, GEALIST *pGEAList, NDFILEINFO *pfi, FEALIST *pFEAList);
|
---|
382 | int NDENTRY NdpEASet (HCONNECTION conn, FEALIST *pFEAList, NDFILEINFO *pfi);
|
---|
383 | int NDENTRY NdpEASize (HCONNECTION conn, NDFILEINFO *pfi, ULONG *pulEASize);
|
---|
384 | int NDENTRY NdpSetCurrentDir (HCONNECTION conn, NDFILEINFO *pfi, char *szPath);
|
---|
385 | int NDENTRY NdpCopy (HCONNECTION conn, NDFILEINFO *pfiDst, char *szDst, NDFILEINFO *pfiSrc, char *szSrc, ULONG ulOption);
|
---|
386 | int NDENTRY NdpCopy2 (HCONNECTION conn, HRESOURCE resDst, NDFILEINFO *pfiDst, char *szDst, NDFILEINFO *pfiSrc, char *szSrc, ULONG ulOption);
|
---|
387 | int NDENTRY NdpForceDelete (HCONNECTION conn, NDFILEINFO *pfi, char *szFile);
|
---|
388 | int NDENTRY NdpCreateDir (HCONNECTION conn, NDFILEINFO *pfiparent, char *szDirName, FEALIST *pFEAList);
|
---|
389 | int NDENTRY NdpFindStart (HCONNECTION conn, void *pList, NDFILEINFO *pfiparent, char *szPath, ULONG ulAttribute);
|
---|
390 | int NDENTRY NdpMove (HCONNECTION conn, NDFILEINFO *pfiDst, char *szDst, NDFILEINFO *pfiSrc, char *szSrc);
|
---|
391 | int NDENTRY NdpMove2 (HCONNECTION conn, HRESOURCE resDst, NDFILEINFO *pfiDst, char *szDst, NDFILEINFO *pfiSrc, char *szSrc);
|
---|
392 | int NDENTRY NdpChangeCase (HCONNECTION conn, char *szDst, NDFILEINFO *pfiSrc, char *szSrc, char *szNewName, ULONG ulNameLen);
|
---|
393 | int NDENTRY NdpRename (HCONNECTION conn, char *szDst, NDFILEINFO *pfiSrc, char *szSrc, char *szNewName, ULONG ulNameLen);
|
---|
394 | int NDENTRY NdpOpenExisting (HCONNECTION conn, NDFILEINFO *pfi, NDFILEHANDLE *phandle, char *szFileName, ULONG ulOpenMode, USHORT *pfNeedEA);
|
---|
395 | int NDENTRY NdpOpenReplace (HCONNECTION conn, NDFILEINFO *pfi, NDFILEHANDLE *phandle, char *szFileName, ULONG ulSize, ULONG ulOpenMode, ULONG ulAttribute, FEALIST *pFEAList);
|
---|
396 | int NDENTRY NdpOpenCreate (HCONNECTION conn, NDFILEINFO *pfiparent, NDFILEHANDLE *phandle, char *szFileName, ULONG ulSize, ULONG ulOpenMode, ULONG ulAttribute, FEALIST *pFEAList);
|
---|
397 | int NDENTRY NdpDeleteDir (HCONNECTION conn, NDFILEINFO *pfi, char *szDir);
|
---|
398 | int NDENTRY NdpFlush (HRESOURCE resource);
|
---|
399 | int NDENTRY NdpSetFileAttribute (HCONNECTION conn, NDFILEINFO *pfi, char *szFileName, USHORT usAttr);
|
---|
400 | int NDENTRY NdpIOCTL (int type, HRESOURCE resource, char *path, int function,
|
---|
401 | void *in, ULONG insize, PULONG poutlen);
|
---|
402 |
|
---|
403 | /* file functions */
|
---|
404 | int NDENTRY NdpFileQueryInfo (HCONNECTION conn, NDFILEHANDLE handle, void *plist);
|
---|
405 | int NDENTRY NdpFileEAQuery (HCONNECTION conn, NDFILEHANDLE handle, GEALIST *pGEAList, FEALIST *pFEAList);
|
---|
406 | int NDENTRY NdpFileEASet (HCONNECTION conn, NDFILEHANDLE handle, FEALIST *pFEAList);
|
---|
407 | int NDENTRY NdpFileEASize (HCONNECTION conn, NDFILEHANDLE handle, ULONG *pulEASize);
|
---|
408 | int NDENTRY NdpFileSetInfo (HCONNECTION conn, NDFILEHANDLE handle, NDFILEINFO *pfi);
|
---|
409 | int NDENTRY NdpFileSetFilePtr (HCONNECTION conn, NDFILEHANDLE handle, LONG lOffset, ULONG ulMethod, ULONG *pulActual);
|
---|
410 | int NDENTRY NdpFileClose (HCONNECTION conn, NDFILEHANDLE handle);
|
---|
411 | int NDENTRY NdpFileCommit (HCONNECTION conn, NDFILEHANDLE handle);
|
---|
412 | int NDENTRY NdpFileNewSize (HCONNECTION conn, NDFILEHANDLE handle, ULONG ulLen);
|
---|
413 | int NDENTRY NdpFileRead (HCONNECTION conn, NDFILEHANDLE handle, void *pBuffer, ULONG ulRead, ULONG *pulActual);
|
---|
414 | int NDENTRY NdpFileWrite (HCONNECTION conn, NDFILEHANDLE handle, void *pBuffer, ULONG ulWrite, ULONG *pulActual);
|
---|
415 |
|
---|
416 | // large file support (>2Gb)
|
---|
417 | #ifdef NDPL_LARGEFILES
|
---|
418 | int NDENTRY NdpOpenReplaceL(HCONNECTION conn, NDFILEINFO *pfi, NDFILEHANDLE *phandle, char *szFileName, LONGLONG llSize, ULONG ulOpenMode, ULONG ulAttribute, FEALIST *pFEAList);
|
---|
419 | int NDENTRY NdpOpenCreateL(HCONNECTION conn, NDFILEINFO *pfiparent, NDFILEHANDLE *phandle, char *szFileName, LONGLONG llSize, ULONG ulOpenMode, ULONG ulAttribute, FEALIST *pFEAList);
|
---|
420 | int NDENTRY NdpFileSetFilePtrL(HCONNECTION conn, NDFILEHANDLE handle, LONGLONG llOffset, ULONG ulMethod, LONGLONG *pllActual);
|
---|
421 | int NDENTRY NdpFileNewSizeL(HCONNECTION conn, NDFILEHANDLE handle, LONGLONG llLen);
|
---|
422 | #endif
|
---|
423 |
|
---|
424 | #ifdef __cplusplus
|
---|
425 | }
|
---|
426 | #endif
|
---|
427 |
|
---|
428 | #endif /* __EXTPL2__H */
|
---|