[V8i C++] Trapping "File Save As"

Got a situation I can't seem to get a good solution for. When opening V7 files, we want to upgrade the graphics to our current standards. I can catch a V7 file opening via SYSTEM_NEW_DESIGN_FILE and testing for the version. If the version is V7, perform desired updates. My concern is with opening a V7 in "read only" mode then performing a "file save asV8" either from the keyin or File->Save As. I can't figure a way to perform the upgrade BEFORE the V8 file is created. I've played with a Monitor Function, but can only successfully catch the "save as v8 <filename>" keyin. If you only specify "save as v8" or use File->Save As, the dialog box opens, and once you click the OK button, you can't intercept the actual "save" processing.

I've also toyed with SYSTEM_CONVERT_V7TOV8 callback, where you get the "converted" element and can tweak it, but you get not only displayable elements but things like type 66 and 9 elements as well. Not sure how to filter then so I don't try to change a non-graphics element's graphical settings (color/weight/style/level).

There is also SYSTEM_UPGRADEV7TOV8 but not callback prototype is available. Not clear what the difference is between them.

I also see that when a model is saved for one format to another, you can query the original format ( mdlModelRef_getOriginalFormat() ), so the next time the model is opened, I can tell it's was from a V7 model and upgrade it. However, If you use that file and "save as" to a third file, it retains the "from V7" flag. Maybe if it were possible to "reset" that flag (whatever it is), that *might* be a way to handle the upgrades.

Any recommendations appreciated.

Bruce