84 lines
2.6 KiB
C++
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_
|