Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 1.84 KB

the-type-userfree-function.md

File metadata and controls

44 lines (30 loc) · 1.84 KB
title description ms.assetid keywords ms.topic ms.date
The type_UserFree Function
The type \_UserFree function is a helper function for the \ wire\_marshal\ and \ user\_marshal\ attributes.
cc83a074-ea6c-432a-92fe-6397a6dc3c3c
type_UserFree
article
05/31/2018

The type_UserFree Function

The <type>_UserFree function is a helper function for the [ wire_marshal] and [ user_marshal] attributes. The stubs call this function to free the data on the server side. The function is defined as:

void __RPC_USER  <type>_UserFree(
    unsigned long __RPC_FAR * pFlags,
    <type_name>  __RPC_FAR *  pMyObj );

The <type> in the function name means the userm-type specified in the [wire_marshal] or [user_marshal] type definition.

The pFlags parameter is a pointer to an unsigned long flag field. The upper word of the flag contains NDR data representation flags as defined by OSF DCE for floating point, byte order, and character representations. The lower word contains a marshaling context flag as defined by the COM channel. The exact layout of the flags within the field is described in The type_UserSize Function.

The pMyObj parameter is a pointer to a user type object. The NDR engine frees the top-level object. You are responsible for freeing any objects to which the top-level object may point.

Exceptions must be caught and handled locally, exceptions must not be allowed to propigated up the call stack.

Related topics

Marshaling Rules for user_marshal and wire_marshal

wire_marshal

user_marshal