com add-in til outlook kan ikke rydde op efter sig
Jeg har lavet en com add-inn til outlook i VB6.0, som tilføjer et menupunkt, i menuen new. ved lukning af outlook vil jeg gerne have slettet menupunktet igen, og rent kodemæssigt er det ikke noget problem. Det jeg har problemer med, er at ved lukning af MS Outlook, skal jeg bruge eventen IDTExtensibility2_OnDisconnectiontil at rydde op, men har læst inde på msdn at den ikke er pålidelig til at få affyret eventen inden der lukkes ned for GUI, da Outlook står og snakker med exchange servere etc. Derfor kan man ikk være sikker på om der bliver ryddet op på det rigtige tidspunkt. se link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnout2k2/html/odc_oladdinvbnet.asp
Reelt betyder det for mig at outlook snakker med exchangeserveren, og jeg derfor ikke har adgang til at få fjernet min knap.
i artiklen står også at man kan komme om ved det med følgende kode til .NET:
********************
'Declarations made using WithEvents and coclass.
Dim WithEvents m_olExplorer As Outlook.ExplorerClass
Dim WithEvents m_olInspector As Outlook.InspectorClass
'Explorer Close event code:
Private Sub m_olExplorer_Close() _
Handles m_olExplorer.ExplorerEvents_Event_Close
Try
DebugWriter("Explorer_Close Called", "")
m_olExplorer = CType(m_olApp.ActiveExplorer, _
Outlook.ExplorerClass)
If (m_olExplorer Is Nothing) And _
(m_olApp.Inspectors.Count = 0) Then
/*min kode*/
End If
Catch ex As SystemException
DebugWriter("Explorer_Close Exception: {0}", ex.Message)
End Try
End Sub
'Inspector Close event code:
Private Sub m_olInspector_Close() _
Handles m_olInspector.InspectorEvents_Event_Close
Try
DebugWriter("Inspector_Close Called", "")
If m_olApp.ActiveExplorer Is Nothing And _
m_olApp.Inspectors.Count <= 1 Then
/*min kode*/
End If
Catch ex As SystemException
DebugWriter("Inspector_Close Exception: {0}", ex.Message)
End Try
End Sub
**********************
humlen er at jeg programmerer dette i visual basic 6.0. og derfor ikke kan implementere det på denne måde da keyword "handles" ikke er godkent i vb6. Desuden findes outlook.explorerclass heller ikke, og jeg har prøvet med bare outlook.explorer og funktionen my_explorer_close() (Close er event for klassen Explorer) istedet for den foreslåede event. er der nogen som har et forslag til at løse problemet så jeg kan bruge det i VB6.0?
Jeg har prøvet at poste spørgsmålet under VB, men fik ingen svar, håber der er nogle vb.Net folk der kan hjælpe mig
Med Venlig hilsen
Herman
