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
S_FALSE
La bibliothèque COM est déjà initialisée sur cet appartement.
OLE_E_WRONGCOMPOBJ
Les versions de COMPOBJ.DLL et OLE2.DLL sur votre ordinateur sont incompatibles entre elles.
RPC_E_CHANGED_MODE
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
OleInitialize appelle CoInitializeEx en interne pour initialiser la bibliothèque COM sur l’appartement actuel. Étant donné que les opérations OLE ne sont pas thread-safe, OleInitialize spécifie le modèle d’accès concurrentiel en tant qu’appartement à thread unique.

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)

Voir aussi

CoInitializeEx

OleInitialize

OleUninitialize