windows-nt/Source/XPSP1/NT/admin/wmi/wbem/adapters/oledb/baseobj.cpp
2020-09-26 16:20:57 +08:00

67 lines
2.2 KiB
C++

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Microsoft WMIOLE DB Provider
// (C) Copyright 1999 Microsoft Corporation. All Rights Reserved.
//
//
// This module contains the base object for CDatasource, CDBSession, CCommand,
// and CRowset. It contains routines such as globally registering the object
// for the cleanup routine and typing the object so persist an other internal
// implementation can know what object they are talking to.
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "headers.h"
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Constructor for this class
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
CBaseObj::CBaseObj( EBaseObjectType botVal, // IN Base Object Type
LPUNKNOWN pUnkOuter // IN Outer Unknown Pointer
) : m_cs(TRUE)
{
m_BaseObjectType = botVal;
m_cRef = 0;
m_pUnkOuter = pUnkOuter? pUnkOuter : LPUNKNOWN(this);
InterlockedIncrement(&g_cObj);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Destructor for this class
//
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
CBaseObj::~CBaseObj()
{
InterlockedDecrement(&g_cObj);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Return Base Object type name.
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
WCHAR * CBaseObj::GetBaseObjectTypeName()
{
#ifdef DEBUG
static WCHAR * s_wszName[] = {
L"Unknown",
L"DataSource",
L"Session",
L"Command",
L"Rowset",
L"Error",
L"ClassFactory",
L"Enumerator",
L"TransactionOptions",
};
assert(m_BaseObjectType >= BOT_DATASOURCE && m_BaseObjectType <= BOT_MULTIPLERESULTS);
return s_wszName[m_BaseObjectType];
#else
return L"";
#endif
}