Здравствуйте, 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>}
Вы вообще ничего не передаете для вызывающей программы, кроме того выделяете память, которая не будет освобождена, так что в любом случае вряд ли этот код подходит