1use shared::minwindef::{BOOL, DWORD};
7use um::winnt::{HANDLE, LPCH, LPCSTR, LPCWSTR, LPSTR, LPWCH, LPWSTR, PHANDLE};
8extern "system" {
9 pub fn GetEnvironmentStrings() -> LPCH;
10 pub fn GetEnvironmentStringsW() -> LPWCH;
11 pub fn SetEnvironmentStringsW(
12 NewEnvironment: LPWCH,
13 ) -> BOOL;
14 pub fn FreeEnvironmentStringsA(
15 penv: LPCH,
16 ) -> BOOL;
17 pub fn FreeEnvironmentStringsW(
18 penv: LPWCH,
19 ) -> BOOL;
20 pub fn GetStdHandle(
21 nStdHandle: DWORD,
22 ) -> HANDLE;
23 pub fn SetStdHandle(
24 nStdHandle: DWORD,
25 hHandle: HANDLE,
26 ) -> BOOL;
27 pub fn SetStdHandleEx(
28 nStdHandle: DWORD,
29 hHandle: HANDLE,
30 phPrevValue: PHANDLE,
31 ) -> BOOL;
32 pub fn GetCommandLineA() -> LPSTR;
33 pub fn GetCommandLineW() -> LPWSTR;
34 pub fn GetEnvironmentVariableA(
35 lpName: LPCSTR,
36 lpBuffer: LPSTR,
37 nSize: DWORD,
38 ) -> DWORD;
39 pub fn GetEnvironmentVariableW(
40 lpName: LPCWSTR,
41 lpBuffer: LPWSTR,
42 nSize: DWORD,
43 ) -> DWORD;
44 pub fn SetEnvironmentVariableA(
45 lpName: LPCSTR,
46 lpValue: LPCSTR,
47 ) -> BOOL;
48 pub fn SetEnvironmentVariableW(
49 lpName: LPCWSTR,
50 lpValue: LPCWSTR,
51 ) -> BOOL;
52 pub fn ExpandEnvironmentStringsA(
53 lpSrc: LPCSTR,
54 lpDst: LPSTR,
55 nSize: DWORD,
56 ) -> DWORD;
57 pub fn ExpandEnvironmentStringsW(
58 lpSrc: LPCWSTR,
59 lpDst: LPWSTR,
60 nSize: DWORD,
61 ) -> DWORD;
62 pub fn SetCurrentDirectoryA(
63 lpPathName: LPCSTR,
64 ) -> BOOL;
65 pub fn SetCurrentDirectoryW(
66 lpPathName: LPCWSTR,
67 ) -> BOOL;
68 pub fn GetCurrentDirectoryA(
69 nBufferLength: DWORD,
70 lpBuffer: LPSTR,
71 ) -> DWORD;
72 pub fn GetCurrentDirectoryW(
73 nBufferLength: DWORD,
74 lpBuffer: LPWSTR,
75 ) -> DWORD;
76 pub fn SearchPathW(
77 lpPath: LPCWSTR,
78 lpFileName: LPCWSTR,
79 lpExtension: LPCWSTR,
80 nBufferLength: DWORD,
81 lpBuffer: LPWSTR,
82 lpFilePart: *mut LPWSTR,
83 ) -> DWORD;
84 pub fn SearchPathA(
85 lpPath: LPCSTR,
86 lpFileName: LPCSTR,
87 lpExtension: LPCSTR,
88 nBufferLength: DWORD,
89 lpBuffer: LPSTR,
90 lpFilePart: *mut LPSTR,
91 ) -> DWORD;
92 pub fn NeedCurrentDirectoryForExePathA(
93 ExeName: LPCSTR,
94 ) -> BOOL;
95 pub fn NeedCurrentDirectoryForExePathW(
96 ExeName: LPCWSTR,
97 ) -> BOOL;
98}