com:Interface (descendant of com:Extension)

Registers new COM Interfaces.

Element hierarchy

<Package>

    <Applications>

         <Application>

              <Extensions>

                   <com:Extension>

                        <com:ComInterface>

                             <com:Interface>

    <Extensions>

         <com:Extension>

              <com:ComInterface>

                   <com:Interface>

Syntax

<com:Interface
    Id = '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).'
    UseUniversalMarshaler = 'An optional boolean value.'
    ProxyStubClsid = 'An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
    SynchronousInterface = 'An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
    AsynchronousInterface = 'An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' >

  <!-- Child elements -->
  TypeLib?

</com:Interface>

Key

?   optional (zero or one)

Attributes and elements

Attributes

Attribute Description Data type Required Default value
Id An interface Id (IID). An alphanumeric string separated by a period between 1 and 255 characters in length (for example, Foo.Bar or Foo.Bar.1). Yes
UseUniversalMarshaler Set this to true to use the OLE Universal Marshaler as the proxy stub. An optional boolean value. No
ProxyStubClsid Corresponds to the ProxyStubClsid32 registry value. An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. No
SynchronousInterface The Id of another interface registration containing AsynchronousInterface that references this registration. The other interface must be in the same comInterface extension. An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. No
AsynchronousInterface The Id of another interface registration containing SynchronousInterface that references this registration. The other interface must be in the same comInterface extension. An optional GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. No

Child elements

Child element Description
com:TypeLib A type library for an interface.

Parent elements

Parent element Description
com:ComInterface Declares a package extension point of type windows.comInterface. The comInterface extension may include three types of registrations: Interface, ProxyStub, or TypeLib.

Remarks

The ProxyStubClsid attribute must reference the Id of a ProxyStub in the same comInterface extension. ProxyStubClsid can only be used for proxy stubs with an implementation as part of the package. To use the OLE Universal Marshaler as the proxy stub, use UseUniversalMarshaler instead.

If UseUniversalMarshaler is true, the Interface registration must include TypeLib.

Note

ProxyStubClsid and UseUniversalMarshaler are mutually exclusive.

Requirements

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