com4:Class
Menentukan properti CLSID yang didaftarkan oleh paket yang dapat dibagikan oleh satu atau beberapa pendaftaran konkret CLSID untuk konteks kelas yang berbeda. Misalnya, pertimbangkan ExeServer yang mendukung aktivasi di luar proses (CLSCTX_LOCAL_SERVER) dan handler dalam proses yang sesuai (CLSCTX_INPROC_HANDLER). Dengan sendirinya, elemen com4:Class tidak mendaftarkan CLSID untuk aktivasi, tetapi dapat direferensikan oleh elemen seperti ExeServer ClassClassReference/ atau InProcessHandlerClassReference/, dalam hal ini atributnya menggantikan atribut yang dapat ditentukan secara langsung dalam elemen ExeServer/Class atau InProcessHandler/Class. Sintaks ini bersifat opsional untuk CLSID yang terdaftar untuk satu konteks kelas, tetapi diperlukan untuk mendaftarkan CLSID yang sama untuk beberapa konteks kelas karena validasi manifes mengharuskan atribut Id unik di antara semua elemen Class, ExeServer/Class, InProcessHandler/Class, dll., dalam manifes.
Hierarki elemen
<com4:Class>
Sintaks
<com4:Class
ProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
VersionIndependentProgId = 'An alphanumeric string separated by a period with a value between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1).'
AutoConvertTo = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
InsertableObject = 'A boolean value.'
ShortDisplayName = 'A string with a value between 1 and 40 characters in length.'
Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.' >
<!-- Child elements -->
ImplementedCategories
Conversion
DataFormats
MiscStatus
Verbs
DefaultIcon
ToolboxBitmap32
TypeLib
</com4:Class>
Atribut dan elemen
Atribut
Atribut | Deskripsi | Jenis Data | Diperlukan | Nilai default |
---|---|---|---|---|
ProgId | Mengaitkan pengidentifikasi terprogram (ProgID) dengan CLSID. | String alfanumerik dipisahkan oleh titik dengan nilai antara 1 dan 255 karakter (misalnya, Foo.Bar atau Foo.Bar.1). | Tidak | |
VersionIndependentProgId | Mengaitkan ProgID dengan CLSID. Nilai ini digunakan untuk menentukan versi terbaru aplikasi objek. | String alfanumerik dipisahkan oleh titik dengan nilai antara 1 dan 255 karakter (misalnya, Foo.Bar atau Foo.Bar.1). | Tidak | |
AutoConvertTo | Menentukan konversi otomatis dari kelas objek tertentu ke kelas objek baru. | GUID dalam bentuk xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx. | Tidak | |
InsertableObject | Menunjukkan bahwa kelas ini dapat disisipkan. | Nilai boolean. | Tidak | |
ShortDisplayName | Versi pendek dari nama tampilan kelas. | String dengan panjang nilai antara 1 dan 40 karakter. | Tidak | |
Id | Atribut Id sesuai dengan CLSID (HKCR\CLSID{MyGuid}). | GUID dalam bentuk xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx. | Ya | |
DisplayName | Nama tampilan kelas. | String dengan panjang nilai antara 1 dan 256 karakter. String ini dapat dilokalkan. | Tidak |
Elemen anak
elemen anak | Deskripsi |
---|---|
ImplementedCategories | Menentukan kategori yang diterapkan oleh kelas . |
Konversi | Menentukan format yang dapat dibaca dan ditulis aplikasi. |
DataFormats | Menentukan format data default dan utama yang didukung oleh aplikasi. |
MiscStatus | Menentukan cara membuat dan menampilkan objek. |
Kata kerja | Menentukan kata kerja yang akan didaftarkan untuk aplikasi. |
DefaultIcon | Menyediakan informasi ikon default untuk presentasi objek yang ikonik. |
Kotak AlatBitmap32 | Mengidentifikasi nama modul dan ID sumber daya untuk bitmap 16 x 16 yang akan digunakan untuk wajah tombol toolbar atau kotak alat. |
TypeLib | Pustaka jenis untuk kelas atau antarmuka. |
Elemen induk
elemen induk | Deskripsi |
---|---|
Ekstensi | Menentukan satu atau beberapa titik ekstensibilitas untuk aplikasi. |
Keterangan
Kunci CLSID dalam tata letak registri COM mendukung dua kategori informasi pendaftaran untuk CLSID:
- Detail aktivasi untuk konteks kelas tertentu. Misalnya, subkunci LocalServer32 untuk aktivasi outofproc (CLSCTX_LOCAL_SERVER), subkunci InprocHandler32 untuk aktivasi handler inproc (CLSCTX_INPROC_HANDLER), atau subkunci InprocServer32 untuk aktivasi inproc (CLSCTX_INPROC_SERVER). CLSID yang sama dapat memiliki pendaftaran untuk kombinasi konteks kelas ini, dan detail aktivasi untuk masing-masing ditentukan secara independen dalam subkunci yang sesuai.
- Informasi tentang CLSID yang dibagikan antar konteks kelas. Misalnya, properti server OLE yang digunakan dalam skenario OLE, kumpulan kategori komponen yang diterapkan oleh CLSID, dll., disediakan melalui subkunci lain dari kunci CLSID, dan jika detail aktivasi disediakan untuk beberapa konteks kelas properti ini secara semantik terkait dengan CLSID, bukan dengan konteks kelas tertentu.
Atribut elemen com4:Class tingkat atas sesuai dengan informasi dalam kunci CLSID yang dibagikan di antara konteks kelas. Jika paket mendukung aktivasi CLSID untuk konteks kelas tunggal, penggunaan elemen Kelas tingkat atas bersifat opsional dan atribut ini dapat ditentukan secara langsung di elemen Kelas berlapis (misalnya ExeServer/Class) yang memberikan detail aktivasinya. Namun, tata letak registri COM tidak menyediakan cara untuk menentukan properti ini secara independen untuk konteks kelas yang berbeda, dan API yang mengkueri properti ini tidak memungkinkan pemanggil untuk menentukan konteks kelas. Untuk mencerminkan aspek model pendaftaran kelas COM ini, sintaks manifes hanya memungkinkan properti ini ditentukan sekali untuk CLSID, diberlakukan dengan memerlukan keunikan atribut Id untuk elemen Kelas tingkat atas dan berlapis. Oleh karena itu, untuk mendaftarkan beberapa konteks kelas untuk CLSID dalam manifes paket:
- Properti bersama harus disediakan sebagai atribut elemen Kelas tingkat atas.
- Detail aktivasi konteks per kelas harus disediakan dalam elemen ClassReference berlapis, misalnya ExeServerClassReference/ dan InProcessHandlerClassReference/ untuk CLSID yang mendukung aktivasi outofproc dan handler inproc. Atribut Id dari elemen ClassReference mereferensikan elemen Kelas tingkat atas yang berisi properti bersama.
Contoh
<com4:Extension Category="windows.comServer">
...
<!-- Example of a CLSID that has both aan inproc server and an exe server implementation, using top level Claass and ClassReference -->
<com4:Class Id="10000000-0000-0000-0000-000000000009" DisplayName="CLSID_FOO3"/>
<com4:ExeServer Executable="MyServer.exe" DisplayName="My Server">
<com4:ClassReference Id="10000000-0000-0000-0000-000000000009" />
</com4:ExeServer>
<com4:InProcessServer Path="MyServer.dll">
<com4:ClassReference Id="10000000-0000-0000-0000-000000000009" ThreadingModel="Both"/>
</com4:InProcessServer>
...
</com4:Extension>
Persyaratan
Item | Nilai |
---|---|
Ruang nama | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Versi OS Minimum | Windows 10 (Build 20348) |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk