2 * Copyright (C) 2006 Mike McCormack
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
31 typedef struct tagDBID {
32 [switch_type(DBKIND), switch_is(eKind)] union
34 [case(DBKIND_GUID_NAME, DBKIND_GUID_PROPID, DBKIND_GUID, DBKIND_NAME, DBKIND_PROPID)]
36 [case(DBKIND_PGUID_NAME, DBKIND_PGUID_PROPID)]
42 [switch_type(DBKIND), switch_is(eKind)] union
44 [case(DBKIND_GUID_NAME, DBKIND_NAME, DBKIND_PGUID_NAME)]
46 [case(DBKIND_GUID_PROPID, DBKIND_GUID, DBKIND_PGUID_PROPID, DBKIND_PROPID)]
53 typedef DWORD DBPROPID;
55 typedef struct tagDBPROPIDSET {
56 [size_is(cPropertyIDs)] DBPROPID *rgPropertyIDs;
61 typedef DWORD DBPROPOPTIONS;
63 enum DBPROPOPTIONENUM {
64 DBPROPOPTIONS_REQUIRED = 0,
65 DBPROPOPTIONS_SETIFCHEAP = 1,
66 DBPROPOPTIONS_OPTIONAL = 1,
69 typedef DWORD DBPROPSTATUS;
71 typedef struct tagDBPROP {
72 DBPROPID dwPropertyID;
73 DBPROPOPTIONS dwOptions;
74 DBPROPSTATUS dwStatus;
79 typedef struct tagDBPROPSET {
80 [size_is(cProperties)] DBPROP *rgProperties;
85 typedef DWORD DBPROPFLAGS;
87 typedef struct tagDBPROPINFO {
88 LPOLESTR pwszDescription;
89 DBPROPID dwPropertyID;
95 typedef DBPROPINFO *PDBPROPINFO;
97 typedef struct tagDBPROPINFOSET {
98 [size_is(cPropertyInfos)] PDBPROPINFO rgPropertyInfos;
100 GUID guidPropertySet;
103 typedef DWORD DBBINDURLFLAG;
104 typedef DWORD DBBINDURLSTATUS;
106 typedef struct tagDBIMPLICITSESSION
126 DBTYPE_IDISPATCH = 9,
130 DBTYPE_IUNKNOWN = 13,
142 DBTYPE_NUMERIC = 131,
146 DBTYPE_DBTIMESTAMP = 135,
148 DBTYPE_VECTOR = 0x1000,
149 DBTYPE_ARRAY = 0x2000,
150 DBTYPE_BYREF = 0x4000,
151 DBTYPE_RESERVED = 0x8000
156 DBTYPE_HCHAPTER = 136
161 DBTYPE_FILETIME = 64,
162 DBTYPE_PROPVARIANT = 138,
163 DBTYPE_VARNUMERIC = 139
166 typedef DWORD DBSTATUS;
171 DBSTATUS_E_BADACCESSOR = 1,
172 DBSTATUS_E_CANTCONVERTVALUE = 2,
173 DBSTATUS_S_ISNULL = 3,
174 DBSTATUS_S_TRUNCATED = 4,
175 DBSTATUS_E_SIGNMISMATCH = 5,
176 DBSTATUS_E_DATAOVERFLOW = 6,
177 DBSTATUS_E_CANTCREATE = 7,
178 DBSTATUS_E_UNAVAILABLE = 8,
179 DBSTATUS_E_PERMISSIONDENIED = 9,
180 DBSTATUS_E_INTEGRITYVIOLATION = 10,
181 DBSTATUS_E_SCHEMAVIOLATION = 11,
182 DBSTATUS_E_BADSTATUS = 12,
183 DBSTATUS_S_DEFAULT = 13
186 typedef struct tagDBCOLUMNACCESS
193 DB_DWRESERVE dwReserved;
199 typedef DWORD DBROWSTATUS;
203 DBROWSTATUS_S_OK = 0,
205 DBROWSTATUS_E_FAIL = 19,
209 typedef DWORD DBPART;
219 typedef DWORD DBPARAMIO;
223 DBPARAMIO_NOTPARAM = 0,
225 DBPARAMIO_OUTPUT = 2,
228 typedef DWORD DBMEMOWNER;
232 DBMEMOWNER_CLIENTOWNED = 0,
233 DBMEMOWNER_PROVIDEROWNED = 1,
236 typedef struct tagDBOBJECT
242 typedef struct tagDBBINDEXT
244 [size_is((ULONG)ulExtension)] BYTE *pExtension;
245 DBCOUNTITEM ulExtension;
248 typedef struct tagDBBINDING
251 DBBYTEOFFSET obValue;
252 DBBYTEOFFSET obLength;
253 DBBYTEOFFSET obStatus;
254 ITypeInfo *pTypeInfo;
258 DBMEMOWNER dwMemOwner;
267 typedef ULONG_PTR HACCESSOR;
269 cpp_quote("#define DB_INVALID_HACCESSOR 0x00")
271 typedef ULONG_PTR HROW;
273 cpp_quote("#define DB_NULL_HROW 0x00")
275 typedef ULONG_PTR HWATCHREGION;
277 cpp_quote("#define DBWATCHREGION_NULL NULL")
279 typedef ULONG_PTR HCHAPTER;
281 cpp_quote("#define DB_NULL_HCHAPTER 0x00")
283 typedef struct tagDBPARAMS
286 DB_UPARAMS cParamSets;
290 typedef DWORD DBASYNCHOP;
297 typedef DWORD DBASYNCHPHASE;
299 enum DBASYNCHPHASEENUM
301 DBASYNCHPHASE_INITIALIZATION,
302 DBASYNCHPHASE_POPULATION,
303 DBASYNCHPHASE_COMPLETE,
304 DBASYNCHPHASE_CANCELED,
307 typedef struct tagRMTPACK
309 ISequentialStream *pISeqStream;
312 [size_is(cBSTR)] BSTR *rgBSTR;
314 [size_is(cVARIANT)] VARIANT *rgVARIANT;
316 [size_is(cIDISPATCH)] IDispatch **rgIDISPATCH;
318 [size_is(cIUNKNOWN)] IUnknown **rgIUNKNOWN;
320 [size_is(cPROPVARIANT)] PROPVARIANT *rgPROPVARIANT;
322 [size_is(cArray)] VARIANT *rgArray;