Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
обработчик OLE — это библиотека DLL, содержащая несколько взаимодействующих компонентов, используемых для связывания и внедрения. Чтобы избежать расходов на постоянное взаимодействие между контейнером и сервером, обработчик загружается в пространство обработки контейнера, чтобы действовать от имени сервера в качестве суррогатного процесса. Обработчик OLE управляет запросами контейнеров, которые не требуют внимания серверного приложения, например запросов на рисование. Если контейнер запрашивает что-то, что обработчик объектов не может предоставить, обработчик взаимодействует с серверным приложением с помощью механизма связи вне процесса COM.
К компонентам обработчика OLE относятся элементы удаленного взаимодействия для управления взаимодействием между обработчиком и сервером, кэш для хранения данных объекта (а также сведения о том, как эти данные должны быть отформатированы и отображаться), а также контролируемый объект, который координирует действия других компонентов библиотеки DLL. Кроме того, если объект является ссылкой, библиотека DLL также включает компонент связывания или связанный объект, который отслеживает имя и расположение источника ссылки.
OLE предоставляет обработчик по умолчанию, используемый большинством приложений для связывания и внедрения. Если обработчик по умолчанию не соответствует требованиям вашего сервера, его можно либо полностью заменить, либо использовать части его функциональности, где это уместно. В последнем случае обработчик приложения реализуется как агрегатный объект, состоящий из нового объекта элемента управления и обработчика по умолчанию. Обработчики сочетаний приложений и по умолчанию также называются обработчиками внутри процесса. обработчик удаленного взаимодействия используется для объектов, которые не назначены CLSID в системном реестре или не имеют указанного обработчика. Все, что требуется от обработчика для этих типов объектов, заключается в том, что они передают информацию через границу процесса. Чтобы создать новый экземпляр обработчика по умолчанию, вызовите OleCreateDefaultHandler. Для некоторых особых обстоятельств вызовите OleCreateEmbeddingHelper.
При создании экземпляра обработчика для одного класса его нельзя использовать для другого. При использовании для составного документа обработчик OLE реализует структуры данных на стороне контейнера при удаленном доступе к объектам определенного класса.
OLE определил обработчик по умолчанию для клиентов локальных серверов составных документов. Обработчик по умолчанию реализовал ряд интерфейсов, которые типичный сервер не поддерживал. Когда OLE впоследствии разрешил серверы обработки для составных документов, они должны были создать вспомогательный компонент внедрения, который реализовал эти дополнительные интерфейсы, чтобы клиенты могли легко работать с ними.
Разработчики платформ, определяющие и реализующие обработчик на стороне клиента, должны учитывать эту проблему в своей разработке и предоставлять вспомогательное средство в процессе по этим же причинам. Даже если конструкторы в настоящее время не реализуют интерфейсы на обработчике, которые серверы не предоставляют, они могут потребовать определить вспомогательный элемент теперь, чтобы они могли добавить их в будущем. Кроме того, можно реализовать дополнительные интерфейсы на самом объекте сервера.
Связанные разделы