winapi\um/
processenv.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use 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}