От сырых COM API к проекту ATL


От сырых COM API к проекту ATL
От сырых COM API к проекту ATL Модель программирования COM Разработка сервера Разработка клиентского приложения Проект на основе ATL Как работает DLL Загадочные макросы Создание...
Фабрика классов
Фабрика классовЛогика функционирования нашего проекта (типа клиент-сервер ) вырождена, то есть излишне упрощена, так как мы хотели показать лишь основную нить алгоритма использования СОМ-объект...
Независимость от языка
Независимость от языка Разработанный DLL СОМ-сервер выполняет свою функцию, обслуживая клиентское приложение, разработанное на языке C++. Но он не будет работать с приложениями, написанными на...
Концепция маршалинга
Концепция маршалинга СОМ спроектирован так, чтобы обеспечить прозрачную (transparent) коммуникацию клиента с сервером независимо от того, где они находятся: в пространстве одного процесса,...
Схема коммуникации клиентсервер
Рисунок 8.1. Схема коммуникации клиент-сервер СОМ не накладывает ограничений на структуру компонентов, он определяет лишь порядок их взаимодействия. В основе межпроцессной коммуникации лежит вс...
Библиотека типов
Библиотека типов Для того чтобы клиенты, разработанные на других языках программирования, могли управлять объектами сервера, они должны иметь информацию о типах данных, используемых сервером п...
Новый проект
Новый проект Для ознакомления с возможностями MIDL создайте новый пустой проект типа Win32 DLL. Для этого: Дайте команду File > New > Project. В диалоге New Project выберите шаблон Win3...
Использование макросов COM
Использование макросов COMРазработчики COM рекомендуют для повышения надежности и переносимости компонентов использовать при их разработке множество макроопределений, которые вы также вынуждены...
Разработка клиента
Разработка клиента с использованием специальных указателей Создайте новый пустой проект консольного приложения с именем SayTLibClient и вставьте в него новый файл SayTLibClient.cpp. Введите в...
Проект на основе ATL
Проект на основе ATL Библиотеки шаблонов, такие как ATL (Active Template Library), отличаются от обычных библиотек классов C++ тем, что они представляют собой множество шаблонов (templates), к...
Как работает DLL
Как работает DLLВы уже знаете, что созданный и подключенный компоновщиком динамический модуль система интегрирует в пространство другого (клиентского) процесса, загрузив его по определенному б...
Загадочные макросы
Загадочные макросыВернемся в файл ATLGLcpp, где кроме функций, перечисленных выше, присутствуют загадочные макросы. Их смысл довольно прозрачен, но разработчика не должны устраивать догадки, е...
Модель программирования COM
Модель программирования COMЛюбой программный продукт представляет собой набор данных и функций, которые как-то используют, обрабатывают эти данные. Этот принцип, как вы знаете, лежит в основе О...
Создание элемента типа ATL Control
Создание элемента типа ATL ControlСоздаваемый модуль DLL будет содержать в себе элемент управления, который внедряется в окно клиентского приложения, поэтому в проект следует добавить заготовку...
Стартовая заготовка элемента ActiveX
Рисунок 8.2. Стартовая заготовка элемента ActiveX в окне тестового контейнера Загляните в файл ATLGLJ.c и увидите три новых макроса типа MIDL_DEFINE_GUID, которые уже выполнили свою работу и по...
Двойственные интерфейсы
Двойственные интерфейсы Технология Automation, ранее известная как OLE Automation, дает совершенно другой способ вызова клиентом методов, экспонируемых сервером, чем тот стандартный для СОМ сп...
Интерфейсы — основа СОМтехнологии
Интерфейсы — основа СОМ-технологии Разработчики СОМ не интересуются тем, как устроены компоненты внутри, но озабочены тем, как они представлены снаружи. Каждый компонент или объект СОМ рассматр...
Уникальная идентификация объектов
Уникальная идентификация объектов Данные типа GUID (globally unique identifier) являются 128-битными идентификаторами, состоящими из пяти групп шестнадцатеричных цифр,' которые обычно генерируе...
Как работают СОМсерверы
Как работают СОМ-серверы Созданный и подключенный компоновщиком динамически загружаемый модуль сервера система интегрирует в пространство другого (клиентского) процесса, загрузив его по определ...
Index6
Разработка сервераСейчас мы займемся разработкой DLL СОМ-сервера, выполняемого в пространстве процесса другого (клиентского) приложения. Для того чтобы понять, что кроется за этой вывеской, м...
Создание класса СОМобъекта
Создание класса СОМ-объекта Подключите к проекту новый файл MyCom.h, в который надо поместить объявление класса CoSay. Как вы помните, он должен быть потомком экспортируемого интерфейса iSay и...
Файл описания DLL
Файл описания DLL Для успешной работы DLL следует добавить к проекту файл ее описания (DEF-файл). Этот способ является альтернативным и, возможно, более простым, чем использование описателей _...
Разработка клиентского приложения
Разработка клиентского приложенияДля разработки минимального приложения, способного найти DLL COM inproc-сервер, можно начать с заготовки простого приложения консольного типа, инициализировать...


- Начало -