CALLFRAME_COPY enumeration (callobj.h)

Determines whether the copied call frame data can be shared with data in the parent frame by determining its lifetime dependency on the parent frame.

Syntax

typedef enum __MIDL_ICallFrame_0003 {
  CALLFRAME_COPY_NESTED = 1,
  CALLFRAME_COPY_INDEPENDENT = 2
} CALLFRAME_COPY;

Constants

 
CALLFRAME_COPY_NESTED
Value: 1
The client will be responsible for using the copied call frame in a manner that its lifetime is nested in the lifetime of its parent frame making the data sharable. When this flag is used, very significant optimizations can be made and memory allocations avoided by cleverly sharing actual parameter data.

Only the interface pointers transitively reachable in the source frames are guaranteed to be deep copied and thus in the copy be stored in memory separate from that in which they are stored in the source frames; other data types may actually in the copied frame share memory with the source if the copy operation is intelligent enough to do so.
CALLFRAME_COPY_INDEPENDENT
Value: 2
The copied call frame will have a lifetime independent from its parent.

Remarks

A consequence is that whichever of these CALLFRAME_COPY flags are passed to ICallFrame::Copy, the interface pointers can be modified without consequence of disturbing the interface pointers residing in the parent frame.

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::Copy