Files
reactos/reactos/include/psdk/netcon.idl
T
Daniel Reimer d848c9746e Sync most idl files with Wine head. (Samuel Serapion)
Modify shell32 and uuid to work with the new idls.
This will break build till next commit.

svn path=/trunk/; revision=47953
2010-07-05 23:00:19 +00:00

413 lines
10 KiB
Plaintext

/*
* 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();
};
[
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);
}