Приложение создавалось не как пустое native console без поддержки вской разности.
Теперь возникла необходимость парсить XML, для чего разумно использовать msxml4.
Сам интерфейс я получаю без проблем
CComQIPtr<ISAXXMLReader, &__uuidof(ISAXXMLReader)> parser;
hr = parser.CoCreateInstance (__uuidof(SAXXMLReader40));
Это хорошо.
Теперь к этому нужно прикрепить ContentHandler
Объявляю соответсвующий класс
class CXMLBaseHandler : public CComObjectRootEx<CComMultiThreadModel>,
public ISAXContentHandler {
public:
CXMLBaseHandler () {};
HRESULT STDMETHODCALLTYPE startDocument();
HRESULT STDMETHODCALLTYPE endDocument();
.... ну и дальше все методы ISAXContentHandler-а
Теперь когда пытаюсь создать
CComObject<CXMLBaseHandler>* handler = new CComObject<CXMLBaseHandler>;
Не лочится модуль. Говорит мол нет такого, зарраза.
CComObject(void* = NULL) throw() {
_pAtlModule->Lock(); //вот здесь имеем Unhandled exception at 0x0041d019
//in garp.exe: 0xC0000005: Access violation reading
//location 0x00000000.
}
В общем-то понятно, откуда ему взяться...
Но все ж — что нужно соорудить для инициализации работы ATL ручками?