UPnP.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:81k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for upnp.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __upnp_h__
  27. #define __upnp_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IUPnPDeviceFinder_FWD_DEFINED__
  33. #define __IUPnPDeviceFinder_FWD_DEFINED__
  34. typedef interface IUPnPDeviceFinder IUPnPDeviceFinder;
  35. #endif  /* __IUPnPDeviceFinder_FWD_DEFINED__ */
  36. #ifndef __IUPnPDeviceFinderCallback_FWD_DEFINED__
  37. #define __IUPnPDeviceFinderCallback_FWD_DEFINED__
  38. typedef interface IUPnPDeviceFinderCallback IUPnPDeviceFinderCallback;
  39. #endif  /* __IUPnPDeviceFinderCallback_FWD_DEFINED__ */
  40. #ifndef __IUPnPServices_FWD_DEFINED__
  41. #define __IUPnPServices_FWD_DEFINED__
  42. typedef interface IUPnPServices IUPnPServices;
  43. #endif  /* __IUPnPServices_FWD_DEFINED__ */
  44. #ifndef __IUPnPService_FWD_DEFINED__
  45. #define __IUPnPService_FWD_DEFINED__
  46. typedef interface IUPnPService IUPnPService;
  47. #endif  /* __IUPnPService_FWD_DEFINED__ */
  48. #ifndef __IUPnPServiceCallback_FWD_DEFINED__
  49. #define __IUPnPServiceCallback_FWD_DEFINED__
  50. typedef interface IUPnPServiceCallback IUPnPServiceCallback;
  51. #endif  /* __IUPnPServiceCallback_FWD_DEFINED__ */
  52. #ifndef __IUPnPDevices_FWD_DEFINED__
  53. #define __IUPnPDevices_FWD_DEFINED__
  54. typedef interface IUPnPDevices IUPnPDevices;
  55. #endif  /* __IUPnPDevices_FWD_DEFINED__ */
  56. #ifndef __IUPnPDevice_FWD_DEFINED__
  57. #define __IUPnPDevice_FWD_DEFINED__
  58. typedef interface IUPnPDevice IUPnPDevice;
  59. #endif  /* __IUPnPDevice_FWD_DEFINED__ */
  60. #ifndef __IUPnPDeviceDocumentAccess_FWD_DEFINED__
  61. #define __IUPnPDeviceDocumentAccess_FWD_DEFINED__
  62. typedef interface IUPnPDeviceDocumentAccess IUPnPDeviceDocumentAccess;
  63. #endif  /* __IUPnPDeviceDocumentAccess_FWD_DEFINED__ */
  64. #ifndef __IUPnPDescriptionDocument_FWD_DEFINED__
  65. #define __IUPnPDescriptionDocument_FWD_DEFINED__
  66. typedef interface IUPnPDescriptionDocument IUPnPDescriptionDocument;
  67. #endif  /* __IUPnPDescriptionDocument_FWD_DEFINED__ */
  68. #ifndef __IUPnPDescriptionDocumentCallback_FWD_DEFINED__
  69. #define __IUPnPDescriptionDocumentCallback_FWD_DEFINED__
  70. typedef interface IUPnPDescriptionDocumentCallback IUPnPDescriptionDocumentCallback;
  71. #endif  /* __IUPnPDescriptionDocumentCallback_FWD_DEFINED__ */
  72. #ifndef __UPnPDeviceFinder_FWD_DEFINED__
  73. #define __UPnPDeviceFinder_FWD_DEFINED__
  74. #ifdef __cplusplus
  75. typedef class UPnPDeviceFinder UPnPDeviceFinder;
  76. #else
  77. typedef struct UPnPDeviceFinder UPnPDeviceFinder;
  78. #endif /* __cplusplus */
  79. #endif  /* __UPnPDeviceFinder_FWD_DEFINED__ */
  80. #ifndef __UPnPDevices_FWD_DEFINED__
  81. #define __UPnPDevices_FWD_DEFINED__
  82. #ifdef __cplusplus
  83. typedef class UPnPDevices UPnPDevices;
  84. #else
  85. typedef struct UPnPDevices UPnPDevices;
  86. #endif /* __cplusplus */
  87. #endif  /* __UPnPDevices_FWD_DEFINED__ */
  88. #ifndef __UPnPDevice_FWD_DEFINED__
  89. #define __UPnPDevice_FWD_DEFINED__
  90. #ifdef __cplusplus
  91. typedef class UPnPDevice UPnPDevice;
  92. #else
  93. typedef struct UPnPDevice UPnPDevice;
  94. #endif /* __cplusplus */
  95. #endif  /* __UPnPDevice_FWD_DEFINED__ */
  96. #ifndef __UPnPServices_FWD_DEFINED__
  97. #define __UPnPServices_FWD_DEFINED__
  98. #ifdef __cplusplus
  99. typedef class UPnPServices UPnPServices;
  100. #else
  101. typedef struct UPnPServices UPnPServices;
  102. #endif /* __cplusplus */
  103. #endif  /* __UPnPServices_FWD_DEFINED__ */
  104. #ifndef __UPnPService_FWD_DEFINED__
  105. #define __UPnPService_FWD_DEFINED__
  106. #ifdef __cplusplus
  107. typedef class UPnPService UPnPService;
  108. #else
  109. typedef struct UPnPService UPnPService;
  110. #endif /* __cplusplus */
  111. #endif  /* __UPnPService_FWD_DEFINED__ */
  112. #ifndef __UPnPDescriptionDocument_FWD_DEFINED__
  113. #define __UPnPDescriptionDocument_FWD_DEFINED__
  114. #ifdef __cplusplus
  115. typedef class UPnPDescriptionDocument UPnPDescriptionDocument;
  116. #else
  117. typedef struct UPnPDescriptionDocument UPnPDescriptionDocument;
  118. #endif /* __cplusplus */
  119. #endif  /* __UPnPDescriptionDocument_FWD_DEFINED__ */
  120. #ifndef __IUPnPDeviceHostSetup_FWD_DEFINED__
  121. #define __IUPnPDeviceHostSetup_FWD_DEFINED__
  122. typedef interface IUPnPDeviceHostSetup IUPnPDeviceHostSetup;
  123. #endif  /* __IUPnPDeviceHostSetup_FWD_DEFINED__ */
  124. #ifndef __UPnPDeviceHostSetup_FWD_DEFINED__
  125. #define __UPnPDeviceHostSetup_FWD_DEFINED__
  126. #ifdef __cplusplus
  127. typedef class UPnPDeviceHostSetup UPnPDeviceHostSetup;
  128. #else
  129. typedef struct UPnPDeviceHostSetup UPnPDeviceHostSetup;
  130. #endif /* __cplusplus */
  131. #endif  /* __UPnPDeviceHostSetup_FWD_DEFINED__ */
  132. #ifndef __IUPnPDeviceDocumentAccess_FWD_DEFINED__
  133. #define __IUPnPDeviceDocumentAccess_FWD_DEFINED__
  134. typedef interface IUPnPDeviceDocumentAccess IUPnPDeviceDocumentAccess;
  135. #endif  /* __IUPnPDeviceDocumentAccess_FWD_DEFINED__ */
  136. /* header files for imported files */
  137. #include "oaidl.h"
  138. #include "ocidl.h"
  139. #ifdef __cplusplus
  140. extern "C"{
  141. #endif 
  142. void * __RPC_USER MIDL_user_allocate(size_t);
  143. void __RPC_USER MIDL_user_free( void * ); 
  144. /* interface __MIDL_itf_upnp_0000 */
  145. /* [local] */ 
  146. //+-------------------------------------------------------------------------
  147. //
  148. //  Microsoft Windows
  149. //  Copyright (c) Microsoft Corporation. All rights reserved.
  150. //
  151. //--------------------------------------------------------------------------
  152. #define UPNP_E_ROOT_ELEMENT_EXPECTED     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
  153. #define UPNP_E_DEVICE_ELEMENT_EXPECTED   MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201)
  154. #define UPNP_E_SERVICE_ELEMENT_EXPECTED  MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202)
  155. #define UPNP_E_SERVICE_NODE_INCOMPLETE   MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203)
  156. #define UPNP_E_DEVICE_NODE_INCOMPLETE    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204)
  157. #define UPNP_E_ICON_ELEMENT_EXPECTED     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0205)
  158. #define UPNP_E_ICON_NODE_INCOMPLETE      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0206)
  159. #define UPNP_E_INVALID_ACTION            MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0207)
  160. #define UPNP_E_INVALID_ARGUMENTS         MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0208)
  161. #define UPNP_E_OUT_OF_SYNC               MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0209)
  162. #define UPNP_E_ACTION_REQUEST_FAILED     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0210)
  163. #define UPNP_E_TRANSPORT_ERROR           MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0211)
  164. #define UPNP_E_VARIABLE_VALUE_UNKNOWN    MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0212)
  165. #define UPNP_E_INVALID_VARIABLE          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0213)
  166. #define UPNP_E_DEVICE_ERROR              MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0214)
  167. #define UPNP_E_PROTOCOL_ERROR            MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0215)
  168. #define UPNP_E_ERROR_PROCESSING_RESPONSE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0216)
  169. #define UPNP_E_DEVICE_TIMEOUT            MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0217)
  170. #define UPNP_E_INVALID_DOCUMENT          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0500)
  171. #define UPNP_E_EVENT_SUBSCRIPTION_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0501)
  172. #define FAULT_INVALID_ACTION             401
  173. #define FAULT_INVALID_ARG                402
  174. #define FAULT_INVALID_SEQUENCE_NUMBER    403
  175. #define FAULT_INVALID_VARIABLE           404
  176. #define FAULT_DEVICE_INTERNAL_ERROR      501
  177. #define FAULT_ACTION_SPECIFIC_BASE       600
  178. #define FAULT_ACTION_SPECIFIC_MAX        899
  179. #define UPNP_E_ACTION_SPECIFIC_BASE      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0300)
  180. #define UPNP_E_ACTION_SPECIFIC_MAX       (UPNP_E_ACTION_SPECIFIC_BASE + (FAULT_ACTION_SPECIFIC_MAX - FAULT_ACTION_SPECIFIC_BASE))
  181. extern RPC_IF_HANDLE __MIDL_itf_upnp_0000_v0_0_c_ifspec;
  182. extern RPC_IF_HANDLE __MIDL_itf_upnp_0000_v0_0_s_ifspec;
  183. #ifndef __IUPnPDeviceFinder_INTERFACE_DEFINED__
  184. #define __IUPnPDeviceFinder_INTERFACE_DEFINED__
  185. /* interface IUPnPDeviceFinder */
  186. /* [nonextensible][unique][oleautomation][helpstring][dual][uuid][object] */ 
  187. EXTERN_C const IID IID_IUPnPDeviceFinder;
  188. #if defined(__cplusplus) && !defined(CINTERFACE)
  189.     
  190.     MIDL_INTERFACE("ADDA3D55-6F72-4319-BFF9-18600A539B10")
  191.     IUPnPDeviceFinder : public IDispatch
  192.     {
  193.     public:
  194.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindByType( 
  195.             /* [in] */ BSTR bstrTypeURI,
  196.             /* [in] */ DWORD dwFlags,
  197.             /* [retval][out] */ IUPnPDevices **pDevices) = 0;
  198.         
  199.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateAsyncFind( 
  200.             /* [in] */ BSTR bstrTypeURI,
  201.             /* [in] */ DWORD dwFlags,
  202.             /* [in] */ IUnknown *punkDeviceFinderCallback,
  203.             /* [retval][out] */ LONG *plFindData) = 0;
  204.         
  205.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StartAsyncFind( 
  206.             /* [in] */ LONG lFindData) = 0;
  207.         
  208.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CancelAsyncFind( 
  209.             /* [in] */ LONG lFindData) = 0;
  210.         
  211.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindByUDN( 
  212.             /* [in] */ BSTR bstrUDN,
  213.             /* [retval][out] */ IUPnPDevice **pDevice) = 0;
  214.         
  215.     };
  216.     
  217. #else  /* C style interface */
  218.     typedef struct IUPnPDeviceFinderVtbl
  219.     {
  220.         BEGIN_INTERFACE
  221.         
  222.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  223.             IUPnPDeviceFinder * This,
  224.             /* [in] */ REFIID riid,
  225.             /* [iid_is][out] */ void **ppvObject);
  226.         
  227.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  228.             IUPnPDeviceFinder * This);
  229.         
  230.         ULONG ( STDMETHODCALLTYPE *Release )( 
  231.             IUPnPDeviceFinder * This);
  232.         
  233.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  234.             IUPnPDeviceFinder * This,
  235.             /* [out] */ UINT *pctinfo);
  236.         
  237.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  238.             IUPnPDeviceFinder * This,
  239.             /* [in] */ UINT iTInfo,
  240.             /* [in] */ LCID lcid,
  241.             /* [out] */ ITypeInfo **ppTInfo);
  242.         
  243.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  244.             IUPnPDeviceFinder * This,
  245.             /* [in] */ REFIID riid,
  246.             /* [size_is][in] */ LPOLESTR *rgszNames,
  247.             /* [in] */ UINT cNames,
  248.             /* [in] */ LCID lcid,
  249.             /* [size_is][out] */ DISPID *rgDispId);
  250.         
  251.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  252.             IUPnPDeviceFinder * This,
  253.             /* [in] */ DISPID dispIdMember,
  254.             /* [in] */ REFIID riid,
  255.             /* [in] */ LCID lcid,
  256.             /* [in] */ WORD wFlags,
  257.             /* [out][in] */ DISPPARAMS *pDispParams,
  258.             /* [out] */ VARIANT *pVarResult,
  259.             /* [out] */ EXCEPINFO *pExcepInfo,
  260.             /* [out] */ UINT *puArgErr);
  261.         
  262.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindByType )( 
  263.             IUPnPDeviceFinder * This,
  264.             /* [in] */ BSTR bstrTypeURI,
  265.             /* [in] */ DWORD dwFlags,
  266.             /* [retval][out] */ IUPnPDevices **pDevices);
  267.         
  268.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateAsyncFind )( 
  269.             IUPnPDeviceFinder * This,
  270.             /* [in] */ BSTR bstrTypeURI,
  271.             /* [in] */ DWORD dwFlags,
  272.             /* [in] */ IUnknown *punkDeviceFinderCallback,
  273.             /* [retval][out] */ LONG *plFindData);
  274.         
  275.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StartAsyncFind )( 
  276.             IUPnPDeviceFinder * This,
  277.             /* [in] */ LONG lFindData);
  278.         
  279.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CancelAsyncFind )( 
  280.             IUPnPDeviceFinder * This,
  281.             /* [in] */ LONG lFindData);
  282.         
  283.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindByUDN )( 
  284.             IUPnPDeviceFinder * This,
  285.             /* [in] */ BSTR bstrUDN,
  286.             /* [retval][out] */ IUPnPDevice **pDevice);
  287.         
  288.         END_INTERFACE
  289.     } IUPnPDeviceFinderVtbl;
  290.     interface IUPnPDeviceFinder
  291.     {
  292.         CONST_VTBL struct IUPnPDeviceFinderVtbl *lpVtbl;
  293.     };
  294.     
  295. #ifdef COBJMACROS
  296. #define IUPnPDeviceFinder_QueryInterface(This,riid,ppvObject)
  297.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  298. #define IUPnPDeviceFinder_AddRef(This)
  299.     (This)->lpVtbl -> AddRef(This)
  300. #define IUPnPDeviceFinder_Release(This)
  301.     (This)->lpVtbl -> Release(This)
  302. #define IUPnPDeviceFinder_GetTypeInfoCount(This,pctinfo)
  303.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  304. #define IUPnPDeviceFinder_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  305.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  306. #define IUPnPDeviceFinder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  307.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  308. #define IUPnPDeviceFinder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  309.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  310. #define IUPnPDeviceFinder_FindByType(This,bstrTypeURI,dwFlags,pDevices)
  311.     (This)->lpVtbl -> FindByType(This,bstrTypeURI,dwFlags,pDevices)
  312. #define IUPnPDeviceFinder_CreateAsyncFind(This,bstrTypeURI,dwFlags,punkDeviceFinderCallback,plFindData)
  313.     (This)->lpVtbl -> CreateAsyncFind(This,bstrTypeURI,dwFlags,punkDeviceFinderCallback,plFindData)
  314. #define IUPnPDeviceFinder_StartAsyncFind(This,lFindData)
  315.     (This)->lpVtbl -> StartAsyncFind(This,lFindData)
  316. #define IUPnPDeviceFinder_CancelAsyncFind(This,lFindData)
  317.     (This)->lpVtbl -> CancelAsyncFind(This,lFindData)
  318. #define IUPnPDeviceFinder_FindByUDN(This,bstrUDN,pDevice)
  319.     (This)->lpVtbl -> FindByUDN(This,bstrUDN,pDevice)
  320. #endif /* COBJMACROS */
  321. #endif  /* C style interface */
  322. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDeviceFinder_FindByType_Proxy( 
  323.     IUPnPDeviceFinder * This,
  324.     /* [in] */ BSTR bstrTypeURI,
  325.     /* [in] */ DWORD dwFlags,
  326.     /* [retval][out] */ IUPnPDevices **pDevices);
  327. void __RPC_STUB IUPnPDeviceFinder_FindByType_Stub(
  328.     IRpcStubBuffer *This,
  329.     IRpcChannelBuffer *_pRpcChannelBuffer,
  330.     PRPC_MESSAGE _pRpcMessage,
  331.     DWORD *_pdwStubPhase);
  332. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDeviceFinder_CreateAsyncFind_Proxy( 
  333.     IUPnPDeviceFinder * This,
  334.     /* [in] */ BSTR bstrTypeURI,
  335.     /* [in] */ DWORD dwFlags,
  336.     /* [in] */ IUnknown *punkDeviceFinderCallback,
  337.     /* [retval][out] */ LONG *plFindData);
  338. void __RPC_STUB IUPnPDeviceFinder_CreateAsyncFind_Stub(
  339.     IRpcStubBuffer *This,
  340.     IRpcChannelBuffer *_pRpcChannelBuffer,
  341.     PRPC_MESSAGE _pRpcMessage,
  342.     DWORD *_pdwStubPhase);
  343. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDeviceFinder_StartAsyncFind_Proxy( 
  344.     IUPnPDeviceFinder * This,
  345.     /* [in] */ LONG lFindData);
  346. void __RPC_STUB IUPnPDeviceFinder_StartAsyncFind_Stub(
  347.     IRpcStubBuffer *This,
  348.     IRpcChannelBuffer *_pRpcChannelBuffer,
  349.     PRPC_MESSAGE _pRpcMessage,
  350.     DWORD *_pdwStubPhase);
  351. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDeviceFinder_CancelAsyncFind_Proxy( 
  352.     IUPnPDeviceFinder * This,
  353.     /* [in] */ LONG lFindData);
  354. void __RPC_STUB IUPnPDeviceFinder_CancelAsyncFind_Stub(
  355.     IRpcStubBuffer *This,
  356.     IRpcChannelBuffer *_pRpcChannelBuffer,
  357.     PRPC_MESSAGE _pRpcMessage,
  358.     DWORD *_pdwStubPhase);
  359. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDeviceFinder_FindByUDN_Proxy( 
  360.     IUPnPDeviceFinder * This,
  361.     /* [in] */ BSTR bstrUDN,
  362.     /* [retval][out] */ IUPnPDevice **pDevice);
  363. void __RPC_STUB IUPnPDeviceFinder_FindByUDN_Stub(
  364.     IRpcStubBuffer *This,
  365.     IRpcChannelBuffer *_pRpcChannelBuffer,
  366.     PRPC_MESSAGE _pRpcMessage,
  367.     DWORD *_pdwStubPhase);
  368. #endif  /* __IUPnPDeviceFinder_INTERFACE_DEFINED__ */
  369. #ifndef __IUPnPDeviceFinderCallback_INTERFACE_DEFINED__
  370. #define __IUPnPDeviceFinderCallback_INTERFACE_DEFINED__
  371. /* interface IUPnPDeviceFinderCallback */
  372. /* [unique][uuid][object] */ 
  373. EXTERN_C const IID IID_IUPnPDeviceFinderCallback;
  374. #if defined(__cplusplus) && !defined(CINTERFACE)
  375.     
  376.     MIDL_INTERFACE("415A984A-88B3-49F3-92AF-0508BEDF0D6C")
  377.     IUPnPDeviceFinderCallback : public IUnknown
  378.     {
  379.     public:
  380.         virtual HRESULT STDMETHODCALLTYPE DeviceAdded( 
  381.             /* [in] */ LONG lFindData,
  382.             /* [in] */ IUPnPDevice *pDevice) = 0;
  383.         
  384.         virtual HRESULT STDMETHODCALLTYPE DeviceRemoved( 
  385.             /* [in] */ LONG lFindData,
  386.             /* [in] */ BSTR bstrUDN) = 0;
  387.         
  388.         virtual HRESULT STDMETHODCALLTYPE SearchComplete( 
  389.             /* [in] */ LONG lFindData) = 0;
  390.         
  391.     };
  392.     
  393. #else  /* C style interface */
  394.     typedef struct IUPnPDeviceFinderCallbackVtbl
  395.     {
  396.         BEGIN_INTERFACE
  397.         
  398.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  399.             IUPnPDeviceFinderCallback * This,
  400.             /* [in] */ REFIID riid,
  401.             /* [iid_is][out] */ void **ppvObject);
  402.         
  403.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  404.             IUPnPDeviceFinderCallback * This);
  405.         
  406.         ULONG ( STDMETHODCALLTYPE *Release )( 
  407.             IUPnPDeviceFinderCallback * This);
  408.         
  409.         HRESULT ( STDMETHODCALLTYPE *DeviceAdded )( 
  410.             IUPnPDeviceFinderCallback * This,
  411.             /* [in] */ LONG lFindData,
  412.             /* [in] */ IUPnPDevice *pDevice);
  413.         
  414.         HRESULT ( STDMETHODCALLTYPE *DeviceRemoved )( 
  415.             IUPnPDeviceFinderCallback * This,
  416.             /* [in] */ LONG lFindData,
  417.             /* [in] */ BSTR bstrUDN);
  418.         
  419.         HRESULT ( STDMETHODCALLTYPE *SearchComplete )( 
  420.             IUPnPDeviceFinderCallback * This,
  421.             /* [in] */ LONG lFindData);
  422.         
  423.         END_INTERFACE
  424.     } IUPnPDeviceFinderCallbackVtbl;
  425.     interface IUPnPDeviceFinderCallback
  426.     {
  427.         CONST_VTBL struct IUPnPDeviceFinderCallbackVtbl *lpVtbl;
  428.     };
  429.     
  430. #ifdef COBJMACROS
  431. #define IUPnPDeviceFinderCallback_QueryInterface(This,riid,ppvObject)
  432.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  433. #define IUPnPDeviceFinderCallback_AddRef(This)
  434.     (This)->lpVtbl -> AddRef(This)
  435. #define IUPnPDeviceFinderCallback_Release(This)
  436.     (This)->lpVtbl -> Release(This)
  437. #define IUPnPDeviceFinderCallback_DeviceAdded(This,lFindData,pDevice)
  438.     (This)->lpVtbl -> DeviceAdded(This,lFindData,pDevice)
  439. #define IUPnPDeviceFinderCallback_DeviceRemoved(This,lFindData,bstrUDN)
  440.     (This)->lpVtbl -> DeviceRemoved(This,lFindData,bstrUDN)
  441. #define IUPnPDeviceFinderCallback_SearchComplete(This,lFindData)
  442.     (This)->lpVtbl -> SearchComplete(This,lFindData)
  443. #endif /* COBJMACROS */
  444. #endif  /* C style interface */
  445. HRESULT STDMETHODCALLTYPE IUPnPDeviceFinderCallback_DeviceAdded_Proxy( 
  446.     IUPnPDeviceFinderCallback * This,
  447.     /* [in] */ LONG lFindData,
  448.     /* [in] */ IUPnPDevice *pDevice);
  449. void __RPC_STUB IUPnPDeviceFinderCallback_DeviceAdded_Stub(
  450.     IRpcStubBuffer *This,
  451.     IRpcChannelBuffer *_pRpcChannelBuffer,
  452.     PRPC_MESSAGE _pRpcMessage,
  453.     DWORD *_pdwStubPhase);
  454. HRESULT STDMETHODCALLTYPE IUPnPDeviceFinderCallback_DeviceRemoved_Proxy( 
  455.     IUPnPDeviceFinderCallback * This,
  456.     /* [in] */ LONG lFindData,
  457.     /* [in] */ BSTR bstrUDN);
  458. void __RPC_STUB IUPnPDeviceFinderCallback_DeviceRemoved_Stub(
  459.     IRpcStubBuffer *This,
  460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  461.     PRPC_MESSAGE _pRpcMessage,
  462.     DWORD *_pdwStubPhase);
  463. HRESULT STDMETHODCALLTYPE IUPnPDeviceFinderCallback_SearchComplete_Proxy( 
  464.     IUPnPDeviceFinderCallback * This,
  465.     /* [in] */ LONG lFindData);
  466. void __RPC_STUB IUPnPDeviceFinderCallback_SearchComplete_Stub(
  467.     IRpcStubBuffer *This,
  468.     IRpcChannelBuffer *_pRpcChannelBuffer,
  469.     PRPC_MESSAGE _pRpcMessage,
  470.     DWORD *_pdwStubPhase);
  471. #endif  /* __IUPnPDeviceFinderCallback_INTERFACE_DEFINED__ */
  472. #ifndef __IUPnPServices_INTERFACE_DEFINED__
  473. #define __IUPnPServices_INTERFACE_DEFINED__
  474. /* interface IUPnPServices */
  475. /* [nonextensible][unique][helpstring][dual][uuid][object] */ 
  476. EXTERN_C const IID IID_IUPnPServices;
  477. #if defined(__cplusplus) && !defined(CINTERFACE)
  478.     
  479.     MIDL_INTERFACE("3F8C8E9E-9A7A-4DC8-BC41-FF31FA374956")
  480.     IUPnPServices : public IDispatch
  481.     {
  482.     public:
  483.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
  484.             /* [retval][out] */ long *plCount) = 0;
  485.         
  486.         virtual /* [helpstring][hidden][restricted][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
  487.             /* [retval][out] */ LPUNKNOWN *ppunk) = 0;
  488.         
  489.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
  490.             /* [in] */ BSTR bstrServiceId,
  491.             /* [retval][out] */ IUPnPService **ppService) = 0;
  492.         
  493.     };
  494.     
  495. #else  /* C style interface */
  496.     typedef struct IUPnPServicesVtbl
  497.     {
  498.         BEGIN_INTERFACE
  499.         
  500.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  501.             IUPnPServices * This,
  502.             /* [in] */ REFIID riid,
  503.             /* [iid_is][out] */ void **ppvObject);
  504.         
  505.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  506.             IUPnPServices * This);
  507.         
  508.         ULONG ( STDMETHODCALLTYPE *Release )( 
  509.             IUPnPServices * This);
  510.         
  511.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  512.             IUPnPServices * This,
  513.             /* [out] */ UINT *pctinfo);
  514.         
  515.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  516.             IUPnPServices * This,
  517.             /* [in] */ UINT iTInfo,
  518.             /* [in] */ LCID lcid,
  519.             /* [out] */ ITypeInfo **ppTInfo);
  520.         
  521.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  522.             IUPnPServices * This,
  523.             /* [in] */ REFIID riid,
  524.             /* [size_is][in] */ LPOLESTR *rgszNames,
  525.             /* [in] */ UINT cNames,
  526.             /* [in] */ LCID lcid,
  527.             /* [size_is][out] */ DISPID *rgDispId);
  528.         
  529.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  530.             IUPnPServices * This,
  531.             /* [in] */ DISPID dispIdMember,
  532.             /* [in] */ REFIID riid,
  533.             /* [in] */ LCID lcid,
  534.             /* [in] */ WORD wFlags,
  535.             /* [out][in] */ DISPPARAMS *pDispParams,
  536.             /* [out] */ VARIANT *pVarResult,
  537.             /* [out] */ EXCEPINFO *pExcepInfo,
  538.             /* [out] */ UINT *puArgErr);
  539.         
  540.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
  541.             IUPnPServices * This,
  542.             /* [retval][out] */ long *plCount);
  543.         
  544.         /* [helpstring][hidden][restricted][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
  545.             IUPnPServices * This,
  546.             /* [retval][out] */ LPUNKNOWN *ppunk);
  547.         
  548.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
  549.             IUPnPServices * This,
  550.             /* [in] */ BSTR bstrServiceId,
  551.             /* [retval][out] */ IUPnPService **ppService);
  552.         
  553.         END_INTERFACE
  554.     } IUPnPServicesVtbl;
  555.     interface IUPnPServices
  556.     {
  557.         CONST_VTBL struct IUPnPServicesVtbl *lpVtbl;
  558.     };
  559.     
  560. #ifdef COBJMACROS
  561. #define IUPnPServices_QueryInterface(This,riid,ppvObject)
  562.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  563. #define IUPnPServices_AddRef(This)
  564.     (This)->lpVtbl -> AddRef(This)
  565. #define IUPnPServices_Release(This)
  566.     (This)->lpVtbl -> Release(This)
  567. #define IUPnPServices_GetTypeInfoCount(This,pctinfo)
  568.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  569. #define IUPnPServices_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  570.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  571. #define IUPnPServices_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  572.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  573. #define IUPnPServices_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  574.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  575. #define IUPnPServices_get_Count(This,plCount)
  576.     (This)->lpVtbl -> get_Count(This,plCount)
  577. #define IUPnPServices_get__NewEnum(This,ppunk)
  578.     (This)->lpVtbl -> get__NewEnum(This,ppunk)
  579. #define IUPnPServices_get_Item(This,bstrServiceId,ppService)
  580.     (This)->lpVtbl -> get_Item(This,bstrServiceId,ppService)
  581. #endif /* COBJMACROS */
  582. #endif  /* C style interface */
  583. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPServices_get_Count_Proxy( 
  584.     IUPnPServices * This,
  585.     /* [retval][out] */ long *plCount);
  586. void __RPC_STUB IUPnPServices_get_Count_Stub(
  587.     IRpcStubBuffer *This,
  588.     IRpcChannelBuffer *_pRpcChannelBuffer,
  589.     PRPC_MESSAGE _pRpcMessage,
  590.     DWORD *_pdwStubPhase);
  591. /* [helpstring][hidden][restricted][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPServices_get__NewEnum_Proxy( 
  592.     IUPnPServices * This,
  593.     /* [retval][out] */ LPUNKNOWN *ppunk);
  594. void __RPC_STUB IUPnPServices_get__NewEnum_Stub(
  595.     IRpcStubBuffer *This,
  596.     IRpcChannelBuffer *_pRpcChannelBuffer,
  597.     PRPC_MESSAGE _pRpcMessage,
  598.     DWORD *_pdwStubPhase);
  599. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPServices_get_Item_Proxy( 
  600.     IUPnPServices * This,
  601.     /* [in] */ BSTR bstrServiceId,
  602.     /* [retval][out] */ IUPnPService **ppService);
  603. void __RPC_STUB IUPnPServices_get_Item_Stub(
  604.     IRpcStubBuffer *This,
  605.     IRpcChannelBuffer *_pRpcChannelBuffer,
  606.     PRPC_MESSAGE _pRpcMessage,
  607.     DWORD *_pdwStubPhase);
  608. #endif  /* __IUPnPServices_INTERFACE_DEFINED__ */
  609. #ifndef __IUPnPService_INTERFACE_DEFINED__
  610. #define __IUPnPService_INTERFACE_DEFINED__
  611. /* interface IUPnPService */
  612. /* [nonextensible][unique][oleautomation][helpstring][dual][uuid][object] */ 
  613. EXTERN_C const IID IID_IUPnPService;
  614. #if defined(__cplusplus) && !defined(CINTERFACE)
  615.     
  616.     MIDL_INTERFACE("A295019C-DC65-47DD-90DC-7FE918A1AB44")
  617.     IUPnPService : public IDispatch
  618.     {
  619.     public:
  620.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE QueryStateVariable( 
  621.             /* [in] */ BSTR bstrVariableName,
  622.             /* [retval][out] */ VARIANT *pValue) = 0;
  623.         
  624.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InvokeAction( 
  625.             /* [in] */ BSTR bstrActionName,
  626.             /* [in] */ VARIANT vInActionArgs,
  627.             /* [out][in] */ VARIANT *pvOutActionArgs,
  628.             /* [retval][out] */ VARIANT *pvRetVal) = 0;
  629.         
  630.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ServiceTypeIdentifier( 
  631.             /* [retval][out] */ BSTR *pVal) = 0;
  632.         
  633.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCallback( 
  634.             /* [in] */ IUnknown *pUnkCallback) = 0;
  635.         
  636.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
  637.             /* [retval][out] */ BSTR *pbstrId) = 0;
  638.         
  639.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LastTransportStatus( 
  640.             /* [retval][out] */ long *plValue) = 0;
  641.         
  642.     };
  643.     
  644. #else  /* C style interface */
  645.     typedef struct IUPnPServiceVtbl
  646.     {
  647.         BEGIN_INTERFACE
  648.         
  649.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  650.             IUPnPService * This,
  651.             /* [in] */ REFIID riid,
  652.             /* [iid_is][out] */ void **ppvObject);
  653.         
  654.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  655.             IUPnPService * This);
  656.         
  657.         ULONG ( STDMETHODCALLTYPE *Release )( 
  658.             IUPnPService * This);
  659.         
  660.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  661.             IUPnPService * This,
  662.             /* [out] */ UINT *pctinfo);
  663.         
  664.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  665.             IUPnPService * This,
  666.             /* [in] */ UINT iTInfo,
  667.             /* [in] */ LCID lcid,
  668.             /* [out] */ ITypeInfo **ppTInfo);
  669.         
  670.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  671.             IUPnPService * This,
  672.             /* [in] */ REFIID riid,
  673.             /* [size_is][in] */ LPOLESTR *rgszNames,
  674.             /* [in] */ UINT cNames,
  675.             /* [in] */ LCID lcid,
  676.             /* [size_is][out] */ DISPID *rgDispId);
  677.         
  678.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  679.             IUPnPService * This,
  680.             /* [in] */ DISPID dispIdMember,
  681.             /* [in] */ REFIID riid,
  682.             /* [in] */ LCID lcid,
  683.             /* [in] */ WORD wFlags,
  684.             /* [out][in] */ DISPPARAMS *pDispParams,
  685.             /* [out] */ VARIANT *pVarResult,
  686.             /* [out] */ EXCEPINFO *pExcepInfo,
  687.             /* [out] */ UINT *puArgErr);
  688.         
  689.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *QueryStateVariable )( 
  690.             IUPnPService * This,
  691.             /* [in] */ BSTR bstrVariableName,
  692.             /* [retval][out] */ VARIANT *pValue);
  693.         
  694.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InvokeAction )( 
  695.             IUPnPService * This,
  696.             /* [in] */ BSTR bstrActionName,
  697.             /* [in] */ VARIANT vInActionArgs,
  698.             /* [out][in] */ VARIANT *pvOutActionArgs,
  699.             /* [retval][out] */ VARIANT *pvRetVal);
  700.         
  701.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ServiceTypeIdentifier )( 
  702.             IUPnPService * This,
  703.             /* [retval][out] */ BSTR *pVal);
  704.         
  705.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCallback )( 
  706.             IUPnPService * This,
  707.             /* [in] */ IUnknown *pUnkCallback);
  708.         
  709.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
  710.             IUPnPService * This,
  711.             /* [retval][out] */ BSTR *pbstrId);
  712.         
  713.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastTransportStatus )( 
  714.             IUPnPService * This,
  715.             /* [retval][out] */ long *plValue);
  716.         
  717.         END_INTERFACE
  718.     } IUPnPServiceVtbl;
  719.     interface IUPnPService
  720.     {
  721.         CONST_VTBL struct IUPnPServiceVtbl *lpVtbl;
  722.     };
  723.     
  724. #ifdef COBJMACROS
  725. #define IUPnPService_QueryInterface(This,riid,ppvObject)
  726.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  727. #define IUPnPService_AddRef(This)
  728.     (This)->lpVtbl -> AddRef(This)
  729. #define IUPnPService_Release(This)
  730.     (This)->lpVtbl -> Release(This)
  731. #define IUPnPService_GetTypeInfoCount(This,pctinfo)
  732.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  733. #define IUPnPService_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  734.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  735. #define IUPnPService_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  736.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  737. #define IUPnPService_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  738.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  739. #define IUPnPService_QueryStateVariable(This,bstrVariableName,pValue)
  740.     (This)->lpVtbl -> QueryStateVariable(This,bstrVariableName,pValue)
  741. #define IUPnPService_InvokeAction(This,bstrActionName,vInActionArgs,pvOutActionArgs,pvRetVal)
  742.     (This)->lpVtbl -> InvokeAction(This,bstrActionName,vInActionArgs,pvOutActionArgs,pvRetVal)
  743. #define IUPnPService_get_ServiceTypeIdentifier(This,pVal)
  744.     (This)->lpVtbl -> get_ServiceTypeIdentifier(This,pVal)
  745. #define IUPnPService_AddCallback(This,pUnkCallback)
  746.     (This)->lpVtbl -> AddCallback(This,pUnkCallback)
  747. #define IUPnPService_get_Id(This,pbstrId)
  748.     (This)->lpVtbl -> get_Id(This,pbstrId)
  749. #define IUPnPService_get_LastTransportStatus(This,plValue)
  750.     (This)->lpVtbl -> get_LastTransportStatus(This,plValue)
  751. #endif /* COBJMACROS */
  752. #endif  /* C style interface */
  753. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPService_QueryStateVariable_Proxy( 
  754.     IUPnPService * This,
  755.     /* [in] */ BSTR bstrVariableName,
  756.     /* [retval][out] */ VARIANT *pValue);
  757. void __RPC_STUB IUPnPService_QueryStateVariable_Stub(
  758.     IRpcStubBuffer *This,
  759.     IRpcChannelBuffer *_pRpcChannelBuffer,
  760.     PRPC_MESSAGE _pRpcMessage,
  761.     DWORD *_pdwStubPhase);
  762. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPService_InvokeAction_Proxy( 
  763.     IUPnPService * This,
  764.     /* [in] */ BSTR bstrActionName,
  765.     /* [in] */ VARIANT vInActionArgs,
  766.     /* [out][in] */ VARIANT *pvOutActionArgs,
  767.     /* [retval][out] */ VARIANT *pvRetVal);
  768. void __RPC_STUB IUPnPService_InvokeAction_Stub(
  769.     IRpcStubBuffer *This,
  770.     IRpcChannelBuffer *_pRpcChannelBuffer,
  771.     PRPC_MESSAGE _pRpcMessage,
  772.     DWORD *_pdwStubPhase);
  773. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPService_get_ServiceTypeIdentifier_Proxy( 
  774.     IUPnPService * This,
  775.     /* [retval][out] */ BSTR *pVal);
  776. void __RPC_STUB IUPnPService_get_ServiceTypeIdentifier_Stub(
  777.     IRpcStubBuffer *This,
  778.     IRpcChannelBuffer *_pRpcChannelBuffer,
  779.     PRPC_MESSAGE _pRpcMessage,
  780.     DWORD *_pdwStubPhase);
  781. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPService_AddCallback_Proxy( 
  782.     IUPnPService * This,
  783.     /* [in] */ IUnknown *pUnkCallback);
  784. void __RPC_STUB IUPnPService_AddCallback_Stub(
  785.     IRpcStubBuffer *This,
  786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  787.     PRPC_MESSAGE _pRpcMessage,
  788.     DWORD *_pdwStubPhase);
  789. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPService_get_Id_Proxy( 
  790.     IUPnPService * This,
  791.     /* [retval][out] */ BSTR *pbstrId);
  792. void __RPC_STUB IUPnPService_get_Id_Stub(
  793.     IRpcStubBuffer *This,
  794.     IRpcChannelBuffer *_pRpcChannelBuffer,
  795.     PRPC_MESSAGE _pRpcMessage,
  796.     DWORD *_pdwStubPhase);
  797. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPService_get_LastTransportStatus_Proxy( 
  798.     IUPnPService * This,
  799.     /* [retval][out] */ long *plValue);
  800. void __RPC_STUB IUPnPService_get_LastTransportStatus_Stub(
  801.     IRpcStubBuffer *This,
  802.     IRpcChannelBuffer *_pRpcChannelBuffer,
  803.     PRPC_MESSAGE _pRpcMessage,
  804.     DWORD *_pdwStubPhase);
  805. #endif  /* __IUPnPService_INTERFACE_DEFINED__ */
  806. #ifndef __IUPnPServiceCallback_INTERFACE_DEFINED__
  807. #define __IUPnPServiceCallback_INTERFACE_DEFINED__
  808. /* interface IUPnPServiceCallback */
  809. /* [unique][uuid][object] */ 
  810. EXTERN_C const IID IID_IUPnPServiceCallback;
  811. #if defined(__cplusplus) && !defined(CINTERFACE)
  812.     
  813.     MIDL_INTERFACE("31fadca9-ab73-464b-b67d-5c1d0f83c8b8")
  814.     IUPnPServiceCallback : public IUnknown
  815.     {
  816.     public:
  817.         virtual HRESULT STDMETHODCALLTYPE StateVariableChanged( 
  818.             /* [in] */ IUPnPService *pus,
  819.             /* [in] */ LPCWSTR pcwszStateVarName,
  820.             /* [in] */ VARIANT vaValue) = 0;
  821.         
  822.         virtual HRESULT STDMETHODCALLTYPE ServiceInstanceDied( 
  823.             /* [in] */ IUPnPService *pus) = 0;
  824.         
  825.     };
  826.     
  827. #else  /* C style interface */
  828.     typedef struct IUPnPServiceCallbackVtbl
  829.     {
  830.         BEGIN_INTERFACE
  831.         
  832.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  833.             IUPnPServiceCallback * This,
  834.             /* [in] */ REFIID riid,
  835.             /* [iid_is][out] */ void **ppvObject);
  836.         
  837.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  838.             IUPnPServiceCallback * This);
  839.         
  840.         ULONG ( STDMETHODCALLTYPE *Release )( 
  841.             IUPnPServiceCallback * This);
  842.         
  843.         HRESULT ( STDMETHODCALLTYPE *StateVariableChanged )( 
  844.             IUPnPServiceCallback * This,
  845.             /* [in] */ IUPnPService *pus,
  846.             /* [in] */ LPCWSTR pcwszStateVarName,
  847.             /* [in] */ VARIANT vaValue);
  848.         
  849.         HRESULT ( STDMETHODCALLTYPE *ServiceInstanceDied )( 
  850.             IUPnPServiceCallback * This,
  851.             /* [in] */ IUPnPService *pus);
  852.         
  853.         END_INTERFACE
  854.     } IUPnPServiceCallbackVtbl;
  855.     interface IUPnPServiceCallback
  856.     {
  857.         CONST_VTBL struct IUPnPServiceCallbackVtbl *lpVtbl;
  858.     };
  859.     
  860. #ifdef COBJMACROS
  861. #define IUPnPServiceCallback_QueryInterface(This,riid,ppvObject)
  862.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  863. #define IUPnPServiceCallback_AddRef(This)
  864.     (This)->lpVtbl -> AddRef(This)
  865. #define IUPnPServiceCallback_Release(This)
  866.     (This)->lpVtbl -> Release(This)
  867. #define IUPnPServiceCallback_StateVariableChanged(This,pus,pcwszStateVarName,vaValue)
  868.     (This)->lpVtbl -> StateVariableChanged(This,pus,pcwszStateVarName,vaValue)
  869. #define IUPnPServiceCallback_ServiceInstanceDied(This,pus)
  870.     (This)->lpVtbl -> ServiceInstanceDied(This,pus)
  871. #endif /* COBJMACROS */
  872. #endif  /* C style interface */
  873. HRESULT STDMETHODCALLTYPE IUPnPServiceCallback_StateVariableChanged_Proxy( 
  874.     IUPnPServiceCallback * This,
  875.     /* [in] */ IUPnPService *pus,
  876.     /* [in] */ LPCWSTR pcwszStateVarName,
  877.     /* [in] */ VARIANT vaValue);
  878. void __RPC_STUB IUPnPServiceCallback_StateVariableChanged_Stub(
  879.     IRpcStubBuffer *This,
  880.     IRpcChannelBuffer *_pRpcChannelBuffer,
  881.     PRPC_MESSAGE _pRpcMessage,
  882.     DWORD *_pdwStubPhase);
  883. HRESULT STDMETHODCALLTYPE IUPnPServiceCallback_ServiceInstanceDied_Proxy( 
  884.     IUPnPServiceCallback * This,
  885.     /* [in] */ IUPnPService *pus);
  886. void __RPC_STUB IUPnPServiceCallback_ServiceInstanceDied_Stub(
  887.     IRpcStubBuffer *This,
  888.     IRpcChannelBuffer *_pRpcChannelBuffer,
  889.     PRPC_MESSAGE _pRpcMessage,
  890.     DWORD *_pdwStubPhase);
  891. #endif  /* __IUPnPServiceCallback_INTERFACE_DEFINED__ */
  892. #ifndef __IUPnPDevices_INTERFACE_DEFINED__
  893. #define __IUPnPDevices_INTERFACE_DEFINED__
  894. /* interface IUPnPDevices */
  895. /* [nonextensible][unique][oleautomation][helpstring][dual][uuid][object] */ 
  896. EXTERN_C const IID IID_IUPnPDevices;
  897. #if defined(__cplusplus) && !defined(CINTERFACE)
  898.     
  899.     MIDL_INTERFACE("FDBC0C73-BDA3-4C66-AC4F-F2D96FDAD68C")
  900.     IUPnPDevices : public IDispatch
  901.     {
  902.     public:
  903.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
  904.             /* [retval][out] */ long *plCount) = 0;
  905.         
  906.         virtual /* [helpstring][hidden][restricted][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
  907.             /* [retval][out] */ LPUNKNOWN *ppunk) = 0;
  908.         
  909.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item( 
  910.             /* [in] */ BSTR bstrUDN,
  911.             /* [retval][out] */ IUPnPDevice **ppDevice) = 0;
  912.         
  913.     };
  914.     
  915. #else  /* C style interface */
  916.     typedef struct IUPnPDevicesVtbl
  917.     {
  918.         BEGIN_INTERFACE
  919.         
  920.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  921.             IUPnPDevices * This,
  922.             /* [in] */ REFIID riid,
  923.             /* [iid_is][out] */ void **ppvObject);
  924.         
  925.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  926.             IUPnPDevices * This);
  927.         
  928.         ULONG ( STDMETHODCALLTYPE *Release )( 
  929.             IUPnPDevices * This);
  930.         
  931.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  932.             IUPnPDevices * This,
  933.             /* [out] */ UINT *pctinfo);
  934.         
  935.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  936.             IUPnPDevices * This,
  937.             /* [in] */ UINT iTInfo,
  938.             /* [in] */ LCID lcid,
  939.             /* [out] */ ITypeInfo **ppTInfo);
  940.         
  941.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  942.             IUPnPDevices * This,
  943.             /* [in] */ REFIID riid,
  944.             /* [size_is][in] */ LPOLESTR *rgszNames,
  945.             /* [in] */ UINT cNames,
  946.             /* [in] */ LCID lcid,
  947.             /* [size_is][out] */ DISPID *rgDispId);
  948.         
  949.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  950.             IUPnPDevices * This,
  951.             /* [in] */ DISPID dispIdMember,
  952.             /* [in] */ REFIID riid,
  953.             /* [in] */ LCID lcid,
  954.             /* [in] */ WORD wFlags,
  955.             /* [out][in] */ DISPPARAMS *pDispParams,
  956.             /* [out] */ VARIANT *pVarResult,
  957.             /* [out] */ EXCEPINFO *pExcepInfo,
  958.             /* [out] */ UINT *puArgErr);
  959.         
  960.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
  961.             IUPnPDevices * This,
  962.             /* [retval][out] */ long *plCount);
  963.         
  964.         /* [helpstring][hidden][restricted][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
  965.             IUPnPDevices * This,
  966.             /* [retval][out] */ LPUNKNOWN *ppunk);
  967.         
  968.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( 
  969.             IUPnPDevices * This,
  970.             /* [in] */ BSTR bstrUDN,
  971.             /* [retval][out] */ IUPnPDevice **ppDevice);
  972.         
  973.         END_INTERFACE
  974.     } IUPnPDevicesVtbl;
  975.     interface IUPnPDevices
  976.     {
  977.         CONST_VTBL struct IUPnPDevicesVtbl *lpVtbl;
  978.     };
  979.     
  980. #ifdef COBJMACROS
  981. #define IUPnPDevices_QueryInterface(This,riid,ppvObject)
  982.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  983. #define IUPnPDevices_AddRef(This)
  984.     (This)->lpVtbl -> AddRef(This)
  985. #define IUPnPDevices_Release(This)
  986.     (This)->lpVtbl -> Release(This)
  987. #define IUPnPDevices_GetTypeInfoCount(This,pctinfo)
  988.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  989. #define IUPnPDevices_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  990.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  991. #define IUPnPDevices_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  992.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  993. #define IUPnPDevices_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  994.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  995. #define IUPnPDevices_get_Count(This,plCount)
  996.     (This)->lpVtbl -> get_Count(This,plCount)
  997. #define IUPnPDevices_get__NewEnum(This,ppunk)
  998.     (This)->lpVtbl -> get__NewEnum(This,ppunk)
  999. #define IUPnPDevices_get_Item(This,bstrUDN,ppDevice)
  1000.     (This)->lpVtbl -> get_Item(This,bstrUDN,ppDevice)
  1001. #endif /* COBJMACROS */
  1002. #endif  /* C style interface */
  1003. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevices_get_Count_Proxy( 
  1004.     IUPnPDevices * This,
  1005.     /* [retval][out] */ long *plCount);
  1006. void __RPC_STUB IUPnPDevices_get_Count_Stub(
  1007.     IRpcStubBuffer *This,
  1008.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1009.     PRPC_MESSAGE _pRpcMessage,
  1010.     DWORD *_pdwStubPhase);
  1011. /* [helpstring][hidden][restricted][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevices_get__NewEnum_Proxy( 
  1012.     IUPnPDevices * This,
  1013.     /* [retval][out] */ LPUNKNOWN *ppunk);
  1014. void __RPC_STUB IUPnPDevices_get__NewEnum_Stub(
  1015.     IRpcStubBuffer *This,
  1016.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1017.     PRPC_MESSAGE _pRpcMessage,
  1018.     DWORD *_pdwStubPhase);
  1019. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevices_get_Item_Proxy( 
  1020.     IUPnPDevices * This,
  1021.     /* [in] */ BSTR bstrUDN,
  1022.     /* [retval][out] */ IUPnPDevice **ppDevice);
  1023. void __RPC_STUB IUPnPDevices_get_Item_Stub(
  1024.     IRpcStubBuffer *This,
  1025.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1026.     PRPC_MESSAGE _pRpcMessage,
  1027.     DWORD *_pdwStubPhase);
  1028. #endif  /* __IUPnPDevices_INTERFACE_DEFINED__ */
  1029. #ifndef __IUPnPDevice_INTERFACE_DEFINED__
  1030. #define __IUPnPDevice_INTERFACE_DEFINED__
  1031. /* interface IUPnPDevice */
  1032. /* [nonextensible][unique][oleautomation][helpstring][dual][uuid][object] */ 
  1033. EXTERN_C const IID IID_IUPnPDevice;
  1034. #if defined(__cplusplus) && !defined(CINTERFACE)
  1035.     
  1036.     MIDL_INTERFACE("3D44D0D1-98C9-4889-ACD1-F9D674BF2221")
  1037.     IUPnPDevice : public IDispatch
  1038.     {
  1039.     public:
  1040.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsRootDevice( 
  1041.             /* [retval][out] */ VARIANT_BOOL *pvarb) = 0;
  1042.         
  1043.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RootDevice( 
  1044.             /* [retval][out] */ IUPnPDevice **ppudRootDevice) = 0;
  1045.         
  1046.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ParentDevice( 
  1047.             /* [retval][out] */ IUPnPDevice **ppudDeviceParent) = 0;
  1048.         
  1049.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HasChildren( 
  1050.             /* [retval][out] */ VARIANT_BOOL *pvarb) = 0;
  1051.         
  1052.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Children( 
  1053.             /* [retval][out] */ IUPnPDevices **ppudChildren) = 0;
  1054.         
  1055.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UniqueDeviceName( 
  1056.             /* [retval][out] */ BSTR *pbstr) = 0;
  1057.         
  1058.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FriendlyName( 
  1059.             /* [retval][out] */ BSTR *pbstr) = 0;
  1060.         
  1061.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
  1062.             /* [retval][out] */ BSTR *pbstr) = 0;
  1063.         
  1064.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PresentationURL( 
  1065.             /* [retval][out] */ BSTR *pbstr) = 0;
  1066.         
  1067.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ManufacturerName( 
  1068.             /* [retval][out] */ BSTR *pbstr) = 0;
  1069.         
  1070.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ManufacturerURL( 
  1071.             /* [retval][out] */ BSTR *pbstr) = 0;
  1072.         
  1073.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ModelName( 
  1074.             /* [retval][out] */ BSTR *pbstr) = 0;
  1075.         
  1076.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ModelNumber( 
  1077.             /* [retval][out] */ BSTR *pbstr) = 0;
  1078.         
  1079.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
  1080.             /* [retval][out] */ BSTR *pbstr) = 0;
  1081.         
  1082.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ModelURL( 
  1083.             /* [retval][out] */ BSTR *pbstr) = 0;
  1084.         
  1085.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UPC( 
  1086.             /* [retval][out] */ BSTR *pbstr) = 0;
  1087.         
  1088.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SerialNumber( 
  1089.             /* [retval][out] */ BSTR *pbstr) = 0;
  1090.         
  1091.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IconURL( 
  1092.             /* [in] */ BSTR bstrEncodingFormat,
  1093.             /* [in] */ LONG lSizeX,
  1094.             /* [in] */ LONG lSizeY,
  1095.             /* [in] */ LONG lBitDepth,
  1096.             /* [retval][out] */ BSTR *pbstrIconURL) = 0;
  1097.         
  1098.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Services( 
  1099.             /* [retval][out] */ IUPnPServices **ppusServices) = 0;
  1100.         
  1101.     };
  1102.     
  1103. #else  /* C style interface */
  1104.     typedef struct IUPnPDeviceVtbl
  1105.     {
  1106.         BEGIN_INTERFACE
  1107.         
  1108.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1109.             IUPnPDevice * This,
  1110.             /* [in] */ REFIID riid,
  1111.             /* [iid_is][out] */ void **ppvObject);
  1112.         
  1113.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1114.             IUPnPDevice * This);
  1115.         
  1116.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1117.             IUPnPDevice * This);
  1118.         
  1119.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1120.             IUPnPDevice * This,
  1121.             /* [out] */ UINT *pctinfo);
  1122.         
  1123.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1124.             IUPnPDevice * This,
  1125.             /* [in] */ UINT iTInfo,
  1126.             /* [in] */ LCID lcid,
  1127.             /* [out] */ ITypeInfo **ppTInfo);
  1128.         
  1129.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1130.             IUPnPDevice * This,
  1131.             /* [in] */ REFIID riid,
  1132.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1133.             /* [in] */ UINT cNames,
  1134.             /* [in] */ LCID lcid,
  1135.             /* [size_is][out] */ DISPID *rgDispId);
  1136.         
  1137.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1138.             IUPnPDevice * This,
  1139.             /* [in] */ DISPID dispIdMember,
  1140.             /* [in] */ REFIID riid,
  1141.             /* [in] */ LCID lcid,
  1142.             /* [in] */ WORD wFlags,
  1143.             /* [out][in] */ DISPPARAMS *pDispParams,
  1144.             /* [out] */ VARIANT *pVarResult,
  1145.             /* [out] */ EXCEPINFO *pExcepInfo,
  1146.             /* [out] */ UINT *puArgErr);
  1147.         
  1148.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsRootDevice )( 
  1149.             IUPnPDevice * This,
  1150.             /* [retval][out] */ VARIANT_BOOL *pvarb);
  1151.         
  1152.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootDevice )( 
  1153.             IUPnPDevice * This,
  1154.             /* [retval][out] */ IUPnPDevice **ppudRootDevice);
  1155.         
  1156.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ParentDevice )( 
  1157.             IUPnPDevice * This,
  1158.             /* [retval][out] */ IUPnPDevice **ppudDeviceParent);
  1159.         
  1160.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasChildren )( 
  1161.             IUPnPDevice * This,
  1162.             /* [retval][out] */ VARIANT_BOOL *pvarb);
  1163.         
  1164.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )( 
  1165.             IUPnPDevice * This,
  1166.             /* [retval][out] */ IUPnPDevices **ppudChildren);
  1167.         
  1168.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UniqueDeviceName )( 
  1169.             IUPnPDevice * This,
  1170.             /* [retval][out] */ BSTR *pbstr);
  1171.         
  1172.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FriendlyName )( 
  1173.             IUPnPDevice * This,
  1174.             /* [retval][out] */ BSTR *pbstr);
  1175.         
  1176.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
  1177.             IUPnPDevice * This,
  1178.             /* [retval][out] */ BSTR *pbstr);
  1179.         
  1180.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PresentationURL )( 
  1181.             IUPnPDevice * This,
  1182.             /* [retval][out] */ BSTR *pbstr);
  1183.         
  1184.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ManufacturerName )( 
  1185.             IUPnPDevice * This,
  1186.             /* [retval][out] */ BSTR *pbstr);
  1187.         
  1188.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ManufacturerURL )( 
  1189.             IUPnPDevice * This,
  1190.             /* [retval][out] */ BSTR *pbstr);
  1191.         
  1192.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModelName )( 
  1193.             IUPnPDevice * This,
  1194.             /* [retval][out] */ BSTR *pbstr);
  1195.         
  1196.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModelNumber )( 
  1197.             IUPnPDevice * This,
  1198.             /* [retval][out] */ BSTR *pbstr);
  1199.         
  1200.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
  1201.             IUPnPDevice * This,
  1202.             /* [retval][out] */ BSTR *pbstr);
  1203.         
  1204.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModelURL )( 
  1205.             IUPnPDevice * This,
  1206.             /* [retval][out] */ BSTR *pbstr);
  1207.         
  1208.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UPC )( 
  1209.             IUPnPDevice * This,
  1210.             /* [retval][out] */ BSTR *pbstr);
  1211.         
  1212.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
  1213.             IUPnPDevice * This,
  1214.             /* [retval][out] */ BSTR *pbstr);
  1215.         
  1216.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IconURL )( 
  1217.             IUPnPDevice * This,
  1218.             /* [in] */ BSTR bstrEncodingFormat,
  1219.             /* [in] */ LONG lSizeX,
  1220.             /* [in] */ LONG lSizeY,
  1221.             /* [in] */ LONG lBitDepth,
  1222.             /* [retval][out] */ BSTR *pbstrIconURL);
  1223.         
  1224.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Services )( 
  1225.             IUPnPDevice * This,
  1226.             /* [retval][out] */ IUPnPServices **ppusServices);
  1227.         
  1228.         END_INTERFACE
  1229.     } IUPnPDeviceVtbl;
  1230.     interface IUPnPDevice
  1231.     {
  1232.         CONST_VTBL struct IUPnPDeviceVtbl *lpVtbl;
  1233.     };
  1234.     
  1235. #ifdef COBJMACROS
  1236. #define IUPnPDevice_QueryInterface(This,riid,ppvObject)
  1237.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1238. #define IUPnPDevice_AddRef(This)
  1239.     (This)->lpVtbl -> AddRef(This)
  1240. #define IUPnPDevice_Release(This)
  1241.     (This)->lpVtbl -> Release(This)
  1242. #define IUPnPDevice_GetTypeInfoCount(This,pctinfo)
  1243.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1244. #define IUPnPDevice_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1245.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1246. #define IUPnPDevice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1247.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1248. #define IUPnPDevice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1249.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1250. #define IUPnPDevice_get_IsRootDevice(This,pvarb)
  1251.     (This)->lpVtbl -> get_IsRootDevice(This,pvarb)
  1252. #define IUPnPDevice_get_RootDevice(This,ppudRootDevice)
  1253.     (This)->lpVtbl -> get_RootDevice(This,ppudRootDevice)
  1254. #define IUPnPDevice_get_ParentDevice(This,ppudDeviceParent)
  1255.     (This)->lpVtbl -> get_ParentDevice(This,ppudDeviceParent)
  1256. #define IUPnPDevice_get_HasChildren(This,pvarb)
  1257.     (This)->lpVtbl -> get_HasChildren(This,pvarb)
  1258. #define IUPnPDevice_get_Children(This,ppudChildren)
  1259.     (This)->lpVtbl -> get_Children(This,ppudChildren)
  1260. #define IUPnPDevice_get_UniqueDeviceName(This,pbstr)
  1261.     (This)->lpVtbl -> get_UniqueDeviceName(This,pbstr)
  1262. #define IUPnPDevice_get_FriendlyName(This,pbstr)
  1263.     (This)->lpVtbl -> get_FriendlyName(This,pbstr)
  1264. #define IUPnPDevice_get_Type(This,pbstr)
  1265.     (This)->lpVtbl -> get_Type(This,pbstr)
  1266. #define IUPnPDevice_get_PresentationURL(This,pbstr)
  1267.     (This)->lpVtbl -> get_PresentationURL(This,pbstr)
  1268. #define IUPnPDevice_get_ManufacturerName(This,pbstr)
  1269.     (This)->lpVtbl -> get_ManufacturerName(This,pbstr)
  1270. #define IUPnPDevice_get_ManufacturerURL(This,pbstr)
  1271.     (This)->lpVtbl -> get_ManufacturerURL(This,pbstr)
  1272. #define IUPnPDevice_get_ModelName(This,pbstr)
  1273.     (This)->lpVtbl -> get_ModelName(This,pbstr)
  1274. #define IUPnPDevice_get_ModelNumber(This,pbstr)
  1275.     (This)->lpVtbl -> get_ModelNumber(This,pbstr)
  1276. #define IUPnPDevice_get_Description(This,pbstr)
  1277.     (This)->lpVtbl -> get_Description(This,pbstr)
  1278. #define IUPnPDevice_get_ModelURL(This,pbstr)
  1279.     (This)->lpVtbl -> get_ModelURL(This,pbstr)
  1280. #define IUPnPDevice_get_UPC(This,pbstr)
  1281.     (This)->lpVtbl -> get_UPC(This,pbstr)
  1282. #define IUPnPDevice_get_SerialNumber(This,pbstr)
  1283.     (This)->lpVtbl -> get_SerialNumber(This,pbstr)
  1284. #define IUPnPDevice_IconURL(This,bstrEncodingFormat,lSizeX,lSizeY,lBitDepth,pbstrIconURL)
  1285.     (This)->lpVtbl -> IconURL(This,bstrEncodingFormat,lSizeX,lSizeY,lBitDepth,pbstrIconURL)
  1286. #define IUPnPDevice_get_Services(This,ppusServices)
  1287.     (This)->lpVtbl -> get_Services(This,ppusServices)
  1288. #endif /* COBJMACROS */
  1289. #endif  /* C style interface */
  1290. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_IsRootDevice_Proxy( 
  1291.     IUPnPDevice * This,
  1292.     /* [retval][out] */ VARIANT_BOOL *pvarb);
  1293. void __RPC_STUB IUPnPDevice_get_IsRootDevice_Stub(
  1294.     IRpcStubBuffer *This,
  1295.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1296.     PRPC_MESSAGE _pRpcMessage,
  1297.     DWORD *_pdwStubPhase);
  1298. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_RootDevice_Proxy( 
  1299.     IUPnPDevice * This,
  1300.     /* [retval][out] */ IUPnPDevice **ppudRootDevice);
  1301. void __RPC_STUB IUPnPDevice_get_RootDevice_Stub(
  1302.     IRpcStubBuffer *This,
  1303.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1304.     PRPC_MESSAGE _pRpcMessage,
  1305.     DWORD *_pdwStubPhase);
  1306. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ParentDevice_Proxy( 
  1307.     IUPnPDevice * This,
  1308.     /* [retval][out] */ IUPnPDevice **ppudDeviceParent);
  1309. void __RPC_STUB IUPnPDevice_get_ParentDevice_Stub(
  1310.     IRpcStubBuffer *This,
  1311.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1312.     PRPC_MESSAGE _pRpcMessage,
  1313.     DWORD *_pdwStubPhase);
  1314. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_HasChildren_Proxy( 
  1315.     IUPnPDevice * This,
  1316.     /* [retval][out] */ VARIANT_BOOL *pvarb);
  1317. void __RPC_STUB IUPnPDevice_get_HasChildren_Stub(
  1318.     IRpcStubBuffer *This,
  1319.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1320.     PRPC_MESSAGE _pRpcMessage,
  1321.     DWORD *_pdwStubPhase);
  1322. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_Children_Proxy( 
  1323.     IUPnPDevice * This,
  1324.     /* [retval][out] */ IUPnPDevices **ppudChildren);
  1325. void __RPC_STUB IUPnPDevice_get_Children_Stub(
  1326.     IRpcStubBuffer *This,
  1327.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1328.     PRPC_MESSAGE _pRpcMessage,
  1329.     DWORD *_pdwStubPhase);
  1330. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_UniqueDeviceName_Proxy( 
  1331.     IUPnPDevice * This,
  1332.     /* [retval][out] */ BSTR *pbstr);
  1333. void __RPC_STUB IUPnPDevice_get_UniqueDeviceName_Stub(
  1334.     IRpcStubBuffer *This,
  1335.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1336.     PRPC_MESSAGE _pRpcMessage,
  1337.     DWORD *_pdwStubPhase);
  1338. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_FriendlyName_Proxy( 
  1339.     IUPnPDevice * This,
  1340.     /* [retval][out] */ BSTR *pbstr);
  1341. void __RPC_STUB IUPnPDevice_get_FriendlyName_Stub(
  1342.     IRpcStubBuffer *This,
  1343.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1344.     PRPC_MESSAGE _pRpcMessage,
  1345.     DWORD *_pdwStubPhase);
  1346. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_Type_Proxy( 
  1347.     IUPnPDevice * This,
  1348.     /* [retval][out] */ BSTR *pbstr);
  1349. void __RPC_STUB IUPnPDevice_get_Type_Stub(
  1350.     IRpcStubBuffer *This,
  1351.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1352.     PRPC_MESSAGE _pRpcMessage,
  1353.     DWORD *_pdwStubPhase);
  1354. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_PresentationURL_Proxy( 
  1355.     IUPnPDevice * This,
  1356.     /* [retval][out] */ BSTR *pbstr);
  1357. void __RPC_STUB IUPnPDevice_get_PresentationURL_Stub(
  1358.     IRpcStubBuffer *This,
  1359.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1360.     PRPC_MESSAGE _pRpcMessage,
  1361.     DWORD *_pdwStubPhase);
  1362. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ManufacturerName_Proxy( 
  1363.     IUPnPDevice * This,
  1364.     /* [retval][out] */ BSTR *pbstr);
  1365. void __RPC_STUB IUPnPDevice_get_ManufacturerName_Stub(
  1366.     IRpcStubBuffer *This,
  1367.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1368.     PRPC_MESSAGE _pRpcMessage,
  1369.     DWORD *_pdwStubPhase);
  1370. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ManufacturerURL_Proxy( 
  1371.     IUPnPDevice * This,
  1372.     /* [retval][out] */ BSTR *pbstr);
  1373. void __RPC_STUB IUPnPDevice_get_ManufacturerURL_Stub(
  1374.     IRpcStubBuffer *This,
  1375.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1376.     PRPC_MESSAGE _pRpcMessage,
  1377.     DWORD *_pdwStubPhase);
  1378. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ModelName_Proxy( 
  1379.     IUPnPDevice * This,
  1380.     /* [retval][out] */ BSTR *pbstr);
  1381. void __RPC_STUB IUPnPDevice_get_ModelName_Stub(
  1382.     IRpcStubBuffer *This,
  1383.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1384.     PRPC_MESSAGE _pRpcMessage,
  1385.     DWORD *_pdwStubPhase);
  1386. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ModelNumber_Proxy( 
  1387.     IUPnPDevice * This,
  1388.     /* [retval][out] */ BSTR *pbstr);
  1389. void __RPC_STUB IUPnPDevice_get_ModelNumber_Stub(
  1390.     IRpcStubBuffer *This,
  1391.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1392.     PRPC_MESSAGE _pRpcMessage,
  1393.     DWORD *_pdwStubPhase);
  1394. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_Description_Proxy( 
  1395.     IUPnPDevice * This,
  1396.     /* [retval][out] */ BSTR *pbstr);
  1397. void __RPC_STUB IUPnPDevice_get_Description_Stub(
  1398.     IRpcStubBuffer *This,
  1399.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1400.     PRPC_MESSAGE _pRpcMessage,
  1401.     DWORD *_pdwStubPhase);
  1402. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_ModelURL_Proxy( 
  1403.     IUPnPDevice * This,
  1404.     /* [retval][out] */ BSTR *pbstr);
  1405. void __RPC_STUB IUPnPDevice_get_ModelURL_Stub(
  1406.     IRpcStubBuffer *This,
  1407.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1408.     PRPC_MESSAGE _pRpcMessage,
  1409.     DWORD *_pdwStubPhase);
  1410. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_UPC_Proxy( 
  1411.     IUPnPDevice * This,
  1412.     /* [retval][out] */ BSTR *pbstr);
  1413. void __RPC_STUB IUPnPDevice_get_UPC_Stub(
  1414.     IRpcStubBuffer *This,
  1415.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1416.     PRPC_MESSAGE _pRpcMessage,
  1417.     DWORD *_pdwStubPhase);
  1418. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_SerialNumber_Proxy( 
  1419.     IUPnPDevice * This,
  1420.     /* [retval][out] */ BSTR *pbstr);
  1421. void __RPC_STUB IUPnPDevice_get_SerialNumber_Stub(
  1422.     IRpcStubBuffer *This,
  1423.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1424.     PRPC_MESSAGE _pRpcMessage,
  1425.     DWORD *_pdwStubPhase);
  1426. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_IconURL_Proxy( 
  1427.     IUPnPDevice * This,
  1428.     /* [in] */ BSTR bstrEncodingFormat,
  1429.     /* [in] */ LONG lSizeX,
  1430.     /* [in] */ LONG lSizeY,
  1431.     /* [in] */ LONG lBitDepth,
  1432.     /* [retval][out] */ BSTR *pbstrIconURL);
  1433. void __RPC_STUB IUPnPDevice_IconURL_Stub(
  1434.     IRpcStubBuffer *This,
  1435.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1436.     PRPC_MESSAGE _pRpcMessage,
  1437.     DWORD *_pdwStubPhase);
  1438. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDevice_get_Services_Proxy( 
  1439.     IUPnPDevice * This,
  1440.     /* [retval][out] */ IUPnPServices **ppusServices);
  1441. void __RPC_STUB IUPnPDevice_get_Services_Stub(
  1442.     IRpcStubBuffer *This,
  1443.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1444.     PRPC_MESSAGE _pRpcMessage,
  1445.     DWORD *_pdwStubPhase);
  1446. #endif  /* __IUPnPDevice_INTERFACE_DEFINED__ */
  1447. #ifndef __IUPnPDeviceDocumentAccess_INTERFACE_DEFINED__
  1448. #define __IUPnPDeviceDocumentAccess_INTERFACE_DEFINED__
  1449. /* interface IUPnPDeviceDocumentAccess */
  1450. /* [unique][uuid][object] */ 
  1451. EXTERN_C const IID IID_IUPnPDeviceDocumentAccess;
  1452. #if defined(__cplusplus) && !defined(CINTERFACE)
  1453.     
  1454.     MIDL_INTERFACE("E7772804-3287-418e-9072-CF2B47238981")
  1455.     IUPnPDeviceDocumentAccess : public IUnknown
  1456.     {
  1457.     public:
  1458.         virtual HRESULT STDMETHODCALLTYPE GetDocumentURL( 
  1459.             /* [retval][out] */ BSTR *pbstrDocument) = 0;
  1460.         
  1461.     };
  1462.     
  1463. #else  /* C style interface */
  1464.     typedef struct IUPnPDeviceDocumentAccessVtbl
  1465.     {
  1466.         BEGIN_INTERFACE
  1467.         
  1468.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1469.             IUPnPDeviceDocumentAccess * This,
  1470.             /* [in] */ REFIID riid,
  1471.             /* [iid_is][out] */ void **ppvObject);
  1472.         
  1473.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1474.             IUPnPDeviceDocumentAccess * This);
  1475.         
  1476.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1477.             IUPnPDeviceDocumentAccess * This);
  1478.         
  1479.         HRESULT ( STDMETHODCALLTYPE *GetDocumentURL )( 
  1480.             IUPnPDeviceDocumentAccess * This,
  1481.             /* [retval][out] */ BSTR *pbstrDocument);
  1482.         
  1483.         END_INTERFACE
  1484.     } IUPnPDeviceDocumentAccessVtbl;
  1485.     interface IUPnPDeviceDocumentAccess
  1486.     {
  1487.         CONST_VTBL struct IUPnPDeviceDocumentAccessVtbl *lpVtbl;
  1488.     };
  1489.     
  1490. #ifdef COBJMACROS
  1491. #define IUPnPDeviceDocumentAccess_QueryInterface(This,riid,ppvObject)
  1492.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1493. #define IUPnPDeviceDocumentAccess_AddRef(This)
  1494.     (This)->lpVtbl -> AddRef(This)
  1495. #define IUPnPDeviceDocumentAccess_Release(This)
  1496.     (This)->lpVtbl -> Release(This)
  1497. #define IUPnPDeviceDocumentAccess_GetDocumentURL(This,pbstrDocument)
  1498.     (This)->lpVtbl -> GetDocumentURL(This,pbstrDocument)
  1499. #endif /* COBJMACROS */
  1500. #endif  /* C style interface */
  1501. HRESULT STDMETHODCALLTYPE IUPnPDeviceDocumentAccess_GetDocumentURL_Proxy( 
  1502.     IUPnPDeviceDocumentAccess * This,
  1503.     /* [retval][out] */ BSTR *pbstrDocument);
  1504. void __RPC_STUB IUPnPDeviceDocumentAccess_GetDocumentURL_Stub(
  1505.     IRpcStubBuffer *This,
  1506.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1507.     PRPC_MESSAGE _pRpcMessage,
  1508.     DWORD *_pdwStubPhase);
  1509. #endif  /* __IUPnPDeviceDocumentAccess_INTERFACE_DEFINED__ */
  1510. #ifndef __IUPnPDescriptionDocument_INTERFACE_DEFINED__
  1511. #define __IUPnPDescriptionDocument_INTERFACE_DEFINED__
  1512. /* interface IUPnPDescriptionDocument */
  1513. /* [nonextensible][unique][oleautomation][helpstring][dual][uuid][object] */ 
  1514. EXTERN_C const IID IID_IUPnPDescriptionDocument;
  1515. #if defined(__cplusplus) && !defined(CINTERFACE)
  1516.     
  1517.     MIDL_INTERFACE("11d1c1b2-7daa-4c9e-9595-7f82ed206d1e")
  1518.     IUPnPDescriptionDocument : public IDispatch
  1519.     {
  1520.     public:
  1521.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReadyState( 
  1522.             /* [retval][out] */ LONG *plReadyState) = 0;
  1523.         
  1524.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Load( 
  1525.             /* [in] */ BSTR bstrUrl) = 0;
  1526.         
  1527.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadAsync( 
  1528.             /* [in] */ BSTR bstrUrl,
  1529.             /* [in] */ IUnknown *punkCallback) = 0;
  1530.         
  1531.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LoadResult( 
  1532.             /* [retval][out] */ long *phrError) = 0;
  1533.         
  1534.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Abort( void) = 0;
  1535.         
  1536.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RootDevice( 
  1537.             /* [retval][out] */ IUPnPDevice **ppudRootDevice) = 0;
  1538.         
  1539.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeviceByUDN( 
  1540.             /* [in] */ BSTR bstrUDN,
  1541.             /* [retval][out] */ IUPnPDevice **ppudDevice) = 0;
  1542.         
  1543.     };
  1544.     
  1545. #else  /* C style interface */
  1546.     typedef struct IUPnPDescriptionDocumentVtbl
  1547.     {
  1548.         BEGIN_INTERFACE
  1549.         
  1550.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1551.             IUPnPDescriptionDocument * This,
  1552.             /* [in] */ REFIID riid,
  1553.             /* [iid_is][out] */ void **ppvObject);
  1554.         
  1555.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1556.             IUPnPDescriptionDocument * This);
  1557.         
  1558.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1559.             IUPnPDescriptionDocument * This);
  1560.         
  1561.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1562.             IUPnPDescriptionDocument * This,
  1563.             /* [out] */ UINT *pctinfo);
  1564.         
  1565.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1566.             IUPnPDescriptionDocument * This,
  1567.             /* [in] */ UINT iTInfo,
  1568.             /* [in] */ LCID lcid,
  1569.             /* [out] */ ITypeInfo **ppTInfo);
  1570.         
  1571.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1572.             IUPnPDescriptionDocument * This,
  1573.             /* [in] */ REFIID riid,
  1574.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1575.             /* [in] */ UINT cNames,
  1576.             /* [in] */ LCID lcid,
  1577.             /* [size_is][out] */ DISPID *rgDispId);
  1578.         
  1579.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1580.             IUPnPDescriptionDocument * This,
  1581.             /* [in] */ DISPID dispIdMember,
  1582.             /* [in] */ REFIID riid,
  1583.             /* [in] */ LCID lcid,
  1584.             /* [in] */ WORD wFlags,
  1585.             /* [out][in] */ DISPPARAMS *pDispParams,
  1586.             /* [out] */ VARIANT *pVarResult,
  1587.             /* [out] */ EXCEPINFO *pExcepInfo,
  1588.             /* [out] */ UINT *puArgErr);
  1589.         
  1590.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadyState )( 
  1591.             IUPnPDescriptionDocument * This,
  1592.             /* [retval][out] */ LONG *plReadyState);
  1593.         
  1594.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Load )( 
  1595.             IUPnPDescriptionDocument * This,
  1596.             /* [in] */ BSTR bstrUrl);
  1597.         
  1598.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadAsync )( 
  1599.             IUPnPDescriptionDocument * This,
  1600.             /* [in] */ BSTR bstrUrl,
  1601.             /* [in] */ IUnknown *punkCallback);
  1602.         
  1603.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LoadResult )( 
  1604.             IUPnPDescriptionDocument * This,
  1605.             /* [retval][out] */ long *phrError);
  1606.         
  1607.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Abort )( 
  1608.             IUPnPDescriptionDocument * This);
  1609.         
  1610.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RootDevice )( 
  1611.             IUPnPDescriptionDocument * This,
  1612.             /* [retval][out] */ IUPnPDevice **ppudRootDevice);
  1613.         
  1614.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeviceByUDN )( 
  1615.             IUPnPDescriptionDocument * This,
  1616.             /* [in] */ BSTR bstrUDN,
  1617.             /* [retval][out] */ IUPnPDevice **ppudDevice);
  1618.         
  1619.         END_INTERFACE
  1620.     } IUPnPDescriptionDocumentVtbl;
  1621.     interface IUPnPDescriptionDocument
  1622.     {
  1623.         CONST_VTBL struct IUPnPDescriptionDocumentVtbl *lpVtbl;
  1624.     };
  1625.     
  1626. #ifdef COBJMACROS
  1627. #define IUPnPDescriptionDocument_QueryInterface(This,riid,ppvObject)
  1628.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1629. #define IUPnPDescriptionDocument_AddRef(This)
  1630.     (This)->lpVtbl -> AddRef(This)
  1631. #define IUPnPDescriptionDocument_Release(This)
  1632.     (This)->lpVtbl -> Release(This)
  1633. #define IUPnPDescriptionDocument_GetTypeInfoCount(This,pctinfo)
  1634.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1635. #define IUPnPDescriptionDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1636.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1637. #define IUPnPDescriptionDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1638.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1639. #define IUPnPDescriptionDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1640.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1641. #define IUPnPDescriptionDocument_get_ReadyState(This,plReadyState)
  1642.     (This)->lpVtbl -> get_ReadyState(This,plReadyState)
  1643. #define IUPnPDescriptionDocument_Load(This,bstrUrl)
  1644.     (This)->lpVtbl -> Load(This,bstrUrl)
  1645. #define IUPnPDescriptionDocument_LoadAsync(This,bstrUrl,punkCallback)
  1646.     (This)->lpVtbl -> LoadAsync(This,bstrUrl,punkCallback)
  1647. #define IUPnPDescriptionDocument_get_LoadResult(This,phrError)
  1648.     (This)->lpVtbl -> get_LoadResult(This,phrError)
  1649. #define IUPnPDescriptionDocument_Abort(This)
  1650.     (This)->lpVtbl -> Abort(This)
  1651. #define IUPnPDescriptionDocument_RootDevice(This,ppudRootDevice)
  1652.     (This)->lpVtbl -> RootDevice(This,ppudRootDevice)
  1653. #define IUPnPDescriptionDocument_DeviceByUDN(This,bstrUDN,ppudDevice)
  1654.     (This)->lpVtbl -> DeviceByUDN(This,bstrUDN,ppudDevice)
  1655. #endif /* COBJMACROS */
  1656. #endif  /* C style interface */
  1657. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_get_ReadyState_Proxy( 
  1658.     IUPnPDescriptionDocument * This,
  1659.     /* [retval][out] */ LONG *plReadyState);
  1660. void __RPC_STUB IUPnPDescriptionDocument_get_ReadyState_Stub(
  1661.     IRpcStubBuffer *This,
  1662.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1663.     PRPC_MESSAGE _pRpcMessage,
  1664.     DWORD *_pdwStubPhase);
  1665. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_Load_Proxy( 
  1666.     IUPnPDescriptionDocument * This,
  1667.     /* [in] */ BSTR bstrUrl);
  1668. void __RPC_STUB IUPnPDescriptionDocument_Load_Stub(
  1669.     IRpcStubBuffer *This,
  1670.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1671.     PRPC_MESSAGE _pRpcMessage,
  1672.     DWORD *_pdwStubPhase);
  1673. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_LoadAsync_Proxy( 
  1674.     IUPnPDescriptionDocument * This,
  1675.     /* [in] */ BSTR bstrUrl,
  1676.     /* [in] */ IUnknown *punkCallback);
  1677. void __RPC_STUB IUPnPDescriptionDocument_LoadAsync_Stub(
  1678.     IRpcStubBuffer *This,
  1679.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1680.     PRPC_MESSAGE _pRpcMessage,
  1681.     DWORD *_pdwStubPhase);
  1682. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_get_LoadResult_Proxy( 
  1683.     IUPnPDescriptionDocument * This,
  1684.     /* [retval][out] */ long *phrError);
  1685. void __RPC_STUB IUPnPDescriptionDocument_get_LoadResult_Stub(
  1686.     IRpcStubBuffer *This,
  1687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1688.     PRPC_MESSAGE _pRpcMessage,
  1689.     DWORD *_pdwStubPhase);
  1690. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_Abort_Proxy( 
  1691.     IUPnPDescriptionDocument * This);
  1692. void __RPC_STUB IUPnPDescriptionDocument_Abort_Stub(
  1693.     IRpcStubBuffer *This,
  1694.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1695.     PRPC_MESSAGE _pRpcMessage,
  1696.     DWORD *_pdwStubPhase);
  1697. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_RootDevice_Proxy( 
  1698.     IUPnPDescriptionDocument * This,
  1699.     /* [retval][out] */ IUPnPDevice **ppudRootDevice);
  1700. void __RPC_STUB IUPnPDescriptionDocument_RootDevice_Stub(
  1701.     IRpcStubBuffer *This,
  1702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1703.     PRPC_MESSAGE _pRpcMessage,
  1704.     DWORD *_pdwStubPhase);
  1705. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocument_DeviceByUDN_Proxy( 
  1706.     IUPnPDescriptionDocument * This,
  1707.     /* [in] */ BSTR bstrUDN,
  1708.     /* [retval][out] */ IUPnPDevice **ppudDevice);
  1709. void __RPC_STUB IUPnPDescriptionDocument_DeviceByUDN_Stub(
  1710.     IRpcStubBuffer *This,
  1711.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1712.     PRPC_MESSAGE _pRpcMessage,
  1713.     DWORD *_pdwStubPhase);
  1714. #endif  /* __IUPnPDescriptionDocument_INTERFACE_DEFINED__ */
  1715. #ifndef __IUPnPDescriptionDocumentCallback_INTERFACE_DEFINED__
  1716. #define __IUPnPDescriptionDocumentCallback_INTERFACE_DEFINED__
  1717. /* interface IUPnPDescriptionDocumentCallback */
  1718. /* [unique][uuid][object] */ 
  1719. EXTERN_C const IID IID_IUPnPDescriptionDocumentCallback;
  1720. #if defined(__cplusplus) && !defined(CINTERFACE)
  1721.     
  1722.     MIDL_INTERFACE("77394c69-5486-40d6-9bc3-4991983e02da")
  1723.     IUPnPDescriptionDocumentCallback : public IUnknown
  1724.     {
  1725.     public:
  1726.         virtual HRESULT STDMETHODCALLTYPE LoadComplete( 
  1727.             /* [in] */ HRESULT hrLoadResult) = 0;
  1728.         
  1729.     };
  1730.     
  1731. #else  /* C style interface */
  1732.     typedef struct IUPnPDescriptionDocumentCallbackVtbl
  1733.     {
  1734.         BEGIN_INTERFACE
  1735.         
  1736.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1737.             IUPnPDescriptionDocumentCallback * This,
  1738.             /* [in] */ REFIID riid,
  1739.             /* [iid_is][out] */ void **ppvObject);
  1740.         
  1741.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1742.             IUPnPDescriptionDocumentCallback * This);
  1743.         
  1744.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1745.             IUPnPDescriptionDocumentCallback * This);
  1746.         
  1747.         HRESULT ( STDMETHODCALLTYPE *LoadComplete )( 
  1748.             IUPnPDescriptionDocumentCallback * This,
  1749.             /* [in] */ HRESULT hrLoadResult);
  1750.         
  1751.         END_INTERFACE
  1752.     } IUPnPDescriptionDocumentCallbackVtbl;
  1753.     interface IUPnPDescriptionDocumentCallback
  1754.     {
  1755.         CONST_VTBL struct IUPnPDescriptionDocumentCallbackVtbl *lpVtbl;
  1756.     };
  1757.     
  1758. #ifdef COBJMACROS
  1759. #define IUPnPDescriptionDocumentCallback_QueryInterface(This,riid,ppvObject)
  1760.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1761. #define IUPnPDescriptionDocumentCallback_AddRef(This)
  1762.     (This)->lpVtbl -> AddRef(This)
  1763. #define IUPnPDescriptionDocumentCallback_Release(This)
  1764.     (This)->lpVtbl -> Release(This)
  1765. #define IUPnPDescriptionDocumentCallback_LoadComplete(This,hrLoadResult)
  1766.     (This)->lpVtbl -> LoadComplete(This,hrLoadResult)
  1767. #endif /* COBJMACROS */
  1768. #endif  /* C style interface */
  1769. HRESULT STDMETHODCALLTYPE IUPnPDescriptionDocumentCallback_LoadComplete_Proxy( 
  1770.     IUPnPDescriptionDocumentCallback * This,
  1771.     /* [in] */ HRESULT hrLoadResult);
  1772. void __RPC_STUB IUPnPDescriptionDocumentCallback_LoadComplete_Stub(
  1773.     IRpcStubBuffer *This,
  1774.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1775.     PRPC_MESSAGE _pRpcMessage,
  1776.     DWORD *_pdwStubPhase);
  1777. #endif  /* __IUPnPDescriptionDocumentCallback_INTERFACE_DEFINED__ */
  1778. #ifndef __UPNPLib_LIBRARY_DEFINED__
  1779. #define __UPNPLib_LIBRARY_DEFINED__
  1780. /* library UPNPLib */
  1781. /* [helpstring][version][uuid] */ 
  1782. EXTERN_C const IID LIBID_UPNPLib;
  1783. EXTERN_C const CLSID CLSID_UPnPDeviceFinder;
  1784. #ifdef __cplusplus
  1785. class DECLSPEC_UUID("E2085F28-FEB7-404A-B8E7-E659BDEAAA02")
  1786. UPnPDeviceFinder;
  1787. #endif
  1788. EXTERN_C const CLSID CLSID_UPnPDevices;
  1789. #ifdef __cplusplus
  1790. class DECLSPEC_UUID("B9E84FFD-AD3C-40A4-B835-0882EBCBAAA8")
  1791. UPnPDevices;
  1792. #endif
  1793. EXTERN_C const CLSID CLSID_UPnPDevice;
  1794. #ifdef __cplusplus
  1795. class DECLSPEC_UUID("A32552C5-BA61-457A-B59A-A2561E125E33")
  1796. UPnPDevice;
  1797. #endif
  1798. EXTERN_C const CLSID CLSID_UPnPServices;
  1799. #ifdef __cplusplus
  1800. class DECLSPEC_UUID("C0BC4B4A-A406-4EFC-932F-B8546B8100CC")
  1801. UPnPServices;
  1802. #endif
  1803. EXTERN_C const CLSID CLSID_UPnPService;
  1804. #ifdef __cplusplus
  1805. class DECLSPEC_UUID("C624BA95-FBCB-4409-8C03-8CCEEC533EF1")
  1806. UPnPService;
  1807. #endif
  1808. EXTERN_C const CLSID CLSID_UPnPDescriptionDocument;
  1809. #ifdef __cplusplus
  1810. class DECLSPEC_UUID("1d8a9b47-3a28-4ce2-8a4b-bd34e45bceeb")
  1811. UPnPDescriptionDocument;
  1812. #endif
  1813. #ifndef __IUPnPDeviceHostSetup_INTERFACE_DEFINED__
  1814. #define __IUPnPDeviceHostSetup_INTERFACE_DEFINED__
  1815. /* interface IUPnPDeviceHostSetup */
  1816. /* [object][unique][uuid][oleautomation] */ 
  1817. EXTERN_C const IID IID_IUPnPDeviceHostSetup;
  1818. #if defined(__cplusplus) && !defined(CINTERFACE)
  1819.     
  1820.     MIDL_INTERFACE("6BD34909-54E7-4fbf-8562-7B89709A589A")
  1821.     IUPnPDeviceHostSetup : public IUnknown
  1822.     {
  1823.     public:
  1824.         virtual HRESULT STDMETHODCALLTYPE AskIfNotAlreadyEnabled( 
  1825.             /* [retval][out] */ VARIANT_BOOL *pbEnabled) = 0;
  1826.         
  1827.     };
  1828.     
  1829. #else  /* C style interface */
  1830.     typedef struct IUPnPDeviceHostSetupVtbl
  1831.     {
  1832.         BEGIN_INTERFACE
  1833.         
  1834.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1835.             IUPnPDeviceHostSetup * This,
  1836.             /* [in] */ REFIID riid,
  1837.             /* [iid_is][out] */ void **ppvObject);
  1838.         
  1839.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1840.             IUPnPDeviceHostSetup * This);
  1841.         
  1842.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1843.             IUPnPDeviceHostSetup * This);
  1844.         
  1845.         HRESULT ( STDMETHODCALLTYPE *AskIfNotAlreadyEnabled )( 
  1846.             IUPnPDeviceHostSetup * This,
  1847.             /* [retval][out] */ VARIANT_BOOL *pbEnabled);
  1848.         
  1849.         END_INTERFACE
  1850.     } IUPnPDeviceHostSetupVtbl;
  1851.     interface IUPnPDeviceHostSetup
  1852.     {
  1853.         CONST_VTBL struct IUPnPDeviceHostSetupVtbl *lpVtbl;
  1854.     };
  1855.     
  1856. #ifdef COBJMACROS
  1857. #define IUPnPDeviceHostSetup_QueryInterface(This,riid,ppvObject)
  1858.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1859. #define IUPnPDeviceHostSetup_AddRef(This)
  1860.     (This)->lpVtbl -> AddRef(This)
  1861. #define IUPnPDeviceHostSetup_Release(This)
  1862.     (This)->lpVtbl -> Release(This)
  1863. #define IUPnPDeviceHostSetup_AskIfNotAlreadyEnabled(This,pbEnabled)
  1864.     (This)->lpVtbl -> AskIfNotAlreadyEnabled(This,pbEnabled)
  1865. #endif /* COBJMACROS */
  1866. #endif  /* C style interface */
  1867. HRESULT STDMETHODCALLTYPE IUPnPDeviceHostSetup_AskIfNotAlreadyEnabled_Proxy( 
  1868.     IUPnPDeviceHostSetup * This,
  1869.     /* [retval][out] */ VARIANT_BOOL *pbEnabled);
  1870. void __RPC_STUB IUPnPDeviceHostSetup_AskIfNotAlreadyEnabled_Stub(
  1871.     IRpcStubBuffer *This,
  1872.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1873.     PRPC_MESSAGE _pRpcMessage,
  1874.     DWORD *_pdwStubPhase);
  1875. #endif  /* __IUPnPDeviceHostSetup_INTERFACE_DEFINED__ */
  1876. EXTERN_C const CLSID CLSID_UPnPDeviceHostSetup;
  1877. #ifdef __cplusplus
  1878. class DECLSPEC_UUID("B4609411-C81C-4cce-8C76-C6B50C9402C6")
  1879. UPnPDeviceHostSetup;
  1880. #endif
  1881. #endif /* __UPNPLib_LIBRARY_DEFINED__ */
  1882. /* Additional Prototypes for ALL interfaces */
  1883. unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
  1884. unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
  1885. unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
  1886. void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 
  1887. unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
  1888. unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
  1889. unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
  1890. void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 
  1891. /* end of Additional Prototypes */
  1892. #ifdef __cplusplus
  1893. }
  1894. #endif
  1895. #endif