using System;
using Cpp2IlInjected;
namespace System.Runtime.InteropServices
{
/// Provides custom wrappers for handling method calls.
// Token: 0x0200059F RID: 1439
[Token(Token = "0x200059F")]
[ComVisible(true)]
public interface ICustomMarshaler
{
/// Converts the unmanaged data to managed data.
/// A pointer to the unmanaged data to be wrapped.
/// An object that represents the managed view of the COM data.
// Token: 0x06002CCB RID: 11467
[Token(Token = "0x6002CCB")]
[Address(Slot = "0")]
object MarshalNativeToManaged(IntPtr pNativeData);
/// Converts the managed data to unmanaged data.
/// The managed object to be converted.
/// A pointer to the COM view of the managed object.
// Token: 0x06002CCC RID: 11468
[Token(Token = "0x6002CCC")]
[Address(Slot = "1")]
IntPtr MarshalManagedToNative(object ManagedObj);
/// Performs necessary cleanup of the unmanaged data when it is no longer needed.
/// A pointer to the unmanaged data to be destroyed.
// Token: 0x06002CCD RID: 11469
[Token(Token = "0x6002CCD")]
[Address(Slot = "2")]
void CleanUpNativeData(IntPtr pNativeData);
/// Performs necessary cleanup of the managed data when it is no longer needed.
/// The managed object to be destroyed.
// Token: 0x06002CCE RID: 11470
[Token(Token = "0x6002CCE")]
[Address(Slot = "3")]
void CleanUpManagedData(object ManagedObj);
/// Returns the size of the native data to be marshaled.
/// The size, in bytes, of the native data.
// Token: 0x06002CCF RID: 11471
[Token(Token = "0x6002CCF")]
[Address(Slot = "4")]
int GetNativeDataSize();
}
}