using System;
using Cpp2IlInjected;
namespace System.Runtime.InteropServices
{
/// Provides custom wrappers for handling method calls.
// Token: 0x02000580 RID: 1408
[Token(Token = "0x2000580")]
[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: 0x06002AB7 RID: 10935
[Token(Token = "0x6002AB7")]
[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: 0x06002AB8 RID: 10936
[Token(Token = "0x6002AB8")]
[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: 0x06002AB9 RID: 10937
[Token(Token = "0x6002AB9")]
[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: 0x06002ABA RID: 10938
[Token(Token = "0x6002ABA")]
[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: 0x06002ABB RID: 10939
[Token(Token = "0x6002ABB")]
[Address(Slot = "4")]
int GetNativeDataSize();
}
}