//-----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation.
//
//-----------------------------------------------------------------------
namespace Microsoft.Isam.Esent.Interop
{
using System;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Runtime.InteropServices;
///
/// Native (unmanaged) version of the JET_ENUMCOLUMNVALUE class.
///
[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 struct NATIVE_ENUMCOLUMNVALUE
{
///
/// The column value that was enumerated.
///
public uint itagSequence;
///
/// Error or warning from the enumeration.
///
public int err;
///
/// Size of returned data.
///
public uint cbData;
///
/// Pointer to returned data.
///
public IntPtr pvData;
}
///
/// Enumerates the column values of a record using the JetEnumerateColumns
/// function.
/// returns an array of JET_ENUMCOLUMNVALUE
/// structures. The array is returned in memory that was allocated using
/// the callback that was supplied to that function.
///
[SuppressMessage(
"Microsoft.StyleCop.CSharp.NamingRules",
"SA1300:ElementMustBeginWithUpperCaseLetter",
Justification = "This should match the unmanaged API, which isn't capitalized.")]
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules",
"SA1305:FieldNamesMustNotUseHungarianNotation",
Justification = "This should match the unmanaged API, which isn't capitalized.")]
public class JET_ENUMCOLUMNVALUE
{
///
/// Gets the column value (by one-based index) that was enumerated.
///
public int itagSequence { get; internal set; }
///
/// Gets the column status code resulting from the enumeration of the
/// column value.
///
///
///
///
public JET_wrn err { get; internal set; }
///
/// Gets the size of the column value for the column.
///
public int cbData { get; internal set; }
///
/// Gets the value that was enumerated for the column.
///
public IntPtr pvData { get; internal set; }
///
/// Returns a that represents the current .
///
///
/// A that represents the current .
///
public override string ToString()
{
return string.Format(
CultureInfo.InvariantCulture,
"JET_ENUMCOLUMNVALUE(itagSequence = {0}, cbData = {1})",
this.itagSequence,
this.cbData);
}
///
/// Sets the fields of the object from a native JET_ENUMCOLUMN struct.
///
///
/// The native enumcolumn to set the values from.
///
internal void SetFromNativeEnumColumnValue(NATIVE_ENUMCOLUMNVALUE value)
{
this.itagSequence = checked((int)value.itagSequence);
this.err = (JET_wrn)value.err;
this.cbData = checked((int)value.cbData);
this.pvData = value.pvData;
}
}
}