Здравствуйте natalka, Вы писали:
N>Я подключаю *.tlb
N>N>#import "VGridApp.tlb" no_namespace
N>....
N>//Я объявляю smart pointer так:
N>IVGridPtr pGrid("VGridApp.VGrid.1");
N>
Понятно. Здесь ты не просто объявляешь smart pointer, а
создаешь экземпляр объекта. Причем, без хоста (т.е., без родительского окна). Далеко не всякие ActiveX-ы умеют отображаться таким образом (как, например, "MSComDlg.CommonDialog").
Чтобы создать видимый AX, проще всего поместить его на диалоговый ресурс в MFC-окне с включенной подержкой ActiveX или ATL-окне, порожденном от CAxWindow. А потом уже получай свой смарт-пойнтер (в ATL — с помощью CWindow::GetDlgControl; в MFC — не помню уже, как)