📄 upnp.idl
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft shared
// source or premium shared source license agreement under which you licensed
// this source code. If you did not accept the terms of the license agreement,
// you are not authorized to use this source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the SOURCE.RTF on your install media or the root of your tools installation.
// THE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
//+---------------------------------------------------------------------------
//
// Microsoft Windows
//
// File: upnp.idl
//
//----------------------------------------------------------------------------
#include <idispids.h>
import "oaidl.idl";
interface IUPnPDeviceFinder;
interface IUPnPDeviceFinderCallback;
interface IUPnPDevice;
interface IUPnPDevices;
interface IUPnPDeviceDocumentAccess;
interface IUPnPService;
interface IUPnPServices;
interface IUPnPDevices;
interface IUPnPDescriptionDocument;
interface IUPnPDescriptionDocumentCallback;
cpp_quote("#define UPNP_E_ROOT_ELEMENT_EXPECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)")
cpp_quote("#define UPNP_E_DEVICE_ELEMENT_EXPECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)")
cpp_quote("#define UPNP_E_SERVICE_ELEMENT_EXPECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)")
cpp_quote("#define UPNP_E_SERVICE_NODE_INCOMPLETE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)")
cpp_quote("#define UPNP_E_DEVICE_NODE_INCOMPLETE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)")
cpp_quote("#define UPNP_E_ICON_ELEMENT_EXPECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)")
cpp_quote("#define UPNP_E_ICON_NODE_INCOMPLETE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)")
cpp_quote("#define UPNP_E_INVALID_ACTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)")
cpp_quote("#define UPNP_E_INVALID_ARGUMENTS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)")
cpp_quote("#define UPNP_E_OUT_OF_SYNC MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)")
cpp_quote("#define UPNP_E_ACTION_REQUEST_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0210)")
cpp_quote("#define UPNP_E_TRANSPORT_ERROR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0211)")
cpp_quote("#define UPNP_E_VARIABLE_VALUE_UNKNOWN MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0212)")
cpp_quote("#define UPNP_E_INVALID_VARIABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0213)")
cpp_quote("#define UPNP_E_DEVICE_ERROR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0214)")
cpp_quote("#define UPNP_E_PROTOCOL_ERROR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0215)")
cpp_quote("#define UPNP_E_ERROR_PROCESSING_RESPONSE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0216)")
cpp_quote("#define UPNP_E_DEVICE_TIMEOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0217)")
cpp_quote("#define UPNP_E_INVALID_DOCUMENT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0500)")
cpp_quote("#define UPNP_E_EVENT_SUBSCRIPTION_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)")
cpp_quote("#define FAULT_INVALID_ACTION 401")
cpp_quote("#define FAULT_INVALID_ARG 402")
cpp_quote("#define FAULT_INVALID_SEQUENCE_NUMBER 403")
cpp_quote("#define FAULT_INVALID_VARIABLE 404")
cpp_quote("#define FAULT_DEVICE_INTERNAL_ERROR 501")
cpp_quote("#define FAULT_ACTION_SPECIFIC_BASE 600")
cpp_quote("#define FAULT_ACTION_SPECIFIC_MAX 899")
// NOTE: Do not define any HRESULTs within the range
// UPNP_E_ACTION_SPECIFIC_BASE - UPNP_E_ACTION_SPECIFIC_MAX.
cpp_quote("#define UPNP_E_ACTION_SPECIFIC_BASE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0300)")
cpp_quote("#define UPNP_E_ACTION_SPECIFIC_MAX (UPNP_E_ACTION_SPECIFIC_BASE + (FAULT_ACTION_SPECIFIC_MAX - FAULT_ACTION_SPECIFIC_BASE))")
#define DISPID_XOBJ_MIN 0x60020000
#define DISPID_XOBJ_MAX 0x6002FFFF
#define DISPID_XOBJ_BASE DISPID_XOBJ_MIN
#define DISPID_UPNPFINDDEVICES (DISPID_XOBJ_BASE + 1000)
#define DISPID_UPNPFINDDEVICESCALLBACK (DISPID_UPNPFINDDEVICES + 500)
#define DISPID_UPNPSERVICES (DISPID_UPNPFINDDEVICESCALLBACK + 500)
#define DISPID_UPNPSERVICE (DISPID_UPNPSERVICES + 500)
#define DISPID_UPNPDEVICES (DISPID_UPNPSERVICE + 1000)
#define DISPID_UPNPDEVICE (DISPID_UPNPDEVICES + 500)
#define DISPID_UPNPDESCRIPTIONDOC (DISPID_UPNPDEVICE + 500)
#define DISPID_UPNPFINDDEVICES_FINDBYTYPE (DISPID_UPNPFINDDEVICES + 1)
#define DISPID_UPNPFINDDEVICES_FINDBYDCPI (DISPID_UPNPFINDDEVICES + 2)
#define DISPID_UPNPFINDDEVICES_FINDBYUDN (DISPID_UPNPFINDDEVICES + 3)
#define DISPID_UPNPFINDDEVICES_CREATEASYNCFIND (DISPID_UPNPFINDDEVICES + 4)
#define DISPID_UPNPFINDDEVICES_STARTASYNCFIND (DISPID_UPNPFINDDEVICES + 5)
#define DISPID_UPNPFINDDEVICES_CANCELASYNCFIND (DISPID_UPNPFINDDEVICES + 6)
#define DISPID_UPNPFINDDEVICESCALLBACK_NEWDEVICE (DISPID_UPNPFINDDEVICESCALLBACK + 1)
#define DISPID_UPNPFINDDEVICESCALLBACK_SEARCHCOMPLETE (DISPID_UPNPFINDDEVICESCALLBACK + 2)
#define DISPID_UPNPSERVICES_COUNT (DISPID_UPNPSERVICES + 1)
#define DISPID_UPNPSERVICE_QUERYSTATEVARIABLE (DISPID_UPNPSERVICE + 1)
#define DISPID_UPNPSERVICE_INVOKEACTION (DISPID_UPNPSERVICE + 2)
#define DISPID_UPNPSERVICE_SERVICETYPEIDENTIFIER (DISPID_UPNPSERVICE + 3)
#define DISPID_UPNPSERVICE_ADDSTATECHANGECALLBACK (DISPID_UPNPSERVICE + 4)
#define DISPID_UPNPSERVICE_SERVICEID (DISPID_UPNPSERVICE + 5)
#define DISPID_UPNPSERVICE_LASTTRANSPORTSTATUS (DISPID_UPNPSERVICE + 6)
#define DISPID_UPNPDEVICES_COUNT (DISPID_UPNPDEVICES + 1)
#define DISPID_UPNPDEVICE_ISROOTDEVICE (DISPID_UPNPDEVICE + 1)
#define DISPID_UPNPDEVICE_ROOT (DISPID_UPNPDEVICE + 2)
#define DISPID_UPNPDEVICE_PARENT (DISPID_UPNPDEVICE + 3)
#define DISPID_UPNPDEVICE_HASCHILDREN (DISPID_UPNPDEVICE + 4)
#define DISPID_UPNPDEVICE_CHILDREN (DISPID_UPNPDEVICE + 5)
#define DISPID_UPNPDEVICE_UDN (DISPID_UPNPDEVICE + 6)
#define DISPID_UPNPDEVICE_FRIENDLYNAME (DISPID_UPNPDEVICE + 7)
#define DISPID_UPNPDEVICE_DEVICETYPE (DISPID_UPNPDEVICE + 8)
#define DISPID_UPNPDEVICE_PRESENTATIONURL (DISPID_UPNPDEVICE + 9)
#define DISPID_UPNPDEVICE_MANUFACTURERNAME (DISPID_UPNPDEVICE + 10)
#define DISPID_UPNPDEVICE_MANUFACTURERURL (DISPID_UPNPDEVICE + 11)
#define DISPID_UPNPDEVICE_MODELNAME (DISPID_UPNPDEVICE + 12)
#define DISPID_UPNPDEVICE_MODELNUMBER (DISPID_UPNPDEVICE + 13)
#define DISPID_UPNPDEVICE_DESCRIPTION (DISPID_UPNPDEVICE + 14)
#define DISPID_UPNPDEVICE_MODELURL (DISPID_UPNPDEVICE + 15)
#define DISPID_UPNPDEVICE_UPC (DISPID_UPNPDEVICE + 16)
#define DISPID_UPNPDEVICE_SERIALNUMBER (DISPID_UPNPDEVICE + 17)
#define DISPID_UPNPDEVICE_LOADSMALLICON (DISPID_UPNPDEVICE + 18)
#define DISPID_UPNPDEVICE_LOADICON (DISPID_UPNPDEVICE + 19)
#define DISPID_UPNPDEVICE_SERVICES (DISPID_UPNPDEVICE + 20)
#define DISPID_UPNPDESCRIPTIONDOC_LOAD (DISPID_UPNPDESCRIPTIONDOC + 1)
#define DISPID_UPNPDESCRIPTIONDOC_LOADASYNC (DISPID_UPNPDESCRIPTIONDOC + 2)
#define DISPID_UPNPDESCRIPTIONDOC_LOADERROR (DISPID_UPNPDESCRIPTIONDOC + 3)
#define DISPID_UPNPDESCRIPTIONDOC_ABORT (DISPID_UPNPDESCRIPTIONDOC + 4)
#define DISPID_UPNPDESCRIPTIONDOC_ROOTDEVICE (DISPID_UPNPDESCRIPTIONDOC + 5)
#define DISPID_UPNPDESCRIPTIONDOC_DEVICEBYUDN (DISPID_UPNPDESCRIPTIONDOC + 6)
[
object,
uuid(ADDA3D55-6F72-4319-BFF9-18600A539B10),
dual,
helpstring("IUPnPDeviceFinder Interface"),
oleautomation,
pointer_default(unique),
nonextensible
]
interface IUPnPDeviceFinder : IDispatch
{
[id(DISPID_UPNPFINDDEVICES_FINDBYTYPE),
helpstring("method FindByType")]
HRESULT FindByType([in] BSTR bstrTypeURI,
[in] DWORD dwFlags,
[out, retval] IUPnPDevices ** pDevices);
[id(DISPID_UPNPFINDDEVICES_CREATEASYNCFIND),
helpstring("method CreateAsyncFind")]
HRESULT CreateAsyncFind([in] BSTR bstrTypeURI,
[in] DWORD dwFlags,
[in] IUnknown * punkDeviceFinderCallback,
[out, retval] LONG * plFindData);
[id(DISPID_UPNPFINDDEVICES_STARTASYNCFIND),
helpstring("method StartAsyncFind")]
HRESULT StartAsyncFind([in] LONG lFindData);
[id(DISPID_UPNPFINDDEVICES_CANCELASYNCFIND),
helpstring("method CancelAsyncFind")]
HRESULT CancelAsyncFind([in] LONG lFindData);
[id(DISPID_UPNPFINDDEVICES_FINDBYUDN),
helpstring("method FindByUDN")]
HRESULT FindByUDN([in] BSTR bstrUDN,
[out, retval] IUPnPDevice ** pDevice);
};
[
object,
uuid(415A984A-88B3-49F3-92AF-0508BEDF0D6C),
pointer_default(unique)
]
interface IUPnPDeviceFinderCallback : IUnknown
{
HRESULT DeviceAdded([in] LONG lFindData,
[in] IUPnPDevice * pDevice);
HRESULT DeviceRemoved([in] LONG lFindData,
[in] BSTR bstrUDN);
HRESULT SearchComplete([in] LONG lFindData);
};
[
object,
uuid(3F8C8E9E-9A7A-4DC8-BC41-FF31FA374956),
dual,
helpstring("IUPnPServices Interface"),
pointer_default(unique),
nonextensible
]
interface IUPnPServices : IDispatch
{
[propget, id(DISPID_UPNPSERVICES_COUNT), helpstring("property Count")]
HRESULT Count([out, retval] long *plCount);
[propget, id(DISPID_NEWENUM), restricted, hidden, helpstring("property _NewEnum")]
HRESULT _NewEnum([out, retval] LPUNKNOWN *ppunk);
[propget, id(DISPID_VALUE), helpstring("property Item")]
HRESULT Item([in] BSTR bstrServiceId,
[out, retval] IUPnPService ** ppService);
};
[
object,
uuid(A295019C-DC65-47DD-90DC-7FE918A1AB44),
dual,
helpstring("IUPnPService Interface"),
oleautomation,
pointer_default(unique),
nonextensible
]
interface IUPnPService : IDispatch
{
[id(DISPID_UPNPSERVICE_QUERYSTATEVARIABLE),
helpstring("method QueryStateVariable")]
HRESULT QueryStateVariable([in] BSTR bstrVariableName,
[out, retval] VARIANT *pValue);
[id(DISPID_UPNPSERVICE_INVOKEACTION),
helpstring("method InvokeAction")]
HRESULT InvokeAction([in] BSTR bstrActionName,
[in] VARIANT vInActionArgs,
[in, out] VARIANT * pvOutActionArgs,
[out, retval] VARIANT *pvRetVal);
[propget, id(DISPID_UPNPSERVICE_SERVICETYPEIDENTIFIER),
helpstring("property ServiceTypeIdentifier")]
HRESULT ServiceTypeIdentifier([out, retval] BSTR *pVal);
[id(DISPID_UPNPSERVICE_ADDSTATECHANGECALLBACK),
helpstring("method AddStateChangeCallback")]
HRESULT AddCallback([in] IUnknown * pUnkCallback);
[propget, id(DISPID_UPNPSERVICE_SERVICEID),
helpstring("property Id")]
HRESULT Id([out, retval] BSTR *pbstrId);
[propget, id(DISPID_UPNPSERVICE_LASTTRANSPORTSTATUS),
helpstring("property LastTransportStatus")]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -