这是一个 WinINet 错误,因此与之关联的消息位于 WinINet.dll 中。您只需要告诉 FormatMessage() 以使其检索正确的消息:
FormatMessage(
// flags:
FORMAT_MESSAGE_ALLOCATE_BUFFER // allocate buffer (free with LocalFree())
| FORMAT_MESSAGE_IGNORE_INSERTS // don't process inserts
| FORMAT_MESSAGE_FROM_HMODULE, // retrieve message from specified DLL
// module to retrieve message text from
GetModuleHandle(_T("wininet.dll")),
// error code to look up
errCode,
// default language
0,
// address of location to hold pointer to allocated buffer
(LPTSTR)&lpMsgBuf,
// no minimum size
0,
// no arguments
NULL );
这在 WinINet 文档的“处理错误”部分下正式记录在 MSDN 上。
请注意,FORMAT_MESSAGE_FROM_SYSTEM
如果您想将此例程用于可能来自或可能不是来自 WinINet 的错误,则可以重新添加标志:使用该标志,FormatMessage()
如果在wininet.dll。但是,不要删除FORMAT_MESSAGE_IGNORE_INSERTS标志。