В чем разница между IDispatch и IUnkown в COM?
Я прочитал и увидел пример для COM, но я не мог четко понять разницу в интерфейсе.
3 ответа
IUnknown - основной интерфейс COM. Он предоставляет базовую возможность "привести" экземпляр COM-объекта к любому из поддерживаемых интерфейсов (QueryInterface).
IDispatch основывается на IUnknown, добавляя средство для обнаружения во время выполнения атрибутов и интерфейсов, поддерживаемых указанным COM-объектом. Это учитывает позднюю привязку и динамическую привязку. Лечебное отражение сортов. С помощью IDispatch приложение может обнаруживать возможности компонентов и вызывать обнаруженные методы (упрощенно называемые автоматизацией).
См. Внедрение интерфейса IDispatch [Автоматизация] в MSDN (воскрешено из WayBack Machine - текущая онлайн-версия).
IUnkown является базовым интерфейсом для всех интерфейсов COM.
IDispatch предоставляет интерфейс для объектов, методов и свойств инструментам программирования и другим приложениям, которые поддерживают автоматизацию.
Интерфейс IDispatch наследуется от интерфейса IUnknown. Пожалуйста, посмотрите на ссылку ниже.