com4:InProcessServerClassReference

Указывает ссылку на класс или класс, с которой связан зарегистрированный внутрипроцессный сервер, и задает сведения о регистрации.

Иерархия элементов

<Пакет>

    <Приложения>

         <Приложение>

              <Расширения>

                   <com4:SurrogateServer>

                        <com4:InProcessServerClassReference>

Синтаксис

<com4:InProcessServerClassReference
  EnableOleDefaultHandler = 'A boolean value.'
  Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' />

Элементы и атрибуты

Атрибуты

Атрибут Описание Тип данных Обязательно Значение по умолчанию
EnableOleDefaultHandler Это значение должно иметь значение true, если значение по умолчанию для ключа InprocHandler32Ole32.dll. В противном случае его следует опустить. Логическое значение. Да Неверно
Id Идентификатор класса , на который ссылается ссылка. GUID в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx. Да

Дочерние элементы

Отсутствует.

Родительские элементы

Родительский элемент Описание
com4:SurrogateServer Регистрирует SurrogateServer с одной или несколькими регистрациями классов.

Комментарии

Ключ CLSID](/windows/win32/com/clsid-key-hklm) в макете реестра COM позволяет зарегистрировать CLSID для активации inproc (CLSCTX_INPROC_SERVER) и для активации outofproc на суррогатном сервере (CLSCTX_LOCAL_SERVER), указав:

  • Сведения об активации Inproc в подразделе InprocServer32 .
  • Ссылка на ключ AppID через значение AppID ключа CLSID, где ключ AppID задает суррогат через значение DllSurrogate . Обратите внимание, что для активации outofproc на суррогатном сервере сведения о регистрации inproc-сервера, например путь dll и ThreadingModel, также используются при активации outofproc. Дочерний элемент ClassReference элемента InProcessServer позволяет пакету, который регистрирует CLSID для активации inproc и outofproc, чтобы указать сведения о сервере inproc один раз в качестве элемента InProcessServer/Class или InProcessServer/ClassReference , и ссылаться на этот элемент из SurrogateServer, поддерживающего активацию clSID outofproc. Эта структура регистраций inproc/outofproc более точно отражает макет реестра COM, чем независимое указание пути DLL и ThreadingModel в элементах InProcessServer/ClassReference и SurrogateServer/ClassReference.

При упаковке приложения с CLSID, зарегистрированным для активации outofproc на суррогатном сервере, обычно рекомендуется регистрировать в манифесте только суррогатный сервер. Например, суррогатные регистрации часто используются для поддержки точек расширения на основе COM, которые исторически поддерживали реализации inproc-сервера, но теперь рекомендуют регистрацию сервера outofproc в качестве рекомендации для изоляции. Для упакованных приложений существуют дополнительные функциональные ограничения для серверов inproc (дополнительные сведения см. в разделе In-ProcessServers ), тогда как любой пакет с ограниченной возможностью runFullTrust может успешно зарегистрировать суррогатный сервер, а для большинства точек расширения, регистрирующих суррогатный сервер, достаточно, чтобы включить функциональные возможности расширения. Однако если упаковаированному приложению требуется поддержка инпрок-активации своих идентификаторов CLSID для совместимости с другими приложениями, которые запрашивают активацию inproc (CLSCTX_INPROC_SERVER), и удовлетворяет требованиям для регистрации сервера inproc, оно может зарегистрировать CLSID для активации inproc и outofproc активации в суррогате. В этом случае рекомендуется указать сведения о сервере inproc в элементе InProcessServer/Class или InProcessServer/ClassReference и ссылаться на них из элемента SurrogateServer/InProcessServerClassReference .

Примеры

В следующем примере показано использование InProcessServerClassreference для ссылки на класс в регистрации суррогатного сервера.

<com4:Class Id="d57899b9-1334-4600-904a-719df0512988" DisplayName="CLSID_Baz"/> 
<com4:InProcessServer Path="MyServer.dll"> 
  <com4:ClassReference Id="d57899b9-1334-4600-904a-719df0512988" ThreadingModel="Apartment"/> 
</com4:InProcessServer> 
<com:SurrogateServer DisplayName="My surrogate server"> 
  <com4:InProcessServerClassReference Id="d57899b9-1334-4600-904a-719df0512988"/> 
</com:SurrogateServer> 

Требования

Элемент Значение
Пространство имен http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10 (сборка 20348)