The midl_user_free Function
The midl_user_free function must be supplied by RPC developers. It allocates memory for the RPC stubs and library routines. Your midl_user_free function must match the following prototype:
void __RPC_USER midl_user_free(void * pBuffer);
The pBuffer parameter specifies a pointer to the memory that is to be freed. Both client application and server application must implement the midl_user_free function unless you are compiling in OSF-compatibility (/osf) mode. The midl_user_free function must be able to free all storage allocated by midl_user_allocate.
Applications and stubs call midl_user_free when dealing with allocated objects:
- The server application should call midl_user_free to free memory allocated by the application, such as when deleting a dynamically allocated node of data.
- The server stub calls midl_user_free to release memory on the server after marshaling all [out] arguments, [in],[out] arguments, and the function return value.
For example, the RPC Windows sample program that displays "Hello, world" implements midl_user_free in terms of the C function free: