ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

netcon.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright 2009 Jacek Caban for CodeWeavers
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef DO_NO_IMPORTS
00020 import "oaidl.idl";
00021 import "unknwn.idl";
00022 import "wtypes.idl";
00023 /* import "prsht.idl"; */
00024 #endif
00025 
00026 cpp_quote("DEFINE_GUID(CLSID_NetSharingManager,0x5c63c1ad,0x3956,0x4ff8,0x84,0x86,0x40,0x03,0x47,0x58,0x31,0x5b);")
00027 
00028 [
00029     object,
00030     uuid(c08956a1-1cd3-11d1-b1c5-00805fc1270e),
00031     pointer_default(unique)
00032 ]
00033 interface INetConnection : IUnknown
00034 {
00035     typedef enum tagNETCON_CHARACTERISTIC_FLAGS
00036     {
00037         NCCF_NONE               = 0x0000,
00038         NCCF_ALL_USERS          = 0x0001,
00039         NCCF_ALLOW_DUPLICATION  = 0x0002,
00040         NCCF_ALLOW_REMOVAL      = 0x0004,
00041         NCCF_ALLOW_RENAME       = 0x0008,
00042         NCCF_INCOMING_ONLY      = 0x0020,
00043         NCCF_OUTGOING_ONLY      = 0x0040,
00044         NCCF_BRANDED            = 0x0080,
00045         NCCF_SHARED             = 0x0100,
00046         NCCF_BRIDGED            = 0x0200,
00047         NCCF_FIREWALLED         = 0x0400,
00048         NCCF_DEFAULT            = 0x0800,
00049         NCCF_HOMENET_CAPABLE    = 0x1000,
00050         NCCF_SHARED_PRIVATE     = 0x2000,
00051         NCCF_QUARANTINED        = 0x4000,
00052         NCCF_RESERVED           = 0x8000,
00053         NCCF_BLUETOOTH_MASK  = 0x000F0000,
00054         NCCF_LAN_MASK        = 0x00F00000
00055     } NETCON_CHARACTERISTIC_FLAGS;
00056 
00057     typedef enum tagNETCON_STATUS
00058     {
00059         NCS_DISCONNECTED,
00060         NCS_CONNECTING,
00061         NCS_CONNECTED,
00062         NCS_DISCONNECTING,
00063         NCS_HARDWARE_NOT_PRESENT,
00064         NCS_HARDWARE_DISABLED,
00065         NCS_HARDWARE_MALFUNCTION,
00066         NCS_MEDIA_DISCONNECTED,
00067         NCS_AUTHENTICATING,
00068         NCS_AUTHENTICATION_SUCCEEDED,
00069         NCS_AUTHENTICATION_FAILED,
00070         NCS_INVALID_ADDRESS,
00071         NCS_CREDENTIALS_REQUIRED
00072     } NETCON_STATUS;
00073 
00074     typedef enum tagNETCON_TYPE
00075     {
00076         NCT_DIRECT_CONNECT,
00077         NCT_INBOUND,
00078         NCT_INTERNET,
00079         NCT_LAN,
00080         NCT_PHONE,
00081         NCT_TUNNEL,
00082         NCT_BRIDGE
00083     } NETCON_TYPE;
00084 
00085     typedef enum tagNETCON_MEDIATYPE
00086     {
00087         NCM_NONE,
00088         NCM_DIRECT,
00089         NCM_ISDN,
00090         NCM_LAN,
00091         NCM_PHONE,
00092         NCM_TUNNEL,
00093         NCM_PPPOE,
00094         NCM_BRIDGE,
00095         NCM_SHAREDACCESSHOST_LAN,
00096         NCM_SHAREDACCESSHOST_RAS
00097     } NETCON_MEDIATYPE;
00098 
00099     typedef struct tagNETCON_PROPERTIES
00100     {
00101         GUID              guidId;
00102         [string] LPWSTR   pszwName;
00103         [string] LPWSTR   pszwDeviceName;
00104         NETCON_STATUS     Status;
00105         NETCON_MEDIATYPE  MediaType;
00106         DWORD             dwCharacter;
00107         CLSID             clsidThisObject;
00108         CLSID             clsidUiObject;
00109     } NETCON_PROPERTIES;
00110 
00111     HRESULT Connect();
00112 
00113     HRESULT Disconnect();
00114 
00115     HRESULT Delete();
00116 
00117     HRESULT Duplicate(
00118             [in, string] LPCWSTR pszwDuplicateName,
00119             [out]        INetConnection **ppCon);
00120 
00121     HRESULT GetProperties([out] NETCON_PROPERTIES **ppProps);
00122 
00123     HRESULT GetUiObjectClassId([out, ref] CLSID *pclsid);
00124 
00125     HRESULT Rename([in, string] LPCWSTR pszwNewName);
00126 }
00127 
00128 [
00129     object,
00130     uuid(24b7e9b5-e38f-4685-851b-00892cf5f940),
00131     oleautomation,
00132     dual,
00133     pointer_default(unique)
00134 ]
00135 interface INetSharingPortMappingProps : IDispatch
00136 {
00137     [propget, id(1)]
00138     HRESULT Name([out, retval] BSTR *pbstrName);
00139 
00140     [propget, id(2)]
00141     HRESULT IPProtocol([out, retval] UCHAR *pucIPProt);
00142 
00143     [propget, id(3)]
00144     HRESULT ExternalPort([out, retval] long *pusPort);
00145 
00146     [propget, id(4)]
00147     HRESULT InternalPort([out, retval] long *pusPort);
00148 
00149     [propget, id(5)]
00150     HRESULT Options([out, retval] long *pdwOptions);
00151 
00152     [propget, id(6)]
00153     HRESULT TargetName([out, retval] BSTR *pbstrTargetName);
00154 
00155     [propget, id(7)]
00156     HRESULT TargetIPAddress([out, retval] BSTR *pbstrTargetIPAddress);
00157 
00158     [propget, id(8)]
00159     HRESULT Enabled([out, retval] VARIANT_BOOL *pbool);
00160 }
00161 
00162 [
00163     object,
00164     uuid(c08956b1-1cd3-11d1-b1c5-00805fc1270e),
00165     oleautomation,
00166     dual,
00167     pointer_default(unique)
00168 ]
00169 interface INetSharingPortMapping : IDispatch
00170 {
00171     [id(1)]
00172     HRESULT Disable();
00173 
00174     [id(2)]
00175     HRESULT Enable();
00176 
00177     [propget, id(3)]
00178     HRESULT Properties([out, retval] INetSharingPortMappingProps **ppNSPMP);
00179 
00180     [id(4)]
00181     HRESULT Delete();
00182 };
00183 [
00184     object,
00185     uuid(02e4a2de-da20-4e34-89c8-ac22275a010b),
00186     oleautomation,
00187     dual,
00188     pointer_default(unique)
00189 ]
00190 interface INetSharingPortMappingCollection : IDispatch
00191 {
00192     [propget, id(DISPID_NEWENUM), restricted]
00193     HRESULT _NewEnum([out, retval] IUnknown **pVal);
00194 
00195     [propget, id(1)]
00196     HRESULT Count([out, retval] long *pVal);
00197 }
00198 
00199 [
00200     object,
00201     uuid(c08956b6-1cd3-11d1-b1c5-00805fc1270e),
00202     oleautomation,
00203     dual,
00204     pointer_default(unique)
00205 ]
00206 interface INetSharingConfiguration : IDispatch
00207 {
00208     typedef enum tagSHARINGCONNECTIONTYPE {
00209         ICSSHARINGTYPE_PUBLIC,
00210         ICSSHARINGTYPE_PRIVATE
00211     } SHARINGCONNECTIONTYPE, *LPSHARINGCONNECTIONTYPE;
00212 
00213     typedef enum tagSHARINGCONNECTION_ENUM_FLAGS {
00214             ICSSC_DEFAULT,
00215             ICSSC_ENABLED
00216     } SHARINGCONNECTION_ENUM_FLAGS;
00217 
00218     typedef enum tagICS_TARGETTYPE {
00219             ICSTT_NAME,
00220             ICSTT_IPADDRESS
00221     }ICS_TARGETTYPE;
00222 
00223     [propget, id(1)]
00224     HRESULT SharingEnabled([out, retval] VARIANT_BOOL *pbEnabled);
00225 
00226     [propget, id(2)]
00227     HRESULT SharingConnectionType([out, retval] SHARINGCONNECTIONTYPE *pType);
00228 
00229     [id(3)]
00230     HRESULT DisableSharing();
00231 
00232     [id(4)]
00233     HRESULT EnableSharing([in] SHARINGCONNECTIONTYPE Type);
00234 
00235     [propget, id(5)]
00236     HRESULT InternetFirewallEnabled([out, retval] VARIANT_BOOL *pbEnabled);
00237 
00238     [id(6)]
00239     HRESULT DisableInternetFirewall();
00240 
00241     [id(7)]
00242     HRESULT EnableInternetFirewall();
00243 
00244     [propget, id(8)]
00245     HRESULT EnumPortMappings(
00246         [in] SHARINGCONNECTION_ENUM_FLAGS Flags,
00247         [out, retval] INetSharingPortMappingCollection **ppColl);
00248 
00249     [id(9)]
00250     HRESULT AddPortMapping(
00251             [in] BSTR bstrName,
00252             [in] UCHAR ucIPProtocol,
00253             [in] USHORT usExternalPort,
00254             [in] USHORT usInternalPort,
00255             [in] DWORD dwOptions,
00256             [in] BSTR bstrTargetNameOrIPAddress,
00257             [in] ICS_TARGETTYPE eTargetType,
00258             [out, retval] INetSharingPortMapping **ppMapping );
00259 
00260     [id(10)]
00261     HRESULT RemovePortMapping([in] INetSharingPortMapping *pMapping);
00262 }
00263 
00264 [
00265     object,
00266     uuid(c08956b4-1cd3-11d1-b1c5-00805fc1270e),
00267     pointer_default(unique)
00268 ]
00269 interface IEnumNetSharingPublicConnection : IUnknown
00270 {
00271     HRESULT Next(
00272             [in] ULONG celt,
00273             [out, size_is(celt), length_is(*pceltFetched)] VARIANT *rgVar,
00274             [out] ULONG *pceltFetched);
00275 
00276     HRESULT Skip([in] ULONG celt);
00277 
00278     HRESULT Reset();
00279 
00280     HRESULT Clone([out] IEnumNetSharingPublicConnection **ppenum);
00281 }
00282 
00283 [
00284     object,
00285     uuid(c08956b5-1cd3-11d1-b1c5-00805fc1270e),
00286     pointer_default(unique)
00287 ]
00288 interface IEnumNetSharingPrivateConnection : IUnknown
00289 {
00290     HRESULT Next(
00291             [in] ULONG celt,
00292             [out, size_is(celt), length_is(*pCeltFetched)] VARIANT *rgVar,
00293             [out] ULONG *pCeltFetched);
00294 
00295     HRESULT Skip([in] ULONG celt);
00296 
00297     HRESULT Reset();
00298 
00299     HRESULT Clone([out] IEnumNetSharingPrivateConnection **ppenum);
00300 }
00301 
00302 [
00303     object,
00304     uuid(f4277c95-ce5b-463d-8167-5662d9bcaa72),
00305     oleautomation,
00306     dual,
00307     pointer_default(unique)
00308 ]
00309 interface INetConnectionProps : IDispatch
00310 {
00311     [propget, id(1)]
00312     HRESULT Guid([out, retval] BSTR *pbstrGuid);
00313 
00314     [propget, id(2)]
00315     HRESULT Name([out, retval] BSTR *pbstrName);
00316 
00317     [propget, id(3)]
00318     HRESULT DeviceName([out, retval] BSTR *pbstrDeviceName);
00319 
00320     [propget, id(4)]
00321     HRESULT Status([out, retval] NETCON_STATUS *pStatus);
00322 
00323     [propget, id(5)]
00324     HRESULT MediaType([out, retval] NETCON_MEDIATYPE *pMediaType);
00325 
00326     [propget, id(6)]
00327     HRESULT Characteristics([out, retval] DWORD *pdwFlags);
00328 }
00329 
00330 [
00331     object,
00332     uuid(7d7a6355-f372-4971-a149-bfc927be762a),
00333     oleautomation,
00334     dual,
00335     pointer_default(unique)
00336 ]
00337 interface INetSharingPublicConnectionCollection : IDispatch
00338 {
00339     [propget, id(DISPID_NEWENUM), restricted]
00340     HRESULT _NewEnum([out, retval] IUnknown **pVal);
00341 
00342     [propget, id(1)]
00343     HRESULT Count([out, retval] long *pVal);
00344 }
00345 
00346 [
00347     object,
00348     uuid(33c4643c-7811-46fa-a89a-768597bd7223),
00349     oleautomation,
00350     dual,
00351     pointer_default(unique)
00352  ]
00353 interface INetSharingEveryConnectionCollection : IDispatch
00354 {
00355     [propget, id(DISPID_NEWENUM), restricted]
00356     HRESULT _NewEnum([out, retval] IUnknown **pVal);
00357 
00358     [propget, id(1)]
00359     HRESULT Count([out, retval] long *pVal);
00360 }
00361 
00362 [
00363     object,
00364     uuid(38ae69e0-4409-402a-a2cb-e965c727f840),
00365     oleautomation,
00366     dual,
00367     pointer_default(unique)
00368  ]
00369 interface INetSharingPrivateConnectionCollection : IDispatch
00370 {
00371     [propget, id(DISPID_NEWENUM), restricted]
00372     HRESULT _NewEnum([out, retval] IUnknown **pVal);
00373 
00374     [propget, id(1)]
00375     HRESULT Count([out, retval] long *pVal);
00376 }
00377 
00378 [
00379     object,
00380     uuid(c08956b7-1cd3-11d1-b1c5-00805fc1270e),
00381     oleautomation,
00382     dual,
00383     pointer_default(unique)
00384 ]
00385 interface INetSharingManager : IDispatch
00386 {
00387     [propget, id(1)]
00388     HRESULT SharingInstalled([out, retval] VARIANT_BOOL *pbInstalled);
00389 
00390     [propget, id(2)]
00391     HRESULT EnumPublicConnections(
00392             [in]  SHARINGCONNECTION_ENUM_FLAGS Flags,
00393             [out, retval] INetSharingPublicConnectionCollection **ppColl);
00394 
00395     [propget, id(3)]
00396     HRESULT EnumPrivateConnections(
00397             [in]  SHARINGCONNECTION_ENUM_FLAGS Flags,
00398             [out, retval] INetSharingPrivateConnectionCollection **ppColl);
00399 
00400     [propget, id(6)]
00401     HRESULT INetSharingConfigurationForINetConnection(
00402             [in] INetConnection *pNetConnection,
00403             [out, retval] INetSharingConfiguration **ppNetSharingConfiguration);
00404 
00405     [propget, id(7)]
00406     HRESULT EnumEveryConnection([out, retval] INetSharingEveryConnectionCollection **ppColl);
00407 
00408     [propget, id(8)]
00409     HRESULT NetConnectionProps(
00410             [in] INetConnection *pNetConnection,
00411             [out, retval] INetConnectionProps **ppProps);
00412 }

Generated on Sat May 26 2012 04:30:50 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.