ID: Q148374
3.51 | 4.00
WINDOWS NT | WINDOWS
kbprg
The information in this article applies to:
- Microsoft Windows NT version 3.51
- Microsoft Windows 95
Marshaling a proxy of an interface belonging to another thread or process is supported with MSHLFLAGS_NORMAL, but it is not supported with MSHLFLAGS_TABLESTRONG or MSHLFLAGS_TABLEWEAK. This means that CoMarshalInterface with MSHLFLAGS_TABLESTRONG/MSHLFLAGS_TABLEWEAK and IRunningObjectTable::Register will return E_INVALIDARG for proxies.
When an interface is marshaled to another thread or process, a proxy of the interface is created in that thread or process. This proxy cannot be marshaled again using the MSHLFLAGS_TABLESTRONG or MSHLFLAGS_TABLEWEAK values of the MSHLFLAGS enumerator. However it can be marshaled using MSHLFLAGS_NORMAL. Marshaling of interfaces that are not proxies are supported using any of the MSHLFLAGS enumerator values.
IRunningObjectTable::Register will marshal the interface pointer given to it by using MSHLFLAGS_TABLESTRONG or MSHLFLAGS_TABLEWEAK, as specified by the grfFlags parameter. Consequently IRunningObjectTable::Register will fail with E_INVALIDARG if is asked to register a proxy.
Windows 3.x supported marshaling of proxies using MSHLFLAGS_TABLESTRONG and MSHLFLAGS_TABLEWEAK. This is not supported on Windows 95 or Windows NT.
Additional reference words: 2 OLE2 2.0 2.00 KBCategory: kbprg KBSubcategory: LeTwoArc
Keywords : LeTwoArc
Version : 3.51 | 4.00
Platform : NT WINDOWS
Last Reviewed: March 15, 1996