Files
ZuneShell.dll/ZuneDBApi/MicrosoftZuneLibrary/CallbackOnUIThreadBimodalManaged_DONOTUSE.cs
T

86 lines
2.3 KiB
C#
Raw Normal View History

2021-11-11 11:18:46 -06:00
using System;
using System.Runtime.InteropServices;
namespace MicrosoftZuneLibrary
{
public class CallbackOnUIThreadBimodalManaged_DONOTUSE : IDisposable
{
private IRequestCallbackOnUIThread _pUI;
private unsafe CallbackOnUIThreadBimodalUnmanaged_DONOTUSE* _pUnmanaged;
public unsafe CallbackOnUIThreadBimodalManaged_DONOTUSE(IRequestCallbackOnUIThread pUI)
{
//IL_0026: Expected I, but got I8
_pUI = pUI;
2021-11-18 12:01:22 -06:00
CallbackOnUIThreadBimodalUnmanaged_DONOTUSE* ptr = (CallbackOnUIThreadBimodalUnmanaged_DONOTUSE*)Module.@new(16uL);
2021-11-11 11:18:46 -06:00
CallbackOnUIThreadBimodalUnmanaged_DONOTUSE* pUnmanaged;
try
{
2021-11-18 12:01:22 -06:00
pUnmanaged = ((ptr == null) ? null : Module.MicrosoftZuneLibrary_002ECallbackOnUIThreadBimodalUnmanaged_DONOTUSE_002E_007Bctor_007D(ptr, this));
2021-11-11 11:18:46 -06:00
}
catch
{
//try-fault
2021-11-18 12:01:22 -06:00
Module.delete(ptr);
2021-11-11 11:18:46 -06:00
throw;
}
_pUnmanaged = pUnmanaged;
}
private void _007ECallbackOnUIThreadBimodalManaged_DONOTUSE()
{
_0021CallbackOnUIThreadBimodalManaged_DONOTUSE();
}
private unsafe void _0021CallbackOnUIThreadBimodalManaged_DONOTUSE()
{
CallbackOnUIThreadBimodalUnmanaged_DONOTUSE* pUnmanaged = _pUnmanaged;
if (pUnmanaged != null)
{
2021-11-18 12:01:22 -06:00
Module.MicrosoftZuneLibrary_002ECallbackOnUIThreadBimodalUnmanaged_DONOTUSE_002E__delDtor(pUnmanaged, 1u);
2021-11-11 11:18:46 -06:00
}
}
public unsafe virtual void CallbackOnUIThreadRequest(CallbackPriorityManaged priority, int id, void* pv, INativeDeferredCallback* pNativeDeferredCallback)
{
IntPtr pInterface = (IntPtr)pNativeDeferredCallback;
IntPtr pData = (IntPtr)pv;
_pUI.CallbackOnUIThreadRequest(priority, id, pData, pInterface);
}
public unsafe void Callback(int id, IntPtr pData, IntPtr pInterface)
{
2021-11-18 12:01:22 -06:00
Module.MicrosoftZuneLibrary_002ECallbackOnUIThreadBimodalUnmanaged_DONOTUSE_002ECallback(_pUnmanaged, id, (void*)pData, (INativeDeferredCallback*)pInterface.ToPointer());
2021-11-11 11:18:46 -06:00
}
protected virtual void Dispose([MarshalAs(UnmanagedType.U1)] bool P_0)
{
if (P_0)
{
_0021CallbackOnUIThreadBimodalManaged_DONOTUSE();
return;
}
try
{
_0021CallbackOnUIThreadBimodalManaged_DONOTUSE();
}
finally
{
base.Finalize();
}
}
public sealed override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~CallbackOnUIThreadBimodalManaged_DONOTUSE()
{
Dispose(false);
}
}
}