Bagikan melalui


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.

InprocServer