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

84 lines
2.6 KiB
C++

//-----------------------------------------------------------------------------
// Microsoft OLE DB RowsetViewer
// Copyright (C) 1994 - 1999 By Microsoft Corporation.
//
// @doc
//
// @module CENUM.H
//
//-----------------------------------------------------------------------------------
#ifndef _CENUM_H_
#define _CENUM_H_
///////////////////////////////////////////////////////////////
// Includes
//
///////////////////////////////////////////////////////////////
#include "CBase.h"
#include "CDataSource.h"
///////////////////////////////////////////////////////////////
// Defines
//
///////////////////////////////////////////////////////////////
struct ENUMINFO
{
WCHAR wszName[MAX_NAME_LEN];
WCHAR wszParseName[MAX_NAME_LEN];
WCHAR wszDescription[MAX_NAME_LEN];
USHORT eType;
VARIANT_BOOL fIsParent;
};
/////////////////////////////////////////////////////////////////
// CEnumerator class
//
/////////////////////////////////////////////////////////////////
class CEnumerator : public CPropertiesBase
{
public:
//Constructors
CEnumerator(CMainWindow* pCMainWindow, CMDIChild* pCMDIChild = NULL);
virtual ~CEnumerator();
//IUnknown Helpers
virtual HRESULT AutoQI(DWORD dwCreateOpts);
virtual HRESULT AutoRelease();
virtual IUnknown** GetInterfaceAddress(REFIID riid);
//Pure Virtual
virtual WCHAR* GetObjectName() { return L"Enumerator"; }
virtual UINT GetObjectMenu() { return IDM_ENUMERATORMENU; }
virtual LONG GetObjectImage() { return IMAGE_OBJECTS; }
virtual REFIID GetDefaultInterface() { return IID_ISourcesRowset; }
virtual WCHAR* GetObjectDesc();
virtual void OnDefOperation();
//Connection
virtual HRESULT CreateInstance(CAggregate* pCAggregate, REFCLSID clsid, DWORD dwCLSCTX, REFIID riid, IUnknown** ppIUnknown, WCHAR* pwszRemoteServer = NULL);
virtual HRESULT ParseDisplayName(WCHAR* pwszParseName, DWORD dwCLSCTX, REFIID riid, IUnknown** ppIUnknown, CBase** ppCSource, DWORD dwConnectOpts = 0, WCHAR* pwszRemoteServer = NULL);
virtual HRESULT GetSourcesRowset(CAggregate* pCAggregate, REFIID riid, ULONG cPropSets, DBPROPSET* rgPropSets, IUnknown** ppIUnknown);
virtual HRESULT Create(REFCLSID clsid);
virtual HRESULT EnumerateInfo(ULONG* pcEnumInfo, ENUMINFO** prgEnumInfo);
virtual HRESULT CreateEnumInfo(REFCLSID clsid = GUID_NULL, BOOL fRefresh = FALSE);
//[MANDATORY]
ISourcesRowset* m_pISourcesRowset; //Enumerator interface
IParseDisplayName* m_pIParseDisplayName; //Enumerator interface
//[OPTIONAL]
//Enumerator ProvierInfo
ULONG m_cEnumInfo;
ENUMINFO* m_rgEnumInfo;
};
#endif //_CENUM_H_