com4:SurrogateServer
Регистрирует SurrogateServer с одной или несколькими регистрациями классов.
Иерархия элементов
<com4:SurrogateServer>
Синтаксис
<com4:SurrogateServer
CustomSurrogateExecutable = 'A string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.'
LaunchAndActivationPermission = 'An [SDDL string](/windows/win32/secauthz/security-descriptor-string-format) value.'
AppId = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
SystemSurrogate = 'A string with the following optional value: "PreviewHost".' >
<!-- Child elements -->
Class
InProcessServerClassReference
ClassReference
</com4:SurrogateServer>
Элементы и атрибуты
Атрибуты
Атрибут | Описание | Тип данных | Обязательно | Значение по умолчанию |
---|---|---|---|---|
CustomSurrogateExecutable | Путь к объекту DllSurrogate в ключе AppId. Этот путь относится к корню пакета и должен ссылаться на файл в пакете. Это является мутально эксклюзивным с SystemSurrogate. | Строка со значением от 1 до 256 символов, которая должна заканчиваться .exe на и не может содержать следующие символы: < , > , : , " , | , ? или * . |
Да | |
Отображаемое имя | DisplayName — это локализуемая строка, соответствующая значению ключа AppID по умолчанию. | Строка со значением от 1 до 256 символов в длину. | Да | |
LaunchAndActivationPermission | Строка SDDL, соответствующая значению LaunchPermission ключа AppID. | Строковое значение SDDL. | Да | |
Appid | AppId, ссылающийся на связанный ключ AppId. | GUID в формате xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx. | Да | |
SystemSurrogate | Значение , соответствующее известным значениям из значения DllSurrogate ключа AppId. Этот параметр является мутально эксклюзивным с CustomSurrogateExecutable. | Строка со следующим необязательным значением: PreviewHost. | Да |
Дочерние элементы
Дочерний элемент | Описание |
---|---|
Класс | Определяет регистрацию суррогатного класса сервера. |
InProcessServerClassReference | Указывает класс, с которым связан управляемый внутрипроцессный сервер, и задает сведения о регистрации. |
ClassReference | Указывает класс, с которым связан зарегистрированный внутрипроцессный сервер, и задает сведения о регистрации. |
Родительские элементы
Родительский элемент | Описание |
---|---|
Расширения | Определяет одну или несколько точек расширяемости для приложения. |
Комментарии
Ключ 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. Дочерний элемент 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 и ссылаться на них из элемента SurrogateServer/InProcessServerClassReference .
Требования
Элемент | Значение |
---|---|
Пространство имен | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (сборка 20348) |