Just to clarify standard Windows printer behavior.
I have not read this entire thread, so some of this may have already been mentioned. It took me some time to figure this all out by trial and error.
The "windows default printer" is selected automatically by any app when it opens and also remains the selected printer unless it it is changed within the app.
If an app selects a printer, it is then used within that app until the app is closed. This selection does not affect any other apps. And it does not affect the windows default printer. Of course, an app could override this behavior by saving and restoring it's own printer selections. This may or may not be advisable. I have used this occasionally when different reports needed to be sent to different printers (within the same app).
It is possible to change the windows default printer from within an app, but I would suggest never doing it. Doing so would mess up all other apps that are relying on the windows default printer (that was set via the Windows printer-setup routine).
You could provide the user the option to save the selected printer for use only within that app. Just save the printer model in a config file, then restore it whenever the program is run.
So, Oscar, if your app is loosing the selected printer, it would seem that FWH/(x)Harbour is doing it and it is not the Windows standard.
Regards,
James