Corey Scheich
asked on
Calling X64 COM from VBA
What is the best method for manipulating an x64 COM API from VBA or VB6. I need to make calls against the API and return values. I expect to need to make some sort of .Net Wrapper because you cannot load the x64 dlls into a 32bit runtime, I am looking for design recommendations on the communication between the processes. I would prefer a good MSDN reference, because I need to prove definitively a best practice. I have already tried searching MSDN to no avail, so I am turning to the experts.
TIA
Corey
TIA
Corey
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
That's just not gonna work... however, you *can* still use the 32-bit version of the Explorer in x64-based OSs. There is a 32-bit version in C:\Windows\SysWOW64
ASKER
graye,
I have tried starting the 32bit version of Explorer on an x64 machine and it started the x64 version. (no *32 after it in the process tree) I feel with a well laid out Object structure and proxy classes for the 32bit and 64bit sides it could work. I don't see why you had the change of heart?
Corey
I have tried starting the 32bit version of Explorer on an x64 machine and it started the x64 version. (no *32 after it in the process tree) I feel with a well laid out Object structure and proxy classes for the 32bit and 64bit sides it could work. I don't see why you had the change of heart?
Corey
There are a few web sites out there that talk about using the 32-bit Windows Explorer under a 64-bit OS. There are generally two techniques... a registry tweak to launch the 32-bit version and the other technique which uses the 32-bit *Internet* Explorer to browse local files. Personally, the 32-bit Internet explorer sounds a bit easier to do.
The original idea of writing a proxy app to marshal data between the two worlds is still a valid approach... however, if you're trying to get a 32-bit ActiveX control to work in the 64-bit Explorer, and also interact with VBA/Excell... then that's gonna bit more complicated. I had first assumed that the proxy app would have 1 and only 1 connection (to the Explorer)... and not also support the exposure of interfaces to other outside "clients".
The original idea of writing a proxy app to marshal data between the two worlds is still a valid approach... however, if you're trying to get a 32-bit ActiveX control to work in the 64-bit Explorer, and also interact with VBA/Excell... then that's gonna bit more complicated. I had first assumed that the proxy app would have 1 and only 1 connection (to the Explorer)... and not also support the exposure of interfaces to other outside "clients".
ASKER
Actually the activeX control is loaded on the 32 bit side, and I agree it would have been much more complicated, though I have seen it done using some sort of webcontrol trickery, which is way past me at this point. I'll look into the 32 bit explorer option a bit. Thanks for the information.
ASKER
Thank you we are going to use the proxy approach using IPC probably .NET Remoting
ASKER