have u tried registering the DLL?

"Invalid class string" -- means that the object is not registered or not
found at all.

try registering the DLL like;

        CMDLine: regsvr32 <path_to_DirectSS_DLL>

if u'r sure the DLL is registered then u must have the wrong class name ....
which was your original question ... how does one find the correct
PROGID/Classname?

sorry i cannot be of more assistance...

u'd be best off searching the web for code examples....maybe post Q to a M$
newsgroup???

about all i can think of.

hth

t0by


-----Original Message-----
From: Robert Raisch [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 29, 2002 10:59 AM
To: Toby Stuart
Cc: [EMAIL PROTECTED]
Subject: RE: Win32::OLE


I did that, and found that it had another PROGID that also failed to provide
the desired effect, viz. DirectSS.DirectSS.1.

Running the provided example code elicits:

Win32::OLE(0.1502) error 0x800401f3: "Invalid class string" at C:\Documents
and
Settings\raisch\Desktop\oletest.pl line 8
        eval {...} called at C:\Documents and
Settings\raisch\Desktop\oletest.pl
 line 8
Win32::OLE(0.1502) error 0x800401f3: "Invalid class string"

As does using "DirectSS.DirectSS" and "DirectSS.DirectSS.1"

Any further assistance would be greatly appreciated.

/rr


-----Original Message-----
From: Toby Stuart [mailto:[EMAIL PROTECTED]]
Sent: Monday, January 28, 2002 6:51 PM
To: 'Robert Raisch'
Cc: '[EMAIL PROTECTED]'
Subject: RE: Win32::OLE



>>So, one wonders, how does one translate the name into something useful?
Is
>>there some arcane formulum I need or special corrective glasses, perhaps?
One way is to use 'regedit' and browse the HKEY_CLASSES_ROOT node.

Anyway try this...

#!perl.exe -w

use strict;
use Win32::OLE;

use vars qw($ex);

$ex = new Win32::OLE("DirectSS");

if (Win32::OLE->LastError) {
        print Win32::OLE->LastError();
}



-----Original Message-----
From: Robert Raisch [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 29, 2002 10:08 AM
To: [EMAIL PROTECTED]
Subject: Win32::OLE


Given the existence of an OLE control, as is seen in the OLE Browser
application, how does one use the object's various names?

As an example, my machine appears to contain a control called, variously:

        Microsoft Direct Text-to-Speech
        Library ACTIVEVOICEPROJECTLib
        DirectSS

One would assume (forgive me, I'm Windows-disabled, having been weened onto
BSD in the hoary mists of prehistory), that something like:

        $ex = new Win32::OLE->new('DirectSS') or die "Nope:$@";

would succeed and not be driven to address me in such an impolite manner,
but sadly, this is not the case.

So, one wonders, how does one translate the name into something useful?  Is
there some arcane formulum I need or special corrective glasses, perhaps?

Thanks.

/rr

_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/activeperl

_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/activeperl
_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/listinfo/activeperl

Reply via email to