28 lines
660 B
C++
28 lines
660 B
C++
#ifndef __TDOCLOCK_H
|
|
#define __TDOCLOCK_H
|
|
|
|
#include "acdocman.h"
|
|
|
|
class XDocAutoLock {
|
|
protected:
|
|
Acad::ErrorStatus m_esLock;
|
|
AcApDocument *m_pDoc;
|
|
public:
|
|
XDocAutoLock(AcApDocument *pDoc=NULL, bool bPrompt=false):m_pDoc(pDoc) {
|
|
if(!m_pDoc)
|
|
m_pDoc=curDoc();
|
|
m_esLock=acDocManager->lockDocument(m_pDoc, AcAp::kWrite, NULL, NULL, bPrompt);
|
|
}
|
|
~XDocAutoLock() {
|
|
if(m_pDoc && m_esLock==Acad::eOk) {
|
|
Acad::ErrorStatus es=acDocManager->unlockDocument(m_pDoc);
|
|
ASSERT(es==Acad::eOk);
|
|
}
|
|
}
|
|
Acad::ErrorStatus LockStatus() const {
|
|
return m_esLock;
|
|
}
|
|
};
|
|
|
|
#endif
|