InprocServer32
Mendaftarkan server dalam proses 32-bit dan menentukan model utas apartemen yang dapat dijalankan server.
Entri Registri
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Keterangan
ThreadingModel adalah nilai REG_SZ yang menentukan model utas. Nilai yang mungkin diperlihatkan dalam tabel berikut.
Nilai | Deskripsi |
---|---|
Apartemen | Apartemen berulir tunggal |
Keduanya | Apartemen berulir tunggal atau multithreaded |
Gratis | Apartemen multithreaded |
netral | Apartemen netral |
Anda harus menggunakan nilai yang sama untuk setiap objek yang disediakan oleh server dalam proses.
Jika ThreadingModel tidak ada atau tidak diatur ke nilai, server dimuat ke apartemen pertama yang diinisialisasi dalam proses. Apartemen ini terkadang disebut sebagai apartemen utama beralur tunggal (STA). Jika STA pertama dalam proses diinisialisasi oleh COM, daripada dengan panggilan eksplisit ke CoInitialize atau CoInitializeEx, itu disebut STA host. Misalnya, COM membuat STA host jika server dalam proses yang akan dimuat memerlukan STA tetapi saat ini tidak ada STA dalam proses.
Jika memungkinkan, server dalam proses dimuat di apartemen yang sama dengan klien yang memuatnya. Jika model utas apartemen klien tidak kompatibel dengan model yang ditentukan, server dimuat seperti yang ditunjukkan dalam tabel berikut.
Model threading server | Server apartemen dijalankan di |
---|---|
<\tidak ditentukan> | STA Utama |
Keduanya | Apartemen yang sama dengan klien |
Gratis | Apartemen multithreaded |
netral | Apartemen netral |
Jika model utas server adalah Apartemen, apartemen tempat server dimuat tergantung pada apartemen tempat klien berjalan, seperti yang ditunjukkan dalam tabel berikut.
Klien apartemen dijalankan di | Server apartemen dijalankan di |
---|---|
Multithreaded | Host STA |
Netral (pada utas STA) | Apartemen yang sama dengan klien |
Netral (pada utas MTA) | Host STA |
COM juga dapat membuat apartemen multithreaded host (MTA). Jika klien dalam apartemen berulir tunggal meminta server dalam proses yang model utasnya Gratis ketika tidak ada MTA dalam proses, COM membuat MTA host dan memuat server ke dalamnya.
Untuk server dalam proses 32-bit, kunci InprocHandler32, InprocServer, InprocServer32, dan Insertable harus didaftarkan. Entri InprocServer hanya diperlukan untuk kompatibilitas mundur. Jika hilang, kelas masih berfungsi tetapi tidak dapat dimuat dalam aplikasi 16-bit.
Jika kontainer mencari registri untuk server dalam proses, versi 16-bit memiliki prioritas dengan kontainer 16-bit dan versi 32-bit memiliki prioritas dengan kontainer 32-bit.
Topik terkait