# MSHCTX

The MSHCTX enumeration constants specify the destination context, which is the process in which the unmarshaling is to be done. These flags are used in the IMarshal and IStdMarshalInfo interfaces and in the CoMarshalInterface and CoGetStandardMarshal functions.

    typedef enum tagMSHCTX
    {
        MSHCTX_LOCAL              = 0,
        MSHCTX_NOSHAREDMEM        = 1,
        MSHCTX_DIFFERENTMACHINE   = 2,
        MSHCTX_INPROC             = 3
    } MSHCTX;

Elements

MSHCTX_LOCAL
  The unmarshaling process is local and has shared memory access with the marshaling process.
MSHCTX_NOSHAREDMEM
  The unmarshaling process does not have shared memory access with the marshaling process.
MSHCTX_DIFFERENTMACHINE
  The unmarshaling process is on a different machine. The marshaling code cannot assume that a particular piece of application code is installed on that machine.
MSHCTX_INPROC
  The unmarshaling will be done in another apartment in the same process. If your object supports multiple threads, your custom marshaler can pass a direct pointer instead of creating a proxy object.

See Also

CoGetStandardMarshal, CoMarshalInterface, IMarshal, IStdMarshalInfo