OleInitialize, fonction (ole2.h)
Initialise la bibliothèque COM sur l’appartement actuel, identifie le modèle d’accès concurrentiel en tant qu’appartement à thread unique (STA) et active des fonctionnalités supplémentaires décrites dans la section Remarques ci-dessous. Les applications doivent initialiser la bibliothèque COM avant de pouvoir appeler des fonctions de bibliothèque COM autres que CoGetMalloc et des fonctions d’allocation de mémoire.
Syntaxe
HRESULT OleInitialize(
[in] LPVOID pvReserved
);
Paramètres
[in] pvReserved
Ce paramètre est réservé et doit avoir la valeur NULL.
Valeur retournée
Cette fonction retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
La bibliothèque COM est déjà initialisée sur cet appartement. |
|
Les versions de COMPOBJ.DLL et OLE2.DLL sur votre ordinateur sont incompatibles entre elles. |
|
Un appel précédent à CoInitializeEx a spécifié le modèle d’accès concurrentiel pour cet appartement en tant qu’appartement multithread (MTA). Cela peut également signifier qu’une modification de l’appartement threadé neutre à l’appartement à thread unique s’est produite. |
Remarques
Les applications qui utilisent les fonctionnalités suivantes doivent appeler OleInitialize avant d’appeler toute autre fonction dans la bibliothèque COM :
- Presse-papiers
- Glisser-déposer
- Liaison et incorporation d’objets (OLE)
- Activation sur place
Une fois le modèle d’accès concurrentiel défini pour un appartement, il ne peut pas être modifié. Un appel à OleInitialize sur un appartement précédemment initialisé en tant que multithread échoue et retourne RPC_E_CHANGED_MODE.
Vous devez initialiser la bibliothèque COM sur un appartement avant d’appeler l’une des fonctions de bibliothèque à l’exception de CoGetMalloc, pour obtenir un pointeur vers l’allocateur standard et les fonctions d’allocation de mémoire.
En règle générale, la bibliothèque COM n’est initialisée qu’une seule fois sur un appartement. Les appels suivants réussissent, tant qu’ils ne tentent pas de modifier le modèle d’accès concurrentiel de l’appartement, mais retournent S_FALSE. Pour fermer la bibliothèque COM correctement, chaque appel réussi à OleInitialize, y compris ceux qui retournent S_FALSE, doit être équilibré par un appel à OleUninitialize correspondant.
Étant donné qu’il n’existe aucun moyen de contrôler l’ordre dans lequel les serveurs in-process sont chargés ou déchargés, n’appelez pas OleInitialize ou OleUninitialize à partir de la fonction DllMain .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ole2.h |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |
Ensemble d’API | ext-ms-win-com-ole32-l1-1-0 (introduit dans Windows 8) |