push cc8bc80451cc24f4d7cf75168b569f0ebfe19547
[wine/hacks.git] / include / dbs.idl
blob19c2997b3ab63752f9f6d5837623070b1408e64d
1 /*
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
19 typedef DWORD DBKIND;
21 enum DBKINDENUM {
22 DBKIND_GUID_NAME,
23 DBKIND_GUID_PROPID,
24 DBKIND_NAME,
25 DBKIND_PGUID_NAME,
26 DBKIND_PGUID_PROPID,
27 DBKIND_PROPID,
28 DBKIND_GUID,
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)]
35 GUID guid;
36 [case(DBKIND_PGUID_NAME, DBKIND_PGUID_PROPID)]
37 GUID *pguid;
38 [default]
40 } uGuid;
41 DBKIND eKind;
42 [switch_type(DBKIND), switch_is(eKind)] union
44 [case(DBKIND_GUID_NAME, DBKIND_NAME, DBKIND_PGUID_NAME)]
45 LPOLESTR pwszName;
46 [case(DBKIND_GUID_PROPID, DBKIND_GUID, DBKIND_PGUID_PROPID, DBKIND_PROPID)]
47 ULONG ulPropid;
48 [default]
50 } uName;
51 } DBID;
53 typedef DWORD DBPROPID;
55 typedef struct tagDBPROPIDSET {
56 [size_is(cPropertyIDs)] DBPROPID *rgPropertyIDs;
57 ULONG cPropertyIDs;
58 GUID guidPropertySet;
59 } DBPROPIDSET;
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;
75 DBID colid;
76 VARIANT vValue;
77 } DBPROP;
79 typedef struct tagDBPROPSET {
80 [size_is(cProperties)] DBPROP *rgProperties;
81 ULONG cProperties;
82 GUID guidPropertySet;
83 } DBPROPSET;
85 typedef DWORD DBPROPFLAGS;
87 typedef struct tagDBPROPINFO {
88 LPOLESTR pwszDescription;
89 DBPROPID dwPropertyID;
90 DBPROPFLAGS dwFlags;
91 VARTYPE vtType;
92 VARIANT vValues;
93 } DBPROPINFO;
95 typedef DBPROPINFO *PDBPROPINFO;
97 typedef struct tagDBPROPINFOSET {
98 [size_is(cPropertyInfos)] PDBPROPINFO rgPropertyInfos;
99 ULONG cPropertyInfos;
100 GUID guidPropertySet;
101 } DBPROPINFOSET;