Muss ich COM initialisieren, bevor ich IStream mit GDI+ Bitmap::FromStream() verwende?C++

Programme in C++. Entwicklerforum
Guest
 Muss ich COM initialisieren, bevor ich IStream mit GDI+ Bitmap::FromStream() verwende?

Post by Guest »

Ich verwende die GDI+-Funktion Bitmap::FromStream(), um eine PNG-Ressource zu laden, und folge dem Beispiel in diesem Artikel.
Die Bitmap::FromStream( )-Funktion erfordert einen IStream als erstes Argument. Da IStream eine COM-Schnittstelle ist und meine Kenntnisse der COM-Programmierung begrenzt sind, möchte ich Folgendes klarstellen:
  • Muss ich COM explizit initialisieren ( B. mit CoInitialize), bevor Sie ein Objekt erstellen oder verwenden, das IStream für diese Funktion implementiert?
  • Der Beispielcode scheint gut zu funktionieren, ohne COM explizit zu initialisieren, aber Ich bin mir nicht sicher, ob dies der richtige oder zuverlässige Ansatz ist. Könnte dies unter bestimmten Bedingungen zu Problemen führen?
Jeder Hinweis darauf, ob in diesem Zusammenhang eine COM-Initialisierung erforderlich ist, wäre sehr dankbar.
Bearbeiten: Diese Frage ist kein Duplikat. Bei der anderen Frage schlägt die Anwendung völlig fehl, ohne CoInitialize aufzurufen, und der Schwerpunkt liegt auf dem Verständnis, warum dies erforderlich ist. In meinem Fall funktioniert die Anwendung jedoch ohne explizite Initialisierung von COM, und ich mache mir Sorgen, ob dies sicher ist oder ob es unter bestimmten Bedingungen zu Problemen führen könnte. Meine Frage soll klären, ob bei der Verwendung von COM-Schnittstellen eine explizite COM-Initialisierung erforderlich ist und welche möglichen Auswirkungen das Überspringen dieser Initialisierung hat.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post