mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
9.6 KiB
292 lines
9.6 KiB
// NATUPnP.idl : IDL source for NATUPnP.dll
|
|
//
|
|
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the type library (NATUPnP.tlb) and marshalling code.
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1992-2001.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
cpp_quote("// MODULE: natupnp.h")
|
|
cpp_quote("//")
|
|
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
interface IUPnPNAT;
|
|
interface IDynamicPortMappingCollection;
|
|
interface IDynamicPortMapping;
|
|
interface IStaticPortMappingCollection;
|
|
interface IStaticPortMapping;
|
|
interface INATEventManager;
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IUPnPNAT - top-level client-side object to manage NAT traversal via UPnP
|
|
//
|
|
[
|
|
object,
|
|
uuid(B171C812-CC76-485A-94D8-B6B3A2794E99),
|
|
dual,
|
|
helpstring("IUPnPNAT Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUPnPNAT : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property StaticPortMappingCollection")]
|
|
HRESULT StaticPortMappingCollection ([out, retval] IStaticPortMappingCollection ** ppSPMs);
|
|
|
|
[propget, id(2), helpstring("property DynamicPortMappingCollection")]
|
|
HRESULT DynamicPortMappingCollection ([out, retval] IDynamicPortMappingCollection ** ppDPMs);
|
|
|
|
[propget, id(3), helpstring("property NATEventManager")]
|
|
HRESULT NATEventManager ([out, retval] INATEventManager ** ppNEM);
|
|
};
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// INATEventManager
|
|
//
|
|
[
|
|
object,
|
|
uuid(624BD588-9060-4109-B0B0-1ADBBCAC32DF),
|
|
dual,
|
|
helpstring("INATEventManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INATEventManager : IDispatch
|
|
{
|
|
[id(1), propput, helpstring("property External IP Address Callback")]
|
|
HRESULT ExternalIPAddressCallback ([in] IUnknown * pUnk);
|
|
|
|
[id(2), propput, helpstring("property Number Of Entries Callback")]
|
|
HRESULT NumberOfEntriesCallback ([in] IUnknown * pUnk);
|
|
};
|
|
[
|
|
object,
|
|
uuid(9C416740-A34E-446F-BA06-ABD04C3149AE),
|
|
helpstring("INATExternalIPAddressCallback Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INATExternalIPAddressCallback : IUnknown
|
|
{
|
|
[id(0), helpstring("NewExternalIPAddress")]
|
|
HRESULT NewExternalIPAddress ([in] BSTR bstrNewExternalIPAddress);
|
|
};
|
|
[
|
|
object,
|
|
uuid(C83A0A74-91EE-41B6-B67A-67E0F00BBD78),
|
|
helpstring("INATNumberOfEntriesCallback Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INATNumberOfEntriesCallback : IUnknown
|
|
{
|
|
[id(0), helpstring("NewNumberOfEntries")]
|
|
HRESULT NewNumberOfEntries ([in] long lNewNumberOfEntries);
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IDynamicPortMappingCollection -
|
|
//
|
|
[
|
|
object,
|
|
uuid(B60DE00F-156E-4E8D-9EC1-3A2342C10899),
|
|
dual,
|
|
helpstring("IDynamicPortMappingCollection Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDynamicPortMappingCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_NEWENUM), helpstring("property _NewEnum"), hidden, restricted]
|
|
HRESULT _NewEnum([out, retval] IUnknown* *pVal);
|
|
|
|
[propget, id(DISPID_VALUE), helpstring("property Item")]
|
|
HRESULT Item(
|
|
[in] BSTR bstrRemoteHost,
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol,
|
|
[out, retval] IDynamicPortMapping ** ppDPM);
|
|
|
|
[propget, id(1), helpstring("property Count")]
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
[id(2), helpstring("method Remove")]
|
|
HRESULT Remove(
|
|
[in] BSTR bstrRemoteHost,
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol);
|
|
|
|
[id(3), helpstring("method Add")]
|
|
HRESULT Add(
|
|
[in] BSTR bstrRemoteHost,
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol,
|
|
[in] long lInternalPort,
|
|
[in] BSTR bstrInternalClient,
|
|
[in] VARIANT_BOOL bEnabled,
|
|
[in] BSTR bstrDescription,
|
|
[in] long lLeaseDuration,
|
|
[out, retval] IDynamicPortMapping ** ppDPM);
|
|
};
|
|
[
|
|
object,
|
|
uuid(4FC80282-23B6-4378-9A27-CD8F17C9400C),
|
|
dual,
|
|
helpstring("IDynamicPortMapping Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDynamicPortMapping : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property External IP Address")]
|
|
HRESULT ExternalIPAddress ([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(2), helpstring("property Remote Host")]
|
|
HRESULT RemoteHost ([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(3), helpstring("property External Port")]
|
|
HRESULT ExternalPort([out, retval] long *pVal);
|
|
|
|
[propget, id(4), helpstring("property Protocol")]
|
|
HRESULT Protocol([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(5), helpstring("property Internal Port")]
|
|
HRESULT InternalPort([out, retval] long *pVal);
|
|
|
|
[propget, id(6), helpstring("property Internal Client")]
|
|
HRESULT InternalClient([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(7), helpstring("property Enabled")]
|
|
HRESULT Enabled([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(8), helpstring("property Description")]
|
|
HRESULT Description([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(9), helpstring("property Lease Duration")]
|
|
HRESULT LeaseDuration([out, retval] long *pVal);
|
|
|
|
[id(10), helpstring("method Renew Lease (in seconds)")]
|
|
HRESULT RenewLease([in] long lLeaseDurationDesired,
|
|
[out, retval] long * pLeaseDurationReturned);
|
|
|
|
[id(11), helpstring("method to Edit Internal Client")]
|
|
HRESULT EditInternalClient ([in] BSTR bstrInternalClient);
|
|
|
|
[id(12), helpstring("method to Enable/disable Port Mapping")]
|
|
HRESULT Enable ([in] VARIANT_BOOL vb);
|
|
|
|
[id(13), helpstring("method to Edit Description")]
|
|
HRESULT EditDescription ([in] BSTR bstrDescription);
|
|
|
|
[id(14), helpstring("method to Edit Internal Port")]
|
|
HRESULT EditInternalPort ([in] long lInternalPort);
|
|
};
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
// IStaticPortMappingCollection - collection of static port mappings
|
|
//
|
|
[
|
|
object,
|
|
uuid(CD1F3E77-66D6-4664-82C7-36DBB641D0F1),
|
|
dual,
|
|
helpstring("IStaticPortMappingCollection Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IStaticPortMappingCollection : IDispatch
|
|
{
|
|
[propget, id(DISPID_NEWENUM), helpstring("property _NewEnum"), hidden, restricted]
|
|
HRESULT _NewEnum([out, retval] IUnknown* *pVal);
|
|
|
|
[propget, id(DISPID_VALUE), helpstring("property Item")]
|
|
HRESULT Item(
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol,
|
|
[out, retval] IStaticPortMapping ** ppSPM);
|
|
|
|
[propget, id(1), helpstring("property Count")]
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
[id(2), helpstring("method Remove")]
|
|
HRESULT Remove(
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol);
|
|
|
|
[id(3), helpstring("method Add")]
|
|
HRESULT Add(
|
|
[in] long lExternalPort,
|
|
[in] BSTR bstrProtocol,
|
|
[in] long lInternalPort,
|
|
[in] BSTR bstrInternalClient,
|
|
[in] VARIANT_BOOL bEnabled,
|
|
[in] BSTR bstrDescription,
|
|
[out, retval] IStaticPortMapping ** ppSPM);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(6F10711F-729B-41E5-93B8-F21D0F818DF1),
|
|
dual,
|
|
helpstring("IStaticPortMapping Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IStaticPortMapping : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property External IP Address")]
|
|
HRESULT ExternalIPAddress ([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(2), helpstring("property External Port")]
|
|
HRESULT ExternalPort([out, retval] long *pVal);
|
|
|
|
[propget, id(3), helpstring("property Internal Port")]
|
|
HRESULT InternalPort([out, retval] long *pVal);
|
|
|
|
[propget, id(4), helpstring("property Protocol")]
|
|
HRESULT Protocol([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(5), helpstring("property Internal Client")]
|
|
HRESULT InternalClient([out, retval] BSTR *pVal);
|
|
|
|
[propget, id(6), helpstring("property Enabled")]
|
|
HRESULT Enabled([out, retval] VARIANT_BOOL *pVal);
|
|
|
|
[propget, id(7), helpstring("property Description")]
|
|
HRESULT Description([out, retval] BSTR *pVal);
|
|
|
|
[id(8), helpstring("method to Edit Internal Client")]
|
|
HRESULT EditInternalClient ([in] BSTR bstrInternalClient);
|
|
|
|
[id(9), helpstring("method to Enable/disable Port Mapping")]
|
|
HRESULT Enable ([in] VARIANT_BOOL vb);
|
|
|
|
[id(10), helpstring("method to Edit Description")]
|
|
HRESULT EditDescription ([in] BSTR bstrDescription);
|
|
|
|
[id(11), helpstring("method to Edit Internal Port")]
|
|
HRESULT EditInternalPort ([in] long lInternalPort);
|
|
};
|
|
|
|
|
|
[
|
|
uuid(1C565858-F302-471E-B409-F180AA4ABEC6),
|
|
version(1.0),
|
|
helpstring("NATUPnP 1.0 Type Library")
|
|
]
|
|
library NATUPNPLib
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(AE1E00AA-3FD5-403C-8A27-2BBDC30CD0E1),
|
|
helpstring("UPnPNAT Class")
|
|
]
|
|
coclass UPnPNAT
|
|
{
|
|
[default] interface IUPnPNAT;
|
|
};
|
|
};
|