OleInitialize-Funktion (ole2.h)
Initialisiert die COM-Bibliothek für das aktuelle Apartment, identifiziert das Parallelitätsmodell als Singlethread-Apartment (STA) und ermöglicht zusätzliche Funktionen, die im Abschnitt Hinweise unten beschrieben werden. Anwendungen müssen die COM-Bibliothek initialisieren, bevor sie andere COM-Bibliotheksfunktionen als CoGetMalloc und Speicherbelegungsfunktionen aufrufen können.
Syntax
HRESULT OleInitialize(
[in] LPVOID pvReserved
);
Parameter
[in] pvReserved
Dieser Parameter ist reserviert und muss NULL sein.
Rückgabewert
Diese Funktion gibt S_OK nach Erfolg zurück. Weitere mögliche Werte sind:
Rückgabecode | Beschreibung |
---|---|
|
Die COM-Bibliothek wurde bereits für dieses Apartment initialisiert. |
|
Die Versionen von COMPOBJ.DLL und von OLE2.DLL auf dem Computer sind miteinander nicht kompatibel. |
|
Ein vorheriger Aufruf von CoInitializeEx hat das Parallelitätsmodell für dieses Apartment als Multithread-Apartment (MTA) angegeben. Dies könnte auch bedeuten, dass ein Wechsel von einer neutralen Threadwohnung zu einer Singlethread-Wohnung erfolgt ist. |
Hinweise
Anwendungen, die die folgende Funktionalität verwenden, müssen OleInitialize aufrufen, bevor eine andere Funktion in der COM-Bibliothek aufgerufen wird:
- Zwischenablage
- Drag & Drop
- Objektverknüpfung und Einbettung (OLE)
- Direkte Aktivierung
Nachdem das Parallelitätsmodell für eine Wohnung festgelegt wurde, kann es nicht mehr geändert werden. Ein Aufruf von OleInitialize für ein Apartment, das zuvor als Multithread initialisiert wurde, schlägt fehl und gibt RPC_E_CHANGED_MODE zurück.
Sie müssen die COM-Bibliothek in einem Apartment initialisieren, bevor Sie eine der Bibliotheksfunktionen außer CoGetMalloc aufrufen, um einen Zeiger auf die Standardzuweisung und die Speicherbelegungsfunktionen abzurufen.
In der Regel wird die COM-Bibliothek in einem Apartment nur einmal initialisiert. Nachfolgende Aufrufe sind erfolgreich, solange sie nicht versuchen, das Parallelitätsmodell der Wohnung zu ändern, sondern S_FALSE zurückgeben. Um die COM-Bibliothek ordnungsgemäß zu schließen, muss jeder erfolgreiche Aufruf von OleInitialize, einschließlich der Aufrufe, die S_FALSE zurückgeben, durch einen entsprechenden Aufruf von OleUninitialize ausgeglichen werden.
Da es keine Möglichkeit gibt, die Reihenfolge zu steuern, in der Prozessserver geladen oder entladen werden, rufen Sie OleInitialize oder OleUninitialize nicht über die DllMain-Funktion auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ole2.h |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |
APIs | ext-ms-win-com-ole32-l1-1-0 (eingeführt in Windows 8) |