Question and Answer Database FAQ2226D.txt 'EOleSys..operation unavailable' error Category :ActiveX/OLE/COM/ActiveForm Platform :All Product :Delphi 3.x Question: EOleSys..operation unavailable" error using GetActiveOleObject. What is the cause and how do I resolve this error? Answer: This occurs when using a Delphi automation server, or when the automation server (such as word.basic) is not running. procedure TForm1.Button1Click(Sender: TObject); var V: OleVariant; begin V := GetActiveOleObject('Word.Basic'); V.FileNew; V.Insert('test'); end; GetActiveOleObject is defined in ComObj.pas. It converts the classname to a guid, and passes the guid to the Windows api call GetActiveObject. function GetActiveOleObject(const ClassName: string): IDispatch; var ClassID: TCLSID; Unknown: IUnknown; begin ClassID := ProgIDToClassID(ClassName); OleCheck(GetActiveObject(ClassID, nil, Unknown)); OleCheck(Unknown.QueryInterface(IDispatch, Result)); end; The GetActiveOleObject uses an interface called IRunningObjectTable. We're not automatically registering to this table, so to have this functionality you must get this interface and use it's methods to register. 7/16/98 4:31:28 PM
Last Modified: 01-SEP-99