@ts-soft: Danke für die links. Bei diesen Versionen kann ich fehlerfrei durchkompilieren, ohne dass ich was am Source anpassen muss.
Code, Tipps und Tricks? Habe ich meinen Post ursprünglich hier eröffnet?
Sorry, das müsste natürlich eher nach Allgemein oder Windows. War keine Absicht... ich bin die letzten Monate aufgrund privater Umstände ziemlich "durch", das schlägt so langsam negativ aufs Denkvermögen.
@Shardik: Ich habe es jetzt mit der aktuellen Version von ts-soft probiert.
Abgesehen davon, dass ich an COMatePLUS nichts korrigieren muss, wird das Objekt trotzdem nicht initialisiert. Eine Prüfung innerhalb der Prozedur "COMate_CreateObject" schlägt fehl:
Code: Alles auswählen
If hWnd = 0 ;No ActiveX control to house.
;Get classID from the registry.
If Left(progID$, 1) = "{"
hResult = CLSIDFromString_(progID, @clsid)
If SUCCEEDED(hResult)
hResult = ProgIDFromCLSID_(clsid, @iDisp)
If SUCCEEDED(hResult) And iDIsp
SysFreeString_(iDisp)
EndIf
EndIf
Else
hResult = CLSIDFromProgID_(progID$, @clsid);
EndIf
HIER --> If SUCCEEDED(hResult)
hResult = CoGetClassObject_(clsid, #CLSCTX_LOCAL_SERVER|#CLSCTX_INPROC_SERVER, 0, ?IID_IClassFactory, @cf)
If SUCCEEDED(hResult)
[...]
Und zwar gibt "hResult = CLSIDFromProgID_(progID$, @clsid);" den Wert -2147221005 zurück, was von der nachfolgenden Prüfung "If SUCCEEDED(hResult)" als nicht erfolgreich eingestuft wird. Der IF Block wird darauf hin nicht ausgeführt.
ProgID$ enthält "com.sun.star.ServiceManager".
@clsid zeigt nach Durchlauf von "CLSIDFromProgID_" auf eine clsid Struktur, in der jedes Element mit 0 gefüllt ist. Die CLSID wurde also nicht gefunden. Das ist jetzt auch nicht so mein Spezialgebiet - müsste die ProgID mit RegEdit.exe irgendwo in der Regesitry zu finden sein?
Zu OpenOffice:
Ich nutze OpenOffice 4.1.1 in der portablen Version. Es wurde von portableapps.com portable gemacht. Soweit mir bekannt ist, arbeitet der Launcher von portableapps.com so, dass das Programm (also OpenOffice) während der Laufzeit wie ein normal installiertes Programm im System und der Registry eingebettet ist. Erst, wenn man OpenOffice schließt werden die zugehörigen Registry-Einträge und Systemdateien gesichert und dann aus der Registry und den Systemverzeichnissen entfernt.
Mein Windows System ist XP mit SP3 (Ja, ich weiß, ich bin Nostalgiker
)