Acad::ErrorStatus loadLinetype(const ACHAR *entryName, const ACHAR *filename = _T("acad.lin"))
{
Acad::ErrorStatus es;
AcDbLinetypeTable* pTable;
AcDbObjectId recordId;
es = acdbCurDwg()->getLinetypeTable(pTable, AcDb::kForRead);
if ((es = pTable->getAt(entryName, recordId)) != Acad::eOk);
{
es = pTable->close();
es = acdbCurDwg()->loadLineTypeFile(entryName, filename);
}
return es;
}
// and from your entry point... load your linetypes.
virtual AcRx::AppRetCode On_kLoadDwgMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kLoadDwgMsg(pkt) ;
AcApDocument* pDoc;
pDoc = acDocManager->curDocument();
pDoc->pushDbmod();
const ACHAR* items[] = { _T("BORDER"), _T("CENTER"), _T("DASHED"), _T("DASHDOT"), _T("HIDDEN"), _T("PHANTOM") };
std::vector<const ACHAR*, std::allocator<const ACHAR*>> v (items, items + sizeof items / sizeof *items);
for (int i = 0; i < v.size(); i++) loadLinetype(v.at(i)); v.clear();
pDoc->popDbmod();
return (retCode) ;
}