+1 (it also maintains the E_FAIL experience if ::GetLastError() doesn't return a failure code).