Я нахожусь в процессе преобразования кода для Динамических Виртуальных Каналов в RDS (или Терминальные службы) из C ++ в Delphi на основе https://github.com/earthquake/UniversalDVC/tree/master/UDVC-Plugin в C ++.Это требует нескольких классов для регистрации клиентского плагина, и я нашел определения в tsvirtualchannels.h
и .idl
в моей системе Windows в C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um
.
К сожалению, файл .idl
не содержит библиотеку типов, поэтому я не смог создать файл библиотеки .tlb
библиотеки типов и импортировать его, поэтому я воссоздал его вручную в Delphi.
Embarcadero использует файл .ridl
, похожий, но не совсем такой же, как файлы idl.Одним из атрибутов в файле .idl
является cpp_quote("string")
.Например,
cpp_quote("EXTERN_C __declspec(selectany) const IID IID_IWTSListenerCallback = {0xA1230203, 0xd6a7, 0x11d8, {0xb9, 0xfd, 0x00, 0x0b, 0xdb, 0xd1, 0xf1, 0x98}};")
[
object,
uuid(A1230203-d6a7-11d8-b9fd-000bdbd1f198),
oleautomation,
helpstring("interface IWTSListenerCallback")
]
interface IWTSListenerCallback : IUnknown
Ridl не поддерживает cpp_quote, поэтому я не уверен, как с этим справиться.