Поддержка OLE. Реализация MFC
Из-за размера и сложности необработанного OLE API, вызывая его непосредственно для записи приложений OLE, может быть очень много времени. Целью реализации библиотеки классов Microsoft Foundation OLE является сокращение объема работы, которую необходимо выполнить для написания полнофункционированных приложений с поддержкой OLE.
В этой статье описываются части OLE API, которые не были реализованы внутри MFC. В обсуждении также объясняется, как реализовано сопоставление с разделом OLE пакета SDK для Windows.
Части OLE Не реализованы библиотекой классов
Несколько интерфейсов и функций OLE не предоставляются напрямую MFC. Если вы хотите использовать эти функции, вы можете напрямую вызвать OLE API.
Интерфейс IMoniker— IMoniker
интерфейс реализуется библиотекой классов (например, классом COleServerItem
), но ранее не был предоставлен программисту. Дополнительные сведения об этом интерфейсе см. в разделе OLE Moniker Implementations в разделе OLE пакета SDK для Windows. Однако см. также класс CMonikerFile и CAsyncMonikerFile.
Интерфейс IUnknown и IMarshal Interfaces IUnknown
реализован библиотекой классов, но не предоставляется программисту. Интерфейс IMarshal
не реализуется библиотекой классов, но используется внутренне. Серверы автоматизации, созданные с помощью библиотеки классов, уже имеют встроенные возможности маршалинга.
Составные файлы документов (составные файлы) частично поддерживаются библиотекой классов. Ни одна из функций, которые напрямую управляют составными файлами за пределами создания, поддерживаются. MFC использует класс COleFileStream
для поддержки обработки потоков с стандартными функциями файлов. Дополнительные сведения см. в статье "Контейнеры: составные файлы".
Серверы внутри процесса и серверы-обработчики объектов и обработчики объектов позволяют реализовать данные визуального редактирования или полнофункциональную объектную модель компонентов (COM) в библиотеке динамических ссылок (DLL). Для этого можно реализовать библиотеку DLL, вызвав API OLE напрямую. Однако если вы пишете сервер службы автоматизации и сервер не имеет пользовательского интерфейса, вы можете использовать AppWizard для создания сервера внутрипроцессного сервера и полностью поместить его в библиотеку DLL. Дополнительные сведения об этих разделах см. в разделе "Серверы автоматизации".
Совет
Самый простой способ реализовать сервер автоматизации — поместить его в библиотеку DLL. MFC поддерживает этот подход.
Дополнительные сведения о том, как классы OLE Microsoft Foundation реализуют интерфейсы OLE, см. в технических заметках MFC 38, 39 и 40.