554 lines
17 KiB
Plaintext
554 lines
17 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: H O S T P . I D L
|
|
//
|
|
// Contents: Private objects for the UPnP Device Host
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: danielwe 7 Aug 2000
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1992-2000.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
|
|
cpp_quote("#if ( _MSC_VER >= 800 )")
|
|
cpp_quote("#pragma warning(disable:4201)")
|
|
cpp_quote("#endif")
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "ocidl.idl";
|
|
#endif
|
|
|
|
// We want to be a proxy/stub DLL for all of the interfaces in
|
|
// the following IDL files. Therefore we #include them instead of importing
|
|
// them.
|
|
//
|
|
//#define DO_NO_IMPORTS
|
|
import "upnphost.idl";
|
|
|
|
// Reserved GUIDS for our use
|
|
//
|
|
// 6d8ff8d0-730d-11d4-bf42-00b0d0118b56
|
|
// 6d8ff8d1-730d-11d4-bf42-00b0d0118b56 IID_IUPnPEventingManager
|
|
// 6d8ff8d2-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPEventingManager
|
|
// 6d8ff8d3-730d-11d4-bf42-00b0d0118b56 IID_IUPnPContainer
|
|
// 6d8ff8d4-730d-11d4-bf42-00b0d0118b56 IID_IUPnPContainerManager
|
|
// 6d8ff8d5-730d-11d4-bf42-00b0d0118b56 IID_IUPnPDynamicContentProvider
|
|
// 6d8ff8d6-730d-11d4-bf42-00b0d0118b56 IID_IUPnPDynamicContentSource
|
|
// 6d8ff8d7-730d-11d4-bf42-00b0d0118b56 IID_IUPnPDescriptionManager
|
|
// 6d8ff8d8-730d-11d4-bf42-00b0d0118b56 IID_IUPnPAutomationProxy
|
|
// 6d8ff8d9-730d-11d4-bf42-00b0d0118b56 IID_IUPnPDevicePersistenceManager
|
|
// 6d8ff8da-730d-11d4-bf42-00b0d0118b56 IID_IUPnPRegistrarLookup
|
|
// 6d8ff8db-730d-11d4-bf42-00b0d0118b56 IID_IUPnPRegistrarPrivate
|
|
// 6d8ff8dc-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPDynamicContentSource
|
|
// 6d8ff8dd-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPDescriptionManager
|
|
// 6d8ff8de-730d-11d4-bf42-00b0d0118b56 IID_IUPnPRegistrarICSSupport
|
|
// 6d8ff8df-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPDevicePersistenceManager
|
|
// 6d8ff8e0-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPContainer
|
|
// 6d8ff8e1-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPContainerManager
|
|
// 6d8ff8e2-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPEventingManagerDiag (obsoleted)
|
|
// 6d8ff8e4-730d-11d4-bf42-00b0d0118b56 IID_IUPnPValidationManager
|
|
// 6d8ff8e5-730d-11d4-bf42-00b0d0118b56 CLSID_UPnPValidationManager
|
|
// 6d8ff8e6-730d-11d4-bf42-00b0d0118b56
|
|
// 6d8ff8e7-730d-11d4-bf42-00b0d0118b56
|
|
// 6d8ff8e8-730d-11d4-bf42-00b0d0118b56
|
|
// 6d8ff8e9-730d-11d4-bf42-00b0d0118b56
|
|
// ...
|
|
// 6d8ffcb0-730d-11d4-bf42-00b0d0118b56
|
|
// 6d8ffcb1-730d-11d4-bf42-00b0d0118b56
|
|
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPEventingManager;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPAutomationProxy;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPDynamicContentSource;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPDescriptionManager;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPRegistrar;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPDevicePersistenceManager;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPContainer;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPContainerManager;")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_UPnPValidationManager;")
|
|
|
|
////////////////////////////////////
|
|
// Error definitions
|
|
cpp_quote("#define UPNP_E_INVALID_CONTENT_TYPE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA200)")
|
|
cpp_quote("#define UPNP_E_MISSING_SOAP_ACTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA201)")
|
|
cpp_quote("#define UPNP_E_MISSING_CONTENT_LENGTH MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA202)")
|
|
cpp_quote("#define UPNP_E_METHOD_NOT_IMPLEMENTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA203)")
|
|
cpp_quote("#define UPNP_E_METHOD_NOT_ALLOWED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA204)")
|
|
cpp_quote("#define UPNP_E_BAD_REQUEST MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA205)")
|
|
|
|
////////////////////////////////////////
|
|
// Interface forward declarations
|
|
|
|
interface IUPnPEventingManager;
|
|
interface IUPnPContainer;
|
|
interface IUPnPContainerManager;
|
|
interface IUPnPDynamicContentProvider;
|
|
interface IUPnPDynamicContentSource;
|
|
interface IUPnPDescriptionManager;
|
|
interface IUPnPDevicePersistenceManager;
|
|
interface IUPnPRegistrarLookup;
|
|
interface IUPnPRegistrarPrivate;
|
|
interface IUPnPAutomationProxy;
|
|
interface IUPnPServiceDescriptionInfo;
|
|
interface IUPnPRegistrarICSSupport;
|
|
|
|
////////////////////////////////////////
|
|
// Interface definitions
|
|
|
|
[
|
|
uuid(6d8ff8d1-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPEventingManager : IUnknown
|
|
{
|
|
[helpstring("method Initialize")]
|
|
HRESULT Initialize(
|
|
[in] LPCWSTR szUdn,
|
|
[in] LPCWSTR szSid,
|
|
[in] IUPnPAutomationProxy * puap,
|
|
[in] IUnknown * punkSvc,
|
|
[in] BOOL bRunning);
|
|
|
|
[helpstring("method AddSubscriber")]
|
|
HRESULT AddSubscriber(
|
|
[in] DWORD cszUrl,
|
|
[in, size_is(cszUrl)] LPCWSTR * rgszCallbackUrl,
|
|
[in] DWORD dwIpAddr,
|
|
[in, out] DWORD * pcsecTimeout,
|
|
[out] LPWSTR * pszSid);
|
|
|
|
[helpstring("method RenewSubscriber")]
|
|
HRESULT RenewSubscriber(
|
|
[in, out] DWORD * pcsecTimeout,
|
|
[in] LPWSTR szSid);
|
|
|
|
[helpstring("method RemoveSubscriber")]
|
|
HRESULT RemoveSubscriber(
|
|
[in] LPWSTR szSid);
|
|
|
|
[helpstring("method Shutdown")]
|
|
HRESULT Shutdown();
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d3-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPContainer : IUnknown
|
|
{
|
|
HRESULT CreateInstance(
|
|
[in] REFCLSID clsid,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void ** ppv);
|
|
HRESULT Shutdown();
|
|
HRESULT SetParent(
|
|
[in] DWORD pid);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d4-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPContainerManager : IUnknown
|
|
{
|
|
HRESULT ReferenceContainer(
|
|
[in, string] const wchar_t * szContainer);
|
|
HRESULT UnreferenceContainer(
|
|
[in, string] const wchar_t * szContainer);
|
|
HRESULT CreateInstance(
|
|
[in, string] const wchar_t * szContainer,
|
|
[in] REFCLSID clsid,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void ** ppv);
|
|
HRESULT CreateInstanceWithProgId(
|
|
[in, string] const wchar_t * szContainer,
|
|
[in, string] const wchar_t * szProgId,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void ** ppv);
|
|
HRESULT Shutdown();
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d5-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPDynamicContentProvider : IUnknown
|
|
{
|
|
HRESULT GetContent(
|
|
[in] REFGUID guidContent,
|
|
[out] long * pnHeaderCount,
|
|
[out, string, size_is(,*pnHeaderCount,)] wchar_t *** parszHeaders,
|
|
[out] long * pnBytes,
|
|
[out, size_is(,*pnBytes)] byte ** parBytes);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d6-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPDynamicContentSource : IUnknown
|
|
{
|
|
HRESULT GetContent(
|
|
[in] REFGUID guidContent,
|
|
[out] long * pnHeaderCount,
|
|
[out, string, size_is(,*pnHeaderCount,)] wchar_t *** parszHeaders,
|
|
[out] long * pnBytes,
|
|
[out, size_is(,*pnBytes)] byte ** parBytes);
|
|
HRESULT RegisterProvider(
|
|
[in] IUPnPDynamicContentProvider * pProvider);
|
|
HRESULT UnregisterProvider(
|
|
[in] IUPnPDynamicContentProvider * pProvider);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d7-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPDescriptionManager : IUnknown
|
|
{
|
|
HRESULT ProcessDescriptionTemplate(
|
|
[in] BSTR bstrTemplate,
|
|
[in, string] const wchar_t * szResourcePath,
|
|
[in, out] GUID * pguidPhysicalDeviceIdentifier,
|
|
[in] BOOL bPersist,
|
|
[in] BOOL bReregister);
|
|
HRESULT PublishDescription(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in] long nLifeTime);
|
|
HRESULT LoadDescription(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier);
|
|
HRESULT RemoveDescription(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in] BOOL bPermanent);
|
|
HRESULT GetDescriptionText(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[out] BSTR * pbstrDescriptionDocument);
|
|
HRESULT GetUDNs(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[out] long * pnUDNCount,
|
|
[out, size_is(,*pnUDNCount,), string]
|
|
wchar_t *** parszUDNs);
|
|
HRESULT GetUniqueDeviceName(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in, string] const wchar_t * szTemplateUDN,
|
|
[out, string] wchar_t ** pszUDN);
|
|
HRESULT GetSCPDText(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in, string] const wchar_t * szUDN,
|
|
[in, string] const wchar_t * szServiceId,
|
|
[out, string] wchar_t ** pszSCPDText,
|
|
[out, string] wchar_t ** pszServiceType);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8d9-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPDevicePersistenceManager : IUnknown
|
|
{
|
|
HRESULT SavePhyisicalDevice(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in, string] const wchar_t * szProgIdDeviceControlClass,
|
|
[in, string] const wchar_t * szInitString,
|
|
[in, string] const wchar_t * szContainerId,
|
|
[in, string] const wchar_t * szResourcePath,
|
|
[in] long nLifeTime);
|
|
HRESULT LookupPhysicalDevice(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[out, string] wchar_t ** pszProgIdDeviceControlClass,
|
|
[out, string] wchar_t ** pszInitString,
|
|
[out, string] wchar_t ** pszContainerId,
|
|
[out, string] wchar_t ** pszResourcePath,
|
|
[out] long * pnLifeTime);
|
|
HRESULT RemovePhysicalDevice(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier);
|
|
HRESULT GetPhysicalDevices(
|
|
[out] long * pnDevices,
|
|
[out, size_is(,*pnDevices)]
|
|
GUID ** parguidPhysicalDeviceIdentifiers);
|
|
HRESULT SaveDeviceProvider(
|
|
[in, string] const wchar_t * szProviderName,
|
|
[in, string] const wchar_t * szProgIdProviderClass,
|
|
[in, string] const wchar_t * szInitString,
|
|
[in, string] const wchar_t * szContainerId);
|
|
HRESULT LookupDeviceProvider(
|
|
[in, string] const wchar_t * szProviderName,
|
|
[out, string] wchar_t ** pszProgIdProviderClass,
|
|
[out, string] wchar_t ** pszInitString,
|
|
[out, string] wchar_t ** pszContainerId);
|
|
HRESULT RemoveDeviceProvider(
|
|
[in, string] const wchar_t * szProviderName);
|
|
HRESULT GetDeviceProviders(
|
|
[out] long * pnProviders,
|
|
[out, string, size_is(,*pnProviders,)]
|
|
wchar_t *** parszProviderNames);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8da-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPRegistrarLookup : IUnknown
|
|
{
|
|
HRESULT GetEventingManager(
|
|
[in, string] const wchar_t * szUDN,
|
|
[in, string] const wchar_t * szServiceId,
|
|
[out] IUPnPEventingManager ** ppEventingManager);
|
|
HRESULT GetAutomationProxy(
|
|
[in, string] const wchar_t * szUDN,
|
|
[in, string] const wchar_t * szServiceId,
|
|
[out] IUPnPAutomationProxy ** ppAutomationProxy);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8db-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPRegistrarPrivate : IUnknown
|
|
{
|
|
HRESULT Initialize();
|
|
HRESULT Shutdown();
|
|
HRESULT GetSCPDText(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[in, string] const wchar_t * szUDN,
|
|
[in, string] const wchar_t * szServiceId,
|
|
[out, string] wchar_t ** pszSCPDText,
|
|
[out, string] wchar_t ** pszServerType);
|
|
HRESULT GetDescriptionText(
|
|
[in] REFGUID guidPhysicalDeviceIdentifier,
|
|
[out] BSTR * pbstrDescriptionDocument);
|
|
}
|
|
|
|
|
|
typedef struct tagUPNP_CONTROL_REQUEST
|
|
{
|
|
BSTR bstrActionName;
|
|
DWORD cInputArgs;
|
|
[size_is(cInputArgs)] VARIANT * rgvarInputArgs;
|
|
} UPNP_CONTROL_REQUEST;
|
|
|
|
|
|
typedef [switch_type(BOOL)] union tagUPNP_CONTROL_RESPONSE_DATA
|
|
{
|
|
[case(TRUE)] struct
|
|
{
|
|
DWORD cOutputArgs;
|
|
[size_is(cOutputArgs)] VARIANT * rgvarOutputArgs;
|
|
} Success;
|
|
|
|
[case(FALSE)] struct
|
|
{
|
|
BSTR bstrFaultCode;
|
|
BSTR bstrFaultString;
|
|
BSTR bstrUPnPErrorCode;
|
|
BSTR bstrUPnPErrorString;
|
|
} Fault;
|
|
|
|
[default];
|
|
} UPNP_CONTROL_RESPONSE_DATA;
|
|
|
|
typedef struct tagUPNP_CONTROL_RESPONSE
|
|
{
|
|
BSTR bstrActionName;
|
|
BOOL fSucceeded;
|
|
[switch_is(fSucceeded)] UPNP_CONTROL_RESPONSE_DATA ucrData;
|
|
} UPNP_CONTROL_RESPONSE;
|
|
|
|
|
|
[
|
|
uuid(c4ab1fea-d0dd-44fd-96cb-41b41b5f718a),
|
|
helpstring("IUPnPAutomationProxy Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPAutomationProxy : IUnknown
|
|
{
|
|
[helpstring("method Initialize")]
|
|
HRESULT Initialize(
|
|
[in] IUnknown * punkSvcObject,
|
|
[in] LPWSTR pszSvcDescription,
|
|
[in] LPWSTR pszSvcType,
|
|
[in] BOOL bRunning);
|
|
|
|
[helpstring("method GetDispIdsOfEventedVariables")]
|
|
HRESULT GetDispIdsOfEventedVariables(
|
|
[out] DWORD * pcEventedVars,
|
|
[out, size_is(, *pcEventedVars)] DISPID ** prgdispidEventedVars);
|
|
|
|
[helpstring("method QueryStateVariablesByDispId")]
|
|
HRESULT QueryStateVariablesByDispIds(
|
|
[in] DWORD cDispIds,
|
|
[in, size_is(cDispIds)] DISPID * rgDispIds,
|
|
[out] DWORD * pcVariables,
|
|
[out, size_is(, *pcVariables)] LPWSTR ** prgszVariableNames,
|
|
[out, size_is(, *pcVariables)] VARIANT ** prgvarVariableValues,
|
|
[out, size_is(, *pcVariables)] LPWSTR ** prgszVariableDataTypes);
|
|
|
|
[helpstring("method ExecuteRequest")]
|
|
HRESULT ExecuteRequest(
|
|
[in] UPNP_CONTROL_REQUEST * pucreq,
|
|
[out] UPNP_CONTROL_RESPONSE * pucresp);
|
|
|
|
[helpstring("method GetServiceType")]
|
|
HRESULT GetServiceType(
|
|
[out] LPWSTR * pszSvcType);
|
|
};
|
|
|
|
|
|
[
|
|
uuid(f5b63656-069d-4e80-b4fd-9e0db16604d8),
|
|
helpstring("IUPnPServiceDescriptionInfo Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPServiceDescriptionInfo : IUnknown
|
|
{
|
|
[helpstring("method GetVariableType")]
|
|
HRESULT GetVariableType(
|
|
[in] LPWSTR pszVarName,
|
|
[out] BSTR * pbstrType);
|
|
|
|
[helpstring("method GetInputArgumentNamesAndTypes")]
|
|
HRESULT GetInputArgumentNamesAndTypes(
|
|
[in] LPWSTR pszActionName,
|
|
[out] DWORD * pcInArguments,
|
|
[out, size_is(, *pcInArguments)] BSTR ** prgbstrNames,
|
|
[out, size_is(, *pcInArguments)] BSTR ** prgbstrTypes);
|
|
|
|
|
|
[helpstring("method GetOutputArgumentNamesAndTypes")]
|
|
HRESULT GetOutputArgumentNamesAndTypes(
|
|
[in] LPWSTR pszActionName,
|
|
[out] DWORD * pcOutArguments,
|
|
[out, size_is(, *pcOutArguments)] BSTR ** prgbstrNames,
|
|
[out, size_is(, *pcOutArguments)] BSTR ** prgbstrTypes);
|
|
};
|
|
|
|
|
|
//
|
|
// Debug only
|
|
//
|
|
|
|
typedef struct _UDH_SUBSCRIBER_INFO {
|
|
[string] LPWSTR szDestUrl;
|
|
FILETIME ftTimeout;
|
|
DWORD csecTimeout;
|
|
DWORD iSeq;
|
|
[string] LPWSTR szSid;
|
|
} UDH_SUBSCRIBER_INFO;
|
|
|
|
typedef struct _UDH_EVTSRC_INFO {
|
|
[string] LPWSTR szEsid;
|
|
DWORD cSubs;
|
|
[size_is(cSubs)] UDH_SUBSCRIBER_INFO *rgSubs;
|
|
} UDH_EVTSRC_INFO;
|
|
|
|
[
|
|
uuid(6d8ff8e4-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPValidationManager : IUnknown
|
|
{
|
|
HRESULT ValidateDescriptionDocument(
|
|
[in] BSTR bstrTemplate,
|
|
[out, string] wchar_t ** pszErrorString);
|
|
HRESULT ValidateServiceDescription(
|
|
[in, string] const wchar_t * szFullPath,
|
|
[out, string] wchar_t ** pszErrorString);
|
|
HRESULT ValidateDescriptionDocumentAndReferences(
|
|
[in] BSTR bstrTemplate,
|
|
[in, string] const wchar_t * szResourcePath,
|
|
[out, string] wchar_t ** pszErrorString);
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8de-730d-11d4-bf42-00b0d0118b56),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPRegistrarICSSupport : IUnknown
|
|
{
|
|
HRESULT SetICSInterfaces([in] long nCount, [in, size_is(nCount)] GUID * arPrivateInterfaceGuids);
|
|
HRESULT SetICSOff();
|
|
}
|
|
|
|
///////////////////////////////////////////
|
|
// coclasses
|
|
|
|
[
|
|
uuid(6d8ff8d2-730d-11d4-bf42-00b0d0118b56),
|
|
helpstring("UPnPEventingManagerClass")
|
|
]
|
|
coclass UPnPEventingManager
|
|
{
|
|
[default] interface IUPnPEventingManager;
|
|
interface IUPnPEventSink;
|
|
};
|
|
|
|
|
|
[
|
|
uuid(0fb40f0d-1021-4022-8da0-aab0588dfc8b),
|
|
helpstring("UPnPAutomationProxy Class")
|
|
]
|
|
coclass UPnPAutomationProxy
|
|
{
|
|
[default] interface IUPnPAutomationProxy;
|
|
interface IUPnPServiceDescriptionInfo;
|
|
};
|
|
|
|
[
|
|
uuid(6d8ff8dc-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPDynamicContentSource
|
|
{
|
|
[default] interface IUnknown;
|
|
};
|
|
|
|
[
|
|
uuid(6d8ff8dd-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPDescriptionManager
|
|
{
|
|
[default] interface IUnknown;
|
|
};
|
|
|
|
[
|
|
uuid(6d8ff8df-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPDevicePersistenceManager
|
|
{
|
|
[default] interface IUnknown;
|
|
};
|
|
|
|
[
|
|
uuid(6d8ff8e0-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPContainer
|
|
{
|
|
[default] interface IUnknown;
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8e1-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPContainerManager
|
|
{
|
|
[default] interface IUnknown;
|
|
}
|
|
|
|
[
|
|
uuid(6d8ff8e5-730d-11d4-bf42-00b0d0118b56)
|
|
]
|
|
coclass UPnPValidationManager
|
|
{
|
|
[default] interface IUnknown;
|
|
}
|
|
|