Поделиться через


com4:InProcessServerClassReference

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

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

пакета

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

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

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

                    <com4:SurrogateServer>

                         <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, если значение по умолчанию ключа inprocHandler32 равно Ole32.dll. В противном случае он должен быть опущен. Логическое значение. Да Ложный
идентификатора Идентификатор класса . GUID в форме xxxx-xxxx-xxxx-xxxx-xxxx. Да

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

Никакой.

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

Родительский элемент Описание
com4: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, e.g. dll пути и ThreadingModelтакже используются в активации outofproc. Дочерний элемент ClassReference элемента InProcessServer позволяет пакету, который регистрирует CLSID для активации inproc и outofproc, чтобы указать сведения о сервере inproc один раз. в качестве элемента InProcessServer/Class или InProcessServer/ClassReference и ссылались на этот элемент из SurrogateServer, поддерживающего активацию CLSID. Эта структура для регистраций inproc/outofproc более тесно отражает макет реестра COM, чем независимо указывает путь библиотеки DLL и ThreadingModel в элементах InProcessServer/ClassReference и SurrogateServer/ClassReference.

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

Примеры

В следующем примере показано использование 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
минимальная версия ОС Windows 10 (сборка 20348)