OLE-Hintergrund: MFC-Implementierung
Aufgrund der Größe und Komplexität der unformatierten OLE-API kann das direkte Aufrufen zum Schreiben von OLE-Anwendungen sehr zeitaufwändig sein. Das Ziel der Microsoft Foundation Class Library-Implementierung von OLE besteht darin, die Menge der Arbeit zu reduzieren, die Sie zum Schreiben von anwendungen mit vollem Funktionsumfang ausführen müssen.
In diesem Artikel werden die Teile der OLE-API erläutert, die nicht in MFC implementiert wurden. In der Diskussion wird auch erläutert, wie die implementierungen dem OLE-Abschnitt des Windows SDK zugeordnet sind.
Teile von OLE nicht von der Klassenbibliothek implementiert
Einige Schnittstellen und Features von OLE werden von MFC nicht direkt bereitgestellt. Wenn Sie diese Features verwenden möchten, können Sie die OLE-API direkt aufrufen.
IMoniker-Schnittstelle Die IMoniker
Schnittstelle wird von der Klassenbibliothek (z. B. der COleServerItem
Klasse) implementiert, wurde jedoch noch nicht für den Programmierer verfügbar gemacht. Weitere Informationen zu dieser Schnittstelle finden Sie unter OLE Moniker-Implementierungen im OLE-Abschnitt des Windows SDK. Siehe auch klasse CMonikerFile und CAsyncMonikerFile.
IUnknown- und IMarshal-Schnittstellen Die IUnknown
Schnittstelle wird von der Klassenbibliothek implementiert, aber nicht für den Programmierer verfügbar gemacht. Die IMarshal
Schnittstelle wird nicht von der Klassenbibliothek implementiert, sondern intern verwendet. Automatisierungsserver, die mit der Klassenbibliothek erstellt wurden, verfügen bereits über integrierte Marshaling-Funktionen.
Docfiles (Compound Files) Compound-Dateien werden teilweise von der Klassenbibliothek unterstützt. Es werden keine Funktionen unterstützt, die über die Erstellung hinausgehend zusammengesetzte Dateien direkt bearbeiten. MFC verwendet klasse COleFileStream
, um die Manipulation von Datenströmen mit Standarddateifunktionen zu unterstützen. Weitere Informationen finden Sie im Artikel Container: Verbunddateien.
In-Process-Server und Objekthandler In-Process-Server und Objekthandler ermöglichen die Implementierung von visuellen Bearbeitungsdaten oder vollständigen COM-Objekten (Component Object Model) in einer Dynamic Link Library (DLL). Dazu können Sie Ihre DLL implementieren, indem Sie die OLE-API direkt aufrufen. Wenn Sie jedoch einen Automatisierungsserver schreiben und Ihr Server über keine Benutzeroberfläche verfügt, können Sie AppWizard verwenden, um den Server zu einem prozessinternen Server zu machen und ihn vollständig in eine DLL einzufügen. Weitere Informationen zu diesen Themen finden Sie unter Automatisierungsserver.
Tipp
Die einfachste Möglichkeit zum Implementieren eines Automatisierungsservers besteht darin, ihn in einer DLL zu platzieren. MFC unterstützt diesen Ansatz.
Weitere Informationen dazu, wie die Microsoft Foundation OLE-Klassen OLE-Schnittstellen implementieren, finden Sie unter MFC Technical Notes 38, 39 und 40.