WindowsXP-SP1/ds/adsi/router/ccolinfo.hxx

90 lines
2.3 KiB
C++

//-----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: ccolinfo.hxx
//
// Contents: ColumnsInfo class Declaration
//
// Functions:
//
// Notes:
//
//
// History: 07/10/96 | RenatoB | Created, lifted most from EricJ
// code
//-----------------------------------------------------------------------------
#ifndef _CCOLINFO_H_
#define _CCOLINFO_H_
#ifndef PUBLIC
#define PUBLIC
#endif
#ifndef PROTECTED
#define PROTECTED
#endif
#ifndef PRIVATE
#define PRIVATE
#endif
//-----------------------------------------------------------------------------
// @class CLdap_ColumnsInfo | Implements IColumnsInfo for LDAP providers
// The only purpose of this class is to hook up CColInfo to
// CLdap_RowProvider, and maintain proper reference counts.
// All the work is done in CColInfo.
// We always delegate to CLdap_RowProvider.
//-----------------------------------------------------------------------------
class CLdap_ColumnsInfo : public IColumnsInfo // public | IColumnsInfo
{
public: // public functions
CLdap_ColumnsInfo( CLdap_RowProvider *pObj);
~CLdap_ColumnsInfo();
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppv);
// @cmember Get column info
STDMETHODIMP
GetColumnInfo(
DBORDINAL *pcColumns,
DBCOLUMNINFO **prgInfo,
WCHAR **ppStringsBuffer
);
// @cmember Map Column IDs
// NOTE: AutoDoc cannot parse this correctly.
STDMETHODIMP
MapColumnIDs(
DBORDINAL cColumnIDs,
const DBID rgColumnIDs[],
DBORDINAL rgColumns[]
);
// @cmember Set CColInfo object.
STDMETHODIMP
FInit(
DBORDINAL cColumns,
DBCOLUMNINFO *rgInfo,
OLECHAR *pStringsBuffer
);
private: //@access private data
CLdap_RowProvider *m_pObj; //@cmember base object
DBCOLUMNINFO* m_ColInfo ; //@cmember columns info object
DBORDINAL m_cColumns;
IMalloc *m_pMalloc;
OLECHAR *m_pwchBuf;
};
#endif //_CCOLINFO_H_