Edit

com:Class (in SurrogateServer)

Defines a SurrogateServer class registration.

Element hierarchy

<Package>
   └─ <Extensions>
      └─ <com:Extension>
         └─ <com:ComServer>
            └─ <com:SurrogateServer>
               └─ <com:Class>
   └─ <Applications>
      └─ <Application>
         └─ <Extensions>
            └─ <com:Extension>
               └─ <com:ComServer>
                  └─ <com:SurrogateServer>
                     └─ <com:Class>

Syntax

<com:Class
  Path = 'A required string between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *.'
  ThreadingModel = 'A required string that can have one of the following values: "Both", "STA", "MTA", "MainSTA", or "Neutral".'
  EnableOleDefaultHandler = 'An optional boolean value.'
  ProgId = 'An optional alphanumeric string separated by a period between 1 and 255 characters in length, e.g. Foo.Bar or Foo.Bar.1'
  VersionIndependentProgId = 'An optional alphanumeric string separated by a period between 1 and 255 characters in length, e.g. Foo.Bar or Foo.Bar.1'
  AutoConvertTo = 'An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  InsertableObject = 'An optional boolean value.'
  ShortDisplayName = 'An optional string between 1 and 40 characters in length.'
  Id = 'A required GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  DisplayName = 'An optional string between 1 and 256 characters in length. This string is localizable.' >

  <!-- Child elements -->
  com:ImplementedCategories?
  com:Conversion?
  com:DataFormats?
  com:MiscStatus?
  com:Verbs?
  com:DefaultIcon?
  com:ToolboxBitmap32?

</com:Class>

Key

? optional (zero or one)

Attributes

Attribute Description Data type Required Default value
Path The full path to the surrogate class DLL. A string between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *. Yes
ThreadingModel The threading model for loading DLLs. A string that can have one of the following values: Both, STA, MTA, MainSTA, Neutral. Yes
EnableOleDefaultHandler This should be set to true if the default value of the InprocHandler32 key is "Ole32.dll". Otherwise it should be omitted. The default value is false. An optional boolean value. No
ProgId Associates a programmatic identifier (ProgID) with a CLSID. An optional alphanumeric string separated by a period between 1 and 255 characters in length, e.g. Foo.Bar or Foo.Bar.1 No
VersionIndependentProgId Associates a ProgID with a CLSID. This value is used to determine the latest version of an object application. An optional alphanumeric string separated by a period between 1 and 255 characters in length, e.g. Foo.Bar or Foo.Bar.1 No
AutoConvertTo Specifies the automatic conversion of a given class of objects to a new class of objects. An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. No
InsertableObject Indicates that this class is insertable. An optional boolean value. No
ShortDisplayName A short version of the class display name. An optional string between 1 and 40 characters in length. No
Id The Id attribute corresponds to the CLSID. A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Yes
DisplayName A localizable string corresponding to the default value of the CLSID's key. An optional string between 1 and 256 characters in length. This string is localizable. No

Child elements

Child element Description
com:ImplementedCategories Specifies categories implemented by the class.
com:Conversion Specifies the formats an application can read and write.
com:DataFormats Specifies the default and main data formats supported by an application.
com:MiscStatus Specifies how to create and display an object.
com:Verbs Specifies the verbs to be registered for an application.
com:DefaultIcon Provides default icon information for iconic presentations of objects.
com:ToolboxBitmap32 Identifies the module name and resource ID for a 16 x 16 bitmap to use for the face of a toolbar or toolbox button.

Parent elements

Parent element Description
com:SurrogateServer Registers a SurrogateServer with one or many class registrations.

Requirements

Item Value
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10
Minimum OS Version Windows 10 version 1703 (Build 15063)

Remarks

Class registrations with the same AppId should share a SurrogateServer, unless they need to be registered under different Applications/Application manifest elements.

The ThreadingModel corresponds to the InprocServer32 threading model. SurrogateServer class registrations should have an InprocServer32 registration in the package's private hive.

Examples