System.Win.ComObj.CoInitFlags
Delphi
CoInitFlags: Integer = -1; // defaults to no threading model, call CoInitialize()
C++
extern DELPHI_PACKAGE int CoInitFlags;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
variable | public | System.Win.ComObj.pas System.Win.ComObj.hpp |
System.Win.ComObj | System.Win.ComObj |
Description
Indique le niveau de gestion de threads requis pour un .EXE de serveur COM.
CoInitFlags contrôle la manière dont COM est initialisé pour la gestion de threads avec des applications non VCL. Cette variable n’affecte que les exécutables (.EXE), et non les serveurs in-process (.DLL et .OCX).
Généralement, l'expert qui crée les objets COM ajoute automatiquement le code pour initialiser le niveau de la gestion de threads dans votre application. Dans des applications contenant plusieurs objets COM, le COM est initialisé pour le niveau le plus élevé de gestion, où le thread unique est le plus bas niveau et le thread libre le plus haut niveau. Pour définir manuellement le niveau de la gestion de threads COM, affectez une valeur à CoInitFlags dans le fichier source principal du programme avant l’appel à Application.Initialize.
Le tableau suivant énumère les constantes (définies dans l’unité ActiveX) pouvant être organisées ensemble pour créer la valeur de CoInitFlags.
Constante | Valeur | Signification |
---|---|---|
COINIT_MULTITHREADED |
0 |
COM appelle les objets sur n’importe quel thread (thread libre) |
COINIT_APARTMENTTHREADED |
2 |
Chaque objet a son propre thread (modèle cloisonné) |
COINIT_DISABLE_OLE1DDE |
4 |
DDE ne doit pas être utilisé pour la gestion Ole1. |
COINIT_SPEED_OVER_MEMORY |
8 |
Optimisation pour la vitesse plutôt que pour la mémoire. |
La valeur de CoInitFlags est –1 pour un thread unique.