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
22 #pragma makedep register
29 uuid(06210e88
-01f5
-11d1
-b512
-0080c781c384
)
31 coclass PSFactoryBuffer
{ interface IPSFactoryBuffer
; }
35 uuid(38248178-cf6d
-11de
-abe5
-000c2916d865
),
36 pointer_default(unique)
38 interface IWineRowServer
: IUnknown
40 [local] HRESULT SetInnerUnk
([in] IUnknown
*unknown
);
42 [local] HRESULT GetMarshal
([out] IMarshal
**marshal
);
61 } wine_getcolumns_out
;
63 HRESULT GetColumns
([in] DBORDINAL num_cols
,
64 [in, size_is((ULONG
)num_cols
)] wine_getcolumns_in
*in_data
,
65 [out, size_is((ULONG
)num_cols
)] wine_getcolumns_out
*out_cols
);
67 HRESULT GetSourceRowset
([in] REFIID riid
,
68 [out, iid_is(riid
)] IUnknown
**ppRowset
,
71 HRESULT Open
([in, unique] IUnknown
*pUnkOuter
,
73 [in] REFGUID rguidColumnType
,
74 [in] DWORD dwBindFlags
,
76 [out, iid_is(riid
)] IUnknown
**ppUnk
);
91 HRESULT SetColumns
([in] DBORDINAL num_cols
,
92 [in, size_is((ULONG
)num_cols
)] wine_setcolumns_in
*in_data
,
93 [out, size_is((ULONG
)num_cols
)] DBSTATUS
*status
);
96 HRESULT AddRefRows
([in] DBCOUNTITEM cRows
,
97 [in, size_is((ULONG
)cRows
)] const HROW rghRows
[],
98 [out, size_is((ULONG
)cRows
)] DBREFCOUNT rgRefCounts
[],
99 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
101 HRESULT GetData
([in] HROW hRow
,
102 [in] HACCESSOR hAccessor
,
103 [in, out, size_is(size
)] BYTE *pData
,
106 HRESULT GetNextRows
([in] HCHAPTER hReserved
,
107 [in] DBROWOFFSET lRowsOffset
,
108 [in] DBROWCOUNT cRows
,
109 [out] DBCOUNTITEM
*pcRowObtained
,
110 [out, size_is(,(ULONG
)cRows
)] HROW
**prghRows
);
112 HRESULT ReleaseRows
([in] DBCOUNTITEM cRows
,
113 [in, size_is((ULONG
)cRows
)] const HROW rghRows
[],
114 [in, size_is((ULONG
)cRows
)] DBROWOPTIONS rgRowOptions
[],
115 [out, size_is((ULONG
)cRows
)] DBREFCOUNT rgRefCounts
[],
116 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
118 HRESULT RestartPosition
([in] HCHAPTER hReserved
);
122 HRESULT Compare
([in] HCHAPTER hReserved
,
123 [in] DBBKMARK cbBookmark1
,
124 [in, size_is((ULONG
)cbBookmark1
)] const BYTE *pBookmark1
,
125 [in] DBBKMARK cbBookmark2
,
126 [in, size_is((ULONG
)cbBookmark2
)] const BYTE *pBookmark2
,
127 [out] DBCOMPARE
*pComparison
);
129 HRESULT GetRowsAt
([in] HWATCHREGION hReserved1
,
130 [in] HCHAPTER hReserved2
,
131 [in] DBBKMARK cbBookmark
,
132 [in, size_is((ULONG
)cbBookmark
)] const BYTE *pBookmark
,
133 [in] DBROWOFFSET lRowsOffset
,
134 [in] DBROWCOUNT cRows
,
135 [out] DBCOUNTITEM
*pcRowsObtained
,
136 [out, size_is(,(ULONG
)cRows
)] HROW
**prghRows
);
138 HRESULT GetRowsByBookmark
([in] HCHAPTER hReserved
,
139 [in] DBCOUNTITEM cRows
,
140 [in, size_is((ULONG
)cRows
)] const DBBKMARK rgcbBookmarks
[],
141 [in, size_is((ULONG
)cRows
)] const BYTE *rgpBookmarks
[],
142 [out, size_is((ULONG
)cRows
)] HROW rghRows
[],
143 [out, size_is((ULONG
)cRows
)] DBROWSTATUS rgRowStatus
[]);
145 HRESULT Hash
([in] HCHAPTER hReserved
,
146 [in] DBBKMARK cBookmarks
,
147 [in, size_is((ULONG
)cBookmarks
)] const DBBKMARK rgcbBookmarks
[],
148 [in, size_is((ULONG
)cBookmarks
)] const BYTE *rgpBookmarks
[],
149 [out, size_is((ULONG
)cBookmarks
)] DBHASHVALUE rgHashedValues
[],
150 [out, size_is((ULONG
)cBookmarks
)] DBROWSTATUS rgBookmarkStatus
[]);
154 HRESULT GetProperties
([in] ULONG cPropertyIDSets
,
155 [in, unique, size_is((ULONG
)cPropertyIDSets
)] const DBPROPIDSET
*rgPropertyIDSets
,
156 [in, out] ULONG
*pcPropertySets
,
157 [out, size_is(,*pcPropertySets
)] DBPROPSET
**prgPropertySets
);
159 HRESULT GetReferencedRowset
([in] DBORDINAL iOrdinal
,
161 [out, iid_is(riid
)] IUnknown
**ppReferencedRowset
);
163 HRESULT GetSpecification
([in] REFIID riid
,
164 [out, iid_is(riid
)] IUnknown
**ppSpecification
);
168 HRESULT AddRefAccessor
([in] HACCESSOR hAccessor
,
169 [in, out, unique, annotation
("__out_opt")] DBREFCOUNT
*pcRefCount
);
171 HRESULT CreateAccessor
([in] DBACCESSORFLAGS dwAccessorFlags
,
172 [in] DBCOUNTITEM cBindings
,
173 [in, unique, size_is((ULONG
)cBindings
)] const DBBINDING
*rgBindings
,
174 [in] DBLENGTH cbRowSize
,
175 [out] HACCESSOR
*phAccessor
,
176 [in, out, unique, size_is((ULONG
)cBindings
)] DBBINDSTATUS
*rgStatus
);
178 HRESULT GetBindings
([in] HACCESSOR hAccessor
,
179 [out] DBACCESSORFLAGS
*pdwAccessorFlags
,
180 [in, out] DBCOUNTITEM
*pcBindings
,
181 [out, size_is(,(ULONG
)*pcBindings
)] DBBINDING
**prgBindings
);
183 HRESULT ReleaseAccessor
([in] HACCESSOR hAccessor
,
184 [in, out, unique] DBREFCOUNT
*pcRefCount
);
188 helpstring("Wine OLE DB Row Server"),
190 progid
("WINEDBROWPRX.AsServer.1"),
191 vi_progid
("WINEDBROWPRX.AsServer"),
192 uuid(38248178-cf6d
-11de
-abe5
-000c2916d865
)
194 coclass wine_row_server
200 helpstring("Wine OLE DB Row Proxy"),
202 progid
("WINEDBROWPRX.AsProxy.1"),
203 vi_progid
("WINEDBROWPRX.AsProxy"),
204 uuid(38248179-cf6d
-11de
-abe5
-000c2916d865
)
206 coclass wine_row_proxy
212 helpstring("Wine OLE DB Rowset Server"),
214 progid
("WINEDBRSTPRX.AsServer.1"),
215 vi_progid
("WINEDBRSTPRX.AsServer"),
216 uuid(3824817a
-cf6d
-11de
-abe5
-000c2916d865
)
218 coclass wine_rowset_server
224 helpstring("Wine OLE DB Rowset Proxy"),
226 progid
("WINEDBRSTPRX.AsProxy.1"),
227 vi_progid
("WINEDBRSTPRX.AsProxy"),
228 uuid(3824817b
-cf6d
-11de
-abe5
-000c2916d865
)
230 coclass wine_rowset_proxy
235 cpp_quote
("extern HRESULT create_row_server( IUnknown*, LPVOID* );")
236 cpp_quote
("extern HRESULT create_row_marshal( IUnknown*, LPVOID* );")
237 cpp_quote
("extern HRESULT create_rowset_server( IUnknown*, LPVOID* );")
238 cpp_quote
("extern HRESULT create_rowset_marshal( IUnknown*, LPVOID* );")