Re[3]: Обработка событий MSOffice, IDispEventSimpleImpl
От: Elena_ Россия  
Дата: 20.03.05 15:27
Оценка:
Здравствуйте, BorysB, Вы писали:

E_>>А если просто

E_>>
E_>>*Cancel = VARIANT_TRUE;
E_>>

E_>>тогда что?

BB>На сколько я помню таком случае Ворд падает, т.к. Cancel указывает на "плохую" область памяти.


Тогда, может быть, где-то еще в программе портится память.

BB>Именно поэтому я выделяю память под новую переменную.


Насколько я понимаю, таким кодом
BB>void __stdcall CAddin::DocumentBeforePrint(IDispatch* /*_Document**/ Doc, VARIANT_BOOL *Cancel)
BB>{        
BB>    VARIANT_BOOL *myCancel = new VARIANT_BOOL(VARIANT_TRUE);
BB>    Cancel = myCancel;
BB>}

Вы вообще ничего не передаете для вызывающей программы, кроме того выделяете память, которая не будет освобождена, так что в любом случае вряд ли этот код подходит
Пользователь — друг программиста!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.