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