Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la sección siguiente se proporciona un ejemplo de cómo usar el identificador de serialización de estilo incremental para la codificación de tipos.
/* This is an acf file. MooType is defined in the idl file */
[ explicit_handle
]
interface regress
{
typedef [ encode,decode ] MooType;
}
El fragmento siguiente representa los fragmentos de aplicación pertinentes.
if (MesEncodeIncrementalHandleCreate (State, AllocFn, WriteFn,
&Handle) == RPC_S_OK)
{
//...
/* The serialize works from the beginning of the buffer because
the handle is in the initial state. The Moo_Encode does the
following:
- sizes *pMooObject for marshalling,
- calls AllocFn with the size obtained,
- marshalls into the buffer returned by Alloc, and
- calls WriteFn with the filled buffer
*/
Moo_Encode ( Handle, pMooObject );
...
}
if (MesIncrementalHandleReset (Handle, NULL, NULL, NULL, ReadFn,
MES_DECODE ) == RPC_OK)
{
/*The ReadFn is needed to reset the handle. The arguments
that are NULL do not change. You can also call
MesDecodeIncrementalHandleCreate (State, ReadFn, &Handle);
The Moo_Decode does the following:
- calls Read with the appropriate size of data to read and
receives a buffer with the data
- unmarshalls the object from the buffer into *pMooObject
*/
Moo_Decode ( Handle, pMooObject );
//...
MesHandleFree ( Handle );
}