2010-01-29 56 views

回答

24

這是一個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); 

這是在MSDN下的文件的WinINet的"Handling Errors" section正式記錄。

請注意,您可以添加FORMAT_MESSAGE_FROM_SYSTEM標誌回來,如果你想使用這個程序錯誤,可能會或可能有來自的WinINet:與地方標誌,​​將回落在系統消息表如果在wininet.dll中找不到該錯誤。但是,do not remove the FORMAT_MESSAGE_IGNORE_INSERTS flag

+1

哇不知道這個! – 2010-01-29 02:50:24

+0

@Tommy你能證實它有效嗎? – 2010-01-29 02:50:41

+3

使用WinINet教會了我很多我並不特別想知道的事情。 :-( – Shog9 2010-01-29 02:56:44

相關問題