CoUninitialize-Funktion (combaseapi.h)
Schließt die COM-Bibliothek im aktuellen Thread, entlädt alle vom Thread geladenen DLLs, gibt alle anderen Ressourcen frei, die der Thread verwaltet, und erzwingt das Schließen aller RPC-Verbindungen im Thread.
Syntax
void CoUninitialize();
Rückgabewert
Keine
Bemerkungen
Ein Thread muss CoUninitialize einmal für jeden erfolgreichen Aufruf der CoInitialize - oder CoInitializeEx-Funktion aufrufen, einschließlich aller Aufrufe, die S_FALSE zurückgeben. Nur der CoUninitialize-Aufruf , der dem CoInitialize - oder CoInitializeEx-Aufruf entspricht, der die Bibliothek initialisiert hat, kann ihn schließen.
Aufrufe von OleInitialize müssen durch Aufrufe von OleUninitialize ausgeglichen werden. Die OleUninitialize-Funktion ruft CoUninitialize intern auf, sodass Anwendungen, die OleUninitialize aufrufen, nicht auch CoUninitialize aufrufen müssen.
CoUninitialize sollte beim Herunterfahren der Anwendung aufgerufen werden, da der letzte Aufruf der COM-Bibliothek erfolgt, nachdem die Anwendung ihre Standard Fenster ausgeblendet hat und die Standard-Nachrichtenschleife durchläuft. Wenn noch offene Unterhaltungen vorhanden sind, startet CoUninitialize eine modale Nachrichtenschleife und sendet alle ausstehenden Nachrichten von den Containern oder dem Server für diese COM-Anwendung. Durch das Senden der Nachrichten stellt CoUninitialize sicher, dass die Anwendung nicht beendet wird, bevor alle ausstehenden Nachrichten empfangen werden. Nicht-COM-Nachrichten werden verworfen.
Da es keine Möglichkeit gibt, die Reihenfolge zu steuern, in der Prozessserver geladen oder entladen werden, rufen Sie CoInitialize, CoInitializeEx oder CoUninitialize nicht über die DllMain-Funktion auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | combaseapi.h (include Objbase.h) |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |