Na początek fragment dokumentacji:
http://msdn.microsoft.com/en-us/library/office/aa140279(v=office.10).aspx#odc_replacebuiltinroutines
One way we can alter Word's behavior is by creating macros to run in place of Word's built-in routines. For example, Word has a built-in routine called FilePrint that runs when a user chooses the File menu and then selects Print. If we create a macro called FilePrint, Word runs our macro instead of the built-in routine. (To see a list of built-in routines that can be overridden with like-named macros, on the Tools menu, point to Macro, and then click Macros. On the Macros dialog box set the Macros in: list to Word commands.)
W celach testowych przygotujmy sobie takie oto makro:
Public Sub FileClose()
MsgBox "FileClose"
End Sub
Zgodnie z teorią, po zaimplementowaniu takiego makra np. w szablonie normal.dot, wybranie Plik -> Zamknij powinno zaskutkować pojawieniem się message boxa i nie zamknięciem się dokumentu. Skutecznie przechwyciliśmy event Worda, przejmując kontrolę nad tym, czy zostanie zamknięty, czy też nie.
Pod Wordem 2003 działa bez problemów.
Identyczne makro pod Wordem 2010 nie działa wcale. Message box się nie pokazuje, dokument się zamyka po swojemu. Próbowałam również DocClose i FileExit, również bez rezultatu.
Czy ma ktoś może pojęcie, co też znowu Microsoft koniecznie musiał zmienić, żeby deweloperom życie utrudnić...?