Тема: Копирование стиля

Доброе время суток!

Не получается скопировать текстовый стиль из другого рисунка :(

CString Str;
   Acad::ErrorStatus es=Acad::eOk; 
   AcDbObjectId idImported; // ID нашего нового блока 
   AcDbDatabase* pWorkDatabase = acdbHostApplicationServices()->workingDatabase(); 
   AcAxDocLock docLock(pWorkDatabase); 
   AcDbDatabase* pStyleDatabase = new AcDbDatabase(false,true); 
   es = pStyleDatabase->readDwgFile(pFileName); 
   if(es!=Acad::eOk){delete pStyleDatabase;return NULL;} 
          
   try 
   { 
      AcDbTextStyleTable* pTSTable; 
      es=pStyleDatabase->getTextStyleTable(pTSTable,AcDb::kForRead); 
      if(es!=Acad::eOk){throw 1;}
             
      AcDbObjectId idInsRecord;  
      es=pTSTable->getAt(pStyleName,idInsRecord); 
      pTSTable->close(); 
      if(es!=Acad::eOk){throw 2;} 

      AcDbDatabase* pTempDB; 
      es=pStyleDatabase->wblock(pTempDB,idInsRecord); 
      if(es!=Acad::eOk){throw 3;}
             
      es=pWorkDatabase->insert(idImported,pStyleName,pTempDB); 
      delete pTempDB; 
      if(es!=Acad::eOk){throw 4;} 
   }
   catch(int a)
   {
       delete pStyleDatabase;
       
       Str.Format(L"%d: Ошибка загрузки стиля <%s> из файла <%s>.",a,pStyleName,pFileName);
       MessageBox(NULL,Str,L"",MB_OK | MB_ICONERROR);
       return NULL;
   } 

   delete pStyleDatabase; 
   return idImported;

Вылезает ошибка в  es=pStyleDatabase->wblock(pTempDB,idInsRecord); ...
Что я делаю не так? Блоки таким образом нормально копируются...

Re: Копирование стиля

teem0n пишет:

Вылезает ошибка в es=pStyleDatabase->wblock(pTempDB,idInsRecord); ...

Какая?
Вообще-то wblock(...) именно для блоков (если документацию посмотреть). А для других объектов wblockCloneObjects(). При этом временная база не нужна.

(изменено: Вильдар, 29 сентября 2011г. 16:51:55)

Re: Копирование стиля

Опоздал :D

Re: Копирование стиля

Разобрался, спасибо! :)