⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upnp.idl

📁 Windows CE 6.0 Server 源码
💻 IDL
📖 第 1 页 / 共 2 页
字号:
//
// 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 + -