Как определить, был ли «SaveChanges: = wdDoNotSaveChanges» передан Interop.Word.Document.Close () - PullRequest
0 голосов
/ 19 мая 2011

У меня проблема с надстройкой Office, над которой я работаю, которая реализована для Office 2003 и 2007. Надстройка написана на VB.NET 3.5 с использованием VSTO.

Проблема заключается в некотором внешнем коде, который автоматизирует слияние по почте, открывает шаблон слияния, объединяет и затем закрывает шаблон документа. Закрытие осуществляется с помощью этого кода:

objWord.Documents(sDoco).Close SaveChanges:=wdDoNotSaveChanges, OriginalFormat:=wdPromptUser

Из-за некоторой логики в моем надстройке, вызванной событием Interop.Word.Application.DocumentBeforeClose, открывается окно сообщения, которое не позволяет закрывать документ Office, что нарушает автоматизацию.

Можно ли как-то определить параметр SaveChanges (если есть) при закрытии в событии Office.Interop.Word.Application, например DocumentBeforeClose? Я пытаюсь захватить этот параметр и определить, установлен ли он на wdDoNotSaveChanges, чтобы я мог обойти эту проблему.

1 Ответ

0 голосов
/ 19 мая 2011

Я почти уверен, что вы получите событие DocumentSave ПЕРЕД DocumentBeforeClose, поэтому установите в нем флаг, и если этот флаг установлен на закрытие, вы знаете, что документ был сохранен, но если нет, то это не так. Мне приходилось делать подобные вещи, чтобы узнать, был ли документ СОХРАНЕН-КАК ПРОСТО СОХРАНЕН.

Мне неизвестен способ опроса состояния этого параметра из DocumentBeforeClose.

...