PowerPoint 2016 64-битная зависает при инициализации TaskPanes - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть COM AddIn для PowerPoint, который содержит две панели задач.Во всех версиях, за исключением 64-разрядной версии PowerPoint 2016, мы не видели никаких проблем, но в этой версии PowerPoint зависает (на наших компьютерах и на клиентских компьютерах) при запуске.

Я написал небольшую надстройку для тестирования, которая ничего не делает.с двумя панелями задач, которые демонстрируют одинаковое поведение, то есть это нормально для PowerPoint 2010, 2013 (все версии) и PowerPoint 2016 (32-битная версия), но зависает в PowerPoint 2016. Я вставил некоторую диагностическую OutputDebugString в различные события панели задач и вижу следующее вжурнал DebugView ...

PowerPoint 2013 and 2016(32)
============================
00000002    4.34796715  [3864] TaskPaneBeforeCreate 
00000003    4.46064138  [3864] Initialise TaskPane1 
00000004    4.50027180  [3864] TaskPaneAfterCreate: TL="TaskPane1"
00000005    4.50116539  [3864] TaskPaneBeforeShow: TL="TaskPane1" 
00000006    4.52554655  [3864] TaskPaneAfterShow: TL="TaskPane1" 
00000007    4.52557039  [3864] TaskPaneBeforeCreate 
00000008    4.53154325  [3864] Initialise TaskPane2 
00000009    4.53265429  [3864] TaskPaneAfterCreate: TL="TaskPane2" 
00000010    4.53280926  [3864] TaskPaneBeforeShow: TL="TaskPane2" 
00000011    4.53707695  [3864] TaskPaneAfterShow: TL="TaskPane2"

PowerPoint 2016(64)
============================
00000002    4:42:28.674 PM  [9932] TaskPaneBeforeCreate 
00000003    4:42:28.719 PM  [9932] Initialise TaskPane1 
00000004    4:42:28.729 PM  [9932] ActivateEvent TaskPane1  
00000005    4:42:28.729 PM  [9932] TaskPaneAfterCreate: TL="TaskPane1" 
00000006    4:42:28.730 PM  [9932] TaskPaneBeforeShow: TL="TaskPane1" 
00000007    4:42:28.753 PM  [9932] TaskPaneAfterShow: TL="TaskPane1" 
00000008    4:42:28.763 PM  [9932] TaskPaneBeforeCreate 
00000009    4:42:28.765 PM  [9932] Initialise TaskPane2 
00000010    4:42:28.765 PM  [9932] DeactivateEvent TaskPane1    
00000011    4:42:28.791 PM  [9932] ActivateEvent TaskPane2  
00000012    4:42:28.791 PM  [9932] TaskPaneAfterCreate: TL="TaskPane2" 
00000013    4:42:28.797 PM  [9932] TaskPaneBeforeShow: TL="TaskPane2" 
00000014    4:42:28.813 PM  [9932] TaskPaneAfterShow: TL="TaskPane2" 
00000015    4:42:28.942 PM  [9932] DeactivateEvent TaskPane2    
00000016    4:42:28.944 PM  [9932] ActivateEvent TaskPane1  
00000017    4:42:28.951 PM  [9932] DeactivateEvent TaskPane1    
00000018    4:42:28.957 PM  [9932] ActivateEvent TaskPane2  
00000019    4:42:28.957 PM  [9932] DeactivateEvent TaskPane2    
00000020    4:42:28.961 PM  [9932] ActivateEvent TaskPane1  
00000021    4:42:28.961 PM  [9932] DeactivateEvent TaskPane1    
00000022    4:42:28.973 PM  [9932] ActivateEvent TaskPane2  
00000023    4:42:28.973 PM  [9932] DeactivateEvent TaskPane2
... and this then goes on forever hanging the machine!!

Как вы можете видеть, проблема заключается в том, что логика запуска формы изменилась из-за событий активации (что, вероятно, требует предварительной деактивации активной в данный момент панели), и мывойти в бесконечный цикл.

Кто-нибудь знает, как я могу решить эту проблему?

Заранее большое спасибо

Ричард Теллер

...