Purtroppo non affronto l'argomento subclassing in VB6 da tempo immemore (sicuramente più di 10 anni) ma temo che tu debba ricercare soluzioni relative all'intercettazione del messaggio di Windows WM_QUERYENDSESSION (se non ricordo male), che viene inviato a tutte le applicazioni quando si sta arrestando il sistema.

La tua applicazione deve rispondere a tale messaggio con la propria autonoma chiusura.

Non posso essere più specifico, ma combinando qualche parola chiave con il messaggio di cui sopra, forse puoi trovare qualche risorsa in merito cercando su Google.

Ciao!