From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- include/Makefile.in | 1 + include/oledb.idl | 1 + include/rstscr.idl | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 include/rstscr.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 0d8601d9ea9..e8018ab601c 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -682,6 +682,7 @@ SOURCES = \ rstinf.idl \ rstloc.idl \ rstnot.idl \ + rstscr.idl \ rstupd.idl \ rtlsupportapi.h \ rtutils.h \ diff --git a/include/oledb.idl b/include/oledb.idl index ce8aa74138a..e8cc5df609f 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -48,6 +48,7 @@ typedef LONG_PTR DB_LRESERVE; #include "rstbas.idl" #include "rstinf.idl" #include "rstloc.idl" +#include "rstscr.idl" #include "chprst.idl" #include "cmdbas.idl" #include "cmdtxt.idl" diff --git a/include/rstscr.idl b/include/rstscr.idl new file mode 100644 index 00000000000..fc7c34503b6 --- /dev/null +++ b/include/rstscr.idl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2024 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#if 0 +#pragma makedep install +#endif + +[ + local, + object, + uuid(0c733a7e-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IRowsetScroll : IRowsetLocate +{ + HRESULT GetApproximatePosition( [in] HCHAPTER reserved, [in] DBBKMARK cnt, [in, size_is(cnt)] const BYTE *bookmarks, + [out] DBCOUNTITEM *position, [out] DBCOUNTITEM *rows); + + HRESULT GetRowsAtRatio( [in] HWATCHREGION reserved1, [in] HCHAPTER reserved2, [in] DBCOUNTITEM numerator, + [in] DBCOUNTITEM Denominator, [in] DBROWCOUNT rows_cnt, [out] DBCOUNTITEM *obtained, + [out, size_is(,rows_cnt)] HROW **rows); +}
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- include/Makefile.in | 1 + include/oledb.idl | 1 + include/rstxsc.idl | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 include/rstxsc.idl
diff --git a/include/Makefile.in b/include/Makefile.in index e8018ab601c..d189f78162f 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -684,6 +684,7 @@ SOURCES = \ rstnot.idl \ rstscr.idl \ rstupd.idl \ + rstxsc.idl \ rtlsupportapi.h \ rtutils.h \ rtworkq.idl \ diff --git a/include/oledb.idl b/include/oledb.idl index e8cc5df609f..ff8ac71ebcf 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -49,6 +49,7 @@ typedef LONG_PTR DB_LRESERVE; #include "rstinf.idl" #include "rstloc.idl" #include "rstscr.idl" +#include "rstxsc.idl" #include "chprst.idl" #include "cmdbas.idl" #include "cmdtxt.idl" diff --git a/include/rstxsc.idl b/include/rstxsc.idl new file mode 100644 index 00000000000..2d4cb2f5bec --- /dev/null +++ b/include/rstxsc.idl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2024 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#if 0 +#pragma makedep install +#endif + +[ + local, + object, + uuid(0c733a7f-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IRowsetExactScroll : IRowsetScroll +{ + HRESULT GetExactPosition([in] HCHAPTER chapter, [in] DBBKMARK bookmark_cnt, [in, size_is(bookmark_cnt)] const BYTE *bookmarks, + [out] DBCOUNTITEM *position, [out] DBCOUNTITEM *rows); +}
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- include/Makefile.in | 1 + include/dbs.idl | 17 +++++++++++++++++ include/oledb.idl | 1 + include/rstfnd.idl | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 include/rstfnd.idl
diff --git a/include/Makefile.in b/include/Makefile.in index d189f78162f..2d60264c905 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -679,6 +679,7 @@ SOURCES = \ rpcsal.h \ rstbas.idl \ rstchg.idl \ + rstfnd.idl \ rstinf.idl \ rstloc.idl \ rstnot.idl \ diff --git a/include/dbs.idl b/include/dbs.idl index 34e58e5a5d0..8b137453bfb 100644 --- a/include/dbs.idl +++ b/include/dbs.idl @@ -755,6 +755,23 @@ enum DBASYNCHOPENUM DBSYNCHOP_OPEN, };
+typedef DWORD DBCOMPAREOP; + +enum DBCOMPAREOPSENUM +{ + DBCOMPAREOPS_LT, + DBCOMPAREOPS_LE, + DBCOMPAREOPS_EQ, + DBCOMPAREOPS_GE, + DBCOMPAREOPS_GT, + DBCOMPAREOPS_BEGINSWITH, + DBCOMPAREOPS_CONTAINS, + DBCOMPAREOPS_NE, + DBCOMPAREOPS_IGNORE, + DBCOMPAREOPS_CASESENSITIVE = 0x1000, + DBCOMPAREOPS_CASEINSENSITIVE = 0x2000 +}; + typedef DWORD DBASYNCHPHASE;
enum DBASYNCHPHASEENUM diff --git a/include/oledb.idl b/include/oledb.idl index ff8ac71ebcf..7ef6ea12500 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -51,6 +51,7 @@ typedef LONG_PTR DB_LRESERVE; #include "rstscr.idl" #include "rstxsc.idl" #include "chprst.idl" +#include "rstfnd.idl" #include "cmdbas.idl" #include "cmdtxt.idl" #include "colinf.idl" diff --git a/include/rstfnd.idl b/include/rstfnd.idl new file mode 100644 index 00000000000..6e845d044a9 --- /dev/null +++ b/include/rstfnd.idl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2024 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#if 0 +#pragma makedep install +#endif + +[ + local, + object, + uuid(0c733a9d-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IRowsetFind : IUnknown +{ + HRESULT FindNextRow([in] HCHAPTER chapter, [in] HACCESSOR accessor, [in] void *find_value, + [in] DBCOMPAREOP compare_op, [in] DBBKMARK cbBookmark, [in, size_is(cbBookmark)] const BYTE *bookmarks, + [in] DBROWOFFSET offset, [in] DBROWCOUNT rows, [in, out] DBCOUNTITEM *obtained, + [out, size_is(,*pcRowsObtained)] HROW **hrows ); +}
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- dlls/msdaps/usrmarshal.c | 13 +++++++++++++ include/Makefile.in | 1 + include/oledb.idl | 1 + include/rstidn.idl | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 include/rstidn.idl
diff --git a/dlls/msdaps/usrmarshal.c b/dlls/msdaps/usrmarshal.c index 48308c7ee71..bcc55bb1881 100644 --- a/dlls/msdaps/usrmarshal.c +++ b/dlls/msdaps/usrmarshal.c @@ -1810,3 +1810,16 @@ HRESULT __RPC_STUB ITransactionObject_GetTransactionObject_Stub(ITransactionObje FIXME("(%p)->(%ld, %p, %p): stub\n", This, level, transaction, info); return E_NOTIMPL; } + +HRESULT CALLBACK IRowsetIdentity_IsSameRow_Proxy(IRowsetIdentity* This, HROW hThisRow, HROW hThatRow) +{ + FIXME("(%p)->(%ld, %ld): stub\n", This, hThisRow, hThatRow); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IRowsetIdentity_IsSameRow_Stub(IRowsetIdentity* This, HROW hThisRow, + HROW hThatRow, IErrorInfo **error_info) +{ + FIXME("(%p)->(%ld, %ld, %p): stub\n", This, hThisRow, hThatRow, error_info); + return E_NOTIMPL; +} diff --git a/include/Makefile.in b/include/Makefile.in index 2d60264c905..29e62859633 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -680,6 +680,7 @@ SOURCES = \ rstbas.idl \ rstchg.idl \ rstfnd.idl \ + rstidn.idl \ rstinf.idl \ rstloc.idl \ rstnot.idl \ diff --git a/include/oledb.idl b/include/oledb.idl index 7ef6ea12500..f123e3e3c9d 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -81,6 +81,7 @@ typedef LONG_PTR DB_LRESERVE; #include "cmdpre.idl" #include "rstchg.idl" #include "rstupd.idl" +#include "rstidn.idl" #include "mulres.idl" #include "transact.idl" #include "trnjoi.idl" diff --git a/include/rstidn.idl b/include/rstidn.idl new file mode 100644 index 00000000000..f66a6794511 --- /dev/null +++ b/include/rstidn.idl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2024 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#if 0 +#pragma makedep install +#endif + + +[ + object, + uuid(0c733a09-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IRowsetIdentity : IUnknown +{ + [local] + HRESULT IsSameRow([in] HROW hThisRow, [in] HROW hThatRow); + + [call_as(IsSameRow)] + HRESULT RemoteIsSameRow( [in] HROW hThisRow, [in] HROW hThatRow, [out] IErrorInfo **error_info); +}