
"Jarl Lindrud" wrote:
- Is it possible to return an interface as an [out] parameter, receiving a proxy to a remoted object?
- Is it possible to pass an interface as an [in] parameter, having the receiver receive a proxy to the original object?
Both are possible.
H. S. Lahman list available options and argues that passing anything else than values is dangerous and causes high coupling: http://groups.google.ca/groups?selm=3B86C364.AB1A6066%40worldnet.att.net (the paragraphs starting with "pure message"). Maybe the library could have something as safe mode enabled by macro (RPC_ONLY_SAFE_FUNCTIONALITY). Erlang, for example, has only asynchronous messages with passing of values. The language is (technological) success and this "limitation" was quoted as one of reasons (it makes deadlocks hard, frex).
- Did you consider implement cross-process reference counted lifetime management (ala DCOM)?
I'm not sure that the reference counting semantics of DCOM are one of its better points... Requiring a remote client to correctly call AddRef() and Release() is pretty fragile, IMO.
Yes. Counting semantic is usability mistake, at least according to: http://www.relisoft.com/win32/olerant.html /Pavel