ICallFrame interface

Enables manipulation of call frames such as stack frames. The call frame is the body of information that a procedure must save to allow it to properly return to its caller. A call frame may exist on the stack or in registers. A stack frame maintains its caller's context information on the stack.

An instance of the ICallFrame interface can perform various transformations on a call frame. The call can be marshaled or persisted. The instance of this interface is bound and has an associated method number.


The ICallFrame interface has these methods.

Method Description
ICallFrame::Copy Creates a copy of this call frame and all of its associated data.
ICallFrame::Free Frees the frame copy to avoid a memory leak.
ICallFrame::FreeParam Frees the specified parameter in the frame.
ICallFrame::GetIIDAndMethod Retrieves the interface ID or the method number.
ICallFrame::GetInfo Retrieves information about the call frame.
ICallFrame::GetMarshalSizeMax Retrieves an upper bound on the number of bytes needed to marshal the call frame.
ICallFrame::GetNames Retrieves the method or interface name of this call.
ICallFrame::GetParam Retrieves the value of a specified parameter in the call frame.
ICallFrame::GetParamInfo Retrieves the information for the specified parameter.
ICallFrame::GetReturnValue Retrieves the return value stored in the call frame.
ICallFrame::GetStackLocation Retrieves the stack location onto which this call frame is bound.
ICallFrame::Invoke Applies this activation record to an object. In a marshalling situation, typically this is carried out on the server side, and is the means by which the work of the actual object is accomplished.
ICallFrame::Marshal Marshals the call frame by turning its reachable data into a flat buffer without disturbing the frame.
ICallFrame::ReleaseMarshalData Releases resources that are held by interface pointers residing in a packet of marshaled data. This method finds all interface pointers in the packet, and calls the CoReleaseMarshalData function on each one.
ICallFrame::SetParam Sets the value of a specified parameter in the call frame.
ICallFrame::SetReturnValue Sets the return value within the call frame.
ICallFrame::SetStackLocation Sets the stack location onto which this call frame is bound.
ICallFrame::Unmarshal Unmarshals a packet of data containing the previously marshaled [out] parameters of a call into this already existing activation record.
ICallFrame::WalkFrame Searches for interface pointers that are reachable from [in], [in, out], or [out] parameters of the frame.


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