krnl386.exe: Don't try to free again an already freed global block.
[wine/multimedia.git] / dlls / msdaps / row_server.idl
blobaca96867af06341aa22bff2aa1e2423c1f8ea931
1 /*
2 * Wine row server interface.
4 * Copyright (C) 2010 Huw Davies
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 import "oledb.idl";
24 object,
25 uuid(38248178-cf6d-11de-abe5-000c2916d865),
26 pointer_default(unique)
28 interface IWineRowServer : IUnknown
30 [local] HRESULT SetInnerUnk([in] IUnknown *unknown);
32 [local] HRESULT GetMarshal([out] IMarshal **marshal);
35 /* IRow */
37 typedef struct
39 DBID columnid;
40 DBLENGTH max_len;
41 DBTYPE type;
42 BYTE precision;
43 BYTE scale;
44 } wine_getcolumns_in;
46 typedef struct
48 VARIANT v;
49 DBLENGTH data_len;
50 DBSTATUS status;
51 } wine_getcolumns_out;
53 HRESULT GetColumns([in] DBORDINAL num_cols,
54 [in, size_is(num_cols)] wine_getcolumns_in *in_data,
55 [out, size_is(num_cols)] wine_getcolumns_out *out_cols);
57 HRESULT GetSourceRowset([in] REFIID riid,
58 [out, iid_is(riid)] IUnknown **ppRowset,
59 [out] HROW *phRow);
61 HRESULT Open([in, unique] IUnknown *pUnkOuter,
62 [in] DBID *pColumnID,
63 [in] REFGUID rguidColumnType,
64 [in] DWORD dwBindFlags,
65 [in] REFIID riid,
66 [out, iid_is(riid)] IUnknown **ppUnk);
68 /* IRowChange */
69 typedef struct
71 VARIANT v;
72 DBID columnid;
73 DBLENGTH data_len;
74 DBSTATUS status;
75 DBLENGTH max_len;
76 DBTYPE type;
77 BYTE precision;
78 BYTE scale;
79 } wine_setcolumns_in;
81 HRESULT SetColumns([in] DBORDINAL num_cols,
82 [in, size_is(num_cols)] wine_setcolumns_in *in_data,
83 [out, size_is(num_cols)] DBSTATUS *status);
85 /* IRowset */
86 HRESULT AddRefRows([in] DBCOUNTITEM cRows,
87 [in, size_is(cRows)] const HROW rghRows[],
88 [out, size_is(cRows)] DBREFCOUNT rgRefCounts[],
89 [out, size_is(cRows)] DBROWSTATUS rgRowStatus[]);
91 HRESULT GetData([in] HROW hRow,
92 [in] HACCESSOR hAccessor,
93 [in, out, size_is(size)] BYTE *pData,
94 [in] DWORD size);
96 HRESULT GetNextRows([in] HCHAPTER hReserved,
97 [in] DBROWOFFSET lRowsOffset,
98 [in] DBROWCOUNT cRows,
99 [out] DBCOUNTITEM *pcRowObtained,
100 [out, size_is(,cRows)] HROW **prghRows);
102 HRESULT ReleaseRows([in] DBCOUNTITEM cRows,
103 [in, size_is(cRows)] const HROW rghRows[],
104 [in, size_is(cRows)] DBROWOPTIONS rgRowOptions[],
105 [out, size_is(cRows)] DBREFCOUNT rgRefCounts[],
106 [out, size_is(cRows)] DBROWSTATUS rgRowStatus[]);
108 HRESULT RestartPosition([in] HCHAPTER hReserved);
110 /* IRowsetLocate */
112 HRESULT Compare([in] HCHAPTER hReserved,
113 [in] DBBKMARK cbBookmark1,
114 [in, size_is(cbBookmark1)] const BYTE *pBookmark1,
115 [in] DBBKMARK cbBookmark2,
116 [in, size_is(cbBookmark2)] const BYTE *pBookmark2,
117 [out] DBCOMPARE *pComparison);
119 HRESULT GetRowsAt([in] HWATCHREGION hReserved1,
120 [in] HCHAPTER hReserved2,
121 [in] DBBKMARK cbBookmark,
122 [in, size_is(cbBookmark)] const BYTE *pBookmark,
123 [in] DBROWOFFSET lRowsOffset,
124 [in] DBROWCOUNT cRows,
125 [out] DBCOUNTITEM *pcRowsObtained,
126 [out, size_is(,cRows)] HROW **prghRows);
128 HRESULT GetRowsByBookmark([in] HCHAPTER hReserved,
129 [in] DBCOUNTITEM cRows,
130 [in, size_is(cRows)] const DBBKMARK rgcbBookmarks[],
131 [in, size_is(cRows)] const BYTE *rgpBookmarks[],
132 [out, size_is(cRows)] HROW rghRows[],
133 [out, size_is(cRows)] DBROWSTATUS rgRowStatus[]);
135 HRESULT Hash([in] HCHAPTER hReserved,
136 [in] DBBKMARK cBookmarks,
137 [in, size_is(cBookmarks)] const DBBKMARK rgcbBookmarks[],
138 [in, size_is(cBookmarks)] const BYTE *rgpBookmarks[],
139 [out, size_is(cBookmarks)] DBHASHVALUE rgHashedValues[],
140 [out, size_is(cBookmarks)] DBROWSTATUS rgBookmarkStatus[]);
142 /* IRowsetInfo */
144 HRESULT GetProperties([in] ULONG cPropertyIDSets,
145 [in, unique, size_is(cPropertyIDSets)] const DBPROPIDSET *rgPropertyIDSets,
146 [in, out] ULONG *pcPropertySets,
147 [out, size_is(,*pcPropertySets)] DBPROPSET **prgPropertySets);
149 HRESULT GetReferencedRowset([in] DBORDINAL iOrdinal,
150 [in] REFIID riid,
151 [out, iid_is(riid)] IUnknown **ppReferencedRowset);
153 HRESULT GetSpecification([in] REFIID riid,
154 [out, iid_is(riid)] IUnknown **ppSpecification);
156 /* IAccessor */
158 HRESULT AddRefAccessor([in] HACCESSOR hAccessor,
159 [in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount);
161 HRESULT CreateAccessor([in] DBACCESSORFLAGS dwAccessorFlags,
162 [in] DBCOUNTITEM cBindings,
163 [in, unique, size_is(cBindings)] const DBBINDING *rgBindings,
164 [in] DBLENGTH cbRowSize,
165 [out] HACCESSOR *phAccessor,
166 [in, out, unique, size_is(cBindings)] DBBINDSTATUS *rgStatus);
168 HRESULT GetBindings([in] HACCESSOR hAccessor,
169 [out] DBACCESSORFLAGS *pdwAccessorFlags,
170 [in, out] DBCOUNTITEM *pcBindings,
171 [out, size_is(,*pcBindings)] DBBINDING **prgBindings);
173 HRESULT ReleaseAccessor([in] HACCESSOR hAccessor,
174 [in, out, unique] DBREFCOUNT *pcRefCount);
178 uuid(38248178-cf6d-11de-abe5-000c2916d865)
180 coclass wine_row_server
186 uuid(38248179-cf6d-11de-abe5-000c2916d865)
188 coclass wine_row_proxy
194 uuid(3824817a-cf6d-11de-abe5-000c2916d865)
196 coclass wine_rowset_server
202 uuid(3824817b-cf6d-11de-abe5-000c2916d865)
204 coclass wine_rowset_proxy
209 cpp_quote("extern HRESULT create_row_server( IUnknown*, LPVOID* );")
210 cpp_quote("extern HRESULT create_row_marshal( IUnknown*, LPVOID* );")
211 cpp_quote("extern HRESULT create_rowset_server( IUnknown*, LPVOID* );")
212 cpp_quote("extern HRESULT create_rowset_marshal( IUnknown*, LPVOID* );")