master
 1/**
 2 * This file is part of the mingw-w64 runtime package.
 3 * No warranty is given; refer to the file DISCLAIMER within this package.
 4 */
 5
 6#ifndef _PROCESSENV_
 7#define _PROCESSENV_
 8
 9#include <apiset.h>
10#include <apisetcconv.h>
11#include <minwindef.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
18  WINBASEAPI LPSTR WINAPI GetCommandLineA (VOID);
19  WINBASEAPI LPWSTR WINAPI GetCommandLineW (VOID);
20  WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryA (LPCSTR lpPathName);
21  WINBASEAPI WINBOOL WINAPI SetCurrentDirectoryW (LPCWSTR lpPathName);
22  WINBASEAPI DWORD WINAPI GetCurrentDirectoryA (DWORD nBufferLength, LPSTR lpBuffer);
23  WINBASEAPI DWORD WINAPI GetCurrentDirectoryW (DWORD nBufferLength, LPWSTR lpBuffer);
24#endif
25
26#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
27  WINBASEAPI WINBOOL WINAPI SetEnvironmentStringsW (LPWCH NewEnvironment);
28
29#ifdef UNICODE
30#define SetEnvironmentStrings SetEnvironmentStringsW
31#endif
32
33  WINBASEAPI DWORD WINAPI SearchPathW (LPCWSTR lpPath, LPCWSTR lpFileName, LPCWSTR lpExtension, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart);
34  WINBASEAPI DWORD APIENTRY SearchPathA (LPCSTR lpPath, LPCSTR lpFileName, LPCSTR lpExtension, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart);
35  WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathA (LPCSTR ExeName);
36  WINBASEAPI WINBOOL WINAPI NeedCurrentDirectoryForExePathW (LPCWSTR ExeName);
37
38#define GetCommandLine __MINGW_NAME_AW(GetCommandLine)
39#define GetCurrentDirectory __MINGW_NAME_AW(GetCurrentDirectory)
40#define NeedCurrentDirectoryForExePath __MINGW_NAME_AW(NeedCurrentDirectoryForExePath)
41#define SearchPath __MINGW_NAME_AW(SearchPath)
42#define SetCurrentDirectory __MINGW_NAME_AW(SetCurrentDirectory)
43
44#endif
45
46#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= _WIN32_WINNT_WIN10
47
48  WINBASEAPI LPCH WINAPI GetEnvironmentStrings (VOID);
49  WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW (VOID);
50
51#ifdef UNICODE
52#define GetEnvironmentStrings GetEnvironmentStringsW
53#else
54#define GetEnvironmentStringsA GetEnvironmentStrings
55#endif
56
57  WINBASEAPI HANDLE WINAPI GetStdHandle (DWORD nStdHandle);
58  WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA (LPCSTR lpSrc, LPSTR lpDst, DWORD nSize);
59  WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW (LPCWSTR lpSrc, LPWSTR lpDst, DWORD nSize);
60  WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsA (LPCH penv);
61  WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsW (LPWCH penv);
62  WINBASEAPI DWORD WINAPI GetEnvironmentVariableA (LPCSTR lpName, LPSTR lpBuffer, DWORD nSize);
63  WINBASEAPI DWORD WINAPI GetEnvironmentVariableW (LPCWSTR lpName, LPWSTR lpBuffer, DWORD nSize);
64  WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableA (LPCSTR lpName, LPCSTR lpValue);
65  WINBASEAPI WINBOOL WINAPI SetEnvironmentVariableW (LPCWSTR lpName, LPCWSTR lpValue);
66  WINBASEAPI WINBOOL WINAPI SetStdHandle (DWORD nStdHandle, HANDLE hHandle);
67#if _WIN32_WINNT >= 0x0600
68  WINBASEAPI WINBOOL WINAPI SetStdHandleEx (DWORD nStdHandle, HANDLE hHandle, PHANDLE phPrevValue);
69#endif
70
71#define ExpandEnvironmentStrings __MINGW_NAME_AW(ExpandEnvironmentStrings)
72#define FreeEnvironmentStrings __MINGW_NAME_AW(FreeEnvironmentStrings)
73#define GetEnvironmentVariable __MINGW_NAME_AW(GetEnvironmentVariable)
74#define SetEnvironmentVariable __MINGW_NAME_AW(SetEnvironmentVariable)
75
76#endif
77
78#ifdef __cplusplus
79}
80#endif
81#endif