Портящаяся база данных это вопрос к системному администратору.
Хук можно сделать не на окно CATIA, а на дочернее для него окно статусбара. Интересующее нас сообщение - WM_SETTEXT. С таким подходом всё должно реализовываться достаточно просто и работать, как часы.
CATIA.StatusBar - возможно???
Я же написал, что это возможно. Только вот проверять его нужно будет по таймеру, а не по событию, как было бы с хуком.
Думаю, самое эффективное это читать текст статусбара, искать по нему alias в NLS, а затем выводить его в файл лога. Как правило, NLS-имена вполне читаемы и можно понять, что к какой команде относится. Маленькая неприятность в том, что NLS-ок очень много, поэтому для быстрой работы нужно их как-то проиндексировать. Просматривать каждый раз весь список файлов не годится.
По поводу создания dll для прослушивания событий. Почитайте про Callback mechanism и Send/Receive mechanism в CAA Encyclopedia. Но на мой взгляд, реализовать прослушивание событий будет очень трудоёмко.