2010-01-29 12 views

Antwort

24

Das ist ein WinINet-Fehler, und so lebt die damit verbundene Nachricht in WinINet.dll. Sie müssen nur Format() dazu, um zu sagen, denn es ist die richtige Nachricht abzurufen:

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); 

Diese offiziell auf MSDN unter dem "Handling Errors" section der WinINet-Dokumentation dokumentiert.

Beachten Sie, dass die FORMAT_MESSAGE_FROM_SYSTEM Flagge zurück in hinzufügen können, wenn Sie wollen diese Routine auf Fehler verwenden, die nicht gekommen sind, von WinINet kann oder auch: mit dieser Flagge an Ort und Stelle, FormatMessage() wird auf der Systemnachrichtentabelle zurückgreifen wenn der Fehler in wininet.dll nicht gefunden wird. Jedoch do not remove the FORMAT_MESSAGE_IGNORE_INSERTS flag.

+1

wow wusste das nicht! –

+0

@Tommy können Sie bestätigen, dass es funktioniert? –

+3

Die Arbeit mit WinINet brachte mir eine Menge Dinge bei, die ich nicht unbedingt wissen wollte. :-( – Shog9