annotate foosdk/sdk/libPPUI/win32_op.cpp @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "stdafx.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "win32_op.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include <assert.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 PFC_NORETURN PFC_NOINLINE void WIN32_OP_FAIL() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 const DWORD code = GetLastError();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 PFC_ASSERT(code != NO_ERROR);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 throw exception_win32(code);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 PFC_NORETURN PFC_NOINLINE void WIN32_OP_FAIL_CRITICAL(const char * what) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 (void)what;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 #if PFC_DEBUG
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 const DWORD code = GetLastError();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 PFC_ASSERT(code != NO_ERROR);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 pfc::crash();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 #if 0
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 pfc::string_formatter msg; msg << what << " failure #" << (uint32_t)code;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 TRACK_CODE(msg.get_ptr(), uBugCheck());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 #if PFC_DEBUG
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 void WIN32_OP_D_FAIL(const wchar_t * _Message, const wchar_t *_File, unsigned _Line) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 const DWORD code = GetLastError();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 pfc::array_t<wchar_t> msgFormatted; msgFormatted.set_size(pfc::strlen_t(_Message) + 64);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 wsprintfW(msgFormatted.get_ptr(), L"%s (code: %u)", _Message, code);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 if (IsDebuggerPresent()) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 OutputDebugString(TEXT("WIN32_OP_D() failure:\n"));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 OutputDebugString(msgFormatted.get_ptr());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 OutputDebugString(TEXT("\n"));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 pfc::crash();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 _wassert(msgFormatted.get_ptr(), _File, _Line);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 #endif