diff --git a/include/Makefile.in b/include/Makefile.in index 66d8c0d1aee..f8fbfc9f544 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -404,6 +404,7 @@ SRCDIR_INCLUDES = \ rpcproxy.h \ rstbas.idl \ rstinf.idl \ + rstloc.idl \ rtutils.h \ scarderr.h \ schannel.h \ diff --git a/include/oledb.idl b/include/oledb.idl index a1b4643d4f0..3f524eb7dc3 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -34,16 +34,19 @@ typedef LONG DBROWCOUNT; typedef ULONG DBCOUNTITEM; typedef ULONG DBLENGTH; typedef ULONG DBORDINAL; +typedef ULONG DBBKMARK; typedef DWORD DB_DWRESERVE; typedef ULONG DBREFCOUNT; typedef ULONG DB_UPARAMS; typedef LONG DB_LPARAMS; +typedef DWORD DBHASHVALUE; #include "dbs.idl" #include "access.idl" #include "rstbas.idl" #include "rstinf.idl" +#include "rstloc.idl" #include "cmdbas.idl" #include "cmdtxt.idl" #include "dbccmd.idl" diff --git a/include/rstloc.idl b/include/rstloc.idl new file mode 100644 index 00000000000..266aabf65a4 --- /dev/null +++ b/include/rstloc.idl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2009 Huw Davies + * + * 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 + */ + +[ + local, + object, + uuid(0c733a7d-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IRowsetLocate : IRowset +{ + typedef DWORD DBCOMPARE; + + enum DBCOMPAREENUM + { + DBCOMPARE_LT, + DBCOMPARE_EQ, + DBCOMPARE_GT, + DBCOMPARE_NE, + DBCOMPARE_NOTCOMPARABLE + }; + + HRESULT Compare([in] HCHAPTER hReserved, + [in] DBBKMARK cbBookmark1, + [in, size_is(cbBookmark1)] const BYTE *pBookmark1, + [in] DBBKMARK cbBookmark2, + [in, size_is(cbBookmark2)] const BYTE *pBookmark2, + [out] DBCOMPARE *pComparison); + + HRESULT GetRowsAt([in] HWATCHREGION hReserved1, + [in] HCHAPTER hReserved2, + [in] DBBKMARK cbBookmark, + [in, size_is(cbBookmark)] const BYTE *pBookmark, + [in] DBROWOFFSET lRowsOffset, + [in] DBROWCOUNT cRows, + [out] DBCOUNTITEM *pcRowsObtained, + [out, size_is(,cRows)] HROW **prghRows); + + HRESULT GetRowsByBookmark([in] HCHAPTER hReserved, + [in] DBCOUNTITEM cRows, + [in, size_is(cRows)] const DBBKMARK rgcbBookmarks[], + [in, size_is(cRows)] const BYTE *rgpBookmarks[], + [out, size_is(cRows)] HROW rghRows[], + [out, size_is(cRows)] DBROWSTATUS rgRowStatus[]); + + HRESULT Hash([in] HCHAPTER hReserved, + [in] DBBKMARK cBookmarks, + [in, size_is(cBookmarks)] const DBBKMARK rgcbBookmarks[], + [in, size_is(cBookmarks)] const BYTE *rgpBookmarks[], + [out, size_is(cBookmarks)] DBHASHVALUE rgHashedValues[], + [out, size_is(cBookmarks)] DBROWSTATUS rgBookmarkStatus[]); +} diff --git a/tools/make_makefiles b/tools/make_makefiles index dadb3936fed..28c1e1cde13 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -127,6 +127,7 @@ my %private_idl_headers = ( "opnrst.idl" => 1, "rstbas.idl" => 1, "rstinf.idl" => 1, + "rstloc.idl" => 1, "sesprp.idl" => 1, "vmrender.idl" => 1, "wine/wined3d.idl" => 1,