2.2.2.3.1 ThreadingModelEnumerationProperty

The ThreadingModelEnumerationProperty type represents how the hosting model is to be selected for component instances.

Simple type: eDT_ULONG

Validity: MUST be one of the following values.

Value

Meaning

eTM_APARTMENT

0x00000000

Each component instance is to be STA-hosted. The STA thread used to host the component instance is to be selected as follows:

If an instantiation request originates from an STA thread in the same process in which the component is to be instantiated, the component instance is to be hosted on that thread.

Otherwise, the ORB is to select an existing STA thread or create a new STA thread to host the component instance according to some ORB-specific criteria.<14>

eTM_FREE

0x00000001

Each component instance is to be MTA-hosted. If no MTA threads exist in the process in which the component is to be instantiated at the time of the instantiation request, the ORB is to create at least one MTA thread.

eTM_MAIN

0x00000002

Each component instance is to be STA-hosted in the Main STA thread. If no STA threads exist in the process in which the component is to be instantiated at the time of the instantiation request, the ORB is to create one STA thread and designate it the Main STA thread.

eTM_BOTH

0x00000003

Each component instance is to be either STA-hosted or MTA-hosted, according to the following criteria:

If an instantiation request originates from an STA thread in the same process in which the component is to be instantiated, the component instance is to be STA-hosted on that thread.

If an instantiation request originates from an MTA thread in the same process in which the component is to be instantiated, the component instance is to be MTA-hosted.

If an instantiation request does not originate from within the process in which the component is to be instantiated, the component instance is to be MTA-hosted. If no MTA threads exist in the process at the time of the instantiation request, the ORB is to create at least one MTA thread.

eTM_NEUTRAL

0x00000004

Component instances are to be neutrally hosted.

Server validation: No validation requirements (COMA does not provide a mechanism for writing properties of this type).

Client validation: No validation requirements (COMA does not provide a mechanism for writing properties of this type).