UPnP デバイス用に次の SCPD ドキュメントを定義しました。
<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0" >
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>Echo</name>
<argumentList>
<argument>
<name>InText</name>
<relatedStateVariable>Text</relatedStateVariable>
<direction>in</direction>
</argument>
<argument>
<name>ReturnText</name>
<relatedStateVariable>Text</relatedStateVariable>
<direction>out</direction>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>Text</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
UPnP デバイスも登録しました。UPnPDevice も取得できました。SCPD ドキュメントで定義されているエコー アクションを呼び出すにはどうすればよいですか?
アクションを呼び出すコードは次のようになります。
var o: IUPnPDeviceFinder;
d: IUPnPDevice;
s: IUPnPService;
E: IEnumVARIANT;
K: OleVariant;
iFetched: Cardinal;
V1, V2: OleVariant;
r: HRESULT;
begin
o := CoUPnPDeviceFinder.Create;
d := o.FindByUDN('uuid:a6d332da-f8ce-43ce-8210-79eacd4231c6');
E := d.Services._NewEnum as IEnumVARIANT;
E.Reset;
CheckOSError(E.Next(1, K, iFetched));
s := IDispatch(K) as IUPnPService;
r := s.InvokeAction('Echo', v1, v2);
ShowMessage(v2);
end;
InvokeAction の v1 および v2 パラメータを形成する方法は?