Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

93 lines
1.9 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : XBlockTableRecPtr.h
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: 类的声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _XBlockTableRecPtr_H_
#define _XBlockTableRecPtr_H_
class GEOAPI XBlockTableRecPtr
{
public:
XBlockTableRecPtr(const TCHAR *pszBlock = ACDB_MODEL_SPACE,
AcDb::OpenMode opMode = AcDb::kForRead, AcDbDatabase *pDb = NULL);
XBlockTableRecPtr(const AcDbObjectId &id, AcDb::OpenMode opMode = AcDb::kForRead);
~XBlockTableRecPtr();
int operator !();
operator AcDbBlockTableRecord & ();
void Close();
public:
AcDbBlockTableRecord *m_pBlockTableRec;
};
inline XBlockTableRecPtr::XBlockTableRecPtr(const AcDbObjectId &id, AcDb::OpenMode opMode)
: m_pBlockTableRec(NULL)
{
acdbOpenObject(m_pBlockTableRec, id, opMode);
}
inline XBlockTableRecPtr::XBlockTableRecPtr(const TCHAR *pszBlock, AcDb::OpenMode opMode,
AcDbDatabase *pDb)
: m_pBlockTableRec(NULL)
{
if (!pDb)
{
pDb = acdbCurDwg();
}
AcDbBlockTable *pBlockTable;
Acad::ErrorStatus es = pDb->getBlockTable(pBlockTable, AcDb::kForRead);
if (es != Acad::eOk)
{
return;
}
es = pBlockTable->getAt(pszBlock, m_pBlockTableRec, opMode);
pBlockTable->close();
}
inline XBlockTableRecPtr::~XBlockTableRecPtr()
{
if (m_pBlockTableRec)
{
m_pBlockTableRec->close();
}
}
inline int XBlockTableRecPtr::operator !()
{
return !m_pBlockTableRec;
}
inline void XBlockTableRecPtr::Close()
{
if (m_pBlockTableRec)
{
m_pBlockTableRec->close();
}
m_pBlockTableRec = NULL;
}
inline XBlockTableRecPtr::operator AcDbBlockTableRecord & ()
{
assert(m_pBlockTableRec);
return *m_pBlockTableRec;
}
#endif