Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

135 lines
2.9 KiB

///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998, Microsoft Corp. All rights reserved.
//
// FILE
//
// dstorex.h
//
// SYNOPSIS
//
// Defines the classes IDataStoreObjectEx and IDataStoreContainerEx.
//
// MODIFICATION HISTORY
//
// 03/02/1998 Original version.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _DSTOREX_H
#define _DSTOREX_H
#if _MSC_VER >= 1000
#pragma once
#endif
#include <datastore2.h>
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// IDataStoreObjectEx
//
// DESCRIPTION
//
// This class extends IDataStoreObject in order to map the collection
// related properties to alternate names. This allows a sub-class to
// implement both IDataStoreObject and IDataStoreContainer without name
// collisions.
//
///////////////////////////////////////////////////////////////////////////////
class __declspec(novtable) IDataStoreObjectEx
: public IDataStoreObject
{
public:
//////////
// IDataStoreObject members that are mapped to new names.
//////////
STDMETHOD(get_Count)(long* pVal)
{
return get_PropertyCount(pVal);
}
STDMETHOD(get__NewEnum)(IUnknown** pVal)
{
return get_NewPropertyEnum(pVal);
}
//////////
// Versions that are overriden in the derived class.
//////////
STDMETHOD(get_PropertyCount)(long* pVal)
{
return E_NOTIMPL;
}
STDMETHOD(get_NewPropertyEnum)(IUnknown** pVal)
{
return E_NOTIMPL;
}
STDMETHOD(Item)(BSTR bstrName, IDataStoreProperty** pVal)
{
return E_NOTIMPL;
}
};
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// IDataStoreContainerEx
//
// DESCRIPTION
//
// This class extends IDataStoreContainer in order to map the collection
// related properties to alternate names. This allows a sub-class to
// implement both IDataStoreObject and IDataStoreContainer without name
// collisions.
//
///////////////////////////////////////////////////////////////////////////////
class __declspec(novtable) IDataStoreContainerEx
: public IDataStoreContainer
{
public:
//////////
// IDataStoreContainer members that are mapped to new names.
//////////
STDMETHOD(get_Count)(long* pVal)
{
return get_ChildCount(pVal);
}
STDMETHOD(get__NewEnum)(IUnknown** pVal)
{
return get_NewChildEnum(pVal);
}
//////////
// Alternate versions that are overriden in the derived class.
//////////
STDMETHOD(get_ChildCount)(long* pVal)
{
return E_NOTIMPL;
}
STDMETHOD(get_NewChildEnum)(IUnknown** pVal)
{
return E_NOTIMPL;
}
STDMETHOD(Item)(BSTR bstrName, IDataStoreObject** pVal)
{
return E_NOTIMPL;
}
};
#endif // _DSTOREX_H