| File: Marshalling\ICustomTypeMarshallingStrategy.cs | Web Access |
| Project: Microsoft.Interop.SourceGeneration.csproj (Microsoft.Interop.SourceGeneration) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.Interop { /// <summary> /// The base interface for implementing various aspects of the custom native type and collection marshalling specs. /// </summary> internal interface ICustomTypeMarshallingStrategy { TypePositionInfo TypeInfo { get; } StubCodeContext CodeContext { get; } ManagedTypeInfo NativeType { get; } void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context); void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context); void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); bool UsesNativeIdentifier { get; } } }