8#include "acme/operating_system/error_code.h"
11#include "acme/prototype/comparison/compare.h"
14#include "acme/prototype/time/_time.h"
17#include "acme/operating_system/time.h"
20#include "acme/operating_system/windows_common/last_error.h"
48 constexpr ::u32 wait_millis(
const class time& time)
51 if (time.is_infinite())
58 auto i = time.integral_millisecond();
60 return i > 0xFFFFFFFEu ? 0xFFFFFFFEu : (DWORD) i;
84CLASS_DECL_ACME
void TRACELASTERROR();
87#include "acme/operating_system/windows_common/last_error.h"
88#include "acme/operating_system/windows_common/last_error_exception.h"
96 CLASS_DECL_ACME::enum_status _last_error_status(::u32 uLastError);
97 inline ::e_status last_error_status(
const last_error & lasterror) {
return _last_error_status(lasterror.m_uLastError); }
100 CLASS_DECL_ACME::enum_status _failed_last_error_status(::u32 uLastError);
101 inline ::e_status failed_last_error_status(
const last_error & lasterror) {
return _failed_last_error_status(lasterror.m_uLastError); }
108 CLASS_DECL_ACME
void * get_library_symbol_address(const ::file::path & pathLibrary, const ::scoped_string & scopedstrSymbolName);
111 template <
typename PFN >
117 inline static PFN get_address(const ::scoped_string & scopedstrModule, const_char_pointer pszName)
120 return (PFN) get_library_symbol_address(scopedstrModule, pszName);
128 CLASS_DECL_ACME ::e_status wait_result_status(::i32 iResult, ::i32 nCount);
130 CLASS_DECL_ACME ::u32 _get_file_attributes(const ::file::path & path);
132 CLASS_DECL_ACME ::u32 get_file_attributes(const ::file::path & path);
134 CLASS_DECL_ACME ::i32_bool is_win32_accessible(::u32 uFileAttributes,
const last_error & lasterror);
136 CLASS_DECL_ACME ::i32_bool is_win32_accessible(const ::file::path & path);
138 CLASS_DECL_ACME
void set_file_attributes(const ::file::path & path, ::u32 uFileAttributes);
144 CLASS_DECL_ACME
error_code last_error_error_code();
181#include "acme/operating_system/windows_common/handle.h"
182#include "acme/operating_system/windows_common/file.h"
189 [[ noreturn ]] CLASS_DECL_ACME
void throw_last_error_exception(const ::scoped_string & scopedstrErrorMessage,
const last_error & lasterror = {});
190 [[ noreturn ]] CLASS_DECL_ACME
void throw_file_last_error_exception(const ::file::path & path, ::file::e_open eopen,
const last_error & lasterror = {}, const ::scoped_string & scopedstrErrorMessage =
nullptr);
Definition error_code.h:22
Definition last_error.h:10