DELPHI 4. Технология СОМ
Книга посвящена использованию технологии Component Object Model (COM) в приложениях, созданных с помощью Delphi 4.В ней рассматриваются вопросы использования в приложениях OLE-документов, создания, тестирования и применения элементов управления ActiveX, создания серверов и клиентов автоматизации, в том числе приложений, управляющих составными частями Microsoft Office, использования COM-серверов, входящих в состав 32-разрядных версий Windows, работы с потоками во внутренних серверах автоматизации. Большое внимание также уделяется удаленному доступу к COM-серверам, организации распределенных вычислений с прменением технологий Inprise MIDAS и Microsoft DCOM (Distributed COM), а также повышению эффективности использования ресурсов и управлению распределенными транзакциями с помощью технологии СOM+, реализованной в продукте Microsoft Transaction Server.Пособие предназначено для опытных программистов, имевших практику разработки приложений с помощью Delphi и интересующихся вопросами применения COM-технологии и создания распределенных систем.
Содержание
Содержание книги "DELPHI 4. Технология СОМ . OLE, ActiveX, MIDAS Microsoft Transaction Server"
Отрывок из книги
1. Назначение и принципы COM-технологии 17 был создан при старте COM-сервера, конструктор класса, реализующий фаб-рику класса, обычно помещается в секции initialization какого-нибудь модуля. Главный метод IClassFactory – CreateInstance. В качестве параметра он принимает IID интерфейса, ссылку на который необходимо вернуть клиенту, и переменную, куда помещается ссылка на требуемый интерфейс. При реали-зации метода CreateInstance необходимо проверить IID всех интерфейсов, экспонируемых данной фабрикой класса. При совпадении с передаваемым в качестве параметра идентификатором возможно несколько вариантов реали-зации: Если ранее не был создан экземпляр класса, который реализует требуе-мый интерфейс, то вызывается его конструктор. Если уже имеется экземпляр класса, то возвращается ссылка на него и счетчик ссылок увеличивается на единицу. В этом случае класс реализуется таким образом, чтобы одновременно обслуживать нескольких клиентов. Альтернативный вариант – при наличии уже работающей копии класса все равно создается новая копия. При таком способе работы число ссылок на ка-ждую рабочую копию всегда равно единице (при равенстве нулю рабочая ко-пия разрушается). Класс реализуется таким образом, чтобы обслуживать од-ного клиента. Типичный пример реализации метода CreateInstance приведен ниже: function TMyClassFactory.CreateInstance(UnkOuter: IUnknown; const iid: Tiid; var P): hResult; var hr:HResult; MyObject:TMyObject; begin if UnkOuter <> nil then begin Result:=E_Fail; Exit; end; if (not isEqualIID(iid, IID_IUnknown)) and (not isEqualIID(iid, CLSID_MyObject)) then begin Result := E_Fail; Exit; end; MyObject :=TMyObject.Create; if MyObject = nil then begin Pointer(Obj) := nil; Result := E_OutOfMemory; Exit; end; hr := MyObject.QueryInterface(iid, P); if Failed(hr) then MyObject.Free else Inc(ObjCount); Result := hr; end; Первый параметр – UnkOuter – используется для создания агрегатов (их обсуждение выходи...
Внимание!
При обнаружении неточностей или ошибок в описании книги "DELPHI 4. Технология СОМ . OLE, ActiveX, MIDAS Microsoft Transaction Server (автор Н. Елманова, С. Трепалин)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку