From: RandyH on
I'm modifying a VB6 application that uses RDS to access objects in an ActiveX
DLL. I added a new class to the DLL, to support new functionality in the
program.

The existing objects in the DLL work fine, with no errors. The new object
I've created (by copying one of the existing classes and changing names)
gives the error in the title.

The difference in behavior makes me think it is not a permissions problem
(which several Internet references suggest is the problem).

The lines that work read:

Set objList = rdsObj.CreateObject("DIWDBIO.CountryPersist",
ConnectionInfo.Server)

sXML = objList.GetList(xDOM.xml)

The ones that fail are:

Set objList = rdsObj.CreateObject("DIWDBIO.SalesRepPersist",
ConnectionInfo.Server)

sXML = objList.GetList(xDOM.xml)


The debugger actually stops on the second line (sXML =).

The only difference between the two being the object name; note that
SalesRepPersist was created from CountryPersist.

Any insight would be appreciated.
From: Ken Halter on
"RandyH" <RandyH(a)discussions.microsoft.com> wrote in message
news:0A64375E-EFA6-41BE-ACE3-38F90CC7C77E(a)microsoft.com...
> I'm modifying a VB6 application that uses RDS to access objects in an
> ActiveX
> DLL. I added a new class to the DLL, to support new functionality in the
> program.

That "4100" is something your error handler generated... but, how did you
copy the class? If you used Windows Explorer to make an exact copy and
simply changed the file name, it wouldn't have worked (without a lot of
headaches and using Notepad to "fix" things)... so, I imagine, you added a
new class and copy/pasted the code from one to the other... right?

Either way, is the instancing property of this new class the same as the
old? Also, are you maintaining binary compatibility? If not, big big
problems ahead.


--
Ken Halter - MS-MVP-VB - Please keep all discussions in the groups..
In Loving Memory - http://www.vbsight.com/Remembrance.htm


From: RandyH on
Ken, thanks for answering.
I did actually copy the thing through Explorer and "fix" it in Notepad
before adding it into the project. Was a bit of a headache but I got it to
work.
The Instancing property matches that of the original class.

Although I'm still looking for the "4100," it does turn out that it's
specific to the project, not a general VB error.
The DLL in question uses Registry keys to keep track of what classes it
allows to be created, so I had to create a new Registry key for the new class.
(I found out by talking to the programmer who originally created the thing,
who was kind enough to show me the mechanism he used.)

"Ken Halter" wrote:

> "RandyH" <RandyH(a)discussions.microsoft.com> wrote in message
> news:0A64375E-EFA6-41BE-ACE3-38F90CC7C77E(a)microsoft.com...
> > I'm modifying a VB6 application that uses RDS to access objects in an
> > ActiveX
> > DLL. I added a new class to the DLL, to support new functionality in the
> > program.
>
> That "4100" is something your error handler generated... but, how did you
> copy the class? If you used Windows Explorer to make an exact copy and
> simply changed the file name, it wouldn't have worked (without a lot of
> headaches and using Notepad to "fix" things)... so, I imagine, you added a
> new class and copy/pasted the code from one to the other... right?
>
> Either way, is the instancing property of this new class the same as the
> old? Also, are you maintaining binary compatibility? If not, big big
> problems ahead.
>
>
> --
> Ken Halter - MS-MVP-VB - Please keep all discussions in the groups..
> In Loving Memory - http://www.vbsight.com/Remembrance.htm
>
>
>