Freigeben über


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
S_FALSE
Die COM-Bibliothek wurde bereits für dieses Apartment initialisiert.
OLE_E_WRONGCOMPOBJ
Die Versionen von COMPOBJ.DLL und von OLE2.DLL auf dem Computer sind miteinander nicht kompatibel.
RPC_E_CHANGED_MODE
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
OleInitialize ruft CoInitializeEx intern auf, um die COM-Bibliothek für das aktuelle Apartment zu initialisieren. Da OLE-Vorgänge nicht threadsicher sind, gibt OleInitialize das Parallelitätsmodell als Singlethread-Apartment an.

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)

Weitere Informationen

CoInitializeEx

OleInitialize

OleUninitialize