Du brauchst die Type Library aus upnp.dll.
Zuerst den Verbindungs-Dienst finden:
Dazu nach allen Geräten suchen¹ und die Dienste² sämtlicher Geräte und Untergeräte³ durchgehen bis ein Dienst vom Typ⁴
urn:schemas-upnp-org:service:WANIPConnection oder
urn:schemas-upnp-org:service:WANPPPConnection gefunden wird.
Dann eine der Aktionen
RequestConnection (Verbindung herstellen),
RequestTermination (Verbindung so früh wie möglich kappen, siehe IGD Standard) oder
ForceTermination (Verbindung sofort kappen) des Dienstes ausführen⁵. Keine der Aktionen benötigt Argumente⁶.
Der aktuelle Verbindungsstatus steht in der Statusvariable⁷
ConnectionStatus.
Delphi-Quellcode:
¹ DeviceFinder.FindByType('upnp:rootdevice',0)
² IUPnPDevice.Services
³ IUPnPDevice.Children
⁴ IUPnPService.ServiceTypeIdentifier
⁵ IUPnPService.InvokeAction
⁶ VarArrayOf([]) // Leeres Argumentenarray
⁷ IUPnPService.QueryStateVariable
UPnP API Dokumentation
UPnP Interface Standard für Internet-Gateways