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 de 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 monothread
Les deux Appartement à thread unique ou multithread
Free 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é l’appartement monothread principal (STA). Si le premier STA dans 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 un sta hôte si un serveur in-process doit être chargé nécessite une sta, mais qu’il n’existe actuellement pas de 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’appartement est exécuté dans
<\not spécifié> STA principal
Les deux Même appartement que le client
Free Appartement multithread
Neutre Appartement neutre

 

Si le modèle de thread du serveur est Apartment, l’appartement dans lequel le serveur est chargé dépend de l’appartement dans lequel le client s’exécute, comme indiqué dans le tableau suivant.

Le client d’appartement est exécuté dans Le serveur d’appartement 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, les clés InprocHandler32, InprocServer, InprocServer32 et Insertable doivent être inscrites. L’entrée InprocServer est nécessaire uniquement pour la compatibilité descendante. S’il manque, 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