Есть обычная тестовая функция следующего вида:
void testReadDwgFile()
{
AcDbDatabase* pDbFile = new AcDbDatabase(Adesk::kFalse);
Acad::ErrorStatus errorStatus = pDbFile->readDwgFile(ACRX_T("D:\\Test.dwg"), AcDbDatabase::kForReadAndAllShare);
if(errorStatus == Acad::eOk) AfxMessageBox(ACRX_T("Acad::eOk"));
else if(errorStatus == Acad::eNoInputFiler) AfxMessageBox(ACRX_T("Acad::eNoInputFiler"));
else AfxMessageBox(ACRX_T("Неизвестная ошибка"));
delete pDbFile;
}
При условии существования файла D:\Test.dwg эта функция выдает сообщение с Acad::eOk. То есть, доступ к файлу есть.
Другая функция - это CallBack функция для BubbleWindow:
void bubbleWindowCallback(void* pData, int nReturnCode)
{
if (nReturnCode == AcTrayItemBubbleWindowControl::BUBBLE_WINDOW_HYPERLINK_CLICK)
{
AcDbDatabase* pDbFile = new AcDbDatabase(Adesk::kFalse);
Acad::ErrorStatus errorStatus = pDbFile->readDwgFile(ACRX_T("D:\\Test.dwg"), AcDbDatabase::kForReadAndAllShare);
if(errorStatus == Acad::eOk) AfxMessageBox(ACRX_T("Acad::eOk"));
else if(errorStatus == Acad::eNoInputFiler) AfxMessageBox(ACRX_T("Acad::eNoInputFiler"));
else AfxMessageBox(ACRX_T("Неизвестная ошибка"));
delete pDbFile;
}
}
Эта функция выдает сообщение Acad::eNoInputFiler.
В чем причина, понять не могу. В принципе код один и тот же, а результат разный. В первом случае доступ к файлу есть, во втором случае доступа к файлу нет.
Помогите, кто может.