OleDbStruct.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / OleDb / OleDbStruct.cs / 1 / OleDbStruct.cs

                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.OleDb {
 
    using System;
    using System.Runtime.InteropServices;

#if DEBUG 
    using System.Diagnostics;
    using System.Globalization; 
    using System.Text; 
#endif
 
    internal enum DBBindStatus {
        OK = 0,
        BADORDINAL = 1,
        UNSUPPORTEDCONVERSION = 2, 
        BADBINDINFO = 3,
        BADSTORAGEFLAGS = 4, 
        NOINTERFACE = 5, 
        MULTIPLESTORAGE = 6
    } 

    internal sealed class Native {
#if WIN32
        internal const int Pack = 2; 
#else
        internal const int Pack = 8; 
#endif 

        private Native() { 
        }
    }

#if false 
    typedef struct tagDBPARAMBINDINFO {
        LPOLESTR pwszDataSourceType; 
        LPOLESTR pwszName; 
        DBLENGTH ulParamSize;
        DBPARAMFLAGS dwFlags; 
        BYTE bPrecision;
        BYTE bScale;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBPARAMBINDINFO { 
        internal IntPtr pwszDataSourceType; 
        internal IntPtr pwszName;
        internal IntPtr ulParamSize; 
        internal Int32 dwFlags;
        internal Byte bPrecision;
        internal Byte bScale;
 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder(); 
            builder.Append("tagDBPARAMBINDINFO").Append(Environment.NewLine);
            if (IntPtr.Zero != pwszDataSourceType) { 
                builder.Append("pwszDataSourceType =").Append(Marshal.PtrToStringUni(pwszDataSourceType)).Append(Environment.NewLine);
            }
            builder.Append("\tulParamSize  =" + ulParamSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tdwFlags     =0x" + dwFlags.ToString("X4", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString(); 
        }
#endif 
    }

#if false
    typedef struct tagDBBINDING { 
        DBORDINAL iOrdinal;
        DBBYTEOFFSET obValue; 
        DBBYTEOFFSET obLength; 
        DBBYTEOFFSET obStatus;
        ITypeInfo *pTypeInfo; 
        DBOBJECT *pObject;
        DBBINDEXT *pBindExt;
        DBPART dwPart;
        DBMEMOWNER dwMemOwner; 
        DBPARAMIO eParamIO;
        DBLENGTH cbMaxLen; 
        DWORD dwFlags; 
        DBTYPE wType;
        BYTE bPrecision; 
        BYTE bScale;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal sealed class tagDBBINDING {
 
        internal IntPtr iOrdinal; 
        internal IntPtr obValue;
        internal IntPtr obLength; 
        internal IntPtr obStatus;

        internal IntPtr pTypeInfo;
        internal IntPtr pObject; 
        internal IntPtr pBindExt;
 
        internal Int32 dwPart; 
        internal Int32 dwMemOwner;
        internal Int32 eParamIO; 

        internal IntPtr cbMaxLen;

        internal Int32 dwFlags; 
        internal Int16 wType;
        internal byte  bPrecision; 
        internal byte  bScale; 

        internal tagDBBINDING() { 
        }

#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder();
            builder.Append("tagDBBINDING").Append(Environment.NewLine); 
            builder.Append("\tOrdinal     =" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tValueOffset =" + obValue.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tLengthOffset=" + obLength.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tStatusOffset=" + obStatus.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tMaxLength   =" + cbMaxLen.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tDB_Type     =" + ODB.WLookup(wType)).Append(Environment.NewLine);
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            return builder.ToString(); 
        } 
#endif
    } 

#if false
    typedef struct tagDBCOLUMNACCESS {
        void *pData; 
        DBID columnid;
        DBLENGTH cbDataLen; 
        DBSTATUS dwStatus; 
        DBLENGTH cbMaxLen;
        DB_DWRESERVE dwReserved; 
        DBTYPE wType;
        BYTE bPrecision;
        BYTE bScale;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal struct tagDBCOLUMNACCESS { 

        internal IntPtr pData; 
        internal tagDBIDX columnid;
        internal IntPtr cbDataLen;
        internal Int32 dwStatus;
        internal IntPtr cbMaxLen; 
        internal IntPtr dwReserved;
        internal Int16 wType; 
        internal Byte bPrecision; 
        internal Byte bScale;
    } 

#if false
    typedef struct tagDBID {
    /* [switch_is][switch_type] */ union { 
        /* [case()] */ GUID guid;
        /* [case()] */ GUID *pguid; 
        /* [default] */  /* Empty union arm */ 
        }   uGuid;
    DBKIND eKind; 
    /* [switch_is][switch_type] */ union  {
        /* [case()] */ LPOLESTR pwszName;
        /* [case()] */ ULONG ulPropid;
        /* [default] */  /* Empty union arm */ 
        }   uName;
    } 
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBIDX { 
        internal Guid uGuid;
        internal Int32 eKind;
        internal IntPtr ulPropid;
    } 

    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal sealed class tagDBID { 
        internal Guid uGuid;
        internal Int32 eKind; 
        internal IntPtr ulPropid;
    }

#if false 
    typedef struct tagDBLITERALINFO {
        LPOLESTR pwszLiteralValue; 
        LPOLESTR pwszInvalidChars; 
        LPOLESTR pwszInvalidStartingChars;
        DBLITERAL lt; 
        BOOL fSupported;
        ULONG cchMaxLen;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBLITERALINFO { 
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszLiteralValue = null; 

        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszInvalidChars = null;
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszInvalidStartingChars = null; 
 
        internal Int32 it;
 
        internal Int32 fSupported;

        internal Int32 cchMaxLen;
 
        internal tagDBLITERALINFO() {
        } 
    } 

#if false 
    typedef struct tagDBPROPSET {
        /* [size_is] */ DBPROP *rgProperties;
        ULONG cProperties;
        GUID guidPropertySet; 
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPSET {
        internal IntPtr rgProperties; 
        internal Int32 cProperties;
        internal Guid guidPropertySet;

        internal tagDBPROPSET() { 
        }
 
        internal tagDBPROPSET(int propertyCount, Guid propertySet) { 
            cProperties = propertyCount;
            guidPropertySet = propertySet; 
        }
    }

#if false 
    typedef struct tagDBPROP {
        DBPROPID dwPropertyID; 
        DBPROPOPTIONS dwOptions; 
        DBPROPSTATUS dwStatus;
        DBID colid; 
        VARIANT vValue;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROP {
        internal Int32 dwPropertyID; 
        internal Int32 dwOptions; 
        internal OleDbPropertyStatus dwStatus;
 
        internal tagDBIDX columnid;

        // Variant
        [MarshalAs(UnmanagedType.Struct)] internal object vValue; 

        internal tagDBPROP() { 
        } 

        internal tagDBPROP(int propertyID, bool required, object value) { 
            dwPropertyID = propertyID;
            dwOptions = ((required) ? ODB.DBPROPOPTIONS_REQUIRED : ODB.DBPROPOPTIONS_OPTIONAL);
            vValue = value;
        } 
    }
 
#if false 
    typedef struct tagDBPARAMS {
        void *pData; 
        DB_UPARAMS cParamSets;
        HACCESSOR hAccessor;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBPARAMS { 
        internal IntPtr pData; 
        internal Int32 cParamSets;
        internal IntPtr hAccessor; 

        internal tagDBPARAMS() {
        }
    } 

#if false 
    typedef struct tagDBCOLUMNINFO { 
        LPOLESTR pwszName;
        ITypeInfo *pTypeInfo; 
        DBORDINAL iOrdinal;
        DBCOLUMNFLAGS dwFlags;
        DBLENGTH ulColumnSize;
        DBTYPE wType; 
        BYTE bPrecision;
        BYTE bScale; 
        DBID columnid; 
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBCOLUMNINFO {

        [MarshalAs(UnmanagedType.LPWStr)] 
        internal String pwszName = null;
 
        //[MarshalAs(UnmanagedType.Interface)] 
        internal IntPtr pTypeInfo = (IntPtr) 0;
 
        internal IntPtr iOrdinal = (IntPtr) 0;

        internal Int32 dwFlags = 0;
 
        internal IntPtr ulColumnSize = (IntPtr) 0;
 
        internal Int16 wType = 0; 

        internal Byte bPrecision = 0; 

        internal Byte bScale = 0;

        internal tagDBIDX columnid; 

        internal tagDBCOLUMNINFO() { 
        } 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder();
            builder.Append("tagDBCOLUMNINFO: " + Convert.ToString(pwszName, CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + "0x" + dwFlags.ToString("X8", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + ulColumnSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + "0x" + wType.ToString("X2", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + columnid.eKind.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString();
        }
#endif
    } 

#if false 
    typedef struct tagDBPROPINFOSET { 
        /* [size_is] */ PDBPROPINFO rgPropertyInfos;
        ULONG cPropertyInfos; 
        GUID guidPropertySet;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPINFOSET {
 
        internal IntPtr rgPropertyInfos; 
        internal Int32 cPropertyInfos;
        internal Guid guidPropertySet; 

        internal tagDBPROPINFOSET() {
        }
    } 

#if false 
    typedef struct tagDBPROPINFO { 
        LPOLESTR pwszDescription;
        DBPROPID dwPropertyID; 
        DBPROPFLAGS dwFlags;
        VARTYPE vtType;
        VARIANT vValues;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPINFO { 

        [MarshalAs(UnmanagedType.LPWStr)] internal string pwszDescription; 

        internal Int32 dwPropertyID;
        internal Int32 dwFlags;
 
        internal Int16 vtType;
 
        [MarshalAs(UnmanagedType.Struct)] internal object vValue; 

        internal tagDBPROPINFO() { 
        }
    }

#if false 
    typedef struct tagDBPROPIDSET {
        /* [size_is] */ DBPROPID *rgPropertyIDs; 
        ULONG cPropertyIDs; 
        GUID guidPropertySet;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBPROPIDSET {
        internal IntPtr rgPropertyIDs; 
        internal Int32 cPropertyIDs;
        internal Guid guidPropertySet; 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.OleDb {
 
    using System;
    using System.Runtime.InteropServices;

#if DEBUG 
    using System.Diagnostics;
    using System.Globalization; 
    using System.Text; 
#endif
 
    internal enum DBBindStatus {
        OK = 0,
        BADORDINAL = 1,
        UNSUPPORTEDCONVERSION = 2, 
        BADBINDINFO = 3,
        BADSTORAGEFLAGS = 4, 
        NOINTERFACE = 5, 
        MULTIPLESTORAGE = 6
    } 

    internal sealed class Native {
#if WIN32
        internal const int Pack = 2; 
#else
        internal const int Pack = 8; 
#endif 

        private Native() { 
        }
    }

#if false 
    typedef struct tagDBPARAMBINDINFO {
        LPOLESTR pwszDataSourceType; 
        LPOLESTR pwszName; 
        DBLENGTH ulParamSize;
        DBPARAMFLAGS dwFlags; 
        BYTE bPrecision;
        BYTE bScale;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBPARAMBINDINFO { 
        internal IntPtr pwszDataSourceType; 
        internal IntPtr pwszName;
        internal IntPtr ulParamSize; 
        internal Int32 dwFlags;
        internal Byte bPrecision;
        internal Byte bScale;
 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder(); 
            builder.Append("tagDBPARAMBINDINFO").Append(Environment.NewLine);
            if (IntPtr.Zero != pwszDataSourceType) { 
                builder.Append("pwszDataSourceType =").Append(Marshal.PtrToStringUni(pwszDataSourceType)).Append(Environment.NewLine);
            }
            builder.Append("\tulParamSize  =" + ulParamSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tdwFlags     =0x" + dwFlags.ToString("X4", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString(); 
        }
#endif 
    }

#if false
    typedef struct tagDBBINDING { 
        DBORDINAL iOrdinal;
        DBBYTEOFFSET obValue; 
        DBBYTEOFFSET obLength; 
        DBBYTEOFFSET obStatus;
        ITypeInfo *pTypeInfo; 
        DBOBJECT *pObject;
        DBBINDEXT *pBindExt;
        DBPART dwPart;
        DBMEMOWNER dwMemOwner; 
        DBPARAMIO eParamIO;
        DBLENGTH cbMaxLen; 
        DWORD dwFlags; 
        DBTYPE wType;
        BYTE bPrecision; 
        BYTE bScale;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal sealed class tagDBBINDING {
 
        internal IntPtr iOrdinal; 
        internal IntPtr obValue;
        internal IntPtr obLength; 
        internal IntPtr obStatus;

        internal IntPtr pTypeInfo;
        internal IntPtr pObject; 
        internal IntPtr pBindExt;
 
        internal Int32 dwPart; 
        internal Int32 dwMemOwner;
        internal Int32 eParamIO; 

        internal IntPtr cbMaxLen;

        internal Int32 dwFlags; 
        internal Int16 wType;
        internal byte  bPrecision; 
        internal byte  bScale; 

        internal tagDBBINDING() { 
        }

#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder();
            builder.Append("tagDBBINDING").Append(Environment.NewLine); 
            builder.Append("\tOrdinal     =" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tValueOffset =" + obValue.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tLengthOffset=" + obLength.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tStatusOffset=" + obStatus.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tMaxLength   =" + cbMaxLen.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\tDB_Type     =" + ODB.WLookup(wType)).Append(Environment.NewLine);
            builder.Append("\tPrecision   =" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\tScale       =" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            return builder.ToString(); 
        } 
#endif
    } 

#if false
    typedef struct tagDBCOLUMNACCESS {
        void *pData; 
        DBID columnid;
        DBLENGTH cbDataLen; 
        DBSTATUS dwStatus; 
        DBLENGTH cbMaxLen;
        DB_DWRESERVE dwReserved; 
        DBTYPE wType;
        BYTE bPrecision;
        BYTE bScale;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal struct tagDBCOLUMNACCESS { 

        internal IntPtr pData; 
        internal tagDBIDX columnid;
        internal IntPtr cbDataLen;
        internal Int32 dwStatus;
        internal IntPtr cbMaxLen; 
        internal IntPtr dwReserved;
        internal Int16 wType; 
        internal Byte bPrecision; 
        internal Byte bScale;
    } 

#if false
    typedef struct tagDBID {
    /* [switch_is][switch_type] */ union { 
        /* [case()] */ GUID guid;
        /* [case()] */ GUID *pguid; 
        /* [default] */  /* Empty union arm */ 
        }   uGuid;
    DBKIND eKind; 
    /* [switch_is][switch_type] */ union  {
        /* [case()] */ LPOLESTR pwszName;
        /* [case()] */ ULONG ulPropid;
        /* [default] */  /* Empty union arm */ 
        }   uName;
    } 
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBIDX { 
        internal Guid uGuid;
        internal Int32 eKind;
        internal IntPtr ulPropid;
    } 

    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    internal sealed class tagDBID { 
        internal Guid uGuid;
        internal Int32 eKind; 
        internal IntPtr ulPropid;
    }

#if false 
    typedef struct tagDBLITERALINFO {
        LPOLESTR pwszLiteralValue; 
        LPOLESTR pwszInvalidChars; 
        LPOLESTR pwszInvalidStartingChars;
        DBLITERAL lt; 
        BOOL fSupported;
        ULONG cchMaxLen;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBLITERALINFO { 
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszLiteralValue = null; 

        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszInvalidChars = null;
 
        [MarshalAs(UnmanagedType.LPWStr)]
        internal String pwszInvalidStartingChars = null; 
 
        internal Int32 it;
 
        internal Int32 fSupported;

        internal Int32 cchMaxLen;
 
        internal tagDBLITERALINFO() {
        } 
    } 

#if false 
    typedef struct tagDBPROPSET {
        /* [size_is] */ DBPROP *rgProperties;
        ULONG cProperties;
        GUID guidPropertySet; 
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPSET {
        internal IntPtr rgProperties; 
        internal Int32 cProperties;
        internal Guid guidPropertySet;

        internal tagDBPROPSET() { 
        }
 
        internal tagDBPROPSET(int propertyCount, Guid propertySet) { 
            cProperties = propertyCount;
            guidPropertySet = propertySet; 
        }
    }

#if false 
    typedef struct tagDBPROP {
        DBPROPID dwPropertyID; 
        DBPROPOPTIONS dwOptions; 
        DBPROPSTATUS dwStatus;
        DBID colid; 
        VARIANT vValue;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROP {
        internal Int32 dwPropertyID; 
        internal Int32 dwOptions; 
        internal OleDbPropertyStatus dwStatus;
 
        internal tagDBIDX columnid;

        // Variant
        [MarshalAs(UnmanagedType.Struct)] internal object vValue; 

        internal tagDBPROP() { 
        } 

        internal tagDBPROP(int propertyID, bool required, object value) { 
            dwPropertyID = propertyID;
            dwOptions = ((required) ? ODB.DBPROPOPTIONS_REQUIRED : ODB.DBPROPOPTIONS_OPTIONAL);
            vValue = value;
        } 
    }
 
#if false 
    typedef struct tagDBPARAMS {
        void *pData; 
        DB_UPARAMS cParamSets;
        HACCESSOR hAccessor;
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBPARAMS { 
        internal IntPtr pData; 
        internal Int32 cParamSets;
        internal IntPtr hAccessor; 

        internal tagDBPARAMS() {
        }
    } 

#if false 
    typedef struct tagDBCOLUMNINFO { 
        LPOLESTR pwszName;
        ITypeInfo *pTypeInfo; 
        DBORDINAL iOrdinal;
        DBCOLUMNFLAGS dwFlags;
        DBLENGTH ulColumnSize;
        DBTYPE wType; 
        BYTE bPrecision;
        BYTE bScale; 
        DBID columnid; 
    }
#endif 
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    sealed internal class tagDBCOLUMNINFO {

        [MarshalAs(UnmanagedType.LPWStr)] 
        internal String pwszName = null;
 
        //[MarshalAs(UnmanagedType.Interface)] 
        internal IntPtr pTypeInfo = (IntPtr) 0;
 
        internal IntPtr iOrdinal = (IntPtr) 0;

        internal Int32 dwFlags = 0;
 
        internal IntPtr ulColumnSize = (IntPtr) 0;
 
        internal Int16 wType = 0; 

        internal Byte bPrecision = 0; 

        internal Byte bScale = 0;

        internal tagDBIDX columnid; 

        internal tagDBCOLUMNINFO() { 
        } 
#if DEBUG
        public override string ToString() { 
            StringBuilder builder = new StringBuilder();
            builder.Append("tagDBCOLUMNINFO: " + Convert.ToString(pwszName, CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + iOrdinal.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + "0x" + dwFlags.ToString("X8", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + ulColumnSize.ToInt64().ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + "0x" + wType.ToString("X2", CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + bPrecision.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            builder.Append("\t" + bScale.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine);
            builder.Append("\t" + columnid.eKind.ToString(CultureInfo.InvariantCulture)).Append(Environment.NewLine); 
            return builder.ToString();
        }
#endif
    } 

#if false 
    typedef struct tagDBPROPINFOSET { 
        /* [size_is] */ PDBPROPINFO rgPropertyInfos;
        ULONG cPropertyInfos; 
        GUID guidPropertySet;
    }
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPINFOSET {
 
        internal IntPtr rgPropertyInfos; 
        internal Int32 cPropertyInfos;
        internal Guid guidPropertySet; 

        internal tagDBPROPINFOSET() {
        }
    } 

#if false 
    typedef struct tagDBPROPINFO { 
        LPOLESTR pwszDescription;
        DBPROPID dwPropertyID; 
        DBPROPFLAGS dwFlags;
        VARTYPE vtType;
        VARIANT vValues;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)] 
    sealed internal class tagDBPROPINFO { 

        [MarshalAs(UnmanagedType.LPWStr)] internal string pwszDescription; 

        internal Int32 dwPropertyID;
        internal Int32 dwFlags;
 
        internal Int16 vtType;
 
        [MarshalAs(UnmanagedType.Struct)] internal object vValue; 

        internal tagDBPROPINFO() { 
        }
    }

#if false 
    typedef struct tagDBPROPIDSET {
        /* [size_is] */ DBPROPID *rgPropertyIDs; 
        ULONG cPropertyIDs; 
        GUID guidPropertySet;
    } 
#endif
    [StructLayoutAttribute(LayoutKind.Sequential, Pack=Native.Pack)]
    internal struct tagDBPROPIDSET {
        internal IntPtr rgPropertyIDs; 
        internal Int32 cPropertyIDs;
        internal Guid guidPropertySet; 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK