Zitat von
RTFM:
GetActiveOleObject returns a reference to the IDispatch interface of the active object for the given class indicated by ClassName. ClassName is the ...
Wenn's nicht läuft, gibt es diesen Fehler.
Bei diesem Fehler musst Du Word dann halt starten -> CreateOleObject('Word.Application')
Nur, wenn kein Word läuft, soll ein OLEObjekt erstellt werden.
Mit diesem Code kann ich überprüfen, ob eine Word Datei bereits läuft?
Code:
function GetWord: IDispatch;
var
ClassID: TGUID;
Unknown: IUnknown;
HR: HResult;
begin
ClassID := ProgIDToClassID('Word.Application');
HR := GetActiveObject(ClassID, nil, Unknown);
if (HR = MK_E_UNAVAILABLE) then
Result := CreateComObject(ClassID) as IDispatch
else begin
OleCheck(HR);
OleCheck(Unknown.QueryInterface(IDispatch, Result));
end;
end;