I have legacy COM components which were developed by third party. No source codes avaliable. They are used in following situation. One component (call A.exe) served as server is regestered itself in ROT on each end user's machine. It is actually only contain
function interfaces. The another COM (call B.ocx) implemented as OCX (strange, don't know why) which implements those interface functions of A.exe component. For whatever the reason, there is a ActiveX EXE wrapper for B.ocx (Call W.exe) which references B.ocx
and call functions defined in B.ocx. Before allowing W.exe to communicate with A.exe, the W.exe must be installed (registered) in each end user's computer. These components are all in same physical machine. The ASP.NET application uses New ActiveObject(W) scripting
to create instance class of W. Then W looks for A.exe through ROT.
Since whenever a new user is starting to use system or W.exe is modified/enhanced, he/she must performace installing/reinstalling/registering again and also cause versioning problems on end user's machine. I want to move W.exe to server side using RCW,
allow W.exe to access/communicate remote client ROT. Since the A.exe and B.ocx are all black boxes, I don't know the exact communication mechnisms of these components, i.e., even on the same machine, how these two communicate each other? Because A.exe is registed
itself in ROT, I assume that W.exe is using FILE MONIKER to locate that running instance of A and get IDispatch pointer and CLSID of A.exe.
My question is: With the blackboxed components, how can I allow W.exe to remotely access A.exe in ROT on end user's computer?
shirleyqin
Member
12 Points
6 Posts
Legacy COMs. Interop One COM in ASP.NET, Remote Access COMs Which Runs On Each End User's Machine...
Nov 02, 2007 03:50 PM|LINK
I have legacy COM components which were developed by third party. No source codes avaliable. They are used in following situation. One component (call A.exe) served as server is regestered itself in ROT on each end user's machine. It is actually only contain function interfaces. The another COM (call B.ocx) implemented as OCX (strange, don't know why) which implements those interface functions of A.exe component. For whatever the reason, there is a ActiveX EXE wrapper for B.ocx (Call W.exe) which references B.ocx and call functions defined in B.ocx. Before allowing W.exe to communicate with A.exe, the W.exe must be installed (registered) in each end user's computer. These components are all in same physical machine. The ASP.NET application uses New ActiveObject(W) scripting to create instance class of W. Then W looks for A.exe through ROT.
Since whenever a new user is starting to use system or W.exe is modified/enhanced, he/she must performace installing/reinstalling/registering again and also cause versioning problems on end user's machine. I want to move W.exe to server side using RCW, allow W.exe to access/communicate remote client ROT. Since the A.exe and B.ocx are all black boxes, I don't know the exact communication mechnisms of these components, i.e., even on the same machine, how these two communicate each other? Because A.exe is registed itself in ROT, I assume that W.exe is using FILE MONIKER to locate that running instance of A and get IDispatch pointer and CLSID of A.exe.
My question is: With the blackboxed components, how can I allow W.exe to remotely access A.exe in ROT on end user's computer?
Thanks lot for your help in advance!
Shirley
ROT (Running Object Table) FILE MONIKER COM DCOM