//----------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. // //----------------------------------------------------------------------- namespace Microsoft.Isam.Esent.Interop { using System; using System.Runtime.InteropServices; /// /// Methods to convert data objects used in callbacks. /// internal static class CallbackDataConverter { /// /// Get the managed data object from the unmanaged data. /// /// The native data. /// The SNP (used to determine the type of object). /// The SNT (used to determine the type of object). /// The managed data object. public static object GetManagedData(IntPtr nativeData, JET_SNP snp, JET_SNT snt) { if (IntPtr.Zero != nativeData && JET_SNT.Progress == snt) { NATIVE_SNPROG native = (NATIVE_SNPROG)Marshal.PtrToStructure(nativeData, typeof(NATIVE_SNPROG)); JET_SNPROG managed = new JET_SNPROG(); managed.SetFromNative(native); return managed; } return null; } } }