Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Интерфейс ITextDoument


Автор: JATH 7.4.2013, 17:42
Помогите разобраться как с помощью ITextDoument открывать doc-файлы,пробую так
Код

 TCHAR buff[MAX_PATH]=L"\0";
         VARIANT var;
         VariantInit(&var);
         var.vt = VT_BSTR;
         var.bstrVal = SysAllocString(buff);
         ITextDocument *ITD;
         IUnknown *pUnk = NULL;
         SendMessage(hwnd,EM_GETOLEINTERFACE,0,LPARAM(&pUnk));
         pUnk->QueryInterface(IID_ITextDocument,reinterpret_cast<LPVOID*>(&ITD));
         HRESULT hr=ITD->Open(&var ,tomWordDocument,0);

при отладке выдаёт "Not Implemented"

Автор: xvr 8.4.2013, 13:37
Цитата(JATH @  7.4.2013,  17:42 Найти цитируемый пост)
при отладке выдаёт "Not Implemented" 

Видимо действительно 'Not Implemented'. Что это вообще за интерфейс и от какого окна вы его пытаетесь получить?

Судя по EM_GETOLEINTERFACE вы пытаетесь извлечь ITextDocument из IRichEditOle, что явно неправильно. Смотрите работу с IRichEditOle например http://technet.microsoft.com/en-us/library/bb774371%28v=vs.85%29.aspx

Автор: JATH 8.4.2013, 16:31
Не совсем понятно как этот пример позволяет использовать ITextDocument для работы с RichEdit.
Именно такой способ был примером в MSDN 2008 при этом  работает с флагами tomRTF, tomText,
tomHTML.
Ссылка на ITextDocument в RichEdit http://msdn.microsoft.com/ru-ru/subscriptions/bb774052

Автор: JATH 8.4.2013, 16:49
Спасибо разобрался нужно было вместо IUnknown IRichEditOle 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)