Регистрация подключаемого модуля DVC
Подключаемый модуль динамического виртуального канала (DVC) регистрируется для использования клиентом подключения к удаленному рабочему столу (RDC) одним из следующих методов:
Вызов метода IMsTscAdvancedSettings::p ut_PluginDlls элемента управления ActiveX по протоколу удаленного рабочего стола (RDP). Несколько записей должны быть разделены запятыми.
Запись подключаемого модуля в следующее расположение в реестре на компьютере, где запущен клиентский процесс подключения к удаленному рабочему столу (RDC):
HKEY_CURRENT_USER\Программного обеспечения\Microsoft\Клиент сервера терминалов\По умолчанию\Надстройки\уникальное имя подключаемого модуля
Примечание
Если он не существует, необходимо создать уникальный подраздел имени подключаемого модуля . Уникальное имя подраздела имени подключаемого модуля — это произвольная строка, которая может идентифицировать подключаемый модуль. Строка может быть любым сочетанием символов.
Под уникальным именем подключаемого модуля необходимо добавить запись, которая идентифицирует подключаемый модуль.
Имя записи = Имя
Тип данных = REG_SZ или REG_EXPAND_SZ
В обоих случаях значение записи должно соответствовать одному из следующих форматов:
-
"Plug-inDLLName:{CLSID}"
-
Подключаемый модуль не обязательно регистрируется в реестре Windows в качестве com-объекта, но библиотека DLL реализуется как внутрипроцессный COM-объект. Клиент RDC загружает библиотеку DLL, указанную в plug-inDLLName , и извлекает COM-объект непосредственно с помощью CLSID.
-
"Plug-inDLLName"
-
Библиотека DLL реализует функцию VirtualChannelGetInstance и экспортирует ее по имени. Клиент RDC будет использовать функцию VirtualChannelGetInstance для получения указателей интерфейса IWTSPlugin для всех подключаемых модулей, реализованных библиотекой DLL.
-
"{CLSID}"
-
Клиент RDC создаст экземпляр подключаемого модуля в виде обычного COM-объекта с помощью CoCreateInstance с CLSID.
Примечание
Plug-inDLLName представляет полный путь и имя файла .dll. Если тип данных REG_EXPAND_SZ, путь может содержать нерасширенные переменные среды, которые расширяются во время выполнения.
Когда клиент подключения к удаленному рабочему столу (RDC) завершит инициализацию, он будет выполнять следующие действия для каждого зарегистрированного подключаемого модуля:
- Получите экземпляр интерфейса IWTSPlugin для каждого подключаемого модуля, используя один из описанных выше методов.
- Вызовите метод Initialize каждого интерфейса IWTSPlugin .
- Если клиент подключается несколько раз к одному или к другому серверу, может быть несколько вызовов методов Connected и Disconnected .
- Последний вызов, который должен обрабатывать подключаемый модуль, — Terminated. Это сигнал о том, что клиент подключения к удаленному рабочему столу (RDC) вот-вот выгрузит подключаемый модуль.