2025-11-28 00:35:46 +09:00

81 lines
2.4 KiB
C++

//-----------------------------------------------------------------------------
// Microsoft OLE DB RowsetViewer
// Copyright (C) 1994 - 1999 By Microsoft Corporation.
//
// @doc
//
// @module CROW.H
//
//-----------------------------------------------------------------------------------
#ifndef _CROW_H_
#define _CROW_H_
//////////////////////////////////////////////////////////////////////////////
// Includes
//
//////////////////////////////////////////////////////////////////////////////
#include "CRowset.h" //CDataAccess
/////////////////////////////////////////////////////////////////
// CRow
//
/////////////////////////////////////////////////////////////////
class CRow : public CDataAccess
{
public:
//Constructors
CRow(CMainWindow* pCMainWindow, CMDIChild* pCMDIChild = NULL);
virtual ~CRow();
//IUnknown Helpers
virtual HRESULT AutoQI(DWORD dwCreateOpts);
virtual HRESULT AutoRelease();
virtual IUnknown** GetInterfaceAddress(REFIID riid);
//Pure Virtual
virtual WCHAR* GetObjectName() { return L"Row"; }
virtual UINT GetObjectMenu() { return IDM_ROWMENU; }
virtual LONG GetObjectImage() { return IMAGE_FORM; }
virtual REFIID GetDefaultInterface() { return IID_IRow; }
virtual HRESULT DisplayObject();
virtual WCHAR* GetObjectDesc();
//Members
virtual HRESULT SetupColAccess(BINDCOLS eBindCols = BIND_ALLCOLS);
virtual HRESULT CreateCommand(CAggregate* pCAggregate, REFIID riid, IUnknown** ppIUnknown);
virtual HRESULT GetColumns(ULONG cColAccess, DBCOLUMNACCESS* rgColAccess);
virtual HRESULT Open(CAggregate* pCAggregate, DBID* pColumnID, REFGUID rguidObjectType, REFIID riid, IUnknown** ppIUnknown);
virtual HRESULT Bind(CAggregate* pCAggregate, WCHAR* pwszURL, DBBINDURLFLAG dwBindFlags, REFGUID rguidObjectType, REFIID riid, IUnknown** ppIUnknown);
virtual HRESULT OpenRowset(CAggregate* pCAggregate, DBID* pTableID, DBID* pIndexID, REFIID riid, ULONG cPropSets, DBPROPSET* rgPropSets, IUnknown** ppIUnknown);
//Row
//[MANADATORY]
IRow* m_pIRow;
IGetSession* m_pIGetSession;
//[OPTIONAL]
IColumnsInfo2* m_pIColumnsInfo2;
ICreateRow* m_pICreateRow;
IDBCreateCommand* m_pIDBCreateCommand;
IRowChange* m_pIRowChange;
IRowSchemaChange* m_pIRowSchemaChange;
IBindResource* m_pIBindResource;
IScopedOperations* m_pIScopedOperations;
//ColAccess
ULONG m_cColAccess;
DBCOLUMNACCESS* m_rgColAccess;
//Data
HROW m_hSourceRow;
};
#endif //_CROW_H_