Где в консольном приложении поиметь _pAtlModule
От: nachKam Россия  
Дата: 10.03.03 13:24
Оценка:
Приложение создавалось не как пустое 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 ручками?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.