Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Axel Janssen temp am 09.10.03 - 09:29:39

Titel: Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: Axel Janssen temp am 09.10.03 - 09:29:39
Hi,

wir haben für diese Funktionalität nun eine .dll.

Ich frag mich nun ob das nicht einfach auch mit der Windows-Api, d.h. ohne Einbindung einer selbstgeschriebenen dll geht:

In einem Feld "body" sind x Attachments und y eingebettete OLE-Objekte.
Die OLE-Objekte sollen in Attachments umgewandelt werden.

Gruß Axel
Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: Axel Janssen temp am 09.10.03 - 18:35:15
Ole - Objekte als .ole Files in ein bestimmtes Verzeichnis mit startender DocId oder DocUnidID im Dateinamen...
Geht das???
Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: slage am 10.10.03 - 11:42:01
Hi,

die dll würde mich auch interessieren, habe ein gewachsene MS-Library, die dringend überarbeitetet (entOLEsiert) werden müßte.

Gibts da ne Chance?

Danke,
slage
Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: Axel Janssen temp am 10.10.03 - 13:45:47
Muss hier erst durchgesprochen werden. Der entscheidende Mann ist derzeit nicht greifbar.

Gruß Axel
Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: joringel am 10.10.03 - 15:44:57
Geht das nicht auch mit Script?



...

   Set doc = uiDoc.document
   
   Set item = doc.GetFirstItem("object")
   obs = item.EmbeddedObjects
   Forall ob In obs
      
      Select Case ob.Type
      Case EMBED_OBJECT:
         
         strClass = ob.Class         
         Select Case strClass
         Case "Word.Document.8"
            strExtension = ".doc"
         Case "Excel.Sheet.8"
            strExtension = ".xsl"
                           ...
         End Select
         
         strPathFile = "c:\temp\" & ob.Source & strExtension
         
         Set handle = ob.Activate( False )
         handle.SaveAs(strPathFile)
         
         Call ob.remove()
         Call item.EmbedObject(EMBED_ATTACHMENT, strClass, strPathFile)
         
         Kill strPathFile      
      End Select
      
   End Forall
   
   Call doc.Save(True,True,True)
   

Gruss
joringel
Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: Axel Janssen temp am 10.10.03 - 16:20:33
Geht das nicht auch mit Script?

Kann sein  ;D
Hilft mir bei meiner Anwendung leider auch nicht unbedingt weiter, weil ... bin ich jetzt zu faul zu erklären.
Jedenfalls vielen dank für den code.
Werds mal ausprobieren.

HALT: WICHTIGE FRAGE:
Gibt es irgendwo ein Dokument mit dem mapping der NotesEmbeddedObject.Class properties und der Dateiendung  ???

Also eine Übersicht der Art :
Word.Document.* -> .doc
Excel.Sheet.* -> .xls
WordPro.Document -> .lwp

Gruß Axel

Titel: Re:Umwandeln OLE-Objekte -> Attachments: geht das auch mit Win-Api?
Beitrag von: Semeaphoros am 10.10.03 - 16:26:14
Such mal bei Microsoft, die hatten das mal ich glaub in einem KB-Artikel. Ansonsten dürfte ein Googeln durch Fileextensions eine Menge an Infos liefern.
Titel: Pls. help
Beitrag von: Axel Janssen temp am 14.10.03 - 17:36:33
Gibt es wirklich keine (auch kommerzielle) Lösung als .dll  ???

OLE-Objekt zu Attachment?

Die LotusScript Lösung mit activate() benötigt nach den Angaben von Kollegen die entsprechenden Anwendungen installiert auf dem Rechner, wo das activate ausgeführt wird (hier Server). Das wird nur im Notfall akzeptiert.
Ausserdem werden angeblich manche Elemente nicht korrekt ins Attachment übernommen (Textmarken).

<kanns_nicht_besser_ausdruecken>
Ich habs mit Java (jakarta.poi) versucht und bin zu dem zwischenzeitlichen Ergebnis gekommen, dass das damit (noch) nicht geht.
Ein OLE-Objekt ist eine Art Filesystem mit Unterverzeichnissen etc. (s. Attachment, mir war das bisher nicht bewusst).  Ich kann auf die Entries in diesem Filesystem mit POI zugreifen. Leider ist OLE aber nicht besonders trivial. Der vielversprechend klingende DocumentEntry WordDocument (eingebettetes Word-Ole Objekt) ist nicht das Word-Dokument an sich, d.h. da fehlt oben und unten einiges (laut Hex-Editor).  
</kanns_nicht_besser_ausdruecken>
Werde hierüber weiter informieren und bin dabei eine Anfrage an die POI User group zu starten.

Gruß Axel