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
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
);
51 } wine_getcolumns_out
;
53 HRESULT GetColumns
([in] DBORDINAL num_cols
,
54 [in, size_is((ULONG
)num_cols
)] wine_getcolumns_in
*in_data
,
55 [out, size_is((ULONG
)num_cols
)] wine_getcolumns_out
*out_cols
);
57 HRESULT GetSourceRowset
([in] REFIID riid
,
58 [out, iid_is(riid
)] IUnknown
**ppRowset
,
61 HRESULT Open
([in, unique] IUnknown
*pUnkOuter
,
63 [in] REFGUID rguidColumnType
,
64 [in] DWORD dwBindFlags
,
66 [out, iid_is(riid
)] IUnknown
**ppUnk
);
81 HRESULT SetColumns
([in] DBORDINAL num_cols
,
82 [in, size_is((ULONG
)num_cols
)] wine_setcolumns_in
*in_data
,
83 [out, size_is((ULONG
)num_cols
)] DBSTATUS
*status
);
86 HRESULT AddRefRows
([in] DBCOUNTITEM cRows
,
87 [in, size_is((ULONG
)cRows
)] const HROW rghRows
[],
88 [out, size_is((ULONG
)cRows
)] DBREFCOUNT rgRefCounts
[],
89 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
91 HRESULT GetData
([in] HROW hRow
,
92 [in] HACCESSOR hAccessor
,
93 [in, out, size_is(size
)] BYTE *pData
,
96 HRESULT GetNextRows
([in] HCHAPTER hReserved
,
97 [in] DBROWOFFSET lRowsOffset
,
98 [in] DBROWCOUNT cRows
,
99 [out] DBCOUNTITEM
*pcRowObtained
,
100 [out, size_is(,(ULONG
)cRows
)] HROW
**prghRows
);
102 HRESULT ReleaseRows
([in] DBCOUNTITEM cRows
,
103 [in, size_is((ULONG
)cRows
)] const HROW rghRows
[],
104 [in, size_is((ULONG
)cRows
)] DBROWOPTIONS rgRowOptions
[],
105 [out, size_is((ULONG
)cRows
)] DBREFCOUNT rgRefCounts
[],
106 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
108 HRESULT RestartPosition
([in] HCHAPTER hReserved
);
112 HRESULT Compare
([in] HCHAPTER hReserved
,
113 [in] DBBKMARK cbBookmark1
,
114 [in, size_is((ULONG
)cbBookmark1
)] const BYTE *pBookmark1
,
115 [in] DBBKMARK cbBookmark2
,
116 [in, size_is((ULONG
)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((ULONG
)cbBookmark
)] const BYTE *pBookmark
,
123 [in] DBROWOFFSET lRowsOffset
,
124 [in] DBROWCOUNT cRows
,
125 [out] DBCOUNTITEM
*pcRowsObtained
,
126 [out, size_is(,(ULONG
)cRows
)] HROW
**prghRows
);
128 HRESULT GetRowsByBookmark
([in] HCHAPTER hReserved
,
129 [in] DBCOUNTITEM cRows
,
130 [in, size_is((ULONG
)cRows
)] const DBBKMARK rgcbBookmarks
[],
131 [in, size_is((ULONG
)cRows
)] const BYTE *rgpBookmarks
[],
132 [out, size_is((ULONG
)cRows
)] HROW rghRows
[],
133 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
135 HRESULT Hash
([in] HCHAPTER hReserved
,
136 [in] DBBKMARK cBookmarks
,
137 [in, size_is((ULONG
)cBookmarks
)] const DBBKMARK rgcbBookmarks
[],
138 [in, size_is((ULONG
)cBookmarks
)] const BYTE *rgpBookmarks
[],
139 [out, size_is((ULONG
)cBookmarks
)] DBHASHVALUE rgHashedValues
[],
140 [out, size_is((ULONG
)cBookmarks
)] DBROWSTATUS rgBookmarkStatus
[]);
144 HRESULT GetProperties
([in] ULONG cPropertyIDSets
,
145 [in, unique, size_is((ULONG
)cPropertyIDSets
)] const DBPROPIDSET
*rgPropertyIDSets
,
146 [in, out] ULONG
*pcPropertySets
,
147 [out, size_is(,*pcPropertySets
)] DBPROPSET
**prgPropertySets
);
149 HRESULT GetReferencedRowset
([in] DBORDINAL iOrdinal
,
151 [out, iid_is(riid
)] IUnknown
**ppReferencedRowset
);
153 HRESULT GetSpecification
([in] REFIID riid
,
154 [out, iid_is(riid
)] IUnknown
**ppSpecification
);
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((ULONG
)cBindings
)] const DBBINDING
*rgBindings
,
164 [in] DBLENGTH cbRowSize
,
165 [out] HACCESSOR
*phAccessor
,
166 [in, out, unique, size_is((ULONG
)cBindings
)] DBBINDSTATUS
*rgStatus
);
168 HRESULT GetBindings
([in] HACCESSOR hAccessor
,
169 [out] DBACCESSORFLAGS
*pdwAccessorFlags
,
170 [in, out] DBCOUNTITEM
*pcBindings
,
171 [out, size_is(,(ULONG
)*pcBindings
)] DBBINDING
**prgBindings
);
173 HRESULT ReleaseAccessor
([in] HACCESSOR hAccessor
,
174 [in, out, unique] DBREFCOUNT
*pcRefCount
);
178 helpstring("Wine OLE DB Row Server"),
180 progid
("WINEDBROWPRX.AsServer.1"),
181 vi_progid
("WINEDBROWPRX.AsServer"),
182 uuid(38248178-cf6d
-11de
-abe5
-000c2916d865
)
184 coclass wine_row_server
190 helpstring("Wine OLE DB Row Proxy"),
192 progid
("WINEDBROWPRX.AsProxy.1"),
193 vi_progid
("WINEDBROWPRX.AsProxy"),
194 uuid(38248179-cf6d
-11de
-abe5
-000c2916d865
)
196 coclass wine_row_proxy
202 helpstring("Wine OLE DB Rowset Server"),
204 progid
("WINEDBRSTPRX.AsServer.1"),
205 vi_progid
("WINEDBRSTPRX.AsServer"),
206 uuid(3824817a
-cf6d
-11de
-abe5
-000c2916d865
)
208 coclass wine_rowset_server
214 helpstring("Wine OLE DB Rowset Proxy"),
216 progid
("WINEDBRSTPRX.AsProxy.1"),
217 vi_progid
("WINEDBRSTPRX.AsProxy"),
218 uuid(3824817b
-cf6d
-11de
-abe5
-000c2916d865
)
220 coclass wine_rowset_proxy
225 cpp_quote
("extern HRESULT create_row_server( IUnknown*, LPVOID* );")
226 cpp_quote
("extern HRESULT create_row_marshal( IUnknown*, LPVOID* );")
227 cpp_quote
("extern HRESULT create_rowset_server( IUnknown*, LPVOID* );")
228 cpp_quote
("extern HRESULT create_rowset_marshal( IUnknown*, LPVOID* );")