64 lines
1.3 KiB
C++
64 lines
1.3 KiB
C++
//-----------------------------------------------------------------------------+
|
|||
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
||
|
|
// = FileName : TAcDbLayerTableRecPtr.h
|
||
|
|
// = Version : ver2.0
|
||
|
|
// = Author : xlc
|
||
|
|
// = CreateDate : 2002-09-09
|
||
|
|
// = Description: ÀàµÄÉùÃ÷
|
||
|
|
// = Maintainers:
|
||
|
|
//
|
||
|
|
//-----------------------------------------------------------------------------+
|
||
|
|
#ifndef _TACDBLAYERTABLERECPTR_H_
|
||
|
|
#define _TACDBLAYERTABLERECPTR_H_
|
||
|
|
|
||
|
|
class GEOAPI TAcDbLayerTableRecPtr
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
|
||
|
|
TAcDbLayerTableRecPtr(const TCHAR *pszLayer, AcDb::OpenMode opMode);
|
||
|
|
|
||
|
|
~TAcDbLayerTableRecPtr();
|
||
|
|
|
||
|
|
int operator !() ;
|
||
|
|
|
||
|
|
operator AcDbLayerTableRecord & ();
|
||
|
|
|
||
|
|
public:
|
||
|
|
|
||
|
|
AcDbLayerTableRecord *m_pLayer;
|
||
|
|
};
|
||
|
|
|
||
|
|
inline TAcDbLayerTableRecPtr::TAcDbLayerTableRecPtr(const TCHAR *pszLayer, AcDb::OpenMode opMode)
|
||
|
|
: m_pLayer(NULL)
|
||
|
|
{
|
||
|
|
AcDbLayerTable *pLayerTable;
|
||
|
|
Acad::ErrorStatus es = acdbCurDwg()->getLayerTable(pLayerTable, AcDb::kForRead);
|
||
|
|
if (es != Acad::eOk)
|
||
|
|
{
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
es = pLayerTable->getAt(pszLayer, m_pLayer, opMode);
|
||
|
|
pLayerTable->close();
|
||
|
|
}
|
||
|
|
|
||
|
|
inline TAcDbLayerTableRecPtr::~TAcDbLayerTableRecPtr()
|
||
|
|
{
|
||
|
|
if (m_pLayer)
|
||
|
|
{
|
||
|
|
m_pLayer->close();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
inline int TAcDbLayerTableRecPtr::operator !()
|
||
|
|
{
|
||
|
|
return !m_pLayer;
|
||
|
|
}
|
||
|
|
|
||
|
|
inline TAcDbLayerTableRecPtr::operator AcDbLayerTableRecord & ()
|
||
|
|
{
|
||
|
|
assert(m_pLayer);
|
||
|
|
|
||
|
|
return *m_pLayer;
|
||
|
|
}
|
||
|
|
#endif
|