Commit 0f8a0fd4 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

include: Add IColumnsInfo interface.

parent 14c3f703
...@@ -1513,3 +1513,33 @@ HRESULT CALLBACK IChapteredRowset_ReleaseChapter_Proxy(IChapteredRowset* This, H ...@@ -1513,3 +1513,33 @@ HRESULT CALLBACK IChapteredRowset_ReleaseChapter_Proxy(IChapteredRowset* This, H
FIXME("(%p)->(%lx %p): stub\n", This, chapter, refcount); FIXME("(%p)->(%lx %p): stub\n", This, chapter, refcount);
return E_NOTIMPL; return E_NOTIMPL;
} }
HRESULT CALLBACK IColumnsInfo_GetColumnInfo_Proxy(IColumnsInfo* This, DBORDINAL *columns,
DBCOLUMNINFO **colinfo, OLECHAR **stringsbuffer)
{
FIXME("(%p)->(%p %p %p): stub\n", This, columns, colinfo, stringsbuffer);
return E_NOTIMPL;
}
HRESULT __RPC_STUB IColumnsInfo_GetColumnInfo_Stub(IColumnsInfo* This, DBORDINAL *columns, DBCOLUMNINFO **col_info,
DBBYTEOFFSET **name_offsets, DBBYTEOFFSET **columnid_offsets, DBLENGTH *string_len, OLECHAR **stringsbuffer,
IErrorInfo **error)
{
FIXME("(%p)->(%p %p %p %p %p %p %p): stub\n", This, columns, col_info, name_offsets, columnid_offsets,
string_len, stringsbuffer, error);
return E_NOTIMPL;
}
HRESULT CALLBACK IColumnsInfo_MapColumnIDs_Proxy(IColumnsInfo* This, DBORDINAL column_ids, const DBID *dbids,
DBORDINAL *columns)
{
FIXME("(%p)->(%lu %p %p): stub\n", This, column_ids, dbids, columns);
return E_NOTIMPL;
}
HRESULT __RPC_STUB IColumnsInfo_MapColumnIDs_Stub(IColumnsInfo* This, DBORDINAL column_ids, const DBID *dbids,
DBORDINAL *columns, IErrorInfo **error)
{
FIXME("(%p)->(%lu %p %p %p): stub\n", This, column_ids, dbids, columns, error);
return E_NOTIMPL;
}
...@@ -24,6 +24,7 @@ IDL_SRCS = \ ...@@ -24,6 +24,7 @@ IDL_SRCS = \
chprst.idl \ chprst.idl \
cmdbas.idl \ cmdbas.idl \
cmdtxt.idl \ cmdtxt.idl \
colinf.idl \
comcat.idl \ comcat.idl \
commoncontrols.idl \ commoncontrols.idl \
control.idl \ control.idl \
......
/*
* Copyright (C) 2016 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(0c733a11-2a1c-11ce-ade5-00aa0044773d),
pointer_default(unique)
]
interface IColumnsInfo : IUnknown
{
[local]
HRESULT GetColumnInfo(
[in, out] DBORDINAL *columns,
[out, size_is(,(ULONG)*columns)] DBCOLUMNINFO **colinfo,
[out] OLECHAR **stringsbuffer);
[call_as(GetColumnInfo)]
HRESULT RemoteGetColumnInfo([in, out] DBORDINAL *columns,
[out, size_is(,(ULONG)*columns)] DBCOLUMNINFO **colinfo,
[out, size_is(,(ULONG)*columns)] DBBYTEOFFSET **name_offsets,
[out, size_is(,(ULONG)*columns)] DBBYTEOFFSET **columnid_offsets,
[in, out] DBLENGTH *string_len,
[in, out, unique, size_is(,(ULONG)*string_len)] OLECHAR **stringsbuffer,
[out] IErrorInfo **errorinfo);
[local]
HRESULT MapColumnIDs(
[in] DBORDINAL column_ids,
[in, size_is((ULONG)column_ids)] const DBID *dbids,
[out, size_is((ULONG)column_ids)] DBORDINAL *columns);
[call_as(MapColumnIDs)]
HRESULT RemoteMapColumnIDs(
[in] DBORDINAL column_ids,
[in, size_is((ULONG)column_ids)] const DBID *dbids,
[out, size_is((ULONG)column_ids)] DBORDINAL *columns,
[out] IErrorInfo **errorinfo);
}
...@@ -733,3 +733,31 @@ enum DBREASONENUM15 { ...@@ -733,3 +733,31 @@ enum DBREASONENUM15 {
DBREASON_ROWPOSITION_CLEARED, DBREASON_ROWPOSITION_CLEARED,
DBREASON_ROW_ASYNCHINSERT DBREASON_ROW_ASYNCHINSERT
}; };
typedef DWORD DBCOLUMNFLAGS;
enum DBCOLUMNFLAGSENUM {
DBCOLUMNFLAGS_ISBOOKMARK = 0x0001,
DBCOLUMNFLAGS_MAYDEFER = 0x0002,
DBCOLUMNFLAGS_WRITE = 0x0004,
DBCOLUMNFLAGS_WRITEUNKNOWN = 0x0008,
DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x0010,
DBCOLUMNFLAGS_ISNULLABLE = 0x0020,
DBCOLUMNFLAGS_MAYBENULL = 0x0040,
DBCOLUMNFLAGS_ISLONG = 0x0080,
DBCOLUMNFLAGS_ISROWID = 0x0100,
DBCOLUMNFLAGS_ISROWVER = 0x0200,
DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000
};
typedef struct tagDBCOLUMNINFO {
LPOLESTR pwszName;
ITypeInfo *pTypeInfo;
DBORDINAL iOrdinal;
DBCOLUMNFLAGS dwFlags;
DBLENGTH ulColumnSize;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
DBID columnid;
} DBCOLUMNINFO;
...@@ -50,6 +50,7 @@ typedef DWORD_PTR DBHASHVALUE; ...@@ -50,6 +50,7 @@ typedef DWORD_PTR DBHASHVALUE;
#include "chprst.idl" #include "chprst.idl"
#include "cmdbas.idl" #include "cmdbas.idl"
#include "cmdtxt.idl" #include "cmdtxt.idl"
#include "colinf.idl"
#include "dbccmd.idl" #include "dbccmd.idl"
#include "dbcses.idl" #include "dbcses.idl"
#include "srcrst.idl" #include "srcrst.idl"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment