This was buried in DIBToBitmap, which wasn't quite right, because on caller was the message pump.
The caller can check the return value if they want to either throw an error or show a dialog box.
None of the callers do because FMSLogo is not robust in low memory conditions.