Куча говна / Говнокод #25637 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Кто бы помог с ole. Как реализовать ole-объект, одним из свойств  которого была бы коллекция?
Инфы про реализации коллекции почти нет. 

Просмотр сгенерированного TLB показал, что коллекции базируются тупо на IDispatch, с виртуальными методами add, count и item
Прям блядство какое-то.

нужна самая обычная коллекция. допустим, создал я ком-сервер, подключился к нему из vbs...

set my obj=createobject("Project1.MyObj")

msgbox obj.collection.count

Запостил: cmepmop cmepmop, (Updated )

Комментарии (37) RSS

  • Стертор, иди нахуй. Почему сёму с xp стебут, а стертора с оле - нет?
    Ответить
    • Потому что Стертор хоть иногда пишет программы, а Сёма просит готовую программу.
      Ответить
      • Готовую программу это софт? Покажи где сёма это просил. А вообще, идите нахуй. И всё ещё не понял, почему технологии времен windows 95 лучше чем windows xp
        Ответить
  • У IDispatch вообще никаких методов нету, они там в рантайме интерпрпрпрпуются>
    Именно потому IDispatch доступно для VBS и прочих скриптоязов.

    Ложи туда объект с Count или утино реализуй IEnumerable и вот тебе и кокококлекция
    Ответить
    • Я уже прочитал про IEnumerable, в частности использую интерфейс с типом IEnumVariant, с методами next, clone, reset. Но ясности не прибавилось. Свойство Count должен задать я? Явно? Почему-то на вызывающей стороне его не видно.
      Ответить
      • У IEnumerable нету count.
        Это просто итератор. Он может быть бесконечный.
        Ответить
        • То есть, готовой реализации коллекции нет? Надо тупо в массив или TList?
          Эх. Обёртко блядствие.
          Ответить
        • COM изнутри - ужасное, катастрофическое говно, как и бейсики от microsoft. Удобство заканчивается, когда ты пытаешься заглянуть глубже - как удивление пенсионерки, решившейся заглянуть внутрь радиолы, на которой она слушает Чайковского.

          Я уже додуплил. У меня есть интерфейс IDispatch, на базе которого создаётся интерфейсный объект (TAutomationObject, IEnumVariant). По логике, скриптовый движок вызывает функцию-обходчик, в которую нужно передавать элемент массива (в бейсике массив начинается с единицы). Но теперь встала другая проблема: как прервать перебор элементов?
          Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8