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

<Paket>

    <Aplikasi>

         <Aplikasi>

              <Ekstensi>

                   <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)