Partager via


InprocServer32

Inscrit un serveur in-process 32 bits et spécifie le modèle de thread de l’appartement dans lequel le serveur peut s’exécuter.

Entrée du Registre

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
   {CLSID}
      InprocServer32
         (Default) = path
         ThreadingModel = value

Remarques

threadingModel est une valeur REG_SZ que le modèle de threading spécifie. Les valeurs possibles sont indiquées dans le tableau suivant.

Valeur Description
Appartement Appartement à thread unique
Les deux Appartement monothread ou multithread
Libre Appartement multithread
Neutre Appartement neutre

 

Vous devez utiliser la même valeur pour chaque objet fourni par le serveur in-process.

Si threadingModel n’est pas présent ou n’est pas défini sur une valeur, le serveur est chargé dans le premier appartement initialisé dans le processus. Cet appartement est parfois appelé appartement monothread principal (STA). Si le premier STA d’un processus est initialisé par COM, plutôt que par un appel explicite à CoInitialize ou CoInitializeEx, il est appelé STA hôte. Par exemple, COM crée une sta hôte si un serveur in-process à charger nécessite une sta, mais qu’il n’existe actuellement aucune sta dans le processus.

Dans la mesure du possible, le serveur in-process est chargé dans le même appartement que le client qui le charge. Si le modèle de thread de l’appartement client n’est pas compatible avec le modèle spécifié, le serveur est chargé comme indiqué dans le tableau suivant.

Modèle de thread de serveur Le serveur d’appartements est exécuté dans
<\not spécifié> STA principal
Les deux Même appartement que le client
Libre Appartement multithread
Neutre Appartement neutre

 

Si le modèle de thread du serveur est Appartement, l’appartement dans lequel le serveur est chargé dépend de l’appartement dans lequel le client est en cours d’exécution, comme indiqué dans le tableau suivant.

Le client d’appartement est exécuté dans Le serveur d’appartements est exécuté dans
Multithread Hôte STA
Neutre (sur le thread STA) Même appartement que le client
Neutre (sur le thread MTA) Hôte STA

 

COM peut également créer un appartement multithread hôte (MTA). Si un client dans un appartement à thread unique demande un serveur in-process dont le modèle de threading est Gratuit lorsqu’il n’y a pas d’assistant MTA dans le processus, COM crée un MTA hôte et charge le serveur dans celui-ci.

Pour un serveur in-process 32 bits, leInprocHandler32, InprocServer, InprocServer32et clés de insère doivent être inscrites. L’entrée inprocServer n’est nécessaire que pour la compatibilité descendante. S’il est manquant, la classe fonctionne toujours, mais elle ne peut pas être chargée dans des applications 16 bits.

Si un conteneur recherche le Registre pour un serveur in-process, la version 16 bits a la priorité avec un conteneur 16 bits et la version 32 bits a la priorité avec un conteneur 32 bits.

InprocServer