Я использовал Delphi в течение некоторого времени, но я пытаюсь программировать COM и иметь проблемы. Я прошу прощения, если это проблема NewBie, но после поиска множества попыток, которые я не смог получить или установить свойства объекта RDPEncom RDPSession. Код (включая несколько наивных attemps) ниже. Если я удалю строку, пытающуюся читать свойства, оставшийся код работает нормально.Настройка свойства COM (RDPEncomAPI) в Delphi
Как я могу получить и установить свойство PortID RDPSession.Properties?
uses rdpencomapi_TLB; // from JWAPI
...
myRDPSession := CoRDPSession.Create();
if VarIsNull(myRDPSession) then
begin
application.MessageBox('MsRdpSession creation failed.', 'Error');
Result := False;
Exit;
end;
try
didShare := myRDPSession.Open;
except
ShowMessage('Unable to share desktop !');
Exit;
end;
theProperty := 'PortID';
ActiveXProp := myRDPSession.Properties;
//lValues := ActiveXProp.Property_(theProperty); // method not supported
//lValues := ActiveXProp.Property(theProperty); // member not found
myRDPSession.Properties.GetProperty(lValues, myRDPSession.Properties.Property, theProperty);
{
ALL RETURN INVALID NUMBER OF PARAMETERS..
ActiveXProp.GetProperty(lValues, ActiveXProp.Property, 'PortID');
ActiveXProp.Property.GetProperty(ActiveXProp.Property, lValues, 'PortID');
ActiveXProp.Property.GetProperty(lValues, ActiveXProp, 'PortID');
ActiveXProp.Property.Get_Prop_('PortID', ActiveXProp);
ActiveXProp.Property.SetProperty('PortID', ActiveXProp);
ActiveXProp.Property.Set_Prop_('PortID', ActiveXProp);
}
ActiveXInvite := myRDPSession.Invitations.CreateInvitation('RemoteSupport', 'WePresent', '12345', 75);
...
Какое определение «RDPSession.Properties»? (Как это объявлено в источнике IRDPSession?) Я бы предположил, что это либо «Вариант» (что, вероятно, означает массив Variant), либо какой-то набор; в любом случае, это множественное число, что означает, что существует более одной записи, что означает некоторую итерацию через содержимое. –
Ken: RDPSession.Properties в блоке TLB это интерфейс IDispatch без определенных определенных свойств, но с функциями Get_Property_ и Set_Property_. Согласно MSDN Get и Set - это единственные способы получить доступ к свойствам. К сожалению, я не смог их установить или установить. –