IMarshal::GetMarshalSizeMax
Returns an upper bound on the amount of data that would be written to the
marshaling stream in a call to
IMarshal::MarshalInterface.
HRESULT IMarshal::GetMarshalSizeMax(
REFIID riid,
| //Identifies interface to be marshaled
|
void *pv,
| //Points to interface pointer to be marshaled
|
DWORD dwDestContext,
| //Identifies destination process
|
void * pvDestContext,
| //Reserved for future use
|
DWORD mshlflags,
| //Specifies reason for marshaling
|
ULONG * pSize
| //Receives upper bound
|
);
|
|
Parameters
riid
[in]Specifies the IID of the interface pointer to be marshaled.
pv
[in]Points to the interface pointer to be marshaled; can be NULL.
dwDestContext
[in] Specifies the destination context, that is, the process in which the
unmarshaling will be done. Different marshaling can be done depending on whether
the unmarshaling will happen on the local workstation or on a workstation on the
network; it's possible for an object to do custom marshaling in one case but
not another. The legal values for
dwDestContext are taken from the enumeration
MSHCTX. For information on the
MSHCTX enumeration, see the "Data Structures" section.
pvDestContext
[in] Reserved for use with future
MSHCTX values.
mshlflags
[in] Specifies why marshaling is taking place. The legal values for
mshlflags are taken from the enumeration
MSHLFLAGS. For information on the
MSHLFLAGS enumeration, see the "Data Structures" section.
pSize
[out]Receives the upper bound on the amount of data that would be written to
the marshaling stream.
Return Values
S_OK
Maximum size was returned successfully.
E_FAIL
Indicates that the implementation failed.
E_NOINTERFACE
The specified interface was not supported.
Comments
This method is called from the originating side (that is, the side doing the
marshaling). This method is used to preallocate the stream buffer that will be
passed to
IMarshal::MarshalInterface.
Notes to Implementors
The value your implementation returns must be an upper bound; a subsequent
call to your implementation of
IMarshal::MarshalInterface must use no more than the number of bytes returned by this method. The upper
bound you return can be used by the caller to preallocate a stream buffer for
using during marshaling.
See Also
IMarshal::MarshalInterface
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database