-----Исходное сообщение----- От: Oleg Udovenko Дата: 10 января 2000 г. 2:53 Тема: ActiveXByStep Привет Артем. Один вопрос. - Как при разработке ATL COM компонента подключить DAO(используется Access)? With best regards, Oleg.
Ну спасибо Олег ;-) А то я вот тут сижу :-) Незнаю чем заняться ;-) Ну ладно. Я только покажу принцип и получу версию DAO, а уж дальше... Видно будет...
Нам надо повторить "Шаг 10 - Создаем ActiveX с ATL", только имя проекту дайте TestAtlDao и не забудьте подключить support MFC.
Добавим новый ATL Object, а тип Simple Object имя ему дайте CATLDaoTest. Добавьте метод MessageTest.
STDMETHODIMP CCATLDaoTest::MessageTest() { return S_OK; }
А теперь смотрите "Шаг 78 - Управление приложениями из VC++". У вас должна быть Dao2535.tlb, используя её необходимо создать _DBEngine класс.
Теперь модифицируем функцию.
STDMETHODIMP CTestDao::GetInitPath() { AFX_MANAGE_STATE(AfxGetStaticModuleState()) _DBEngine dbing; dbing.CreateDispatch("DAO.DBEngine.35"); AfxMessageBox (dbing.GetVersion() ); return S_OK; }
Компилируем. А теперь тестируем в VBA:
Sub TestAtlDao() Dim dbAtlDao As CATLDaoTest Set dbAtlDao = New CATLDaoTest dbAtlDao.MessageTest End Sub
Результат ...
Вообще-то нужно было использовать MessageBox, а не AfxMessageBox... Но посмотрите сработало...