76{
77
78
79
81 if (!environment.is_valid())
82 return nullptr;
83
84 wchar_t const*
const first = environment.get();
86
87 size_t const required_wide_count =
last -
first;
88#pragma warning(suppress:__WARNING_W2A_BEST_FIT)
91 0,
92 environment.get(),
93 static_cast<int>(required_wide_count),
94 nullptr,
95 0,
96 nullptr,
97 nullptr));
98
99 if (required_narrow_count == 0)
100 return nullptr;
101
102 __crt_unique_heap_ptr<char>
buffer(_malloc_crt_t(
char, required_narrow_count));
104 return nullptr;
105
106#pragma warning(suppress:__WARNING_W2A_BEST_FIT)
109 0,
110 environment.get(),
111 static_cast<int>(required_wide_count),
113 static_cast<int>(required_narrow_count),
114 nullptr,
115 nullptr);
116
117 if (conversion_result == 0)
118 return nullptr;
119
121}
return __acrt_WideCharToMultiByte(code_page, 0, buffer.get(), -1, result_size !=0 ? result :nullptr, result_size, nullptr, nullptr)
static wchar_t const *__cdecl find_end_of_double_null_terminated_sequence(wchar_t const *const first)
__crt_unique_handle_t< environment_strings_traits > environment_strings_handle
LPWSTR WINAPI GetEnvironmentStringsW(void)