scrrun: Add IFileSystem3 support.
[wine/multimedia.git] / dlls / msdaps / row_server.idl
bloba59e6d89787796c1355f0ab7caff0d611195f094
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";
25 threading(both),
26 uuid(06210e88-01f5-11d1-b512-0080c781c384)
28 coclass PSFactoryBuffer { interface IFactoryBuffer; }
31 object,
32 uuid(38248178-cf6d-11de-abe5-000c2916d865),
33 pointer_default(unique)
35 interface IWineRowServer : IUnknown
37 [local] HRESULT SetInnerUnk([in] IUnknown *unknown);
39 [local] HRESULT GetMarshal([out] IMarshal **marshal);
42 /* IRow */
44 typedef struct
46 DBID columnid;
47 DBLENGTH max_len;
48 DBTYPE type;
49 BYTE precision;
50 BYTE scale;
51 } wine_getcolumns_in;
53 typedef struct
55 VARIANT v;
56 DBLENGTH data_len;
57 DBSTATUS status;
58 } wine_getcolumns_out;
60 HRESULT GetColumns([in] DBORDINAL num_cols,
61 [in, size_is((ULONG)num_cols)] wine_getcolumns_in *in_data,
62 [out, size_is((ULONG)num_cols)] wine_getcolumns_out *out_cols);
64 HRESULT GetSourceRowset([in] REFIID riid,
65 [out, iid_is(riid)] IUnknown **ppRowset,
66 [out] HROW *phRow);
68 HRESULT Open([in, unique] IUnknown *pUnkOuter,
69 [in] DBID *pColumnID,
70 [in] REFGUID rguidColumnType,
71 [in] DWORD dwBindFlags,
72 [in] REFIID riid,
73 [out, iid_is(riid)] IUnknown **ppUnk);
75 /* IRowChange */
76 typedef struct
78 VARIANT v;
79 DBID columnid;
80 DBLENGTH data_len;
81 DBSTATUS status;
82 DBLENGTH max_len;
83 DBTYPE type;
84 BYTE precision;
85 BYTE scale;
86 } wine_setcolumns_in;
88 HRESULT SetColumns([in] DBORDINAL num_cols,
89 [in, size_is((ULONG)num_cols)] wine_setcolumns_in *in_data,
90 [out, size_is((ULONG)num_cols)] DBSTATUS *status);
92 /* IRowset */
93 HRESULT AddRefRows([in] DBCOUNTITEM cRows,
94 [in, size_is((ULONG)cRows)] const HROW rghRows[],
95 [out, size_is((ULONG)cRows)] DBREFCOUNT rgRefCounts[],
96 [out, size_is((ULONG)cRows)] DBROWSTATUS rgRowStatus[]);
98 HRESULT GetData([in] HROW hRow,
99 [in] HACCESSOR hAccessor,
100 [in, out, size_is(size)] BYTE *pData,
101 [in] DWORD size);
103 HRESULT GetNextRows([in] HCHAPTER hReserved,
104 [in] DBROWOFFSET lRowsOffset,
105 [in] DBROWCOUNT cRows,
106 [out] DBCOUNTITEM *pcRowObtained,
107 [out, size_is(,(ULONG)cRows)] HROW **prghRows);
109 HRESULT ReleaseRows([in] DBCOUNTITEM cRows,
110 [in, size_is((ULONG)cRows)] const HROW rghRows[],
111 [in, size_is((ULONG)cRows)] DBROWOPTIONS rgRowOptions[],
112 [out, size_is((ULONG)cRows)] DBREFCOUNT rgRefCounts[],
113 [out, size_is((ULONG)cRows)] DBROWSTATUS rgRowStatus[]);
115 HRESULT RestartPosition([in] HCHAPTER hReserved);
117 /* IRowsetLocate */
119 HRESULT Compare([in] HCHAPTER hReserved,
120 [in] DBBKMARK cbBookmark1,
121 [in, size_is((ULONG)cbBookmark1)] const BYTE *pBookmark1,
122 [in] DBBKMARK cbBookmark2,
123 [in, size_is((ULONG)cbBookmark2)] const BYTE *pBookmark2,
124 [out] DBCOMPARE *pComparison);
126 HRESULT GetRowsAt([in] HWATCHREGION hReserved1,
127 [in] HCHAPTER hReserved2,
128 [in] DBBKMARK cbBookmark,
129 [in, size_is((ULONG)cbBookmark)] const BYTE *pBookmark,
130 [in] DBROWOFFSET lRowsOffset,
131 [in] DBROWCOUNT cRows,
132 [out] DBCOUNTITEM *pcRowsObtained,
133 [out, size_is(,(ULONG)cRows)] HROW **prghRows);
135 HRESULT GetRowsByBookmark([in] HCHAPTER hReserved,
136 [in] DBCOUNTITEM cRows,
137 [in, size_is((ULONG)cRows)] const DBBKMARK rgcbBookmarks[],
138 [in, size_is((ULONG)cRows)] const BYTE *rgpBookmarks[],
139 [out, size_is((ULONG)cRows)] HROW rghRows[],
140 [out, size_is((ULONG)cRows)] DBROWSTATUS rgRowStatus[]);
142 HRESULT Hash([in] HCHAPTER hReserved,
143 [in] DBBKMARK cBookmarks,
144 [in, size_is((ULONG)cBookmarks)] const DBBKMARK rgcbBookmarks[],
145 [in, size_is((ULONG)cBookmarks)] const BYTE *rgpBookmarks[],
146 [out, size_is((ULONG)cBookmarks)] DBHASHVALUE rgHashedValues[],
147 [out, size_is((ULONG)cBookmarks)] DBROWSTATUS rgBookmarkStatus[]);
149 /* IRowsetInfo */
151 HRESULT GetProperties([in] ULONG cPropertyIDSets,
152 [in, unique, size_is((ULONG)cPropertyIDSets)] const DBPROPIDSET *rgPropertyIDSets,
153 [in, out] ULONG *pcPropertySets,
154 [out, size_is(,*pcPropertySets)] DBPROPSET **prgPropertySets);
156 HRESULT GetReferencedRowset([in] DBORDINAL iOrdinal,
157 [in] REFIID riid,
158 [out, iid_is(riid)] IUnknown **ppReferencedRowset);
160 HRESULT GetSpecification([in] REFIID riid,
161 [out, iid_is(riid)] IUnknown **ppSpecification);
163 /* IAccessor */
165 HRESULT AddRefAccessor([in] HACCESSOR hAccessor,
166 [in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount);
168 HRESULT CreateAccessor([in] DBACCESSORFLAGS dwAccessorFlags,
169 [in] DBCOUNTITEM cBindings,
170 [in, unique, size_is((ULONG)cBindings)] const DBBINDING *rgBindings,
171 [in] DBLENGTH cbRowSize,
172 [out] HACCESSOR *phAccessor,
173 [in, out, unique, size_is((ULONG)cBindings)] DBBINDSTATUS *rgStatus);
175 HRESULT GetBindings([in] HACCESSOR hAccessor,
176 [out] DBACCESSORFLAGS *pdwAccessorFlags,
177 [in, out] DBCOUNTITEM *pcBindings,
178 [out, size_is(,(ULONG)*pcBindings)] DBBINDING **prgBindings);
180 HRESULT ReleaseAccessor([in] HACCESSOR hAccessor,
181 [in, out, unique] DBREFCOUNT *pcRefCount);
185 helpstring("Wine OLE DB Row Server"),
186 threading(both),
187 progid("WINEDBROWPRX.AsServer.1"),
188 vi_progid("WINEDBROWPRX.AsServer"),
189 uuid(38248178-cf6d-11de-abe5-000c2916d865)
191 coclass wine_row_server
197 helpstring("Wine OLE DB Row Proxy"),
198 threading(both),
199 progid("WINEDBROWPRX.AsProxy.1"),
200 vi_progid("WINEDBROWPRX.AsProxy"),
201 uuid(38248179-cf6d-11de-abe5-000c2916d865)
203 coclass wine_row_proxy
209 helpstring("Wine OLE DB Rowset Server"),
210 threading(both),
211 progid("WINEDBRSTPRX.AsServer.1"),
212 vi_progid("WINEDBRSTPRX.AsServer"),
213 uuid(3824817a-cf6d-11de-abe5-000c2916d865)
215 coclass wine_rowset_server
221 helpstring("Wine OLE DB Rowset Proxy"),
222 threading(both),
223 progid("WINEDBRSTPRX.AsProxy.1"),
224 vi_progid("WINEDBRSTPRX.AsProxy"),
225 uuid(3824817b-cf6d-11de-abe5-000c2916d865)
227 coclass wine_rowset_proxy
232 cpp_quote("extern HRESULT create_row_server( IUnknown*, LPVOID* ) DECLSPEC_HIDDEN;")
233 cpp_quote("extern HRESULT create_row_marshal( IUnknown*, LPVOID* ) DECLSPEC_HIDDEN;")
234 cpp_quote("extern HRESULT create_rowset_server( IUnknown*, LPVOID* ) DECLSPEC_HIDDEN;")
235 cpp_quote("extern HRESULT create_rowset_marshal( IUnknown*, LPVOID* ) DECLSPEC_HIDDEN;")