Solved

EOleSysError under NT5_Beta 2.

Posted on 1998-09-22
17
177 Views
Last Modified: 2010-04-06
When trying to start my app under NT5_Beta 2 I get the exception "EOleSysError, Class not registered." What does this error mean and is there an easy way to fix this? Btw, I'm using Delphi 4.0(with the update).

Thanks
0
Comment
Question by:Karma121397
  • 8
  • 8
17 Comments
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
Karma,

probably you're using a COM object somewhere in your program that isn't registered yet. Do you have an 3rd party OCX, ActiveX or components or are you using COM objects directly?
Another question: If you use windows interfaces (=COM object) like IShellLink - have you called "CoInitialize"?

Regards, Madshi.
0
 

Author Comment

by:Karma121397
Comment Utility
I'm not using any 3rd party OCX, ActiveX, or any external components. As for using COM objects directly.. I have no clue. Could you give me an example of what or where to look to determine this.
0
 

Author Comment

by:Karma121397
Comment Utility
Well I must have done something or added something recently because I get the same error under Win98 now.
0
 

Author Comment

by:Karma121397
Comment Utility
"Another question: If you use windows interfaces (=COM object) like IShellLink - have you called "CoInitialize"? ":
I did add a component that encapsulates the SHFileOperation() function(TFileOperation), does this count as a COM objcet and what would I need to do inorder to make sure I have called CoInitialize?
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
I'm not sure about SHFileOperation.
Please edit your project file.

var CoInitSucc : boolean = false;            // add this line
begin
  CoInitSucc:=succeeded(CoInitialize(nil));  // add this
  try                                        // and this
    Application.Initialize;
    Application.CreateForm...
    Application.Run;
  finally if CoInitSucc then CoUnInitialize; end;  // and this
end;

It's just a try. If it works - great. If not - we'll look for another solution.

Regards, Madshi.
0
 

Author Comment

by:Karma121397
Comment Utility
{$R *.RES}
var CoInitSucc : boolean = false;            // add this line
begin
  CoInitSucc:=succeeded(CoInitialize(nil));  // add this
  try                                        // and this
    Application.Initialize;
    Application.CreateForm(TfrmMain, frmMain);
    Application.CreateForm(TfrmCrcArchiveAdd, frmCrcArchiveAdd);
    Application.CreateForm(TfrmProgressDlg, frmProgressDlg);
    Application.CreateForm(TfrmErrorLog, frmErrorLog);
    Application.CreateForm(TfrmOptions, frmOptions);
    Application.Run;
   finally if CoInitSucc then CoUnInitialize;
end;  // and this

This what I added to the project file, I get the following errors:
[Error] CRChecker.dpr(14): Undeclared identifier: 'succeeded'
[Error] CRChecker.dpr(23): Undeclared identifier: 'CoUnInitialize'
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
Please add ActiveX to the uses statement.

uses ActiveX, Forms,
     ...;

Regards, Madshi.
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
P.S: There's an "end" missing, too. The finally has it's own "end".
0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:Karma121397
Comment Utility
Well I tracked it down to the THTML component. If I remove it the error goes away. Any idea why it's giving me the error? Here is what I'm using HTML for(it just checks a file on my web server to see if the user has the most recent version).
Call to start the lookup:
HTML.RequestDoc('www.myserver.com/test.ver');

HTML ParseComplete Event:
procedure TfrmMain.HTMLParseComplete(Sender: TObject);
begin
  If (Length(HTML.SourceText) > 4) or (HTML.SourceText = '') then
    ShowMessage('Error Checking Version. Please try again later.')
  else if NeedToUpdate('2.04', HTML.SourceText) = True then
    ShowMessage('You need to update! Version ' + HTML.SourceText + ' has been released.')
  else
    ShowMessage('You have the most recent version');
  MainMenuCheckForUpdate.Enabled := True;
  TrayMenuCheckForUpdate.Enabled := True;
end;
0
 

Author Comment

by:Karma121397
Comment Utility
Ok it compiled but I still have the error =(
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
Have you tried CoInitialize? Didn't it help?

If not, I think this HTML component tries to create a COM object that is not known (yet) by windows. Do you have the source code of this component? Then look for "QueryInterface" and write me these lines (if not too many).

Regards, Madshi.

P.S: Now it is almost 20:00 (PM) in Germany. So you'll have to wait some hours for my next comment. Perhaps someone else will have a try... Bon nuit.   :-)
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
Ooops, have not seen your last comment. Ok, please look for "QueryInterface".
Does this component come with a DLL?
0
 

Author Comment

by:Karma121397
Comment Utility
Thanks for the help, go get some sleep =) The HTML component shipped with Delphi 4.0, it's under the Internet tab. QueryInterface didn't return any matches on a search of the files in my project.
0
 
LVL 20

Expert Comment

by:Madshi
Comment Utility
I looked at this component, but unfortunately I've sources for all Delphi components except the internet components.
So I can't help you. The HTML component is an ActiveX-Component. I don't know exactly what is the problem. Seems that a needed class is not registered. I looked at the help file and found the following support eMail: "dev_support@netmanage.com". Please write your problem to this eMail.

Regards, Madshi.
0
 

Author Comment

by:Karma121397
Comment Utility
Ok thanks for the info, you've been a great help. Please answer the question so I can give you creidt.
0
 
LVL 20

Accepted Solution

by:
Madshi earned 100 total points
Comment Utility
Thank you...   :-)
0
 
LVL 10

Expert Comment

by:viktornet
Comment Utility
Here is what I got in the Delphi support area.....
----------------
Error: "EOleSysError : Error loading type library/DLL"

          Question:

          The client machine displays error "EOleSysError: Error loading type library/DLL".
          DBCLIENT.DLL and IDPROV32.DLL files are present in the BDE directory of Delphi.

          Answer:

          Make sure that STDVCL32.DLL is on the machine in the
          WINDOWS\SYSTEM directory and registered.

            REGSVR32 STDVCL32.DLL
-------------
Regards,
Viktor Ivanov
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now