alexcon314 выше говорил что для корректного завершения программы нужно слушать события WM_QUERYENDSESSION и WM_ENDSESSION.
Для того что бы флешь мог услышать нативное событие: пишем нативный код для винды (C++ или C# не знаю как это там делается), в этом коде слушаем выше указанные нативные события. Как только нативное событие сработало - дергаем метод во флешке. Как дернуть флешовый метод из натива я писал выше.
http://anedevelop.blogspot.ru/ - здесь подробно расписано про нативные расширения для iOS, для человека разбирающегося в WinAPI думаю не сложно будет перенести на винду имеющиеся примеры.
Добавлено через 2 минуты
Если здесь есть программисты разбирающиеся в разработке для винды - я готов попробовать вместе написать нативное расширения для прослушивания этих событий. Интересная тема
