.
Anmeldung | Registrieren | Hilfe
in Suchen

Aus eigener Anwendung Add-In in Word ansprechen

Letzter Beitrag 08. Mai 2016 10:44 von James_007. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 08. Mai 2016 10:44

    • James_007
    • Nicht gereiht
      Männlich
    • Registriert am 08. Mai 2016
    • Augsburg
    • Beiträge 1
    • Punkte 5

    Aus eigener Anwendung Add-In in Word ansprechen

    Hallo Programmierfreunde :D

    Kurz zur Info: Programmieren hab ich mir weitesgehend selbst beigebracht. Deshalb vielleicht etwas ausführlich sein! :)
    Ich stehe vor einem mir unlösbaren Problem. Ich habe eine Anwendung, welches eine Art digitale Akte darstellt. Die Software ist in .NET-Framework v4 entwickelt. Funktioniert auch prima. Nun hab ich für diese Anwendung ein Word-AddIn erstellt mit einer Ribbon-Registrierkarte. Aus der Anwendung heraus wird eine Word-Vorlage genommen, Textpassagen geändert (mit Bookmarks) und anschließend soll das Dokument für die Bearbeitung dem Benutzer angezeigt werden. Funktioniert bis hier hin alles. Dann hat der Benutzer die Möglichkeit über meinen Reiter des Add-Ins das Dokument in die Akte zu speichern. Nun muss ich das Word-Dokument erstellen, dann an meine Anwendung übermitteln, welche Sie wieder in die Datenbank speichert. Ich habe mir gedacht, da ich für die Datenbank lauter DLL-Bibliotheken geschrieben habe, übernimmt das Speichern in die Datenbank das Add-In. Allerdings muss ich dem Add-In irgendwie übergeben können, in welche Akten das gespeichert werden soll.

    Habe dafür diese Lösung von Microsoft gefunden: https://msdn.microsoft.com/de-de/library/bb608614.aspx
    Leider funktioniert diese bei mir nicht. Ich erhalte stets die Fehlermeldung: This operation failed because the QueryInterface call on the COM component for the interface with IID ‘{3CA8CD11-274A-41B6-A999-28562DAB3AA2}’failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

    Hier meine Lösung:
    WordAddin - ThisAddIn:
    Public Class ThisAddIn
    
        Private utils As AddInUtilities = Nothing
    
        Private Sub ThisAddIn_Startup() Handles Me.Startup
    
        End Sub
    
        Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    
        End Sub
    
        Protected Overrides Function RequestComAddInAutomationService() As Object
            If utils Is Nothing Then
                utils = New AddInUtilities()
            End If
            Return utils
        End Function
    
    End Class


    WordAddin - AddInUtilities.vb:
    Imports System.Data
    Imports System.Runtime.InteropServices
    Imports MSWord = Microsoft.Office.Interop.Word
    
    <ComVisible(True)> _
    <InterfaceType(ComInterfaceType.InterfaceIsDual)> _
    Public Interface IAddInUtilities
        Sub SetAkteID(ByVal AkteID As Integer)
    End Interface
    
    <ComVisible(True)> _
    <ClassInterface(ClassInterfaceType.AutoDual)> _
    Public Class AddInUtilities
        Inherits StandardOleMarshalObject
        Implements IAddInUtilities
    
        Public Sub SetAkteID(AkteID As Integer) Implements IAddInUtilities.SetAkteID
            GlobVars.AkteID = AkteID
        End Sub
    End Class


    Function aus der eigenen Anwendung mit Verweis auf die AddIn-DLL:
    Public Function SendeAddInBefehl(ByVal AddInMethode As String, ByVal ParamArray AddInMethodArgument() As Object) As Boolean
          Dim res As Boolean = False
                
          Try
               Dim addin As MSOffice.COMAddIn = _wordApp.COMAddIns.Item("MIS.WordAddin2010")
               Dim utils As MIS.WordAddin2010.IAddInUtilities = DirectCast(addin, MIS.WordAddin2010.IAddInUtilities) 'Hier entsteht die Exception
               utils.SetAkteID(12)
               res = True
          Catch ex As Exception
               _errmsg = ex.Message
          End Try
            
          Return res
    End Function


    Ich hoffe, ihr könnt mir helfen!?!
    LG aus Augsburg,
    Danny
    Abgelegt unter: , , , , ,
    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)

Regeln | Impressum