xref: /aoo42x/main/sal/inc/systools/win32/kernel9x.h (revision 9eab2a37)
1*9eab2a37SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*9eab2a37SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*9eab2a37SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*9eab2a37SAndrew Rist  * distributed with this work for additional information
6*9eab2a37SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*9eab2a37SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*9eab2a37SAndrew Rist  * "License"); you may not use this file except in compliance
9*9eab2a37SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*9eab2a37SAndrew Rist  *
11*9eab2a37SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*9eab2a37SAndrew Rist  *
13*9eab2a37SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*9eab2a37SAndrew Rist  * software distributed under the License is distributed on an
15*9eab2a37SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*9eab2a37SAndrew Rist  * KIND, either express or implied.  See the License for the
17*9eab2a37SAndrew Rist  * specific language governing permissions and limitations
18*9eab2a37SAndrew Rist  * under the License.
19*9eab2a37SAndrew Rist  *
20*9eab2a37SAndrew Rist  *************************************************************/
21*9eab2a37SAndrew Rist 
22*9eab2a37SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #pragma once
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #ifndef _WINDOWS_
27cdf0e10cSrcweir #include <windows.h>
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #ifdef __cplusplus
31cdf0e10cSrcweir extern "C" {
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir 
34cdf0e10cSrcweir //------------------------------------------------------------------------
35cdf0e10cSrcweir // undefine the macros defined in the winbase.h file in order to avoid
36cdf0e10cSrcweir // warnings because of multiple defines
37cdf0e10cSrcweir //------------------------------------------------------------------------
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #ifdef LoadLibraryW
40cdf0e10cSrcweir #undef LoadLibraryW
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir 
43cdf0e10cSrcweir #ifdef LoadLibraryExW
44cdf0e10cSrcweir #undef LoadLibraryExW
45cdf0e10cSrcweir #endif
46cdf0e10cSrcweir 
47cdf0e10cSrcweir #ifdef GetModuleFileNameW
48cdf0e10cSrcweir #undef GetModuleFileNameW
49cdf0e10cSrcweir #endif
50cdf0e10cSrcweir 
51cdf0e10cSrcweir #ifdef GetLogicalDriveStringsW
52cdf0e10cSrcweir #undef GetLogicalDriveStringsW
53cdf0e10cSrcweir #endif
54cdf0e10cSrcweir 
55cdf0e10cSrcweir #ifdef DeleteFileW
56cdf0e10cSrcweir #undef DeleteFileW
57cdf0e10cSrcweir #endif
58cdf0e10cSrcweir 
59cdf0e10cSrcweir #ifdef CopyFileW
60cdf0e10cSrcweir #undef CopyFileW
61cdf0e10cSrcweir #endif
62cdf0e10cSrcweir 
63cdf0e10cSrcweir #ifdef MoveFileW
64cdf0e10cSrcweir #undef MoveFileW
65cdf0e10cSrcweir #endif
66cdf0e10cSrcweir 
67cdf0e10cSrcweir #ifdef MoveFileExW
68cdf0e10cSrcweir #undef MoveFileExW
69cdf0e10cSrcweir #endif
70cdf0e10cSrcweir 
71cdf0e10cSrcweir #ifdef CreateFileW
72cdf0e10cSrcweir #undef CreateFileW
73cdf0e10cSrcweir #endif
74cdf0e10cSrcweir 
75cdf0e10cSrcweir #ifdef RemoveDirectoryW
76cdf0e10cSrcweir #undef RemoveDirectoryW
77cdf0e10cSrcweir #endif
78cdf0e10cSrcweir 
79cdf0e10cSrcweir #ifdef CreateDirectoryW
80cdf0e10cSrcweir #undef CreateDirectoryW
81cdf0e10cSrcweir #endif
82cdf0e10cSrcweir 
83cdf0e10cSrcweir #ifdef CreateDirectoryExW
84cdf0e10cSrcweir #undef CreateDirectoryExW
85cdf0e10cSrcweir #endif
86cdf0e10cSrcweir 
87cdf0e10cSrcweir #ifdef CreateFileW
88cdf0e10cSrcweir #undef CreateFileW
89cdf0e10cSrcweir #endif
90cdf0e10cSrcweir 
91cdf0e10cSrcweir #ifdef GetLongPathNameW
92cdf0e10cSrcweir #undef GetLongPathNameW
93cdf0e10cSrcweir #endif
94cdf0e10cSrcweir 
95cdf0e10cSrcweir #ifdef GetLocaleInfoW
96cdf0e10cSrcweir #undef GetLocaleInfoW
97cdf0e10cSrcweir #endif
98cdf0e10cSrcweir 
99cdf0e10cSrcweir #ifdef GetFullPathNameW
100cdf0e10cSrcweir #undef GetFullPathNameW
101cdf0e10cSrcweir #endif
102cdf0e10cSrcweir 
103cdf0e10cSrcweir #ifdef CreateProcessW
104cdf0e10cSrcweir #undef CreateProcessW
105cdf0e10cSrcweir #endif
106cdf0e10cSrcweir 
107cdf0e10cSrcweir #ifdef CreateProcessAsUserW
108cdf0e10cSrcweir #undef CreateProcessAsUserW
109cdf0e10cSrcweir #endif
110cdf0e10cSrcweir 
111cdf0e10cSrcweir #ifdef GetEnvironmentVariableW
112cdf0e10cSrcweir #undef GetEnvironmentVariableW
113cdf0e10cSrcweir #endif
114cdf0e10cSrcweir 
115cdf0e10cSrcweir #ifdef GetDriveTypeW
116cdf0e10cSrcweir #undef GetDriveTypeW
117cdf0e10cSrcweir #endif
118cdf0e10cSrcweir 
119cdf0e10cSrcweir #ifdef GetCurrentDirectoryW
120cdf0e10cSrcweir #undef GetCurrentDirectoryW
121cdf0e10cSrcweir #endif
122cdf0e10cSrcweir 
123cdf0e10cSrcweir #ifdef SetCurrentDirectoryW
124cdf0e10cSrcweir #undef SetCurrentDirectoryW
125cdf0e10cSrcweir #endif
126cdf0e10cSrcweir 
127cdf0e10cSrcweir #ifdef GetVolumeInformationW
128cdf0e10cSrcweir #undef GetVolumeInformationW
129cdf0e10cSrcweir #endif
130cdf0e10cSrcweir 
131cdf0e10cSrcweir 
132cdf0e10cSrcweir #ifdef GetDiskFreeSpaceExA
133cdf0e10cSrcweir #undef GetDiskFreeSpaceExA
134cdf0e10cSrcweir #endif
135cdf0e10cSrcweir 
136cdf0e10cSrcweir #ifdef GetDiskFreeSpaceExW
137cdf0e10cSrcweir #undef GetDiskFreeSpaceExW
138cdf0e10cSrcweir #endif
139cdf0e10cSrcweir 
140cdf0e10cSrcweir //------------------------------------------------------------------------
141cdf0e10cSrcweir // set the compiler directives for the function pointer we declare below
142cdf0e10cSrcweir // if we build sal or sal will be used as static library we define extern
143cdf0e10cSrcweir // else sal exports the function pointers from a dll and we use __declspec
144cdf0e10cSrcweir //------------------------------------------------------------------------
145cdf0e10cSrcweir 
146cdf0e10cSrcweir #define KERNEL9X_API extern
147cdf0e10cSrcweir 
148cdf0e10cSrcweir //------------------------------------------------------------------------
149cdf0e10cSrcweir // declare function pointers to the appropriate kernel functions
150cdf0e10cSrcweir //------------------------------------------------------------------------
151cdf0e10cSrcweir 
152cdf0e10cSrcweir //BOOL WINAPI RegisterServiceProcess( DWORD dwProcessID, BOOL fRegister );
153cdf0e10cSrcweir 
154cdf0e10cSrcweir KERNEL9X_API HMODULE (WINAPI *lpfnLoadLibraryExW ) (
155cdf0e10cSrcweir 	LPCWSTR lpLibFileName,  // file name of module
156cdf0e10cSrcweir 	HANDLE hFile,           // reserved, must be NULL
157cdf0e10cSrcweir 	DWORD dwFlags           // entry-point execution option
158cdf0e10cSrcweir );
159cdf0e10cSrcweir 
160cdf0e10cSrcweir KERNEL9X_API DWORD (WINAPI *lpfnGetModuleFileNameW ) (
161cdf0e10cSrcweir 	HMODULE hModule,    // handle to module
162cdf0e10cSrcweir 	LPWSTR lpFilename,  // file name of module
163cdf0e10cSrcweir 	DWORD nSize         // size of buffer
164cdf0e10cSrcweir );
165cdf0e10cSrcweir 
166cdf0e10cSrcweir KERNEL9X_API DWORD (WINAPI *lpfnGetLogicalDriveStringsW ) (
167cdf0e10cSrcweir 	DWORD nBufferLength,	// size of buffer
168cdf0e10cSrcweir 	LPWSTR lpBuffer			// drive strings buffer
169cdf0e10cSrcweir );
170cdf0e10cSrcweir 
171cdf0e10cSrcweir KERNEL9X_API HANDLE ( WINAPI *lpfnCreateFileW )(
172cdf0e10cSrcweir 	LPCWSTR	lpFileName,
173cdf0e10cSrcweir 	DWORD	dwDesiredAccess,
174cdf0e10cSrcweir 	DWORD	dwShareMode,
175cdf0e10cSrcweir 	LPSECURITY_ATTRIBUTES	lpSecurityAttributes,
176cdf0e10cSrcweir 	DWORD	dwCreationDisposition,
177cdf0e10cSrcweir 	DWORD	dwFlagsAndAttributes,
178cdf0e10cSrcweir 	HANDLE	hTemplateFile
179cdf0e10cSrcweir );
180cdf0e10cSrcweir 
181cdf0e10cSrcweir KERNEL9X_API DWORD WINAPI GetCanonicalPathNameA(
182cdf0e10cSrcweir 	LPCSTR lpszPath,			// file name
183cdf0e10cSrcweir 	LPSTR lpszCanonicalPath,	// path buffer
184cdf0e10cSrcweir 	DWORD cchBuffer				// size of path buffer
185cdf0e10cSrcweir );
186cdf0e10cSrcweir 
187cdf0e10cSrcweir KERNEL9X_API DWORD WINAPI GetCanonicalPathNameW(
188cdf0e10cSrcweir 	LPCWSTR lpszPath,			// file name
189cdf0e10cSrcweir 	LPWSTR lpszCanonicalPath,	// path buffer
190cdf0e10cSrcweir 	DWORD cchBuffer				// size of path buffer
191cdf0e10cSrcweir );
192cdf0e10cSrcweir 
193cdf0e10cSrcweir KERNEL9X_API HANDLE ( WINAPI * lpfnCreateFileW ) (
194cdf0e10cSrcweir 	LPCWSTR	lpFileName,
195cdf0e10cSrcweir 	DWORD	dwDesiredAccess,
196cdf0e10cSrcweir 	DWORD	dwShareMode,
197cdf0e10cSrcweir 	LPSECURITY_ATTRIBUTES	lpSecurityAttributes,
198cdf0e10cSrcweir 	DWORD	dwCreationDisposition,
199cdf0e10cSrcweir 	DWORD	dwFlagsAndAttributes,
200cdf0e10cSrcweir 	HANDLE	hTemplateFile );
201cdf0e10cSrcweir 
202cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnDeleteFileW ) (
203cdf0e10cSrcweir 	LPCWSTR	lpFileName			// file name
204cdf0e10cSrcweir );
205cdf0e10cSrcweir 
206cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnCopyFileW ) (
207cdf0e10cSrcweir 	LPCWSTR lpExistingFileName,	// file name
208cdf0e10cSrcweir 	LPCWSTR lpNewFileName,		// new file name
209cdf0e10cSrcweir 	BOOL	bFailIfExist		// operation if file exists
210cdf0e10cSrcweir );
211cdf0e10cSrcweir 
212cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnMoveFileW ) (
213cdf0e10cSrcweir 	LPCWSTR lpExistingFileName,	// file name
214cdf0e10cSrcweir 	LPCWSTR lpNewFileName		// new file name
215cdf0e10cSrcweir );
216cdf0e10cSrcweir 
217cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnMoveFileExW ) (
218cdf0e10cSrcweir   LPCWSTR lpExistingFileName,	// file name
219cdf0e10cSrcweir   LPCWSTR lpNewFileName,		// new file name
220cdf0e10cSrcweir   DWORD dwFlags					// move options
221cdf0e10cSrcweir );
222cdf0e10cSrcweir 
223cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnRemoveDirectoryW ) (
224cdf0e10cSrcweir 	LPCWSTR	lpPathName			// directory name
225cdf0e10cSrcweir );
226cdf0e10cSrcweir 
227cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI * lpfnCreateDirectoryW ) (
228cdf0e10cSrcweir 	LPCWSTR	lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes );
229cdf0e10cSrcweir 
230cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI * lpfnCreateDirectoryExW ) (
231cdf0e10cSrcweir 	LPCWSTR	lpTemplateDirectory,
232cdf0e10cSrcweir 	LPCWSTR	lpNewDirectory,
233cdf0e10cSrcweir 	LPSECURITY_ATTRIBUTES	lpSecurityAttributes );
234cdf0e10cSrcweir 
235cdf0e10cSrcweir KERNEL9X_API DWORD ( WINAPI * lpfnGetLongPathNameW ) (
236cdf0e10cSrcweir   LPCWSTR lpszShortPath, // file name
237cdf0e10cSrcweir   LPWSTR lpszLongPath,   // path buffer
238cdf0e10cSrcweir   DWORD cchBuffer        // size of path buffer
239cdf0e10cSrcweir );
240cdf0e10cSrcweir 
241cdf0e10cSrcweir // GetCanonicalPath is a tool function with no exact counterpart
242cdf0e10cSrcweir // in the win32 api; we use nevertheless a function pointer
243cdf0e10cSrcweir // because every variable etc. must root in the Kernel9x.lib else
244cdf0e10cSrcweir // we loose our AutoSystoolInit object during linking
245cdf0e10cSrcweir KERNEL9X_API DWORD ( WINAPI * lpfnGetCanonicalPathW ) (
246cdf0e10cSrcweir 	LPCWSTR lpszPath,			// file name
247cdf0e10cSrcweir 	LPWSTR lpszCanonicalPath,	// path buffer
248cdf0e10cSrcweir 	DWORD cchBuffer				// size of path buffer
249cdf0e10cSrcweir );
250cdf0e10cSrcweir 
251cdf0e10cSrcweir KERNEL9X_API int ( WINAPI* lpfnGetLocaleInfoW ) (
252cdf0e10cSrcweir     LCID Locale,        // locale identifier
253cdf0e10cSrcweir     LCTYPE LCType,      // information type
254cdf0e10cSrcweir     LPWSTR lpLCData,    // information buffer
255cdf0e10cSrcweir     int cchData         // size of buffer
256cdf0e10cSrcweir );
257cdf0e10cSrcweir 
258cdf0e10cSrcweir KERNEL9X_API DWORD ( WINAPI * lpfnGetFullPathNameW )(
259cdf0e10cSrcweir 	LPCWSTR	lpFileName,		// file name
260cdf0e10cSrcweir 	DWORD	nBufferLength,	// size of path buffer
261cdf0e10cSrcweir 	LPWSTR	lpBuffer,		// path buffer
262cdf0e10cSrcweir 	LPWSTR	*lpFilePart		// address of file name in path
263cdf0e10cSrcweir );
264cdf0e10cSrcweir 
265cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI * lpfnCreateProcessW )(
266cdf0e10cSrcweir     LPCWSTR lpApplicationName,                 // name of executable module
267cdf0e10cSrcweir     LPWSTR lpCommandLine,                      // command line string
268cdf0e10cSrcweir     LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
269cdf0e10cSrcweir     LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
270cdf0e10cSrcweir     BOOL bInheritHandles,                      // handle inheritance option
271cdf0e10cSrcweir     DWORD dwCreationFlags,                     // creation flags
272cdf0e10cSrcweir     LPVOID lpEnvironment,                      // new environment block
273cdf0e10cSrcweir     LPCWSTR lpCurrentDirectory,                // current directory name
274cdf0e10cSrcweir     LPSTARTUPINFOW lpStartupInfo,              // startup information
275cdf0e10cSrcweir     LPPROCESS_INFORMATION lpProcessInformation // process information
276cdf0e10cSrcweir );
277cdf0e10cSrcweir 
278cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI * lpfnCreateProcessAsUserW )(
279cdf0e10cSrcweir     HANDLE hToken,                             // handle to user token
280cdf0e10cSrcweir     LPCWSTR lpApplicationName,                 // name of executable module
281cdf0e10cSrcweir     LPWSTR lpCommandLine,                      // command-line string
282cdf0e10cSrcweir     LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
283cdf0e10cSrcweir     LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
284cdf0e10cSrcweir     BOOL bInheritHandles,                      // inheritance option
285cdf0e10cSrcweir     DWORD dwCreationFlags,                     // creation flags
286cdf0e10cSrcweir     LPVOID lpEnvironment,                      // new environment block
287cdf0e10cSrcweir     LPCWSTR lpCurrentDirectory,                // current directory name
288cdf0e10cSrcweir     LPSTARTUPINFOW lpStartupInfo,              // startup information
289cdf0e10cSrcweir     LPPROCESS_INFORMATION lpProcessInformation // process information
290cdf0e10cSrcweir );
291cdf0e10cSrcweir 
292cdf0e10cSrcweir KERNEL9X_API DWORD ( WINAPI * lpfnGetEnvironmentVariableW )(
293cdf0e10cSrcweir     LPCWSTR lpName,  // environment variable name
294cdf0e10cSrcweir     LPWSTR lpBuffer, // buffer for variable value
295cdf0e10cSrcweir     DWORD nSize      // size of buffer
296cdf0e10cSrcweir );
297cdf0e10cSrcweir 
298cdf0e10cSrcweir 
299cdf0e10cSrcweir KERNEL9X_API UINT ( WINAPI * lpfnGetDriveTypeW )(
300cdf0e10cSrcweir 	LPCWSTR lpRootPathName	// root directory
301cdf0e10cSrcweir );
302cdf0e10cSrcweir 
303cdf0e10cSrcweir KERNEL9X_API DWORD ( WINAPI * lpfnGetCurrentDirectoryW )(
304cdf0e10cSrcweir     DWORD  nBufferLength,   // size of directory buffer
305cdf0e10cSrcweir     LPWSTR lpBuffer         // directory buffer
306cdf0e10cSrcweir );
307cdf0e10cSrcweir 
308cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI * lpfnSetCurrentDirectoryW )(
309cdf0e10cSrcweir     LPCWSTR lpPathName  // new directory name
310cdf0e10cSrcweir );
311cdf0e10cSrcweir 
312cdf0e10cSrcweir // GetVolumeInformation
313cdf0e10cSrcweir KERNEL9X_API BOOL ( WINAPI* lpfnGetVolumeInformationW )(
314cdf0e10cSrcweir 	LPCWSTR	lpRootPathName,				// root directory
315cdf0e10cSrcweir 	LPWSTR	lpVolumeNameBuffer,			// volume name buffer
316cdf0e10cSrcweir 	DWORD	nVolumeNameSize,			// length of name buffer
317cdf0e10cSrcweir 	LPDWORD	lpVolumeSerialNumber,		// volume serial number
318cdf0e10cSrcweir 	LPDWORD	lpMaximumComponentLength,	// maximum file name length
319cdf0e10cSrcweir 	LPDWORD	lpFileSystemFlags,			// file system options
320cdf0e10cSrcweir 	LPWSTR	lpFileSystemName,			// file system name buffer
321cdf0e10cSrcweir 	DWORD	nFileSystemNameSize			// length of file system name buffer
322cdf0e10cSrcweir );
323cdf0e10cSrcweir 
324cdf0e10cSrcweir // GetDiskFreeSpaceExA
325cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnGetDiskFreeSpaceExA)(
326cdf0e10cSrcweir   LPCSTR lpDirectoryName,                  // directory name
327cdf0e10cSrcweir   PULARGE_INTEGER lpFreeBytesAvailable,    // bytes available to caller
328cdf0e10cSrcweir   PULARGE_INTEGER lpTotalNumberOfBytes,    // bytes on disk
329cdf0e10cSrcweir   PULARGE_INTEGER lpTotalNumberOfFreeBytes // free bytes on disk
330cdf0e10cSrcweir );
331cdf0e10cSrcweir 
332cdf0e10cSrcweir // GetDiskFreeSpaceExW
333cdf0e10cSrcweir KERNEL9X_API BOOL (WINAPI *lpfnGetDiskFreeSpaceExW)(
334cdf0e10cSrcweir   LPCWSTR lpDirectoryName,                 // directory name
335cdf0e10cSrcweir   PULARGE_INTEGER lpFreeBytesAvailable,    // bytes available to caller
336cdf0e10cSrcweir   PULARGE_INTEGER lpTotalNumberOfBytes,    // bytes on disk
337cdf0e10cSrcweir   PULARGE_INTEGER lpTotalNumberOfFreeBytes // free bytes on disk
338cdf0e10cSrcweir );
339cdf0e10cSrcweir 
340cdf0e10cSrcweir //------------------------------------------------------------------------
341cdf0e10cSrcweir // redefine the above undefined macros so that the preprocessor replaces
342cdf0e10cSrcweir // all occurrences of this macros with our function pointer
343cdf0e10cSrcweir //------------------------------------------------------------------------
344cdf0e10cSrcweir 
345cdf0e10cSrcweir #define LoadLibraryExW				lpfnLoadLibraryExW
346cdf0e10cSrcweir #define LoadLibraryW(c)				LoadLibraryExW(c, NULL, 0)
347cdf0e10cSrcweir #define GetModuleFileNameW			lpfnGetModuleFileNameW
348cdf0e10cSrcweir #define GetLogicalDriveStringsW		lpfnGetLogicalDriveStringsW
349cdf0e10cSrcweir #define CreateFileW					lpfnCreateFileW
350cdf0e10cSrcweir #define DeleteFileW					lpfnDeleteFileW
351cdf0e10cSrcweir #define CopyFileW					lpfnCopyFileW
352cdf0e10cSrcweir #define MoveFileW					lpfnMoveFileW
353cdf0e10cSrcweir #define MoveFileExW					lpfnMoveFileExW
354cdf0e10cSrcweir #define RemoveDirectoryW			lpfnRemoveDirectoryW
355cdf0e10cSrcweir #define CreateDirectoryW			lpfnCreateDirectoryW
356cdf0e10cSrcweir #define CreateDirectoryExW			lpfnCreateDirectoryExW
357cdf0e10cSrcweir #define GetLongPathNameW			lpfnGetLongPathNameW
358cdf0e10cSrcweir #define GetFullPathNameW			lpfnGetFullPathNameW
359cdf0e10cSrcweir 
360cdf0e10cSrcweir #define GetCanonicalPath			lpfnGetCanonicalPathW
361cdf0e10cSrcweir #define GetLocaleInfoW              lpfnGetLocaleInfoW
362cdf0e10cSrcweir 
363cdf0e10cSrcweir #define CreateProcessW              lpfnCreateProcessW
364cdf0e10cSrcweir #define CreateProcessAsUserW        lpfnCreateProcessAsUserW
365cdf0e10cSrcweir #define GetEnvironmentVariableW     lpfnGetEnvironmentVariableW
366cdf0e10cSrcweir #define GetDriveTypeW				lpfnGetDriveTypeW
367cdf0e10cSrcweir 
368cdf0e10cSrcweir #define GetCurrentDirectoryW        lpfnGetCurrentDirectoryW
369cdf0e10cSrcweir #define SetCurrentDirectoryW        lpfnSetCurrentDirectoryW
370cdf0e10cSrcweir 
371cdf0e10cSrcweir #define GetVolumeInformationW		lpfnGetVolumeInformationW
372cdf0e10cSrcweir #define GetDiskFreeSpaceExA			lpfnGetDiskFreeSpaceExA
373cdf0e10cSrcweir #define GetDiskFreeSpaceExW			lpfnGetDiskFreeSpaceExW
374cdf0e10cSrcweir 
375cdf0e10cSrcweir #ifdef __cplusplus
376cdf0e10cSrcweir }
377cdf0e10cSrcweir #endif
378cdf0e10cSrcweir 
379cdf0e10cSrcweir 
380