This method of the IMarshal interface returns an upper bound on the number of bytes needed to marshal the specified interface pointer on the specified object.
public int GetMarshalSizeMax(_Guid riid, IUnknown pv, int dwDestContext, int pvDestContext, int mshlflags);
[in] riid | The reference to the identifier of the interface to be marshaled. |
[in] pv | The pointer to the interface to be marshaled; can be NULL if the caller does not have a pointer to the desired interface. |
[in] dwDestContext | The destination context where the specified interface is to be unmarshaled. Values for dwDestContext come from the enumeration MSHCTX. Currently, unmarshaling can occur either in another apartment of the current process (MSHCTX_INPROC) or in another process on the same computer as the current process (MSHCTX_LOCAL). |
[in] pvDestContext | Reserved for future use; must be NULL. |
[in] mshlflags | Specifies whether the data to be marshaled is to be transmitted back to the client process (the normal case) or written to a global table, where it can be retrieved by multiple clients. Valid values come from the MSHLFLAGS enumeration. |