37#pragma warning(suppress:__WARNING_UNUSED_ASSIGNMENT)
38 wchar_t const drive_letter =
static_cast<wchar_t>(
L'A' +
drive_number - 1);
39 wchar_t const drive_string[] = { drive_letter,
L':',
L'\\',
L'\0' };
107template <
typename Character>
110static Character*
__cdecl common_getdcwd(
139 Character drive_string[4];
142 drive_string[0] =
static_cast<Character
>(
'A' - 1 +
drive_number);
143 drive_string[1] =
':';
144 drive_string[2] =
'.';
145 drive_string[3] =
'\0';
149 drive_string[0] =
'.';
150 drive_string[1] =
'\0';
153 if (user_buffer ==
nullptr)
159 if (!traits::get_full_path_name(drive_string,
buffer))
168 user_buffer[0] =
'\0';
171 if (!traits::get_full_path_name(drive_string,
buffer))
181 char*
const user_buffer,
185 return common_getdcwd(0, user_buffer, max_length,
_NORMAL_BLOCK,
nullptr, 0);
189 wchar_t*
const user_buffer,
193 return common_getdcwd(0, user_buffer, max_length,
_NORMAL_BLOCK,
nullptr, 0);
198 char*
const user_buffer,
207 wchar_t*
const user_buffer,
220 char*
const user_buffer,
221 int const max_length,
231 wchar_t*
const user_buffer,
232 int const max_length,
243 char*
const user_buffer,
244 int const max_length,
255 wchar_t*
const user_buffer,
256 int const max_length,
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
#define _wgetdcwd_dbg(d, s, le, t, f, l)
#define _getdcwd_dbg(d, s, le, t, f, l)
#define _wgetcwd_dbg(s, le, t, f, l)
#define _getcwd_dbg(s, le, t, f, l)
_Check_return_ _CRTIMP int __cdecl _getdrive(void)
int const char const *const int const line_number
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
char *__cdecl _getdcwd(int const drive_number, char *const user_buffer, int const max_length)
char *__cdecl _getcwd(char *const user_buffer, int const max_length)
static int __cdecl is_valid_drive(unsigned const drive_number)
int const int const _In_opt_z_ char const *const int const line_number throw()
wchar_t *__cdecl _wgetdcwd(int const drive_number, wchar_t *const user_buffer, int const max_length)
wchar_t *__cdecl _wgetcwd(wchar_t *const user_buffer, int const max_length)
int const int const _In_opt_z_ char const *const file_name
int const int const block_use
#define _Out_writes_opt_z_(s)
#define DRIVE_NO_ROOT_DIR
#define ERROR_INVALID_DRIVE