CALLFRAME_FREE enumeration (callobj.h)

Determines the parameter type to be freed.

Syntax

typedef enum CALLFRAME_FREE {
  CALLFRAME_FREE_NONE = 0,
  CALLFRAME_FREE_IN = 1,
  CALLFRAME_FREE_INOUT = 2,
  CALLFRAME_FREE_OUT = 4,
  CALLFRAME_FREE_TOP_INOUT = 8,
  CALLFRAME_FREE_TOP_OUT = 16,
  CALLFRAME_FREE_ALL = 31
} ;

Constants

 
CALLFRAME_FREE_NONE
Value: 0
No values are freed.
CALLFRAME_FREE_IN
Value: 1
The [in] parameters are freed. This includes both top-level pointers and the data they reference.
CALLFRAME_FREE_INOUT
Value: 2
The data referenced by [in, out] parameters are freed. However, the top-level pointers, which are the actual parameter values, are not freed.

On the server side, this is typically used post-call, as in CALLFRAME_FREE_IN. On the client side, this is typically used when the server was not actually invoked (and so unmarshaling of return values was not attempted) or when unmarshaling of the return values failed.
CALLFRAME_FREE_OUT
Value: 4
The data referenced by [out] parameters are freed. However, the top-level pointers, which are the actual parameter values, are not freed.

On the server side, this is typically used post-call, as in CALLFRAME_FREE_IN. On the client side, this is typically only used when unmarshaling of return values failed.
CALLFRAME_FREE_TOP_INOUT
Value: 8
The [in, out] parameters are freed. This includes both top-level pointers and the data they reference.
CALLFRAME_FREE_TOP_OUT
Value: 16
The [out] parameters are freed. This includes both top-level pointers and the data they reference.
CALLFRAME_FREE_ALL
Value: 31
All [in], [out], and [in, out] parameters are freed. This includes both top-level pointers and the data they reference.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header callobj.h

See also

ICallFrame::Free

ICallFrame::FreeParam