На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

General OLE Concepts



One of the most attractive aspects of OLE is that it is completely modular. It is designed so that each component can exist, for the most part, on its own. For example, you can add drag and drop support to your application without adding in-place activation, automation, or compound storage.

Even if your application only uses a small part of OLE, the Component Object Model (COM) enables other applications to know what your application's OLE capabilities are. COM is the fundamental, underlying model that OLE is based upon; all OLE objects are also component objects.
COM stipulates that any component object must control its own life span and be able to tell other objects about its capabilities in a strictly defined manner. To control its life span, a component object maintains a reference count. Capabilities are grouped into logical sets called interfaces; each interface is a set of member functions necessary to support a certain capability. The "strictly defined manner" that component objects must use is itself an interface, which is called IUnknown
. Because all OLE interfaces are derived from IUnknown, they are component objects. IUnknown has three member functions: QueryInterface, AddRef, and Release.

An object uses QueryInterface to tell other objects about its capabilities. If the object implements the requested interface, it returns a pointer to the interface. If it does not implement it, it returns the E_NOTIMPL error value stating that the object does not support the requested interface. AddRef and Release are used to control the object's life span. An object's AddRef member function is called when another object holds a pointer to the object, and the Release member function is called when the pointer is no longer needed. If a call to Release causes the object's reference count to go to zero, the object can safely unload itself.

COM provides a couple of immediate benefits:

· An object can determine in advance if another object supports a certain feature. If the other object does not support the feature, the calling object can react accordingly.
· Objects do not remain in memory longer (or shorter) than necessary, and they do not rely on the user to launch or close them.



The OLE data transfer mechanism is a crucial element of drag and drop support. Data transfer in OLE allows objects to be very specific about the data that they transfer. Instead of simply being able to transfer a plain old bitmap, an object can now transfer a bitmap of the object's contents rendered for a printer device and stored in a stream to be released by OLE.
To accomplish this, OLE uses the IDataObject interface and the FORMATETC and STGMEDIUM structures. Applications implement IDataObject to accomplish all data transfer in OLE; it includes member functions that set and retrieve an object's data, enumerate the available data formats, and receive data change notifications. FORMATETC and STGMEDIUM provide the specific details about the data that is being transferredѕthat is, the target device, aspect, storage medium, and release method.

Every drag and drop operation involves two objects: a source and a target. The source object contains the data to be dragged, and the target object accepts the dragged data.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Общие Понятия OLE



Один из наиболее привлекательных аспектов OLE - то, что он полностью модульный. Разработано чтобы каждый компонент может просуществовать, главным образом, на своем собственном. Например, Вы можете добавить поддержку перераспределения к вашему приложению не добавляясь на-активизации места, автоматизации, или сложном хранении.

Даже если бы ваше приложение только использует небольшую часть OLE, Компонентной Объектной Модели (COM), позволяет приложения, чтобы знать, что что ваши прикладные возможности OLE. COM - фундаментальная, основная модель, что OLE основан на; все объекты OLE - также компонентные объекты.
COM ОГОВАРИВАЕТ, которым любой компонентный объект должен управлять своим собственным диапазоном жизни и быть способным сообщить другие объекты о своих возможностях в строго определенном способе. Чтобы управлять своим диапазоном жизни, компонентный объект поддерживает счет ссылки. Возможности сгруппированы в логические комплекты назвавшие интерфейсы; каждый интерфейс является набором функций члена необходимого поддерживать определенную способность. "Строго определившее способ", который компонентные объекты должны использование - сам интерфейс, который назван IUnknown. Поскольку все интерфейсы OLE производные от IUnknown, они - компонентные объекты. IUnknown ИМЕЕТ три функции члена: QueryInterface, AddRef, и Выпуск.

Объект использует QueryInterface, чтобы сообщать другие объекты о своих возможностях. Если объект осуществляет попрошенный интерфейс, он возвращает указатель на интерфейс. Если это не осуществляет это, это возвращает величину ошибки E_NOTIMPL, устанавливающую, что объект не поддерживает попрошенный интерфейс. AddRef И Выпуск использован, чтобы управлять объектным диапазоном жизни. Объектная функция члена AddRef названа когда другой объект держит указатель на объект, и функция члена Выпуска названа когда указатель не - больше не нужно. Если вызов, чтобы Выпускать причинам объектный счет ссылки, чтобы стремиться к нулю, объект может благополучно снять себе.

COM ОБЕСПЕЧИВАЕТ пару безотлагательных преимуществ:

Объект может определиться заранее если другой объект поддерживает определенную характеристику. Если другой объект не поддерживает характеристику, вызов объекта может среагировать соответственно.
Объекты не остаются в памяти дольше (или короче) чем необходимый, и они не доверяют на потребителя, чтобы запускать или закрывать им.



Механизм передачи данных OLE является критическим элементом поддержки перераспределения. Передача Данных в OLE допускает объекты против быть очень специфическим о данных, которые они передают. Вместо просто способный передать простое старое побитовое отображение, объект может теперь передать побитовое отображение объектного содержания предоставившего для устройства принтера и загруженного в поток, который нужно выпускаться OLE.
Для того, чтобы выполнять это, OLE использует интерфейс IDataObject и FORMATETC и структуры STGMEDIUM. Приложения осуществляют IDataObject, чтобы выполнять всю передачу данных в OLE; это включает функции элемента, что установленное и извлекает объектные данные, перечисляет доступные форматы данных, и уведомления изменения данных приемника. FORMATETC И STGMEDIUM обеспечивает специфические детали о данных, которые - transferredUthat является, целевым устройством, аспектом, середина памяти, и метод версии.

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


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz