Fungsi CoReleaseServerProcess (combaseapi.h)

Mengurangi jumlah referensi per proses global.

Sintaks

ULONG CoReleaseServerProcess();

Mengembalikan nilai

Jika aplikasi server harus memulai pembersihannya, fungsi mengembalikan 0; jika tidak, fungsi mengembalikan nilai bukan nol.

Keterangan

Server dapat memanggil CoReleaseServerProcess untuk mengurangi jumlah referensi per proses global yang bertambah melalui panggilan ke CoAddRefServerProcess.

Ketika jumlah itu mencapai nol, OLE secara otomatis memanggil CoSuspendClassObjects, yang mencegah permintaan aktivasi baru masuk. Ini memungkinkan server untuk membatalkan pendaftaran objek kelasnya dari berbagai utasnya tanpa khawatir permintaan aktivasi lain mungkin masuk. Permintaan aktivasi baru menghasilkan peluncuran instans baru dari proses server lokal.

Cara paling sederhana bagi aplikasi server lokal untuk menggunakan fungsi-fungsi ini adalah dengan memanggil CoAddRefServerProcess di konstruktor untuk setiap objek instansnya, dan di setiap metode IClassFactory::LockServer saat parameter fLockTRUE. Aplikasi server juga harus memanggil CoReleaseServerProcess di destruktor setiap objek instansnya, dan di setiap metode IClassFactory::LockServer ketika parameter fLockFALSE. Akhirnya, aplikasi server harus memeriksa kode pengembalian dari CoReleaseServerProcess; jika mengembalikan 0, aplikasi server harus memulai pembersihannya. Ini biasanya berarti bahwa server dengan beberapa utas harus menandakan berbagai utasnya untuk keluar dari perulangan pesan mereka dan memanggil CoRevokeClassObject dan CoUninitialize.

Jika API ini digunakan sama sekali, API tersebut harus dipanggil dalam instans objek dan metode LockServer , jika tidak, aplikasi server mungkin dimatikan sebelum waktunya. Server dalam proses biasanya tidak boleh memanggil CoAddRefServerProcess atau CoReleaseServerProcess.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header combaseapi.h (termasuk Objbase.h)
Pustaka Ole32.lib
DLL Ole32.dll

Lihat juga

CoAddRefServerProcess

CoSuspendClassObjects

IClassFactory::LockServer

Pembantu Implementasi Server Di Luar Proses