создать простую надстройку для точки питания и это кодрелиз PowerPoint Interop Com экземпляр член класса в C#
pp.Application ppApplication = new pp.Application();
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
ppApplication.PresentationOpen += new pp.EApplication_PresentationOpenEventHandler(ppApplication_PresentationOpen);
ppApplication.PresentationClose += new pp.EApplication_PresentationCloseEventHandler(ppApplication_PresentationClose);
}
void ppApplication_PresentationOpen(pp.Presentation Pres)
{
}
void ppApplication_PresentationClose(pp.Presentation Pres)
{
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(ppApplication);
}
точка питания никогда не закрывается, если ppApplication глобален. Я думаю, что доза глобального com-объекта не распространяется таким образом. Что мне делать?
Почему вы используете 'new pp.Application()' в надстройке PowerPoint? У вас должен быть член 'this.Application'. Кроме того, у C# нет «глобальных» переменных, что вы подразумеваете под этим? – CodeCaster
Обработчики событий на ppApplication могут создавать зависимость, которая предотвращает освобождение ppApplication. Попробуйте удалить обработчики обработанных событий, когда вы попадете в событие PresentationClosed. – PhillipH