//----------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. // //----------------------------------------------------------------------- namespace Microsoft.Isam.Esent.Interop.Vista { using System; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Runtime.InteropServices; /// /// The native version of the JET_OPENTEMPORARYTABLE2 structure. /// [StructLayout(LayoutKind.Sequential)] [SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1305:FieldNamesMustNotUseHungarianNotation", Justification = "This should match the unmanaged API, which isn't capitalized.")] [SuppressMessage( "Microsoft.StyleCop.CSharp.NamingRules", "SA1307:AccessibleFieldsMustBeginWithUpperCaseLetter", Justification = "This should match the unmanaged API, which isn't capitalized.")] internal unsafe struct NATIVE_OPENTEMPORARYTABLE2 { /// /// Size of the structure. /// public uint cbStruct; /// /// Columns to create. /// public NATIVE_COLUMNDEF* prgcolumndef; /// /// Number of entries in prgcolumndef. /// public uint ccolumn; /// /// Optional pointer to unicode index information. /// public NATIVE_UNICODEINDEX2* pidxunicode; /// /// Table options. /// public uint grbit; /// /// Pointer to array of returned columnids. This /// should have at least ccolumn entries. /// public uint* rgcolumnid; /// /// Maximum key size. /// public uint cbKeyMost; /// /// Maximum amount of data used to construct a key. /// public uint cbVarSegMac; /// /// Returns the tableid of the new table. /// public IntPtr tableid; } /// /// A collection of parameters for the JetOpenTemporaryTable method. /// public partial class JET_OPENTEMPORARYTABLE { /// /// Returns the unmanaged opentemporarytable that represents this managed class. /// /// /// A native (interop) version of the JET_OPENTEMPORARYTABLE. /// internal NATIVE_OPENTEMPORARYTABLE2 GetNativeOpenTemporaryTable2() { this.CheckDataSize(); var openTemporaryTable = new NATIVE_OPENTEMPORARYTABLE2(); openTemporaryTable.cbStruct = checked((uint)Marshal.SizeOf(typeof(NATIVE_OPENTEMPORARYTABLE2))); openTemporaryTable.ccolumn = checked((uint)this.ccolumn); openTemporaryTable.grbit = (uint)this.grbit; openTemporaryTable.cbKeyMost = checked((uint)this.cbKeyMost); openTemporaryTable.cbVarSegMac = checked((uint)this.cbVarSegMac); return openTemporaryTable; } } }