protected override void EmitCleanupManaged(ILCodeStream codeStream) { ILEmitter emitter = _ilCodeStreams.Emitter; LoadNativeValue(codeStream); codeStream.Emit(ILOpcode.call, emitter.NewToken( InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem", null))); }
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); }
internal override void EmitElementCleanup(ILCodeStream codeStream, ILEmitter emitter) { var helper = InteropTypes.GetMarshal(Context).GetKnownMethod("FreeBSTR", null); codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); }
internal override void EmitElementCleanup(ILCodeStream codeStream, ILEmitter emitter) { codeStream.Emit(ILOpcode.call, emitter.NewToken( InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem", null))); }