Avatar billede herman01753 Nybegynder
28. december 2003 - 12:11 Der er 3 kommentarer og
1 løsning

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_OnDisconnection
til 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
Avatar billede arne_v Ekspert
28. december 2003 - 12:24 #1
Hvis VB6 skal den så ikke i VB kategorien ?
Avatar billede herman01753 Nybegynder
28. december 2003 - 23:28 #2
jeg har lige skrevet at jeg har haft postet spørgsmålet i VB forum, men der fik jeg ikke svar desværre, så derfor poster jeg nu i VB.NET, i håbet om at der er nogen som kender svaret :0)
Avatar billede kedde65 Praktikant
29. december 2003 - 12:18 #3
Når du opretter din knap, så brug parametren temporary så sklettes den automatisk...

Eks:
Set cmdcatering = cmdGetcatering.CommandBar.Controls.Add(Type:=msoControlButton, temporary:=True)

VH CK
Avatar billede herman01753 Nybegynder
29. december 2003 - 12:19 #4
det virker helt perfekt. tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester