Ejemplo n.º 1
0
        protected override void EmitCleanupManaged(ILCodeStream codeStream)
        {
            ILEmitter emitter = _ilCodeStreams.Emitter;

            LoadNativeValue(codeStream);
            codeStream.Emit(ILOpcode.call, emitter.NewToken(
                                InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem", null)));
        }
Ejemplo n.º 2
0
        protected override void TransformManagedToNative(ILCodeStream codeStream)
        {
            ILEmitter emitter = _ilCodeStreams.Emitter;

            LoadManagedValue(codeStream);

            var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("StringToBSTR", null);

            codeStream.Emit(ILOpcode.call, emitter.NewToken(helper));

            StoreNativeValue(codeStream);
        }
Ejemplo n.º 3
0
        internal override void EmitElementCleanup(ILCodeStream codeStream, ILEmitter emitter)
        {
            var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("FreeBSTR", null);

            codeStream.Emit(ILOpcode.call, emitter.NewToken(helper));
        }
Ejemplo n.º 4
0
 internal override void EmitElementCleanup(ILCodeStream codeStream, ILEmitter emitter)
 {
     codeStream.Emit(ILOpcode.call, emitter.NewToken(
                         InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem", null)));
 }