То, что кажется приемлемым способом, - это отображение диалога сохранения в любом случае.
Отмена выключения, затем возобновление его позже, скорее всего, не вариант, по той причине, о которой вы говорите, и по другим причинам.
Поскольку недопустимо просто отбрасывать данные, других вариантов действительно нет.
Ну, кроме как сохранить данные во временный файл, а затем автоматически восстановить их при следующем запуске программы. Скорее как MS Word после того, как он разбился. На самом деле, чем больше я это рассматриваю, тем лучше звучит.
Редактировать: Есть еще один путь, а именно: непрерывно экономить, например. MS OneNote делает. Что меня поразило раньше, так это то, что при условии, что вы внедрили достойную многоуровневую отмену в своем приложении, весь бизнес, связанный с ручным сохранением, на самом деле несколько устарел - анахронизм со времен, когда дисковые операции были дорогими и подверженными ошибкам, в настоящее время в основном старой привычкой.
Но я отвлекся. В любом случае, это, вероятно, не применимо к вашему приложению, так как я предполагаю, что это нужно реализовать с самого начала.