ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dbs.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2006 Mike McCormack
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 typedef DWORD DBKIND;
00020 
00021 enum DBKINDENUM {
00022     DBKIND_GUID_NAME,
00023     DBKIND_GUID_PROPID,
00024     DBKIND_NAME,
00025     DBKIND_PGUID_NAME,
00026     DBKIND_PGUID_PROPID,
00027     DBKIND_PROPID,
00028     DBKIND_GUID,
00029 };
00030 
00031 typedef struct tagDBID {
00032     [switch_type(DBKIND), switch_is(eKind)] union
00033     {
00034     [case(DBKIND_GUID_NAME, DBKIND_GUID_PROPID, DBKIND_GUID, DBKIND_NAME, DBKIND_PROPID)]
00035         GUID guid;
00036     [case(DBKIND_PGUID_NAME, DBKIND_PGUID_PROPID)]
00037         GUID *pguid;
00038     [default]
00039         ;
00040     } uGuid;
00041     DBKIND eKind;
00042     [switch_type(DBKIND), switch_is(eKind)] union
00043     {
00044     [case(DBKIND_GUID_NAME, DBKIND_NAME, DBKIND_PGUID_NAME)]
00045         LPOLESTR pwszName;
00046     [case(DBKIND_GUID_PROPID, DBKIND_GUID, DBKIND_PGUID_PROPID, DBKIND_PROPID)]
00047         ULONG ulPropid;
00048     [default]
00049         ;
00050     } uName;
00051 } DBID;
00052 
00053 typedef DWORD DBPROPID;
00054 
00055 typedef struct tagDBPROPIDSET {
00056     [size_is(cPropertyIDs)] DBPROPID *rgPropertyIDs;
00057     ULONG cPropertyIDs;
00058     GUID guidPropertySet;
00059 } DBPROPIDSET;
00060 
00061 typedef DWORD DBPROPOPTIONS;
00062 
00063 enum DBPROPOPTIONENUM {
00064     DBPROPOPTIONS_REQUIRED = 0,
00065     DBPROPOPTIONS_SETIFCHEAP = 1,
00066     DBPROPOPTIONS_OPTIONAL = 1,
00067 };
00068 
00069 typedef DWORD DBPROPSTATUS;
00070 
00071 typedef struct tagDBPROP {
00072     DBPROPID dwPropertyID;
00073     DBPROPOPTIONS dwOptions;
00074     DBPROPSTATUS dwStatus;
00075     DBID colid;
00076     VARIANT vValue;
00077 } DBPROP;
00078 
00079 typedef struct tagDBPROPSET {
00080     [size_is(cProperties)] DBPROP *rgProperties;
00081     ULONG cProperties;
00082     GUID guidPropertySet;
00083 } DBPROPSET;
00084 
00085 typedef DWORD DBPROPFLAGS;
00086 
00087 typedef struct tagDBPROPINFO {
00088     LPOLESTR pwszDescription;
00089     DBPROPID dwPropertyID;
00090     DBPROPFLAGS dwFlags;
00091     VARTYPE vtType;
00092     VARIANT vValues;
00093 } DBPROPINFO;
00094 
00095 typedef DBPROPINFO *PDBPROPINFO;
00096 
00097 typedef struct tagDBPROPINFOSET {
00098     [size_is(cPropertyInfos)] PDBPROPINFO rgPropertyInfos;
00099     ULONG cPropertyInfos;
00100     GUID guidPropertySet;
00101 } DBPROPINFOSET;
00102 
00103 typedef DWORD DBBINDURLFLAG;
00104 typedef DWORD DBBINDURLSTATUS;
00105 
00106 typedef struct tagDBIMPLICITSESSION
00107 {
00108     IUnknown *pUnkOuter;
00109     IID *piid;
00110     IUnknown *pSession;
00111 } DBIMPLICITSESSION;
00112 
00113 typedef WORD DBTYPE;
00114 
00115 enum DBTYPEENUM
00116 {
00117     DBTYPE_EMPTY         = 0,
00118     DBTYPE_NULL          = 1,
00119     DBTYPE_I2            = 2,
00120     DBTYPE_I4            = 3,
00121     DBTYPE_R4            = 4,
00122     DBTYPE_R8            = 5,
00123     DBTYPE_CY            = 6,
00124     DBTYPE_DATE          = 7,
00125     DBTYPE_BSTR          = 8,
00126     DBTYPE_IDISPATCH     = 9,
00127     DBTYPE_ERROR         = 10,
00128     DBTYPE_BOOL          = 11,
00129     DBTYPE_VARIANT       = 12,
00130     DBTYPE_IUNKNOWN      = 13,
00131     DBTYPE_DECIMAL       = 14,
00132     DBTYPE_I1            = 16,
00133     DBTYPE_UI1           = 17,
00134     DBTYPE_UI2           = 18,
00135     DBTYPE_UI4           = 19,
00136     DBTYPE_I8            = 20,
00137     DBTYPE_UI8           = 21,
00138     DBTYPE_GUID          = 72,
00139     DBTYPE_BYTES         = 128,
00140     DBTYPE_STR           = 129,
00141     DBTYPE_WSTR          = 130,
00142     DBTYPE_NUMERIC       = 131,
00143     DBTYPE_UDT           = 132,
00144     DBTYPE_DBDATE        = 133,
00145     DBTYPE_DBTIME        = 134,
00146     DBTYPE_DBTIMESTAMP   = 135,
00147 
00148     DBTYPE_VECTOR        = 0x1000,
00149     DBTYPE_ARRAY         = 0x2000,
00150     DBTYPE_BYREF         = 0x4000,
00151     DBTYPE_RESERVED      = 0x8000
00152 };
00153 
00154 enum DBTYPEENUM15
00155 {
00156     DBTYPE_HCHAPTER      = 136
00157 };
00158 
00159 enum DBTYPEENUM20
00160 {
00161     DBTYPE_FILETIME      = 64,
00162     DBTYPE_PROPVARIANT   = 138,
00163     DBTYPE_VARNUMERIC    = 139
00164 };
00165 
00166 typedef DWORD DBSTATUS;
00167 
00168 enum DBSTATUSENUM
00169 {
00170     DBSTATUS_S_OK = 0,
00171     DBSTATUS_E_BADACCESSOR = 1,
00172     DBSTATUS_E_CANTCONVERTVALUE = 2,
00173     DBSTATUS_S_ISNULL = 3,
00174     DBSTATUS_S_TRUNCATED = 4,
00175     DBSTATUS_E_SIGNMISMATCH = 5,
00176     DBSTATUS_E_DATAOVERFLOW = 6,
00177     DBSTATUS_E_CANTCREATE = 7,
00178     DBSTATUS_E_UNAVAILABLE = 8,
00179     DBSTATUS_E_PERMISSIONDENIED = 9,
00180     DBSTATUS_E_INTEGRITYVIOLATION = 10,
00181     DBSTATUS_E_SCHEMAVIOLATION = 11,
00182     DBSTATUS_E_BADSTATUS = 12,
00183     DBSTATUS_S_DEFAULT = 13
00184 };
00185 
00186 cpp_quote("#ifdef DBINITCONSTANTS")
00187 cpp_quote("#ifdef __cplusplus")
00188 cpp_quote("#define DEFINE_DBGUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \\")
00189 cpp_quote("        EXTERN_C const GUID name DECLSPEC_HIDDEN;     \\")
00190 cpp_quote("        EXTERN_C const GUID name =                    \\")
00191 cpp_quote(" { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }")
00192 cpp_quote("#else")
00193 cpp_quote("#define DEFINE_DBGUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \\")
00194 cpp_quote("        const GUID name DECLSPEC_HIDDEN;      \\")
00195 cpp_quote("        const GUID name =                             \\")
00196 cpp_quote(" { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }")
00197 cpp_quote("#endif")
00198 cpp_quote("#else")
00199 cpp_quote("#define DEFINE_DBGUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \\")
00200 cpp_quote("    EXTERN_C const GUID name DECLSPEC_HIDDEN")
00201 cpp_quote("#endif")
00202 
00203 cpp_quote("DEFINE_DBGUID(DBGUID_SESSION,    0xc8b522f5, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d);")
00204 cpp_quote("DEFINE_DBGUID(DBGUID_ROWSET,     0xc8b522f6, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d);")
00205 cpp_quote("DEFINE_DBGUID(DBGUID_ROW,        0xc8b522f7, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d);")
00206 cpp_quote("DEFINE_DBGUID(DBGUID_STREAM,     0xc8b522f9, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d);")
00207 
00208 typedef struct tagDBCOLUMNACCESS
00209 {
00210     void *pData;
00211     DBID columnid;
00212     DBLENGTH cbDataLen;
00213     DBSTATUS dwStatus;
00214     DBLENGTH cbMaxLen;
00215     DB_DWRESERVE dwReserved;
00216     DBTYPE wType;
00217     BYTE bPrecision;
00218     BYTE bScale;
00219 } DBCOLUMNACCESS;
00220 
00221 typedef DWORD DBROWSTATUS;
00222 
00223 enum DBROWSTATUSENUM
00224 {
00225     DBROWSTATUS_S_OK         = 0,
00226     /* FIXME */
00227     DBROWSTATUS_E_FAIL       = 19,
00228 
00229 };
00230 
00231 typedef DWORD DBPART;
00232 
00233 enum DBPARTENUM
00234 {
00235     DBPART_INVALID  = 0,
00236     DBPART_VALUE    = 1,
00237     DBPART_LENGTH   = 2,
00238     DBPART_STATUS   = 4,
00239 };
00240 
00241 typedef DWORD DBPARAMIO;
00242 
00243 enum DBPARAMIOENUM
00244 {
00245     DBPARAMIO_NOTPARAM = 0,
00246     DBPARAMIO_INPUT    = 1,
00247     DBPARAMIO_OUTPUT   = 2,
00248 };
00249 
00250 typedef DWORD DBMEMOWNER;
00251 
00252 enum DBMEMOWNERENUM
00253 {
00254     DBMEMOWNER_CLIENTOWNED    = 0,
00255     DBMEMOWNER_PROVIDEROWNED  = 1,
00256 };
00257 
00258 typedef struct tagDBOBJECT
00259 {
00260     DWORD dwFlags;
00261     IID iid;
00262 } DBOBJECT;
00263 
00264 typedef struct tagDBBINDEXT
00265 {
00266     [size_is((ULONG)ulExtension)] BYTE *pExtension;
00267     DBCOUNTITEM ulExtension;
00268 } DBBINDEXT;
00269 
00270 typedef struct tagDBBINDING
00271 {
00272     DBORDINAL iOrdinal;
00273     DBBYTEOFFSET obValue;
00274     DBBYTEOFFSET obLength;
00275     DBBYTEOFFSET obStatus;
00276     ITypeInfo *pTypeInfo;
00277     DBOBJECT *pObject;
00278     DBBINDEXT *pBindExt;
00279     DBPART dwPart;
00280     DBMEMOWNER dwMemOwner;
00281     DBPARAMIO eParamIO;
00282     DBLENGTH cbMaxLen;
00283     DWORD dwFlags;
00284     DBTYPE wType;
00285     BYTE bPrecision;
00286     BYTE bScale;
00287 } DBBINDING;
00288 
00289 typedef ULONG_PTR HACCESSOR;
00290 
00291 cpp_quote("#define DB_INVALID_HACCESSOR 0x00")
00292 
00293 typedef ULONG_PTR HROW;
00294 
00295 cpp_quote("#define DB_NULL_HROW 0x00")
00296 
00297 typedef ULONG_PTR HWATCHREGION;
00298 
00299 cpp_quote("#define DBWATCHREGION_NULL NULL")
00300 
00301 typedef ULONG_PTR HCHAPTER;
00302 
00303 cpp_quote("#define DB_NULL_HCHAPTER 0x00")
00304 
00305 typedef struct tagDBPARAMS
00306 {
00307     void *pData;
00308     DB_UPARAMS cParamSets;
00309     HACCESSOR hAccessor;
00310 } DBPARAMS;
00311 
00312 typedef DWORD DBASYNCHOP;
00313 
00314 enum DBASYNCHOPENUM
00315 {
00316     DBSYNCHOP_OPEN,
00317 };
00318 
00319 typedef DWORD DBASYNCHPHASE;
00320 
00321 enum DBASYNCHPHASEENUM
00322 {
00323     DBASYNCHPHASE_INITIALIZATION,
00324     DBASYNCHPHASE_POPULATION,
00325     DBASYNCHPHASE_COMPLETE,
00326     DBASYNCHPHASE_CANCELED,
00327 };
00328 
00329 typedef struct tagRMTPACK
00330 {
00331     ISequentialStream *pISeqStream;
00332     ULONG cbData;
00333     ULONG cBSTR;
00334     [size_is(cBSTR)] BSTR *rgBSTR;
00335     ULONG cVARIANT;
00336     [size_is(cVARIANT)] VARIANT *rgVARIANT;
00337     ULONG cIDISPATCH;
00338     [size_is(cIDISPATCH)] IDispatch **rgIDISPATCH;
00339     ULONG cIUNKNOWN;
00340     [size_is(cIUNKNOWN)] IUnknown **rgIUNKNOWN;
00341     ULONG cPROPVARIANT;
00342     [size_is(cPROPVARIANT)] PROPVARIANT *rgPROPVARIANT;
00343     ULONG cArray;
00344     [size_is(cArray)] VARIANT *rgArray;
00345 } RMTPACK;

Generated on Sat May 26 2012 04:30:00 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.