Konteks Aktivasi

Konteks aktivasi adalah struktur data dalam memori yang berisi informasi yang dapat digunakan sistem untuk mengalihkan aplikasi untuk memuat versi DLL tertentu, instans objek COM, atau versi jendela kustom. Satu bagian dari konteks aktivasi mungkin berisi informasi pengalihan DLL yang digunakan oleh pemuat DLL; bagian lain mungkin berisi informasi server COM. Fungsi konteks aktivasi menggunakan, membuat, mengaktifkan, dan menonaktifkan konteks aktivasi. Fungsi aktivasi dapat mengalihkan pengikatan aplikasi ke objek bernama versi yang menentukan versi DLL, kelas jendela, server COM, pustaka jenis, dan antarmuka tertentu. Untuk informasi selengkapnya tentang fungsi dan struktur konteks aktivasi, lihat Referensi Konteks Aktivasi.

Dimulai dengan Windows XP, fungsi konteks aktivasi memungkinkan Windows menggunakan informasi dalam manifes untuk membuat objek bernama versi. Jika aplikasi membuat proses dengan memanggil CreateProcess, Windows memeriksa keberadaan manifes aplikasi. Jika manifes ada, Windows menggunakan informasi dalam manifes untuk mengisi konteks aktivasi. Karena manifes menjelaskan ketergantungan aplikasi pada versi rakitan berdampingan, objek yang ditentukan tanpa versi dalam manifes dipetakan ke objek bernama versi. Misalnya, manifes dapat menjelaskan DLL, file, kelas jendela, server COM, pustaka jenis, dan antarmuka.

Ketika objek global dibuat dalam konteks aktivasi, sistem secara otomatis memberi objek nama khusus versi dengan berkonsultasi dengan manifes. Ketika aplikasi menjalankan dan meminta objek bernama, aplikasi mendapatkan objek bernama versi. Ini memungkinkan beberapa versi modul kode berjalan pada sistem secara bersamaan tanpa mengganggu satu sama lain. Misalnya, Windows Shell menggunakan manifes untuk menjelaskan dependensi pada COMCTL32 versi 6.0 dan untuk membuat versi kelas jendela.

Jika aplikasi membuat sumber daya dengan memanggil CreateWindow, proses menentukan nama kelas ke fungsi tersebut. Panggilan ke GetCurrentActCtx mendapatkan konteks aktivasi saat ini dan memeriksa untuk melihat apakah pemetaan ada untuk nama kelas yang diberikan. Jika ada pemetaan, pemetaan akan menggunakan versi proses panggilan tersebut untuk menyelesaikan pemetaan dan memberikan nama kelas khusus versi. Windows membuat jendela dengan prosedur jendela, gaya, dan atribut lain yang terkait dengan nama dan versi kelas tersebut.

Konteks aktivasi dikelola oleh sistem dalam banyak kasus. Pengembang aplikasi dan penyedia perakitan biasanya tidak perlu melakukan panggilan ke tumpukan. Aplikasi dapat mengelola konteks aktivasi dengan langsung memanggil konteks aktivasi. Untuk informasi selengkapnya, lihat Menggunakan API Konteks Aktivasi.