Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413/* * 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_IMPORTSimport "oaidl.idl";import "unknwn.idl";import "wtypes.idl";/* import "prsht.idl"; */#endifcpp_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);}