com4:Class

Gibt Eigenschaften einer CLSID an, die vom Paket registriert ist und von einer oder mehreren konkreten Registrierungen der CLSID für verschiedene Klassenkontexte freigegeben werden kann. Betrachten Sie beispielsweise einen ExeServer, der die Out-of-Process-Aktivierung (CLSCTX_LOCAL_SERVER) unterstützt, und einen entsprechenden Prozesshandler (CLSCTX_INPROC_HANDLER). An sich registriert das com4:Class-Element keine CLSID für die Aktivierung, kann jedoch durch Elemente wie eine ExeServer-Klassenreferenz/oder eineInProcessHandler-Klasse/Class ClassReference referenziert werden. In diesem Fall ersetzen seine Attribute die Attribute, die andernfalls direkt in einem ExeServer/Class- oder InProcessHandler/Class-Element angegeben werden könnten. Diese Syntax ist optional für CLSIDs, die für einen einzelnen Klassenkontext registriert sind, ist jedoch erforderlich, um dieselbe CLSID für mehrere Klassenkontexte zu registrieren, da die Manifestüberprüfung erfordert, dass das Id-Attribut für alle Elemente der Klasse, ExeServer/Klasse, InProcessHandler/Class usw. im Manifest eindeutig ist.

Elementhierarchie

<Paket>

    <Anwendungen>

         <Anwendung>

              <Erweiterungen>

                   <com4:Class>

Syntax

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

Attribute und Elemente

Attribute

attribute BESCHREIBUNG Datentyp Erforderlich Standardwert
ProgId Ordnet einen programmgesteuerten Bezeichner (ProgID) einer CLSID zu. Eine durch einen Punkt getrennte alphanumerische Zeichenfolge mit einem Wert zwischen 1 und 255 Zeichen (z. B. Foo.Bar oder Foo.Bar.1). No
VersionIndependentProgId Ordnet eine ProgID einer CLSID zu. Dieser Wert wird verwendet, um die neueste Version einer Objektanwendung zu ermitteln. Eine durch einen Punkt getrennte alphanumerische Zeichenfolge mit einem Wert zwischen 1 und 255 Zeichen (z. B. Foo.Bar oder Foo.Bar.1). No
AutoConvertTo Gibt die automatische Konvertierung einer bestimmten Klasse von Objekten in eine neue Klasse von Objekten an. Eine GUID im Format xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. No
InsertableObject Gibt an, dass diese Klasse einfügebar ist. Ein boolescher Wert. No
ShortDisplayName Eine kurze Version des Klassenanzeigenamens. Eine Zeichenfolge mit einem Wert zwischen 1 und 40 Zeichen Länge. No
Id Das Id-Attribut entspricht der CLSID (HKCR\CLSID{MyGuid}). Eine GUID im Format xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Yes
DisplayName Der Anzeigename der Klasse. Eine Zeichenfolge mit einem Wert zwischen 1 und 256 Zeichen Länge. Diese Zeichenfolge kann lokalisiert werden. No

Untergeordnete Elemente

Untergeordnetes Element Beschreibung
ImplementiertCategories Gibt Kategorien an, die von der -Klasse implementiert werden.
Konvertierung Gibt die Formate an, die eine Anwendung lesen und schreiben kann.
Dataformats Gibt die standard- und Standard Datenformate an, die von einer Anwendung unterstützt werden.
MiscStatus Gibt an, wie ein Objekt erstellt und angezeigt wird.
Verben Gibt die Verben an, die für eine Anwendung registriert werden sollen.
DefaultIcon Stellt Standardsymbolinformationen für ikonische Präsentationen von Objekten bereit.
ToolboxBitmap32 Gibt den Modulnamen und die Ressourcen-ID für eine Bitmap von 16 x 16 an, die für das Gesicht einer Symbolleiste oder Toolboxschaltfläche verwendet werden soll.
TypeLib Eine Typbibliothek für eine Klasse oder Schnittstelle.

Übergeordnete Elemente

Übergeordnetes Element BESCHREIBUNG
Erweiterungen Definiert einen oder mehrere Erweiterbarkeitspunkte für die App.

Hinweise

Der CLSID-Schlüssel im COM-Registrierungslayout unterstützt zwei Kategorien von Registrierungsinformationen für eine CLSID:

  • Details zur Aktivierung für einen bestimmten Klassenkontext. Beispielsweise ein LocalServer32-Unterschlüssel für die outofproc-Aktivierung (CLSCTX_LOCAL_SERVER), ein InprocHandler32-Unterschlüssel für die Aktivierung eines inproc-Handlers (CLSCTX_INPROC_HANDLER) oder ein InprocServer32-Unterschlüssel für die inproc-Aktivierung (CLSCTX_INPROC_SERVER). Dieselbe CLSID kann Registrierungen für eine beliebige Kombination dieser Klassenkontexte aufweisen, und die Aktivierungsdetails für jeden werden unabhängig in den entsprechenden Unterschlüsseln angegeben.
  • Informationen zur CLSID, die von Klassenkontexten gemeinsam genutzt wird. Beispielsweise werden Eigenschaften eines OLE-Servers, der in OLE-Szenarien verwendet wird, der Satz von Komponentenkategorien, die von der CLSID implementiert werden usw., über andere Unterschlüssel des CLSID-Schlüssels bereitgestellt, und wenn Aktivierungsdetails für mehrere Klassenkontexte bereitgestellt werden, sind diese Eigenschaften semantisch der CLSID zugeordnet, nicht einem bestimmten Klassenkontext.

Die Attribute eines com4:Class-Elements der obersten Ebene entsprechen den Informationen in einem CLSID-Schlüssel, der von Klassenkontexten gemeinsam genutzt wird. Wenn ein Paket die Aktivierung einer CLSID für einen einzelnen Klassenkontext unterstützt, ist die Verwendung des Class-Elements der obersten Ebene optional. Diese Attribute können alternativ direkt im geschachtelten Class-Element (z. B. ExeServer/Class) angegeben werden, das die Aktivierungsdetails bereitstellt. Das COM-Registrierungslayout bietet jedoch keine Möglichkeit, diese Eigenschaften unabhängig für verschiedene Klassenkontexte anzugeben, und die APIs, die diese Eigenschaften abfragen, ermöglichen es dem Aufrufer nicht, einen Klassenkontext anzugeben. Um diesen Aspekt des COM-Klassenregistrierungsmodells widerzuspiegeln, ermöglicht die Manifestsyntax diese Eigenschaften nur einmal für eine CLSID anzugeben, indem die Eindeutigkeit des Id-Attributs für elemente der obersten und geschachtelten Klasse erzwungen wird. So registrieren Sie mehrere Klassenkontexte für eine CLSID in einem Paketmanifest:

  • Freigegebene Eigenschaften müssen als Attribute eines Class-Elements der obersten Ebene bereitgestellt werden.
  • Klassenspezifische Kontextaktivierungsdetails müssen in geschachtelten ClassReference-Elementen bereitgestellt werden, z. B. ExeServer Class/ClassReference und InProcessHandler Class/ClassReference für eine CLSID, die die outofc-Aktivierung und einen inproc-Handler unterstützt. Das Id-Attribut des ClassReference-Elements verweist auf das Class-Element der obersten Ebene, das die freigegebenen Eigenschaften enthält.

Beispiel

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

Anforderungen

Element Wert
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (Build 20348)