-- v2: include: Add dbsrst.idl.
From: Piotr Caban piotr@codeweavers.com
--- dlls/msdaps/usrmarshal.c | 33 +++++++++++ include/dbsrst.idl | 115 +++++++++++++++++++++++++++++++++++++++ include/oledb.idl | 1 + 3 files changed, 149 insertions(+) create mode 100644 include/dbsrst.idl
diff --git a/dlls/msdaps/usrmarshal.c b/dlls/msdaps/usrmarshal.c index 3aeaa38629a..476008b53f9 100644 --- a/dlls/msdaps/usrmarshal.c +++ b/dlls/msdaps/usrmarshal.c @@ -1823,3 +1823,36 @@ HRESULT __RPC_STUB IRowsetIdentity_IsSameRow_Stub(IRowsetIdentity* This, HROW hT FIXME("(%p)->(%Id, %Id, %p): stub\n", This, hThisRow, hThatRow, error_info); return E_NOTIMPL; } + +HRESULT CALLBACK IDBSchemaRowset_GetRowset_Proxy(IDBSchemaRowset* This, IUnknown *pUnkOuter, + REFGUID rguidSchema, ULONG cRestrictions, const VARIANT rgRestrictions[], REFIID riid, + ULONG cPropertySets, DBPROPSET rgPropertySets[], IUnknown **ppRowset) +{ + FIXME("(%p)->(%p, %s, %lu, %p, %s, %lu, %p, %p): stub\n", This, pUnkOuter, debugstr_guid(rguidSchema), + cRestrictions, rgRestrictions, debugstr_guid(riid), cPropertySets, rgPropertySets, ppRowset); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IDBSchemaRowset_GetRowset_Stub(IDBSchemaRowset* This, IUnknown *pUnkOuter, REFGUID rguidSchema, + ULONG cRestrictions, const VARIANT *rgRestrictions, REFIID riid, ULONG cPropertySets, DBPROPSET *rgPropertySets, + IUnknown **ppRowset, ULONG cTotalProps, DBPROPSTATUS *rgPropStatus, IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p)->(%p, %s, %lu, %p, %s, %lu, %p %p, %lu, %p, %p): stub\n", This, pUnkOuter, + debugstr_guid(rguidSchema), cRestrictions, rgRestrictions, debugstr_guid(riid), + cPropertySets, rgPropertySets, ppRowset, cTotalProps, rgPropStatus, ppErrorInfoRem); + return E_NOTIMPL; +} + +HRESULT CALLBACK IDBSchemaRowset_GetSchemas_Proxy(IDBSchemaRowset* This, + ULONG *pcSchemas, GUID **prgSchemas, ULONG **prgRestrictionSupport) +{ + FIXME("(%p)->(%p, %p, %p): stub\n", This, pcSchemas, prgSchemas, prgRestrictionSupport); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IDBSchemaRowset_GetSchemas_Stub(IDBSchemaRowset* This, ULONG *pcSchemas, + GUID **prgSchemas, ULONG **prgRestrictionSupport, IErrorInfo **ppErrorInfoRem) +{ + FIXME("(%p)->(%p, %p, %p, %p): stub\n", This, pcSchemas, prgSchemas, prgRestrictionSupport, ppErrorInfoRem); + return E_NOTIMPL; +} diff --git a/include/dbsrst.idl b/include/dbsrst.idl new file mode 100644 index 00000000000..696f03ba26f --- /dev/null +++ b/include/dbsrst.idl @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2025 Piotr Caban + * + * 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(0c733a7b-2a1c-11ce-ade5-00aa0044773d), + pointer_default(unique) +] +interface IDBSchemaRowset : IUnknown +{ + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_ASSERTIONS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CATALOGS 1") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLLATIONS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMNS 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE 7") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS 7") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMN_DOMAIN_USAGE 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_INDEXES 5") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS 1") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECTS 1") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES 6") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES 5") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES 6") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROCEDURES 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SCHEMATA 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES 0") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_STATISTICS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLES 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRANSLATIONS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROVIDER_TYPES 2") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEWS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROCEDURE_PARAMETERS 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_FOREIGN_KEYS 6") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PRIMARY_KEYS 3") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROCEDURE_COLUMNS 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLES_INFO 4") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_CUBES 3") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_DIMENSIONS 5") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_HIERARCHIES 6") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_LEVELS 7") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_MEASURES 5") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_PROPERTIES 9") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_MEMBERS 12") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRUSTEE 4") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_STATISTICS 7") + cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE 6") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_FUNCTIONS 4") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_ACTIONS 8") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_COMMANDS 5") + cpp_quote("#define CRESTRICTIONS_MDSCHEMA_SETS 5") + + [local] + HRESULT GetRowset( + [in] IUnknown *pUnkOuter, + [in] REFGUID rguidSchema, + [in] ULONG cRestrictions, + [in, size_is(cRestrictions)] const VARIANT rgRestrictions[], + [in] REFIID riid, + [in] ULONG cPropertySets, + [in, out, unique, size_is(cPropertySets)] DBPROPSET rgPropertySets[], + [out, iid_is(riid)] IUnknown **ppRowset); + + [call_as(GetRowset)] + HRESULT RemoteGetRowset( + [in] IUnknown *pUnkOuter, + [in] REFGUID rguidSchema, + [in] ULONG cRestrictions, + [in, unique, size_is(cRestrictions)] const VARIANT *rgRestrictions, + [in] REFIID riid, + [in] ULONG cPropertySets, + [in, unique, size_is(cPropertySets)] DBPROPSET *rgPropertySets, + [out, iid_is(riid)] IUnknown **ppRowset, + [in] ULONG cTotalProps, + [out, size_is(cTotalProps)] DBPROPSTATUS *rgPropStatus, + [out] IErrorInfo **ppErrorInfoRem); + + [local] + HRESULT GetSchemas( + [in, out] ULONG *pcSchemas, + [out, size_is(,*pcSchemas)] GUID **prgSchemas, + [out, size_is(,*pcSchemas)] ULONG **prgRestrictionSupport); + + [call_as(GetSchemas)] + HRESULT RemoteGetSchemas( + [in, out] ULONG *pcSchemas, + [out, size_is(,*pcSchemas)] GUID **prgSchemas, + [out, size_is(,*pcSchemas)] ULONG **prgRestrictionSupport, + [out] IErrorInfo **ppErrorInfoRem); +} diff --git a/include/oledb.idl b/include/oledb.idl index 76eab3a500a..4677e3055a8 100644 --- a/include/oledb.idl +++ b/include/oledb.idl @@ -67,6 +67,7 @@ typedef LONG_PTR DB_LRESERVE; #include "sesprp.idl" #include "rstnot.idl" #include "opnrst.idl" +#include "dbsrst.idl" #include "row.idl" #include "rowchg.idl" #include "rowpos.idl"