74 if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0,
m_num, dwLanguageId, str, NULL)) {
76 str.erase(str.find_last_not_of(_T(
" \t\n\r\f\v")) + 1);
78 sprintf(str,
m_num >= 0x10000 ? _T(
"Error 0x%X") : _T(
"Error %u"),
m_num);
88#if (NTDDI_VERSION >= NTDDI_WINXPSP2) || (_WIN32_WINNT >= 0x0502)
105 _In_opt_ PCSTR pNodeName,
106 _In_opt_ PCSTR pServiceName,
107 _In_opt_ const ADDRINFOA *pHints)
110 if (GetAddrInfoA(pNodeName, pServiceName, pHints, &h) == 0) {
155 _In_opt_ PCWSTR pNodeName,
156 _In_opt_ PCWSTR pServiceName,
157 _In_opt_ const ADDRINFOW *pHints)
160 if (GetAddrInfoW(pNodeName, pServiceName, pHints, &h) == 0) {
208#pragma warning(disable: 4505)
211static INT GetAddrInfoA(
212 _In_opt_ PCSTR pNodeName,
213 _In_opt_ PCSTR pServiceName,
214 _In_opt_
const ADDRINFOA *pHints,
218 INT iResult = GetAddrInfoA(pNodeName, pServiceName, pHints, &h);
229static INT GetAddrInfoW(
230 _In_opt_ PCWSTR pNodeName,
231 _In_opt_ PCWSTR pServiceName,
232 _In_opt_
const ADDRINFOW *pHints,
236 INT iResult = GetAddrInfoW(pNodeName, pServiceName, pHints, &h);
SID wrapper class.
Definition: WinSock2.h:94
void free_internal() noexcept override
Frees address information.
Definition: WinSock2.h:134
virtual ~addrinfo()
Frees address information.
Definition: WinSock2.h:122
__declspec(deprecated("Use GetAddrInfoA")) bool get(PCSTR pNodeName
Provides protocol-independent translation from a host name to an address.
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
PADDRINFOA handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
handle_type m_h
Object handle.
Definition: Common.h:854
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
Numerical runtime error.
Definition: Common.h:1002
int error_type
Error number type.
Definition: Common.h:1004
error_type m_num
Numeric error code.
Definition: Common.h:1040
SID wrapper class.
Definition: WinSock2.h:144
virtual ~waddrinfo()
Frees address information.
Definition: WinSock2.h:172
void free_internal() noexcept override
Frees address information.
Definition: WinSock2.h:184
__declspec(deprecated("Use GetAddrInfoW")) bool get(PCWSTR pNodeName
Provides protocol-independent translation from a host name to an address.
WinSock2 runtime error.
Definition: WinSock2.h:26
ws2_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: WinSock2.h:44
ws2_runtime_error(const char *msg=nullptr)
Constructs an exception using WSAGetLastError()
Definition: WinSock2.h:62
ws2_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: WinSock2.h:34
ws2_runtime_error(const std::string &msg)
Constructs an exception using WSAGetLastError()
Definition: WinSock2.h:53
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: WinSock2.h:71
addrinfo taddrinfo
Multi-byte / Wide-character SID wrapper class (according to _UNICODE)
Definition: WinSock2.h:196
std::string tstring
Multi-byte / Wide-character string (according to _UNICODE)
Definition: Common.h:334
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
static const PADDRINFOA invalid
Invalid handle value.
Definition: Common.h:613