Source code of Windows XP (NT5)
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.
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Microsoft WMIOLE DB Provider
// (C) Copyright 1999 Microsoft Corporation. All Rights Reserved.
//
// BaseObj.h | CBaseObj Definitions
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef __BASEOBJ_H__
#define __BASEOBJ_H__
#include "headers.h"
#include "critsec.h"
// Used in some classes that wish to distinguish behavior based on object type.
// (i.e. cast a void* to either CDataSource, CDBSession, CCommand, CRowset, etc.)
// Note that CBaseObj::GetBaseObjectTypeName() depends.
enum EBaseObjectType { BOT_UNDEFINED, BOT_DATASOURCE, BOT_SESSION, BOT_COMMAND, BOT_ROWSET, BOT_ENUMERATOR, BOT_ERROR, BOT_BINDER, BOT_TXNOPTIONS };
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// CBaseObj is the base object for CDatasource, CDBSession, CCommand, and CRowset
//
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma warning(disable : 4275)
class CBaseObj : public IUnknown //@base public | IUnknown
{ private: EBaseObjectType m_BaseObjectType; CCriticalSection m_cs; DEBUGCODE(ULONG m_hObjCollection);
protected:
LPUNKNOWN m_pUnkOuter; ULONG m_cRef;
protected: CBaseObj(EBaseObjectType botVal, LPUNKNOWN pUnkOuter);
public: virtual ~CBaseObj();
EBaseObjectType GetBaseObjectType() { return m_BaseObjectType; } WCHAR * GetBaseObjectTypeName(); CCriticalSection * GetCriticalSection() { return &m_cs; }
// Get the outer unknown. Used by another object to call QI on this object.
// (Which should go through outer unknown instead of direct.)
inline IUnknown* GetOuterUnknown() { return m_pUnkOuter; } }; #pragma warning(default : 4275)
#endif // __BASEOBJ_H__
|