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
26 uuid(06210e88
-01f5
-11d1
-b512
-0080c781c384
)
28 coclass PSFactoryBuffer
{ interface IFactoryBuffer
; }
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
);
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
,
68 HRESULT Open
([in, unique] IUnknown
*pUnkOuter
,
70 [in] REFGUID rguidColumnType
,
71 [in] DWORD dwBindFlags
,
73 [out, iid_is(riid
)] IUnknown
**ppUnk
);
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
);
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
,
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
);
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
[]);
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
,
158 [out, iid_is(riid
)] IUnknown
**ppReferencedRowset
);
160 HRESULT GetSpecification
([in] REFIID riid
,
161 [out, iid_is(riid
)] IUnknown
**ppSpecification
);
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"),
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"),
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"),
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"),
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* );")
233 cpp_quote
("extern HRESULT create_row_marshal( IUnknown*, LPVOID* );")
234 cpp_quote
("extern HRESULT create_rowset_server( IUnknown*, LPVOID* );")
235 cpp_quote
("extern HRESULT create_rowset_marshal( IUnknown*, LPVOID* );")