libui/windows/tools/cpp.template

30 lines
1021 B
Plaintext
Raw Normal View History

{{/* 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}}()");
2018-08-08 20:31:58 -05:00
}{{/*TODO cleanup*/}}{{end}}