AnsweredAssumed Answered

vrf Null ActiveX object's

Question asked by VRFuser on Oct 11, 2004
> (the rpc server was not invoked
> of remote way but of local way)

RPC means "Remote Procedure Call" and it's only used in the case of machine
to machine communication. One machine implements functionality not available
on the host machine so the host machine goes & finds it.

IDispatch's communication mechanism is *based* on RPC, but it doesn't
actually do RPC unless it needs to.

In the case of a local server, RPC is not involved in the transaction.
Therefore, I do not believe RPC has anything to do with whatever is
happening.

> I have already proven with "isVariantNull(ExcelApp)"

It proves there's a misunderstanding. isVariantNull(ExcelApp) will *always*
return False if CreateObject was used to set the value of ExcelApp. In fact,
I don't think it's possible to make isVariantNull return True in VEE at all
unless you use asVariantNull to force a variant to null. When the problem
occurs, trap the error and hope like heck the More array of the errorInfo
object contains further details. Whatever happened, it certainly had nothing
to do with the RPC server.

I'm sure it boils down to a translation misconception. Excel crashed and
went away, and for some reason the error translates into "RPC server" in the
host language (human language that is). Trust me - *THE* RPC server had
nothing to do with it. To involve the RPC locator & server in an
interprocess communication transaction is ludicrous.

There most definitely will be a proxy and a stub, but they will not
communicate over RPC unless required (i.e., DCOM). The source of the
misconception is understandable. The local proxy/stub will use some of the
same code that true RPC uses. MS always intended that this should be so. But
the server and client runtimes and transport layer are not used. Or at least
it's more accurate to say that in COM these functions are handled by the
proxy/stub code.

If the server is not local, then a proxy is built to handle the details of
RPC transactions. The proxy is substituted for the local stub and the local
client has no idea that anything at all is different. I would first check to
make sure your server really *is* local. Look at
HKCRCLSID{00024500-0000-0000-C000-000000000046}LocalServer. If all is
well, look at HKCRCLSIDExcel.ApplicationCurVer and see what the current
version is. Make sure the HKCRCLSIDExcel.Application.x key points to the
local installation.

In short, if the error message is *not* in error and there really are RPC
issues, then things are happening that you are unaware of.
-SHAWN-


---
You are currently subscribed to vrf as: rsb@soco.agilent.com
To subscribe send a blank email to "join-vrf@it.lists.it.agilent.com".
To unsubscribe send a blank email to "leave-vrf@it.lists.it.agilent.com".
To send messages to this mailing list,  email "vrf@agilent.com". 
If you need help with the mailing list send a message to "owner-vrf@it.lists.it.agilent.com".

Outcomes