From: Ralph on
CY wrote:
> Like all said above, upgrade if you can...
>
> But it might be worth the trouble to do it in steps. (If you got VB4,
> skip 5 I think and then go 6) My comm line (I dont think that existed
> in VB3, but I got one) became a Picture Box and so on, think 3-->4 was
> a big step. but that work seems a bit more productive than writing a
> wrapper.
>

My first reaction was that would be a waste of time, BUT on further
reflection - assuming the OP had or could obtain a full copy of VB4 - it did
include a 'upgrade' tool to convert VB3 to VB4 - that would probably save
some time. VB4 at least still recognized the older controls etc. Popping VB3
into VB6 would likely be a greater adventure, than working with VB4.

Something else... I've forgot just when, but didn't one have to deliberately
save VB 'source' files as text, otherwise VB saved its files in a binary
format. I doubt those old pcode files would load into VB6 (????).

-ralph


From: Ralph on
Karl E. Peterson wrote:
> Larsken wrote:
>> So with my time running out I really hope that someone here on this
>> forum has a good solution on (at first) how to call this VB6 COM dll
>> or another similar GUI - less object from VB 3.0 ?
>
> The problem you're having is that you're trying to load a 32-bit
> library into a 16-bit process. Cut out a few words in that last
> sentence, to the *critical* part: "in-process". No can do.
>
> Create the 32-bit COM server as an ActiveX EXE, which will run
> "out-of-process", and this approach should fly. (I hope I haven't
> just ruined your "can't be done" excuse for rewriting the whole
> project? <g>)
>

He would still SOL, so you haven't ruined a thing.

Late or early binding, IUnknown or IDispatch (Automation), Standard DLL or
ActiveX - 16-bit can't talk to 32-bit without a custom mediator, or
indirectly through system services (Registry, files, etc).

-ralph


From: Karl E. Peterson on
Ralph wrote:
> Karl E. Peterson wrote:
>> Larsken wrote:
>>> So with my time running out I really hope that someone here on this
>>> forum has a good solution on (at first) how to call this VB6 COM dll
>>> or another similar GUI - less object from VB 3.0 ?
>>
>> The problem you're having is that you're trying to load a 32-bit
>> library into a 16-bit process. Cut out a few words in that last
>> sentence, to the *critical* part: "in-process". No can do.
>>
>> Create the 32-bit COM server as an ActiveX EXE, which will run
>> "out-of-process", and this approach should fly. (I hope I haven't
>> just ruined your "can't be done" excuse for rewriting the whole
>> project? <g>)
>
> He would still SOL, so you haven't ruined a thing.
>
> Late or early binding, IUnknown or IDispatch (Automation), Standard DLL or
> ActiveX - 16-bit can't talk to 32-bit without a custom mediator, or
> indirectly through system services (Registry, files, etc).

I've had no problem talking to a 16-bit ActiveX EXE from a 32-bit app.
Why would it be more difficult to go the other way? Isn't COM the
mediator?

--
..NET: It's About Trust!
http://vfred.mvps.org


From: Karl E. Peterson on
Ralph wrote:
> My first reaction was that would be a waste of time, BUT on further
> reflection - assuming the OP had or could obtain a full copy of VB4 - it did
> include a 'upgrade' tool to convert VB3 to VB4 - that would probably save
> some time. VB4 at least still recognized the older controls etc. Popping VB3
> into VB6 would likely be a greater adventure, than working with VB4.

I actually found a shrinkwrapped copy of VB4EE the other day, in a
closet, and was wondering if it might still have any value.

> Something else... I've forgot just when, but didn't one have to deliberately
> save VB 'source' files as text, otherwise VB saved its files in a binary
> format. I doubt those old pcode files would load into VB6 (????).

Yeah, I fired up VB3 the other day, and saw that the options still used
binary by default. So it definitely had to be toggled to text there.

--
..NET: It's About Trust!
http://vfred.mvps.org


From: Paul Clement on
On Thu, 4 Feb 2010 12:51:49 -0600, "Ralph" <nt_consulting64(a)yahoo.com> wrote:

� Karl E. Peterson wrote:
� > Larsken wrote:
� >> So with my time running out I really hope that someone here on this
� >> forum has a good solution on (at first) how to call this VB6 COM dll
� >> or another similar GUI - less object from VB 3.0 ?
� >
� > The problem you're having is that you're trying to load a 32-bit
� > library into a 16-bit process. Cut out a few words in that last
� > sentence, to the *critical* part: "in-process". No can do.
� >
� > Create the 32-bit COM server as an ActiveX EXE, which will run
� > "out-of-process", and this approach should fly. (I hope I haven't
� > just ruined your "can't be done" excuse for rewriting the whole
� > project? <g>)
� >

� He would still SOL, so you haven't ruined a thing.

� Late or early binding, IUnknown or IDispatch (Automation), Standard DLL or
� ActiveX - 16-bit can't talk to 32-bit without a custom mediator, or
� indirectly through system services (Registry, files, etc).

� -ralph


Not really sure what you're getting at. I used to use this COM out of process thunking mechanism all
the time back in the days of 16 and 32-bit VB 4.0, especially when I needed to use a 16-bit DLL
library. As a matter of fact I distinctly remember automating 32-bit Office apps from 16-bit VB.


Paul
~~~~
Microsoft MVP (Visual Basic)