2009-07-15 22:58:25 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2009 Jacek Caban for CodeWeavers
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
|
|
import "oaidl.idl";
|
|
|
|
import "unknwn.idl";
|
|
|
|
import "wtypes.idl";
|
|
|
|
/* import "prsht.idl"; */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_NetSharingManager,0x5c63c1ad,0x3956,0x4ff8,0x84,0x86,0x40,0x03,0x47,0x58,0x31,0x5b);")
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956a1-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetConnection : IUnknown
|
|
|
|
{
|
|
|
|
typedef enum tagNETCON_CHARACTERISTIC_FLAGS
|
|
|
|
{
|
|
|
|
NCCF_NONE = 0x0000,
|
|
|
|
NCCF_ALL_USERS = 0x0001,
|
|
|
|
NCCF_ALLOW_DUPLICATION = 0x0002,
|
|
|
|
NCCF_ALLOW_REMOVAL = 0x0004,
|
|
|
|
NCCF_ALLOW_RENAME = 0x0008,
|
|
|
|
NCCF_INCOMING_ONLY = 0x0020,
|
|
|
|
NCCF_OUTGOING_ONLY = 0x0040,
|
|
|
|
NCCF_BRANDED = 0x0080,
|
|
|
|
NCCF_SHARED = 0x0100,
|
|
|
|
NCCF_BRIDGED = 0x0200,
|
|
|
|
NCCF_FIREWALLED = 0x0400,
|
|
|
|
NCCF_DEFAULT = 0x0800,
|
|
|
|
NCCF_HOMENET_CAPABLE = 0x1000,
|
|
|
|
NCCF_SHARED_PRIVATE = 0x2000,
|
|
|
|
NCCF_QUARANTINED = 0x4000,
|
|
|
|
NCCF_RESERVED = 0x8000,
|
|
|
|
NCCF_BLUETOOTH_MASK = 0x000F0000,
|
|
|
|
NCCF_LAN_MASK = 0x00F00000
|
|
|
|
} NETCON_CHARACTERISTIC_FLAGS;
|
|
|
|
|
|
|
|
typedef enum tagNETCON_STATUS
|
|
|
|
{
|
|
|
|
NCS_DISCONNECTED,
|
|
|
|
NCS_CONNECTING,
|
|
|
|
NCS_CONNECTED,
|
|
|
|
NCS_DISCONNECTING,
|
|
|
|
NCS_HARDWARE_NOT_PRESENT,
|
|
|
|
NCS_HARDWARE_DISABLED,
|
|
|
|
NCS_HARDWARE_MALFUNCTION,
|
|
|
|
NCS_MEDIA_DISCONNECTED,
|
|
|
|
NCS_AUTHENTICATING,
|
|
|
|
NCS_AUTHENTICATION_SUCCEEDED,
|
|
|
|
NCS_AUTHENTICATION_FAILED,
|
|
|
|
NCS_INVALID_ADDRESS,
|
|
|
|
NCS_CREDENTIALS_REQUIRED
|
|
|
|
} NETCON_STATUS;
|
|
|
|
|
|
|
|
typedef enum tagNETCON_TYPE
|
|
|
|
{
|
|
|
|
NCT_DIRECT_CONNECT,
|
|
|
|
NCT_INBOUND,
|
|
|
|
NCT_INTERNET,
|
|
|
|
NCT_LAN,
|
|
|
|
NCT_PHONE,
|
|
|
|
NCT_TUNNEL,
|
|
|
|
NCT_BRIDGE
|
|
|
|
} NETCON_TYPE;
|
|
|
|
|
|
|
|
typedef enum tagNETCON_MEDIATYPE
|
|
|
|
{
|
|
|
|
NCM_NONE,
|
|
|
|
NCM_DIRECT,
|
|
|
|
NCM_ISDN,
|
|
|
|
NCM_LAN,
|
|
|
|
NCM_PHONE,
|
|
|
|
NCM_TUNNEL,
|
|
|
|
NCM_PPPOE,
|
|
|
|
NCM_BRIDGE,
|
|
|
|
NCM_SHAREDACCESSHOST_LAN,
|
|
|
|
NCM_SHAREDACCESSHOST_RAS
|
|
|
|
} NETCON_MEDIATYPE;
|
|
|
|
|
|
|
|
typedef struct tagNETCON_PROPERTIES
|
|
|
|
{
|
|
|
|
GUID guidId;
|
|
|
|
[string] LPWSTR pszwName;
|
|
|
|
[string] LPWSTR pszwDeviceName;
|
|
|
|
NETCON_STATUS Status;
|
|
|
|
NETCON_MEDIATYPE MediaType;
|
|
|
|
DWORD dwCharacter;
|
|
|
|
CLSID clsidThisObject;
|
|
|
|
CLSID clsidUiObject;
|
|
|
|
} NETCON_PROPERTIES;
|
|
|
|
|
|
|
|
HRESULT Connect();
|
|
|
|
|
|
|
|
HRESULT Disconnect();
|
|
|
|
|
|
|
|
HRESULT Delete();
|
|
|
|
|
|
|
|
HRESULT Duplicate(
|
|
|
|
[in, string] LPCWSTR pszwDuplicateName,
|
|
|
|
[out] INetConnection **ppCon);
|
|
|
|
|
|
|
|
HRESULT GetProperties([out] NETCON_PROPERTIES **ppProps);
|
|
|
|
|
|
|
|
HRESULT GetUiObjectClassId([out, ref] CLSID *pclsid);
|
|
|
|
|
|
|
|
HRESULT Rename([in, string] LPCWSTR pszwNewName);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(24b7e9b5-e38f-4685-851b-00892cf5f940),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingPortMappingProps : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Name([out, retval] BSTR *pbstrName);
|
|
|
|
|
|
|
|
[propget, id(2)]
|
|
|
|
HRESULT IPProtocol([out, retval] UCHAR *pucIPProt);
|
|
|
|
|
|
|
|
[propget, id(3)]
|
|
|
|
HRESULT ExternalPort([out, retval] long *pusPort);
|
|
|
|
|
|
|
|
[propget, id(4)]
|
|
|
|
HRESULT InternalPort([out, retval] long *pusPort);
|
|
|
|
|
|
|
|
[propget, id(5)]
|
|
|
|
HRESULT Options([out, retval] long *pdwOptions);
|
|
|
|
|
|
|
|
[propget, id(6)]
|
|
|
|
HRESULT TargetName([out, retval] BSTR *pbstrTargetName);
|
|
|
|
|
|
|
|
[propget, id(7)]
|
|
|
|
HRESULT TargetIPAddress([out, retval] BSTR *pbstrTargetIPAddress);
|
|
|
|
|
|
|
|
[propget, id(8)]
|
|
|
|
HRESULT Enabled([out, retval] VARIANT_BOOL *pbool);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956b1-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingPortMapping : IDispatch
|
|
|
|
{
|
|
|
|
[id(1)]
|
|
|
|
HRESULT Disable();
|
|
|
|
|
|
|
|
[id(2)]
|
|
|
|
HRESULT Enable();
|
|
|
|
|
|
|
|
[propget, id(3)]
|
|
|
|
HRESULT Properties([out, retval] INetSharingPortMappingProps **ppNSPMP);
|
|
|
|
|
|
|
|
[id(4)]
|
|
|
|
HRESULT Delete();
|
2017-12-13 16:48:14 +00:00
|
|
|
}
|
2009-07-15 22:58:25 +00:00
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(02e4a2de-da20-4e34-89c8-ac22275a010b),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingPortMappingCollection : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_NEWENUM), restricted]
|
|
|
|
HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
|
|
|
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956b6-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingConfiguration : IDispatch
|
|
|
|
{
|
|
|
|
typedef enum tagSHARINGCONNECTIONTYPE {
|
|
|
|
ICSSHARINGTYPE_PUBLIC,
|
|
|
|
ICSSHARINGTYPE_PRIVATE
|
|
|
|
} SHARINGCONNECTIONTYPE, *LPSHARINGCONNECTIONTYPE;
|
|
|
|
|
|
|
|
typedef enum tagSHARINGCONNECTION_ENUM_FLAGS {
|
|
|
|
ICSSC_DEFAULT,
|
|
|
|
ICSSC_ENABLED
|
|
|
|
} SHARINGCONNECTION_ENUM_FLAGS;
|
|
|
|
|
|
|
|
typedef enum tagICS_TARGETTYPE {
|
|
|
|
ICSTT_NAME,
|
|
|
|
ICSTT_IPADDRESS
|
|
|
|
}ICS_TARGETTYPE;
|
|
|
|
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT SharingEnabled([out, retval] VARIANT_BOOL *pbEnabled);
|
|
|
|
|
|
|
|
[propget, id(2)]
|
|
|
|
HRESULT SharingConnectionType([out, retval] SHARINGCONNECTIONTYPE *pType);
|
|
|
|
|
|
|
|
[id(3)]
|
|
|
|
HRESULT DisableSharing();
|
|
|
|
|
|
|
|
[id(4)]
|
|
|
|
HRESULT EnableSharing([in] SHARINGCONNECTIONTYPE Type);
|
|
|
|
|
|
|
|
[propget, id(5)]
|
|
|
|
HRESULT InternetFirewallEnabled([out, retval] VARIANT_BOOL *pbEnabled);
|
|
|
|
|
|
|
|
[id(6)]
|
|
|
|
HRESULT DisableInternetFirewall();
|
|
|
|
|
|
|
|
[id(7)]
|
|
|
|
HRESULT EnableInternetFirewall();
|
|
|
|
|
|
|
|
[propget, id(8)]
|
|
|
|
HRESULT EnumPortMappings(
|
|
|
|
[in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
|
|
|
[out, retval] INetSharingPortMappingCollection **ppColl);
|
|
|
|
|
|
|
|
[id(9)]
|
|
|
|
HRESULT AddPortMapping(
|
|
|
|
[in] BSTR bstrName,
|
|
|
|
[in] UCHAR ucIPProtocol,
|
|
|
|
[in] USHORT usExternalPort,
|
|
|
|
[in] USHORT usInternalPort,
|
|
|
|
[in] DWORD dwOptions,
|
|
|
|
[in] BSTR bstrTargetNameOrIPAddress,
|
|
|
|
[in] ICS_TARGETTYPE eTargetType,
|
|
|
|
[out, retval] INetSharingPortMapping **ppMapping );
|
|
|
|
|
|
|
|
[id(10)]
|
|
|
|
HRESULT RemovePortMapping([in] INetSharingPortMapping *pMapping);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956b4-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IEnumNetSharingPublicConnection : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT Next(
|
|
|
|
[in] ULONG celt,
|
|
|
|
[out, size_is(celt), length_is(*pceltFetched)] VARIANT *rgVar,
|
|
|
|
[out] ULONG *pceltFetched);
|
|
|
|
|
|
|
|
HRESULT Skip([in] ULONG celt);
|
|
|
|
|
|
|
|
HRESULT Reset();
|
|
|
|
|
|
|
|
HRESULT Clone([out] IEnumNetSharingPublicConnection **ppenum);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956b5-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IEnumNetSharingPrivateConnection : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT Next(
|
|
|
|
[in] ULONG celt,
|
|
|
|
[out, size_is(celt), length_is(*pCeltFetched)] VARIANT *rgVar,
|
|
|
|
[out] ULONG *pCeltFetched);
|
|
|
|
|
|
|
|
HRESULT Skip([in] ULONG celt);
|
|
|
|
|
|
|
|
HRESULT Reset();
|
|
|
|
|
|
|
|
HRESULT Clone([out] IEnumNetSharingPrivateConnection **ppenum);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(f4277c95-ce5b-463d-8167-5662d9bcaa72),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetConnectionProps : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Guid([out, retval] BSTR *pbstrGuid);
|
|
|
|
|
|
|
|
[propget, id(2)]
|
|
|
|
HRESULT Name([out, retval] BSTR *pbstrName);
|
|
|
|
|
|
|
|
[propget, id(3)]
|
|
|
|
HRESULT DeviceName([out, retval] BSTR *pbstrDeviceName);
|
|
|
|
|
|
|
|
[propget, id(4)]
|
|
|
|
HRESULT Status([out, retval] NETCON_STATUS *pStatus);
|
|
|
|
|
|
|
|
[propget, id(5)]
|
|
|
|
HRESULT MediaType([out, retval] NETCON_MEDIATYPE *pMediaType);
|
|
|
|
|
|
|
|
[propget, id(6)]
|
|
|
|
HRESULT Characteristics([out, retval] DWORD *pdwFlags);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(7d7a6355-f372-4971-a149-bfc927be762a),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingPublicConnectionCollection : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_NEWENUM), restricted]
|
|
|
|
HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
|
|
|
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(33c4643c-7811-46fa-a89a-768597bd7223),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingEveryConnectionCollection : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_NEWENUM), restricted]
|
|
|
|
HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
|
|
|
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(38ae69e0-4409-402a-a2cb-e965c727f840),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingPrivateConnectionCollection : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_NEWENUM), restricted]
|
|
|
|
HRESULT _NewEnum([out, retval] IUnknown **pVal);
|
|
|
|
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT Count([out, retval] long *pVal);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(c08956b7-1cd3-11d1-b1c5-00805fc1270e),
|
|
|
|
oleautomation,
|
|
|
|
dual,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface INetSharingManager : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(1)]
|
|
|
|
HRESULT SharingInstalled([out, retval] VARIANT_BOOL *pbInstalled);
|
|
|
|
|
|
|
|
[propget, id(2)]
|
|
|
|
HRESULT EnumPublicConnections(
|
|
|
|
[in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
|
|
|
[out, retval] INetSharingPublicConnectionCollection **ppColl);
|
|
|
|
|
|
|
|
[propget, id(3)]
|
|
|
|
HRESULT EnumPrivateConnections(
|
|
|
|
[in] SHARINGCONNECTION_ENUM_FLAGS Flags,
|
|
|
|
[out, retval] INetSharingPrivateConnectionCollection **ppColl);
|
|
|
|
|
|
|
|
[propget, id(6)]
|
|
|
|
HRESULT INetSharingConfigurationForINetConnection(
|
|
|
|
[in] INetConnection *pNetConnection,
|
|
|
|
[out, retval] INetSharingConfiguration **ppNetSharingConfiguration);
|
|
|
|
|
|
|
|
[propget, id(7)]
|
|
|
|
HRESULT EnumEveryConnection([out, retval] INetSharingEveryConnectionCollection **ppColl);
|
|
|
|
|
|
|
|
[propget, id(8)]
|
|
|
|
HRESULT NetConnectionProps(
|
|
|
|
[in] INetConnection *pNetConnection,
|
|
|
|
[out, retval] INetConnectionProps **ppProps);
|
|
|
|
}
|