Error codes are unsigned 32-bit values which are private to each
calling thread. You should call the GetLastError method
immediately when a method's return value indicates that an error
has occurred. That is because some methods call
SetLastError(0) when they succeed, clearing the error code
set by the most recently failed method.
Most methods will set the last error code value when they fail;
a few methods set it when they succeed. Function failure is
typically indicated by a return value such as FALSE, NULL,
INVALID_CLIENT or DNS_ERROR. Those methods which call
SetLastError when they succeed are noted on the method
reference page.
The description of the error code is the same string that is
returned by the GetErrorString method.