L
LukeV
I have these events:
(Outlook::ExplorerEvents)> ExplorerBeforeFolderSwitch;
(Outlook::ExplorerEvents)> ExplorerClose;
(Outlook::ApplicationEvents)> ApplicationQuit;
This pointer:
CComPtr<Outlook::_Explorer> m_spExplorer;
ExplorerBeforeFolderSwitch:ispEventUnadvise((IDispatch*)m_spExplorer);
In OnExplorerClose:
{
// Get the Command Bar position
if( m_spCmdBar )
{
m_spCmdBar->get_RowIndex( ®.m_nCBRowIndex );
m_spCmdBar->get_Left( ®.m_nCBLeft );
}
hr =
ExplorerBeforeFolderSwitch:ispEventUnadvise((IDispatch*)m_spExplorer);
hr = ExplorerClose:ispEventUnadvise((IDispatch*)m_spExplorer);
m_spExplorer = NULL;
}
I set m_spExplorer = NULL so OnApplicationQuit will get called (it won't if
I don't set the pointer to NULL). In Outlook 2002, this works fine but
setting the pointer to NULL will crash Outlook 2000.
By the way, the crash will only occur if I change the selection in the
Folder List view...
Any hints? Thanks!
(Outlook::ExplorerEvents)> ExplorerBeforeFolderSwitch;
(Outlook::ExplorerEvents)> ExplorerClose;
(Outlook::ApplicationEvents)> ApplicationQuit;
This pointer:
CComPtr<Outlook::_Explorer> m_spExplorer;
ExplorerBeforeFolderSwitch:ispEventUnadvise((IDispatch*)m_spExplorer);
In OnExplorerClose:
{
// Get the Command Bar position
if( m_spCmdBar )
{
m_spCmdBar->get_RowIndex( ®.m_nCBRowIndex );
m_spCmdBar->get_Left( ®.m_nCBLeft );
}
hr =
ExplorerBeforeFolderSwitch:ispEventUnadvise((IDispatch*)m_spExplorer);
hr = ExplorerClose:ispEventUnadvise((IDispatch*)m_spExplorer);
m_spExplorer = NULL;
}
I set m_spExplorer = NULL so OnApplicationQuit will get called (it won't if
I don't set the pointer to NULL). In Outlook 2002, this works fine but
setting the pointer to NULL will crash Outlook 2000.
By the way, the crash will only occur if I change the selection in the
Folder List view...
Any hints? Thanks!