using System;
namespace System.Runtime.InteropServices
{
/// Designed to provide custom wrappers for handling method calls.
// Token: 0x0200031B RID: 795
[ComVisible(true)]
public interface ICustomMarshaler
{
/// Performs necessary cleanup of the managed data when it is no longer needed.
/// The managed object to be destroyed.
// Token: 0x0600221D RID: 8733
void CleanUpManagedData(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: 0x0600221E RID: 8734
void CleanUpNativeData(IntPtr pNativeData);
/// Returns the size of the native data to be marshaled.
/// The size in bytes of the native data.
// Token: 0x0600221F RID: 8735
int GetNativeDataSize();
/// Converts the managed data to unmanaged data.
/// Returns the COM view of the managed object.
/// The managed object to be converted.
// Token: 0x06002220 RID: 8736
IntPtr MarshalManagedToNative(object ManagedObj);
/// Converts the unmanaged data to managed data.
/// Returns the managed view of the COM data.
/// A pointer to the unmanaged data to be wrapped.
// Token: 0x06002221 RID: 8737
object MarshalNativeToManaged(IntPtr pNativeData);
}
}