How to supress Messages?

Good idea. Write some kind of log and RETURN False.

Best to build Debug and use the Debug\ClaRun.DLL so you can get a call stack, then before the “RETURN False” do an ASSERT(0,'Program attempted PrinterDialog()'). Implement PROP:AssertHook2 to capture that info.

You could also look at SYSTEM{PROP:LastChanceHook} and LibSrc\CwExcpt.int. When any GPF or an RTL Debug Check (e.g. Array Index) occurs it will call your function before the dialog is show. You can use the Interface to log the Exception to a file and close without user interaction.

I covered it some at one the the CIDC’s. It might be covered in the Help. There are some blog posts: