COM интерфейсы

Тема в разделе "LANGS.C", создана пользователем mixkorshun, 6 май 2010.

  1. mixkorshun

    mixkorshun New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2009
    Сообщения:
    22
    Доброе время суток,
    нужно реализовать вложенные COM интерфейсы, т.е вида
    Код (Text):
    1. interface IX
    2. {
    3.  interface IY
    4.   {
    5.      virtual void __stdcall Create(ptrdiff_t pMemory) = 0;
    6.      ...
    7.   } Y;
    8.   ...
    9. }
    гугл сильно не помог, закинул куда то в Java

    хотелось бы узнать возможно ли такое вообще?
    или придется втупую
    Код (Text):
    1. interface IX
    2. {
    3. ...
    4. }
    5. interface IY
    6. {
    7. ...
    8. }
    после подключения компонента создавать производный класс
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    mixkorshun
    что значит вложенные? о_О

    чтобы писать IX::IY* y = ... ?
     
  3. mixkorshun

    mixkorshun New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2009
    Сообщения:
    22
    так говорить плохо - вложенные нужны не чтобы как то писать, а чтобы интерфейсом было удобнее пользоваться!

    это значит что один интерфейс, в примере IY вложен в другой, в примере IX. Т.е. вложенный интерфейс можно конечно раскрыть и получить один IX с кучей функций вида
    Код (Text):
    1. interface IX
    2. {
    3.   IY__func1
    4.   IY__func2
    5.   ...
    6. }
    но мы теряем удобство читаемости кода итп, а значит исчезновение бизнес кода, что не есть хорошо(конкретно для моей задачи)
     
  4. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    а наследование
     
  5. mixkorshun

    mixkorshun New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2009
    Сообщения:
    22
    punxer
    всмысле?

    как раз о наследовании класса от интерфеса и идет речь, т.е. о реализации данного наследования, а написать
    Код (Text):
    1. interface IX
    2. {
    3.  interface IY
    4.   {
    5.      virtual void __stdcall Create(ptrdiff_t pMemory) = 0;
    6.      ...
    7.   };
    8.   ...
    9. }
    я спокойно могу, только толку от двух вложеных структур, от которых ничего не наследуется...