class CHTMLDowloader :
public IDispatchImpl<IHTMLDowloader, &IID_IHTMLDowloader, LIBID_URLDOWNLOADERLib>,
{
public
STDMETHOD(ShowModal)(); // exposed method
};
В cpp:
STDMETHODIMP CHTMLDowloader::ShowModal()
{
CProgress p;// определен как class CProgress : public CAxDialogImpl<CProgress>
int r = p.DoModal(NULL);
DWORD e = GetLastError();
return S_OK;
}
При обращении к ShowModal извне, DoModal возвратит -1. Диалог показался только при обращении из бейсика и *только* под отладчиком, из самостоятельного exe ничего не появляется. Также ничего нет и из любого другого клиента, всегда -1. Пользовать MFC нет резона, может Windos глюкает (ME Edition)?
Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации! (с) Стругацкие.
Здравствуйте Dwarf, вы писали:
D>При обращении к ShowModal извне, DoModal возвратит -1. Диалог показался только при обращении из бейсика и *только* под отладчиком, из самостоятельного exe ничего не появляется. Также ничего нет и из любого другого клиента, всегда -1. Пользовать MFC нет резона, может Windos глюкает (ME Edition)?
Если у тебя в этом диалоге есть ActiveX'ы, то это бага ATL 3.0: пройдись по шагам сам все увидишь. Проблема там с _Module.GetResourceInstance().
В ATL 7.0 поправили, можешь просто выдрать от-туда все сопутствующие куски.