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