InprocServer32
Registra un servidor en proceso de 32 bits y especifica el modelo de subproceso del apartamento en el que se puede ejecutar el servidor.
Entrada del Registro
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Comentarios
ThreadingModel es un valor de REG_SZ que especifica el modelo de subprocesos. Los valores posibles se muestran en la tabla siguiente.
Valor | Descripción |
---|---|
Apartment | Apartamento de un solo subproceso |
Ambos | Apartamento multiproceso o multiproceso |
Gratuito | Apartamento multiproceso |
Neutra | Apartamento neutro |
Debe usar el mismo valor para cada objeto proporcionado por el servidor en proceso.
Si ThreadingModel no está presente o no está establecido en un valor, el servidor se carga en el primer apartamento que se inicializó en el proceso. Este apartamento se conoce a veces como el apartamento principal de un solo subproceso (STA). Si COM inicializa el primer STA de un proceso, en lugar de mediante una llamada explícita a CoInitialize o CoInitializeEx, se denomina STA del host. Por ejemplo, COM crea un STA de host si un servidor en proceso que se va a cargar requiere un STA, pero actualmente no hay ningún STA en el proceso.
Siempre que sea posible, el servidor en proceso se carga en el mismo apartamento que el cliente que lo carga. Si el modelo de subprocesos del apartamento de cliente no es compatible con el modelo especificado, el servidor se carga como se indica en la tabla siguiente.
Modelo de subprocesos del servidor | El servidor de apartamentos se ejecuta en |
---|---|
<\nespecificado> | STA principal |
Ambos | Mismo apartamento que el cliente |
Gratuito | Apartamento multiproceso |
Neutra | Apartamento neutro |
Si el modelo de subprocesos del servidor es Apartment, el apartamento en el que se carga el servidor depende del apartamento en el que se ejecuta el cliente, como se indica en la tabla siguiente.
El cliente de apartamento se ejecuta en | El servidor de apartamentos se ejecuta en |
---|---|
Multiproceso | Host STA |
Neutro (en subproceso STA) | Mismo apartamento que el cliente |
Neutro (en subproceso MTA) | Host STA |
COM también puede crear un apartamento multiproceso de host (MTA). Si un cliente de un apartamento de un solo subproceso solicita un servidor en proceso cuyo modelo de subprocesos es Gratis cuando no hay MTA en el proceso, COM crea un MTA de host y carga el servidor en él.
Para un servidor en proceso de 32 bits, las claves InprocHandler32, InprocServer, InprocServer32 e Insertable deben estar registradas . La entrada InprocServer solo es necesaria para la compatibilidad con versiones anteriores. Si falta, la clase sigue funcionando, pero no se puede cargar en aplicaciones de 16 bits.
Si un contenedor busca en el registro un servidor en proceso, la versión de 16 bits tiene prioridad con un contenedor de 16 bits y la versión de 32 bits tiene prioridad con un contenedor de 32 bits.
Temas relacionados