Amr.Mohammad87 Ответов: 1

Определения и элементы компонентной объектной модели, неспособные поглощать


Я прочитал статью(ы) о КОМ, и одна из этих статей была здесь внутри CodeProject Мне нужно подчеркнуть некоторые моменты, которые не упоминаются в каждой из этих статей, даже в той, что опубликована здесь, и они вызывают у меня большую путаницу в понимании COM.

1-я знаю, что интерфейс-это просто абстрактный тип (т. е. не включает в себя никакой реализации для своих членов, просто объявление).

2-Когда я создаю COM-объект, мне нужны эти два параметра среди прочих: CLSID и идентификатор IID Я заранее знал, что нельзя создать объект абстрактного типа, интерфейса или класса, поэтому мне нужен CLSID что же это такое идентификатор GUID для класса, содержащего конкретную реализацию для члена(ов) в пределах данного интерфейса, который задается через идентификатор IID?

3-Что означает использование Метод queryinterface() чтобы получить какой-либо дополнительный указатель интерфейса? Означает ли это, что COM-класс, из которого я создаю экземпляр объекта, COM-объект, реализует более одного интерфейса, и мне тоже нужна эта реализация? если это правда, то это означает, что у меня есть класс С реализация и интерфейс ИА и еще один IB если я создам свой COM-объект, используя только идентификатор IID для интерфейса ИА что я смогу вызывать только методы, объявленные в интерфейсе ИА и не сможет вызвать методы, объявленные в интерфейсе IB однако сам класс имеет реализацию для методов обоих интерфейсов?

4 - что означает, что любой другой COM-интерфейс должен быть производным от IUnknown? Означает ли это, что если я собираюсь определить COM-интерфейс, мне нужно, чтобы он наследовал от интерфейса IUnknown?

5-каковы правила идентификации COM, времени жизни и двоичного макета?

Что я уже пробовал:

Я читал статьи для компонентной объектной модели, IUnknown, краткое описание двоичного интерфейса приложения, проприетарного формата, COM-взаимодействия.

1 Ответов

Рейтинг:
2

[no name]

Спасибо за ваше время и внимание. Я видел его перед тем, как задать свой вопрос, и все вышеперечисленные вопросы не имели в нем ответов :).

Richard MacCutchan

К сожалению, ваши вопросы немного выходят за рамки быстрых ответов. Изучая документацию и учебные пособия, вы найдете хорошие объяснения и примеры.

[no name]

Мне нужен кто-нибудь, кто хорошо знает COM, чтобы дать мне краткие ответы и, если возможно, передать мне ссылку на полезную документацию, чтобы я мог найти более подробную информацию о моих вопросах

Richard MacCutchan

Я дал вам ссылку; идите и изучите статью, вы узнаете гораздо больше, чем ожидание ответа здесь.

[no name]

Спасибо за ваше время, внимание и помощь. Клянусь Богом, я прочитал его, прежде чем отправить свои вопросы. В любом случае я буду продолжать искать и надеюсь, что смогу найти ответы, а когда это произойдет, я опубликую ответы, чтобы принести пользу другим.