



Dim doc as IHTMLDocument
Set doc = New HTMLDocument
doc.write htmlstring

Antonariy писал(а):Конечно, MSHTML. В .net есть аналог.
- Код: Выделить всё
Dim doc as IHTMLDocument
Set doc = New HTMLDocument
doc.write htmlstring





 С ним-то такая ерунда и была. Спасибо, что про ком напомнил - залез на соответствующую вкладку и нашел его
 С ним-то такая ерунда и была. Спасибо, что про ком напомнил - залез на соответствующую вкладку и нашел его  



Тогда write работать не будет... По крайней мере в COM...Ну как HTMLDocument объяви...


GSerg писал(а):Ну как HTMLDocument объяви...
Dim doc As mshtml.HTMLDocument
doc = New mshtml.HTMLDocument
doc.write(mInfo.GetCalls("13.02.2006", "14.02.2006")) (он при этом в Write хочет чтоб ему blah-blah() as object давали (где ж мне взять
 (он при этом в Write хочет чтоб ему blah-blah() as object давали (где ж мне взять   ).
 ).








Я так понимаю, IHTMLDocument является "накопительным" для всех остальных от 2 до 5, и объявлять нужно именно им






Vinechka писал(а):Засовывать HTML в WebBrowser не получится, так как имеющийся там JScript вызывает ошибки и появляются окна, которые вообще нафиг не нужны.


GSerg писал(а):SebasVinechka писал(а):Засовывать HTML в WebBrowser не получится, так как имеющийся там JScript вызывает ошибки и появляются окна, которые вообще нафиг не нужны.




С законом не поспоришь, но как же в таком случае в IHTMLDocument, IHTMLElement и т.п. от версии к версии появляются новые свойства и методы? Тем более, что объектная структура mshtml это не dll, а tlb. Разве нельзя создать интерфейс новой версии, унаследовать его в IHTMLDocument и скомпилировать в новый tlb со старыми progid? Старые приложения по идее могут продолжать его использовать, потому что нужные им интерфейсы уже давно унаследованы, а новые их не волнуют.tyomitch писал(а):Накопительный интерфейс.
Но это не так. По законам COM однажды объявленные интерфейсы никогда не пересматриваются и не дополняются.



 
 




Antonariy писал(а):смею предположить, что и clsid интерфейсов остались те же
 



HKEY_CLASSES_ROOT\Interface\{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}\(По умолчанию)=IHTMLElementCLSID у интерфейсов в принципе не бывает. Они есть только у классов.
Нет, пока не попытаются вызвать метод, который не реализован в старой версии.Что касается законов COM, то в твоём представлении проги, скомпилированные с новыми версиями TLB, должны неотвратимо падать со старой версией DLL?


Antonariy писал(а):HKEY_CLASSES_ROOT\Interface\{3050F1FF-98B5-11CF-BB82-00AA00BDCE0B}\(По умолчанию)=IHTMLElementCLSID у интерфейсов в принципе не бывает. Они есть только у классов.
Ну не clsid, а Interface, не важно.
Antonariy писал(а):Рискну повторить вопрос. Как же в таком случае в IHTMLDocument, IHTMLElement и т.п. от версии к версии появляются новые свойства и методы?




Е-мое, речь не о разнице между классами и интерфейсами, а о том, что идентификатор интерфейса не изменяется.Ты действительно не понимаешь разницы между классами и интерфейсами?
Ладно, если ты такой любитель придираться к словам, перефразирую.А с чего ты, вообще говоря, взял, что они там появляются?


Antonariy писал(а):Как же в таком случае объект, объявленный как IHTMLDocument, IHTMLElement и т.п., от версии к версии получает в свое распоряжение новые свойства и методы?



 mshtml.rar
 mshtml.rar

    [
      odl,
      uuid(626FC520-A41E-11CF-A731-00A0C9082637),
      dual,
      oleautomation
    ]
    interface IHTMLDocument : IDispatch {
        [id(0x000003e9), propget, hidden]
        HRESULT Script([out, retval] IDispatch** p);
    };
    [
      odl,
      uuid(626FC520-A41E-11CF-A731-00A0C9082637),
      dual,
      oleautomation
    ]
    interface IHTMLDocument : IDispatch {
        [id(0x000003e9), propget, hidden]
        HRESULT Script([out, retval] IDispatch** p);
    };
 mshtml.rar
 mshtml.rar




 

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7