tir, 08.07.2003 kl. 13.32 skrev Mike Hearn:
IFAIK, this is how apartments are implemented and this comes from Windows 3.1.
That's what I was thinking, but I found an article from 1994 claiming that ole would be shortly moving to the DCE RPC protocol instead of using window messages (and so they did).
I guess they didn't purge window messages entirely.
DCE RPC is in its heart an interprocess protocol, not an interthread protocol. This distinction does not necessarily matter, though, it can be used as both if done "right". RPC needs a transport layer, however, and which transport is used for communication depends on the context. Thread pools servicing network sockets is used for inter-machine (and perhaps inter-process) communication. For inter-process communication, NT LPC (something like that, don't remember anymore) is used. For inter-thread communication (including dispatching inter-machine requests to a particular thread), the most reliable system communication path with thread affinity is used: window messages.
Yes, Windows's implementation of DCE RPC implements window messages as a transport protocol. So they probably *did* move fully to DCE RPC, they just moved the old cruft in there too...