Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   что такое интерфейс IUnknown (http://forum.oszone.net/showthread.php?t=65292)

XCodeR 05-05-2006 19:47 434812

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

пользовался ActiveX компонентом GWX. при создании объекта GWRoute вместо обхъекта получаю этот самый IUnknown...
как мне "переёти" к нужому объекту??....

XPEHOMETP 05-05-2006 23:08 434886

IUnknown - это как бы такая примочка в Дельфи, которая позволяет подключить COM-объект, не влезая во все детали реализации конкретного СОМ-интерфейса. В общем, чего бы там конкретно ни было написано, работать все равно будет. А если разбираться со всеми конкретными деталями, это придется описывать в явном виде все методы, которые предоставляет СОМ-объект. Это можно (при наличии толковой документации), но очень, очень, очень долго и муторно. Есть и другие варианты таких примочек, например, atl71.dll, которая идет в комплекте .NET.

ivank 06-05-2006 18:24 435162

XPEHOMETP
Полностью несоответствующая действительности информация.

IUnknown - предок всех возможных COM-интерфейсов. В нём есть три метода, два для управления временум жизни объекта - AddRef и Release и один для запроса других интерфейсов поддерживаемых объектом - QueryInterface. Соотвтественно после создания объекта (получения указателя на IUnknown) необходимо запросить конкретный интерфейс. Делается это по так называемому IID'у, его надо знать заранее (или можно импортировать из т. н. библиотеки типов, но это несколько сложнее и нафиг не нужно, если интерфейс известен априорно).

http://msdn.microsoft.com/library/de...8bda378332.asp

ATL никакого отношения к .NET не имеет.

hasherfrog 07-05-2006 00:10 435268

>> IUnknown - предок всех возможных COM-интерфейсов.
Добавлю очевидное(?). Любой COM-объект поддерживает IUnknown-интерфейс.

>> как мне "переёти" к нужому объекту??....
Через IUnknown::QueryInterface. Можете поискать в DirectX SDK, много примеров.

XCodeR 07-05-2006 12:57 435362

ivank,hasherfrog спасибо.....
пойду пробовать


Время: 14:53.

Время: 14:53.
© OSzone.net 2001-