请查看此代码
- #pragma once
- // (entget(car(entsel)) '("MYAPP"))
- class CommandPutIt : public OdStaticRxObject
- {
- public:
- const OdString localName() const { return globalName(); }
- const OdString groupName() const { return DD_T("putIt"); }
- const OdString globalName() const { return OdString("putIt"); }
- void execute(OdEdCommandContext* pCmdCtx)
- {
- OdDbCommandContextPtr pDbCmdCtx(pCmdCtx);
- OdDbUserIOPtr pDbIO = pDbCmdCtx->dbUserIO();
- OdDbDatabasePtr pDb = pDbCmdCtx->database();
- __int64 freq, start, end;
- try
- {
- if(pDb.isNull())
- throw OdError(eNoDatabase);
- if(!pDb->newRegApp(DD_T("MYAPP")))
- throw OdError("Can't Register appname");
- OdDbSelectionSetPtr pSS = pDbIO->select(DD_T("Select Entities: "));
- QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
- QueryPerformanceCounter((LARGE_INTEGER*)&start);
- OdDbObjectIdArray ids = pSS->objectIdArray();
- OdResBufPtr pHead = OdResBuf::newRb(OdResBuf::kDxfRegAppName,DD_T("MYAPP") );
- OdResBufPtr pTail = pHead;
- pTail = pTail->setNext(OdResBuf::newRb( OdResBuf::kDxfXdAsciiString, DD_T("String") ));
- pTail = pTail->setNext(OdResBuf::newRb( OdResBuf::kDxfXdInteger16, (short)32 ));
- for(size_t iter = 0 ; iter setXData(pHead);
- }
- }
- catch (OdError& e)//++-- Catch OdExceptions
- {
- pDbIO->putString("\n" + e.description());
- }
- QueryPerformanceCounter((LARGE_INTEGER*)&end);
- sds_printf(_T("\n%g Seconds\n"), (double)(end - start) / (double) freq);
- }
- };
- class CommandGetIt : public OdStaticRxObject
- {
- public:
- const OdString localName() const { return globalName(); }
- const OdString groupName() const { return DD_T("GetIt"); }
- const OdString globalName() const { return OdString("GetIt"); }
- void execute(OdEdCommandContext* pCmdCtx)
- {
- OdDbCommandContextPtr pDbCmdCtx(pCmdCtx);
- OdDbUserIOPtr pDbIO = pDbCmdCtx->dbUserIO();
- OdDbDatabasePtr pDb = pDbCmdCtx->database();
- __int64 freq, start, end;
-
- try
- {
- if(pDb.isNull())
- throw OdError(eNoDatabase);
- OdDbSelectionSetPtr pSS = pDbIO->select(DD_T("Select Entities: "));
- QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
- QueryPerformanceCounter((LARGE_INTEGER*)&start);
- OdDbObjectIdArray ids = pSS->objectIdArray();
- for(size_t iter = 0 ; iter xData(DD_T("MYAPP"));
- if(pHead.isNull())
- continue;
- OdResBufPtr pTail = pHead;
- pTail = pTail->next();
- pTail->setString(DD_T("New String"));
- pTail = pTail->next();
- pTail->setInt16( (short) 64);
- pEnt->setXData(pHead);
- }
- }
- catch (OdError& e)//++-- Catch OdExceptions
- {
- pDbIO->putString("\n" + e.description());
- }
- QueryPerformanceCounter((LARGE_INTEGER*)&end);
- sds_printf(_T("\n%g Seconds\n"), (double)(end - start) / (double) freq);
- }
- };
|