{{/* 8 august 2018 */}}// this file is generated by tools/hresultwrap and should NOT be modified directly #include "uipriv_windows.hpp" static inline HRESULT lastErrorToHRESULT(DWORD lasterr, const char *funcname) { HRESULT hr; hr = E_FAIL; if (lasterr != 0) hr = HRESULT_FROM_WIN32(lasterr); uiprivImplBug("error calling %s: last error %I32d\n", funcname, lasterr); return hr; }{{range .}} {{$narg := len .Arg}}HRESULT {{if .CallingConvention}}{{.CallingConvention}}{{else}}WINAPI{{end}} uiprivHR{{.Name}}({{range $i, $a := .Arg}}{{$a}}{{argcomma $i $narg}}{{end}}{{if .Save}}, _Out_ {{.Ret}} *outRet{{end}}) { {{.Ret}} xyzret; DWORD xyzlasterr; {{if .Save}} if (outRet == NULL) return E_POINTER; {{end}} SetLastError(0); xyzret = {{.Name}}({{range $i, $a := .Arg}}{{argname $a}}{{argcomma $i $narg}}{{end}}); xyzlasterr = GetLastError(); {{if .Save}} *outRet = xyzret; {{end}} if (xyzret != {{.Failval}}) return S_OK; return lastErrToHRESULT(xyzlasterr, "{{.Name}}()"); }{{/*TODO cleanup*/}}{{end}}