Autor Thema: Launch-Verständnis bei MS Office Library  (Gelesen 3223 mal)

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 254
  • Geschlecht: Männlich
Launch-Verständnis bei MS Office Library
« am: 11.08.20 - 17:31:06 »
Hallo,

ich habe mich gerade mit dem Standard-Template "MS Office Library" beschäftigt, um zu sehen, ob man damit etwas sinnvolles anfangen kann.  ;)  Auf meinem R10-Server basiert das Template auf 8.5.2 von 2010. Nicht gerade aktuell, aber was soll's. Ist ja mehr aus Interesse, ich dachte sicher kann man da noch etwas lernen.

Die verschiedenen OLE-Objekte werden primär über Subform 'DocumentWorkflow' und LotusScript Library 'OLERoutines' gesteuert. Die einzelnen Hauptmasken unterscheiden sich, soweit ich das sehe, nur durch die Existenz bzw. den Inhalt des Feldes '$OLEObjProgID'. Oder doch nicht?

Dennoch ist mir beispielsweise beim 'MS Office Document\New Paintbrush Picture' nicht klar, wo bzw. wie denn das OLE-Objekt überhaupt eingebunden wird. Die Routine 'GetOrCreateOLEObject' wird hier übersprungen, weil das Feld '$OLEObjProgID' nicht existiert. Mit dem Debugger sieht man, dass das Objekt automatisch beim Öffnen erstellt bzw. eingebunden wird. Ich dachte erst, dass das dann durch die Launch-Einstellungen der Maske gesteuert wird, aber die sehen auch exakt gleich aus, wie bei allen anderen Hauptmasken (s. Anhang).

Übersehe ich da etwas? Wie haben die das gemacht?

Gruß,
  __________
  _/_
  /lachmann

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 254
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #1 am: 04.09.20 - 18:58:24 »
Hallo,

ich muss nochmal auf dieses ominöse Thema zurückkommen, weil ich das so ähnlich wirklich gebrauchen könnte. Es wäre toll, wenn mir da jemand einen deutlichen Wink mit dem Zaunpfahl geben könnte. Ich stehe nämlich voll auf dem Schlauch!

Im Template MSOffice Library (StdR7DocLibMS) gibt es beispielsweise einen Dokumententyp "MS Office Document\New Paintbrush Picture". Wenn man so ein Dokument mit eingeschaltetem LS-Debugger erstellt, sieht man, dass das eigentliche Objekt erstellt bzw. geöffnet wird, sobald das Dokument im UI erzeugt wurde, d.h. nach dem QueryOpen- und vor dem PostOpen-Event.

Ich kapiere aber beim besten Willen nicht, wo denn überhaupt festgelegt wird, welches Objekt erstellt werden soll. Eigentlich kommen ja nur diese beiden RT-Body-Felder oder die Maskendefinition selbst in Frage, denn der ganze Rest ist Standardkram. Aber nirgendwo offenbart sich mir eine Referenz.  :-:

Da es sich ja um ein V7-Template handelt, habe ich es sogar mit einem V7-Designer geöffnet. Aber da sehe ich auch nicht mehr als mit einem V10-Designer. Das Geheimnis offenbart sich leider so auch nicht.

« Letzte Änderung: 07.09.20 - 10:19:34 von Flachmann »
Gruß,
  __________
  _/_
  /lachmann

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 642
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #2 am: 07.09.20 - 22:11:49 »
Ich habe tatsächlich noch einen funktionierenden DeepLink in IBM's Developerworks dazu gefunden, ist zwar R4.6 aber da hat sich an der Technik dahinter nichts geändert - und funktioniert ja schließlich bis heute.

Für dich dürfte der Punkt Customizing the Microsoft Office Library to work with other OLE and ActiveX applications interessant sein.

https://www.ibm.com/developerworks/lotus/library/ls-MS_Office_Library_template/index.html

Den Artikel kann man sich dort auch als PDF sichern, nur für den Fall dass IBM auffällt, dass sie da noch was vergessen haben zu löschen oder irgendwann Speicherplatz sparen müssen ;)

HTH
Carsten

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 254
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #3 am: 08.09.20 - 09:53:53 »
Hallo Carsten!

Für dich dürfte der Punkt Customizing the Microsoft Office Library to work with other OLE and ActiveX applications interessant sein.
Super Beitrag, den ich gleich mal gesichert habe. Vielen Dank!  :love:

Aber eigentlich liefert er nichts wirklich Neues, denn diese Zusammenhänge konnte ich dem Code schon entnehmen. Das beschriebene Feld $OLEObjProgID ist interessanterweise in Form "Paintbrush Picture" gar nicht vorhanden. Dort funktioniert das Einbinden eben nicht über Script, sondern irgendwie anders. Das ist ja meine Frage. Ich erkenne an den Masken- bzw. Felddefinitionen nicht, wo denn definiert ist, dass ein "Paintbrush Picture" erstellt werden soll (das könnte ja auch jedes andere Objekt sein).

Der einzige sich mit OLE beschäftigende Punkt ist der obige Screenshot der 'Launch'-Optionen. Aber der sagt nur aus, dass das erste eingebundene Objekt in Body gestartet werden soll. Bei neuen Dokumenten ist das ja aber leer. Woher also "weiß" LN, dass und welches Objekt aufgerufen werden soll?

Wahrscheinlich ist das ganz einfach gelöst, ich finde es aber nicht.

Gruß,
  __________
  _/_
  /lachmann

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 642
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #4 am: 08.09.20 - 12:32:57 »
Ich konnte auf die Schnelle jetzt auch nicht sehen, wie das eingebunden wurde. Eventuell wurde da mit den Bodyfeldern getrickst (NotesPeek hat mir da aber nichts offenbart) oder bei unseren moderneren Clients fehlt eine Option. Hab jetzt aber leider nicht genügend Zeit (und Gründe) mich damit intensiver zu beschäftigen, vielleicht mal an einem ruhigen Abend, wenn ich nicht schlafen kann ;)

Ich hab bei sowas bisher eher DDE statt OLE genutzt, da hat man einfach mehr Kontrolle.

Carsten

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 254
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #5 am: 08.09.20 - 12:47:55 »
Schonmal danke fürs Nachsehen. Ich habe mir vorhin mal einen 4.6-Client installiert (von 1998!). Aber da sieht das letztlich genauso aus. Ich glaube nicht, dass man das irgendwie im Designer "sehen" kann.

Man kann sogar aus der Maske alle Felder löschen - nur das Body-Feld muss bleiben, da das ja in der Maske referenziert wird. Funktioniert immer noch. Schon interessant. Aber wenn man die Maske nachbaut, funktioniert diese nach gebaute Maske nicht, obwohl alle Einstellungen übereinstimmen.
Gruß,
  __________
  _/_
  /lachmann

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 642
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #6 am: 08.09.20 - 12:59:03 »
Die Idee mal mit einem alten Client drüber zu schauen hatte ich auch schon ;)

Falls du da nichts übersehen hast bleibt das "Tricksen" mit dem Body-Feld, das könnte wie folgt gelaufen sein:
- man erstellt ein neues Dokument (also wirklich über Erstellen>Document ohne OLE-Objekt statt eine der anderen vorgefertigten Masken zu nutzen)
- man erzeugt sich ein eigenes, leeres OLE-Objekt in diesem neu erstellten Dokument im Bodyfeld mit Erstellen>Ojekt...

Der Trick, den ich mal probieren würde wäre jetzt, sich die Items Body + OLEBody aus diesem neuen Doc mit einem Agenten zu holen und in einer selbst erstellten Maske einzufügen. Damit müssten die Eigenschaften mitwandern. Theoretisch ;)

HTH
Carsten

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #7 am: 08.09.20 - 13:04:48 »
Das hängt irgendwie mit der Autostart-Eigenschaften zusammen ... ändere das mal auf "-Keine-" und füge das Feld "$OLEObjProgID" mit dem Wert "Paint.Picture" hinzu.
Ohne Feld passiert nichts, mit Feld ist das Verhalten so wie vorher und ist damit nachstellbar ;)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 254
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #8 am: 09.09.20 - 09:05:25 »
Wie geschrieben, auch mit 4.6er-Client erkenne ich nicht wirklich wie da getrickst wurde. Zwar hat sich die Optik der Anwendung von V4.6 bis V7 etwas geändert, aber nicht in diesen uns interessierenden Fragen.

Im Prinzip verhält sich das ganze so, als ob in den Auto Launch Optionen Bitmap Image, oder eine andere Klasse ausgewählt wurde. Dann passt das. Aber Lotus (oder war das damals noch Iris?) hat da -First OLE Object- stehen. Echt komisch.

Vielen Dank allen für das Mitdenken. Ich finde es toll, dass wir hier ein aktives Forum mit wirklich kompetenten und hilfreichen Spezialisten haben.  :)
Gruß,
  __________
  _/_
  /lachmann

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: Launch-Verständnis bei MS Office Library
« Antwort #9 am: 09.09.20 - 09:54:53 »
Wahrscheinlich hat sich ein Name/Alias geändert und verhindern so die korrekt Anzeige ... wähle mal an Stelle von "-First OLE Object-" "Bitmap Image", das wäre die korrekte Auswahl für dieses Element.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz