/*** Autogenerated by WIDL 5.15 from ../../wine/include/netcon.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __netcon_h__
#define __netcon_h__

/* Forward declarations */

#ifndef __INetConnection_FWD_DEFINED__
#define __INetConnection_FWD_DEFINED__
typedef interface INetConnection INetConnection;
#ifdef __cplusplus
interface INetConnection;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingPortMappingProps_FWD_DEFINED__
#define __INetSharingPortMappingProps_FWD_DEFINED__
typedef interface INetSharingPortMappingProps INetSharingPortMappingProps;
#ifdef __cplusplus
interface INetSharingPortMappingProps;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingPortMapping_FWD_DEFINED__
#define __INetSharingPortMapping_FWD_DEFINED__
typedef interface INetSharingPortMapping INetSharingPortMapping;
#ifdef __cplusplus
interface INetSharingPortMapping;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingPortMappingCollection_FWD_DEFINED__
#define __INetSharingPortMappingCollection_FWD_DEFINED__
typedef interface INetSharingPortMappingCollection INetSharingPortMappingCollection;
#ifdef __cplusplus
interface INetSharingPortMappingCollection;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingConfiguration_FWD_DEFINED__
#define __INetSharingConfiguration_FWD_DEFINED__
typedef interface INetSharingConfiguration INetSharingConfiguration;
#ifdef __cplusplus
interface INetSharingConfiguration;
#endif /* __cplusplus */
#endif

#ifndef __IEnumNetSharingPublicConnection_FWD_DEFINED__
#define __IEnumNetSharingPublicConnection_FWD_DEFINED__
typedef interface IEnumNetSharingPublicConnection IEnumNetSharingPublicConnection;
#ifdef __cplusplus
interface IEnumNetSharingPublicConnection;
#endif /* __cplusplus */
#endif

#ifndef __IEnumNetSharingPrivateConnection_FWD_DEFINED__
#define __IEnumNetSharingPrivateConnection_FWD_DEFINED__
typedef interface IEnumNetSharingPrivateConnection IEnumNetSharingPrivateConnection;
#ifdef __cplusplus
interface IEnumNetSharingPrivateConnection;
#endif /* __cplusplus */
#endif

#ifndef __INetConnectionProps_FWD_DEFINED__
#define __INetConnectionProps_FWD_DEFINED__
typedef interface INetConnectionProps INetConnectionProps;
#ifdef __cplusplus
interface INetConnectionProps;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingPublicConnectionCollection_FWD_DEFINED__
#define __INetSharingPublicConnectionCollection_FWD_DEFINED__
typedef interface INetSharingPublicConnectionCollection INetSharingPublicConnectionCollection;
#ifdef __cplusplus
interface INetSharingPublicConnectionCollection;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingEveryConnectionCollection_FWD_DEFINED__
#define __INetSharingEveryConnectionCollection_FWD_DEFINED__
typedef interface INetSharingEveryConnectionCollection INetSharingEveryConnectionCollection;
#ifdef __cplusplus
interface INetSharingEveryConnectionCollection;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingPrivateConnectionCollection_FWD_DEFINED__
#define __INetSharingPrivateConnectionCollection_FWD_DEFINED__
typedef interface INetSharingPrivateConnectionCollection INetSharingPrivateConnectionCollection;
#ifdef __cplusplus
interface INetSharingPrivateConnectionCollection;
#endif /* __cplusplus */
#endif

#ifndef __INetSharingManager_FWD_DEFINED__
#define __INetSharingManager_FWD_DEFINED__
typedef interface INetSharingManager INetSharingManager;
#ifdef __cplusplus
interface INetSharingManager;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <oaidl.h>
#include <unknwn.h>
#include <wtypes.h>

#ifdef __cplusplus
extern "C" {
#endif

DEFINE_GUID(CLSID_NetSharingManager,0x5c63c1ad,0x3956,0x4ff8,0x84,0x86,0x40,0x03,0x47,0x58,0x31,0x5b);
/*****************************************************************************
 * INetConnection interface
 */
#ifndef __INetConnection_INTERFACE_DEFINED__
#define __INetConnection_INTERFACE_DEFINED__

typedef enum tagNETCON_CHARACTERISTIC_FLAGS {
    NCCF_NONE = 0x0,
    NCCF_ALL_USERS = 0x1,
    NCCF_ALLOW_DUPLICATION = 0x2,
    NCCF_ALLOW_REMOVAL = 0x4,
    NCCF_ALLOW_RENAME = 0x8,
    NCCF_INCOMING_ONLY = 0x20,
    NCCF_OUTGOING_ONLY = 0x40,
    NCCF_BRANDED = 0x80,
    NCCF_SHARED = 0x100,
    NCCF_BRIDGED = 0x200,
    NCCF_FIREWALLED = 0x400,
    NCCF_DEFAULT = 0x800,
    NCCF_HOMENET_CAPABLE = 0x1000,
    NCCF_SHARED_PRIVATE = 0x2000,
    NCCF_QUARANTINED = 0x4000,
    NCCF_RESERVED = 0x8000,
    NCCF_BLUETOOTH_MASK = 0xf0000,
    NCCF_LAN_MASK = 0xf00000
} NETCON_CHARACTERISTIC_FLAGS;
typedef enum tagNETCON_STATUS {
    NCS_DISCONNECTED = 0,
    NCS_CONNECTING = 1,
    NCS_CONNECTED = 2,
    NCS_DISCONNECTING = 3,
    NCS_HARDWARE_NOT_PRESENT = 4,
    NCS_HARDWARE_DISABLED = 5,
    NCS_HARDWARE_MALFUNCTION = 6,
    NCS_MEDIA_DISCONNECTED = 7,
    NCS_AUTHENTICATING = 8,
    NCS_AUTHENTICATION_SUCCEEDED = 9,
    NCS_AUTHENTICATION_FAILED = 10,
    NCS_INVALID_ADDRESS = 11,
    NCS_CREDENTIALS_REQUIRED = 12
} NETCON_STATUS;
typedef enum tagNETCON_TYPE {
    NCT_DIRECT_CONNECT = 0,
    NCT_INBOUND = 1,
    NCT_INTERNET = 2,
    NCT_LAN = 3,
    NCT_PHONE = 4,
    NCT_TUNNEL = 5,
    NCT_BRIDGE = 6
} NETCON_TYPE;
typedef enum tagNETCON_MEDIATYPE {
    NCM_NONE = 0,
    NCM_DIRECT = 1,
    NCM_ISDN = 2,
    NCM_LAN = 3,
    NCM_PHONE = 4,
    NCM_TUNNEL = 5,
    NCM_PPPOE = 6,
    NCM_BRIDGE = 7,
    NCM_SHAREDACCESSHOST_LAN = 8,
    NCM_SHAREDACCESSHOST_RAS = 9
} NETCON_MEDIATYPE;
typedef struct tagNETCON_PROPERTIES {
    GUID guidId;
    LPWSTR pszwName;
    LPWSTR pszwDeviceName;
    NETCON_STATUS Status;
    NETCON_MEDIATYPE MediaType;
    DWORD dwCharacter;
    CLSID clsidThisObject;
    CLSID clsidUiObject;
} NETCON_PROPERTIES;
DEFINE_GUID(IID_INetConnection, 0xc08956a1, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956a1-1cd3-11d1-b1c5-00805fc1270e")
INetConnection : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Connect(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Disconnect(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Duplicate(
        LPCWSTR pszwDuplicateName,
        INetConnection **ppCon) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProperties(
        NETCON_PROPERTIES **ppProps) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetUiObjectClassId(
        CLSID *pclsid) = 0;

    virtual HRESULT STDMETHODCALLTYPE Rename(
        LPCWSTR pszwNewName) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetConnection, 0xc08956a1, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct INetConnectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetConnection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetConnection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetConnection *This);

    /*** INetConnection methods ***/
    HRESULT (STDMETHODCALLTYPE *Connect)(
        INetConnection *This);

    HRESULT (STDMETHODCALLTYPE *Disconnect)(
        INetConnection *This);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        INetConnection *This);

    HRESULT (STDMETHODCALLTYPE *Duplicate)(
        INetConnection *This,
        LPCWSTR pszwDuplicateName,
        INetConnection **ppCon);

    HRESULT (STDMETHODCALLTYPE *GetProperties)(
        INetConnection *This,
        NETCON_PROPERTIES **ppProps);

    HRESULT (STDMETHODCALLTYPE *GetUiObjectClassId)(
        INetConnection *This,
        CLSID *pclsid);

    HRESULT (STDMETHODCALLTYPE *Rename)(
        INetConnection *This,
        LPCWSTR pszwNewName);

    END_INTERFACE
} INetConnectionVtbl;

interface INetConnection {
    CONST_VTBL INetConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetConnection_Release(This) (This)->lpVtbl->Release(This)
/*** INetConnection methods ***/
#define INetConnection_Connect(This) (This)->lpVtbl->Connect(This)
#define INetConnection_Disconnect(This) (This)->lpVtbl->Disconnect(This)
#define INetConnection_Delete(This) (This)->lpVtbl->Delete(This)
#define INetConnection_Duplicate(This,pszwDuplicateName,ppCon) (This)->lpVtbl->Duplicate(This,pszwDuplicateName,ppCon)
#define INetConnection_GetProperties(This,ppProps) (This)->lpVtbl->GetProperties(This,ppProps)
#define INetConnection_GetUiObjectClassId(This,pclsid) (This)->lpVtbl->GetUiObjectClassId(This,pclsid)
#define INetConnection_Rename(This,pszwNewName) (This)->lpVtbl->Rename(This,pszwNewName)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetConnection_QueryInterface(INetConnection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetConnection_AddRef(INetConnection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetConnection_Release(INetConnection* This) {
    return This->lpVtbl->Release(This);
}
/*** INetConnection methods ***/
static FORCEINLINE HRESULT INetConnection_Connect(INetConnection* This) {
    return This->lpVtbl->Connect(This);
}
static FORCEINLINE HRESULT INetConnection_Disconnect(INetConnection* This) {
    return This->lpVtbl->Disconnect(This);
}
static FORCEINLINE HRESULT INetConnection_Delete(INetConnection* This) {
    return This->lpVtbl->Delete(This);
}
static FORCEINLINE HRESULT INetConnection_Duplicate(INetConnection* This,LPCWSTR pszwDuplicateName,INetConnection **ppCon) {
    return This->lpVtbl->Duplicate(This,pszwDuplicateName,ppCon);
}
static FORCEINLINE HRESULT INetConnection_GetProperties(INetConnection* This,NETCON_PROPERTIES **ppProps) {
    return This->lpVtbl->GetProperties(This,ppProps);
}
static FORCEINLINE HRESULT INetConnection_GetUiObjectClassId(INetConnection* This,CLSID *pclsid) {
    return This->lpVtbl->GetUiObjectClassId(This,pclsid);
}
static FORCEINLINE HRESULT INetConnection_Rename(INetConnection* This,LPCWSTR pszwNewName) {
    return This->lpVtbl->Rename(This,pszwNewName);
}
#endif
#endif

#endif


#endif  /* __INetConnection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingPortMappingProps interface
 */
#ifndef __INetSharingPortMappingProps_INTERFACE_DEFINED__
#define __INetSharingPortMappingProps_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingPortMappingProps, 0x24b7e9b5, 0xe38f, 0x4685, 0x85,0x1b, 0x00,0x89,0x2c,0xf5,0xf9,0x40);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("24b7e9b5-e38f-4685-851b-00892cf5f940")
INetSharingPortMappingProps : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR *pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_IPProtocol(
        UCHAR *pucIPProt) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ExternalPort(
        LONG *pusPort) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_InternalPort(
        LONG *pusPort) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Options(
        LONG *pdwOptions) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TargetName(
        BSTR *pbstrTargetName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TargetIPAddress(
        BSTR *pbstrTargetIPAddress) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Enabled(
        VARIANT_BOOL *pbool) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingPortMappingProps, 0x24b7e9b5, 0xe38f, 0x4685, 0x85,0x1b, 0x00,0x89,0x2c,0xf5,0xf9,0x40)
#endif
#else
typedef struct INetSharingPortMappingPropsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingPortMappingProps *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingPortMappingProps *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingPortMappingProps *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingPortMappingProps *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingPortMappingProps *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingPortMappingProps *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingPortMappingProps *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingPortMappingProps methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Name)(
        INetSharingPortMappingProps *This,
        BSTR *pbstrName);

    HRESULT (STDMETHODCALLTYPE *get_IPProtocol)(
        INetSharingPortMappingProps *This,
        UCHAR *pucIPProt);

    HRESULT (STDMETHODCALLTYPE *get_ExternalPort)(
        INetSharingPortMappingProps *This,
        LONG *pusPort);

    HRESULT (STDMETHODCALLTYPE *get_InternalPort)(
        INetSharingPortMappingProps *This,
        LONG *pusPort);

    HRESULT (STDMETHODCALLTYPE *get_Options)(
        INetSharingPortMappingProps *This,
        LONG *pdwOptions);

    HRESULT (STDMETHODCALLTYPE *get_TargetName)(
        INetSharingPortMappingProps *This,
        BSTR *pbstrTargetName);

    HRESULT (STDMETHODCALLTYPE *get_TargetIPAddress)(
        INetSharingPortMappingProps *This,
        BSTR *pbstrTargetIPAddress);

    HRESULT (STDMETHODCALLTYPE *get_Enabled)(
        INetSharingPortMappingProps *This,
        VARIANT_BOOL *pbool);

    END_INTERFACE
} INetSharingPortMappingPropsVtbl;

interface INetSharingPortMappingProps {
    CONST_VTBL INetSharingPortMappingPropsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingPortMappingProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingPortMappingProps_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingPortMappingProps_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingPortMappingProps_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingPortMappingProps_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingPortMappingProps_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingPortMappingProps_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingPortMappingProps methods ***/
#define INetSharingPortMappingProps_get_Name(This,pbstrName) (This)->lpVtbl->get_Name(This,pbstrName)
#define INetSharingPortMappingProps_get_IPProtocol(This,pucIPProt) (This)->lpVtbl->get_IPProtocol(This,pucIPProt)
#define INetSharingPortMappingProps_get_ExternalPort(This,pusPort) (This)->lpVtbl->get_ExternalPort(This,pusPort)
#define INetSharingPortMappingProps_get_InternalPort(This,pusPort) (This)->lpVtbl->get_InternalPort(This,pusPort)
#define INetSharingPortMappingProps_get_Options(This,pdwOptions) (This)->lpVtbl->get_Options(This,pdwOptions)
#define INetSharingPortMappingProps_get_TargetName(This,pbstrTargetName) (This)->lpVtbl->get_TargetName(This,pbstrTargetName)
#define INetSharingPortMappingProps_get_TargetIPAddress(This,pbstrTargetIPAddress) (This)->lpVtbl->get_TargetIPAddress(This,pbstrTargetIPAddress)
#define INetSharingPortMappingProps_get_Enabled(This,pbool) (This)->lpVtbl->get_Enabled(This,pbool)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingProps_QueryInterface(INetSharingPortMappingProps* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingPortMappingProps_AddRef(INetSharingPortMappingProps* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingPortMappingProps_Release(INetSharingPortMappingProps* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingProps_GetTypeInfoCount(INetSharingPortMappingProps* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_GetTypeInfo(INetSharingPortMappingProps* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_GetIDsOfNames(INetSharingPortMappingProps* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_Invoke(INetSharingPortMappingProps* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingPortMappingProps methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_Name(INetSharingPortMappingProps* This,BSTR *pbstrName) {
    return This->lpVtbl->get_Name(This,pbstrName);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_IPProtocol(INetSharingPortMappingProps* This,UCHAR *pucIPProt) {
    return This->lpVtbl->get_IPProtocol(This,pucIPProt);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_ExternalPort(INetSharingPortMappingProps* This,LONG *pusPort) {
    return This->lpVtbl->get_ExternalPort(This,pusPort);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_InternalPort(INetSharingPortMappingProps* This,LONG *pusPort) {
    return This->lpVtbl->get_InternalPort(This,pusPort);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_Options(INetSharingPortMappingProps* This,LONG *pdwOptions) {
    return This->lpVtbl->get_Options(This,pdwOptions);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_TargetName(INetSharingPortMappingProps* This,BSTR *pbstrTargetName) {
    return This->lpVtbl->get_TargetName(This,pbstrTargetName);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_TargetIPAddress(INetSharingPortMappingProps* This,BSTR *pbstrTargetIPAddress) {
    return This->lpVtbl->get_TargetIPAddress(This,pbstrTargetIPAddress);
}
static FORCEINLINE HRESULT INetSharingPortMappingProps_get_Enabled(INetSharingPortMappingProps* This,VARIANT_BOOL *pbool) {
    return This->lpVtbl->get_Enabled(This,pbool);
}
#endif
#endif

#endif


#endif  /* __INetSharingPortMappingProps_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingPortMapping interface
 */
#ifndef __INetSharingPortMapping_INTERFACE_DEFINED__
#define __INetSharingPortMapping_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingPortMapping, 0xc08956b1, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956b1-1cd3-11d1-b1c5-00805fc1270e")
INetSharingPortMapping : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE Disable(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Enable(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Properties(
        INetSharingPortMappingProps **ppNSPMP) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingPortMapping, 0xc08956b1, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct INetSharingPortMappingVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingPortMapping *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingPortMapping *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingPortMapping *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingPortMapping *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingPortMapping *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingPortMapping *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingPortMapping *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingPortMapping methods ***/
    HRESULT (STDMETHODCALLTYPE *Disable)(
        INetSharingPortMapping *This);

    HRESULT (STDMETHODCALLTYPE *Enable)(
        INetSharingPortMapping *This);

    HRESULT (STDMETHODCALLTYPE *get_Properties)(
        INetSharingPortMapping *This,
        INetSharingPortMappingProps **ppNSPMP);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        INetSharingPortMapping *This);

    END_INTERFACE
} INetSharingPortMappingVtbl;

interface INetSharingPortMapping {
    CONST_VTBL INetSharingPortMappingVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingPortMapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingPortMapping_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingPortMapping_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingPortMapping_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingPortMapping_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingPortMapping_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingPortMapping_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingPortMapping methods ***/
#define INetSharingPortMapping_Disable(This) (This)->lpVtbl->Disable(This)
#define INetSharingPortMapping_Enable(This) (This)->lpVtbl->Enable(This)
#define INetSharingPortMapping_get_Properties(This,ppNSPMP) (This)->lpVtbl->get_Properties(This,ppNSPMP)
#define INetSharingPortMapping_Delete(This) (This)->lpVtbl->Delete(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingPortMapping_QueryInterface(INetSharingPortMapping* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingPortMapping_AddRef(INetSharingPortMapping* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingPortMapping_Release(INetSharingPortMapping* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingPortMapping_GetTypeInfoCount(INetSharingPortMapping* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingPortMapping_GetTypeInfo(INetSharingPortMapping* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingPortMapping_GetIDsOfNames(INetSharingPortMapping* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingPortMapping_Invoke(INetSharingPortMapping* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingPortMapping methods ***/
static FORCEINLINE HRESULT INetSharingPortMapping_Disable(INetSharingPortMapping* This) {
    return This->lpVtbl->Disable(This);
}
static FORCEINLINE HRESULT INetSharingPortMapping_Enable(INetSharingPortMapping* This) {
    return This->lpVtbl->Enable(This);
}
static FORCEINLINE HRESULT INetSharingPortMapping_get_Properties(INetSharingPortMapping* This,INetSharingPortMappingProps **ppNSPMP) {
    return This->lpVtbl->get_Properties(This,ppNSPMP);
}
static FORCEINLINE HRESULT INetSharingPortMapping_Delete(INetSharingPortMapping* This) {
    return This->lpVtbl->Delete(This);
}
#endif
#endif

#endif


#endif  /* __INetSharingPortMapping_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingPortMappingCollection interface
 */
#ifndef __INetSharingPortMappingCollection_INTERFACE_DEFINED__
#define __INetSharingPortMappingCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingPortMappingCollection, 0x02e4a2de, 0xda20, 0x4e34, 0x89,0xc8, 0xac,0x22,0x27,0x5a,0x01,0x0b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("02e4a2de-da20-4e34-89c8-ac22275a010b")
INetSharingPortMappingCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
        IUnknown **pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *pVal) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingPortMappingCollection, 0x02e4a2de, 0xda20, 0x4e34, 0x89,0xc8, 0xac,0x22,0x27,0x5a,0x01,0x0b)
#endif
#else
typedef struct INetSharingPortMappingCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingPortMappingCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingPortMappingCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingPortMappingCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingPortMappingCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingPortMappingCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingPortMappingCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingPortMappingCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingPortMappingCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
        INetSharingPortMappingCollection *This,
        IUnknown **pVal);

    HRESULT (STDMETHODCALLTYPE *get_Count)(
        INetSharingPortMappingCollection *This,
        LONG *pVal);

    END_INTERFACE
} INetSharingPortMappingCollectionVtbl;

interface INetSharingPortMappingCollection {
    CONST_VTBL INetSharingPortMappingCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingPortMappingCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingPortMappingCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingPortMappingCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingPortMappingCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingPortMappingCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingPortMappingCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingPortMappingCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingPortMappingCollection methods ***/
#define INetSharingPortMappingCollection_get__NewEnum(This,pVal) (This)->lpVtbl->get__NewEnum(This,pVal)
#define INetSharingPortMappingCollection_get_Count(This,pVal) (This)->lpVtbl->get_Count(This,pVal)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingCollection_QueryInterface(INetSharingPortMappingCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingPortMappingCollection_AddRef(INetSharingPortMappingCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingPortMappingCollection_Release(INetSharingPortMappingCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingCollection_GetTypeInfoCount(INetSharingPortMappingCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingPortMappingCollection_GetTypeInfo(INetSharingPortMappingCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingPortMappingCollection_GetIDsOfNames(INetSharingPortMappingCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingPortMappingCollection_Invoke(INetSharingPortMappingCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingPortMappingCollection methods ***/
static FORCEINLINE HRESULT INetSharingPortMappingCollection_get__NewEnum(INetSharingPortMappingCollection* This,IUnknown **pVal) {
    return This->lpVtbl->get__NewEnum(This,pVal);
}
static FORCEINLINE HRESULT INetSharingPortMappingCollection_get_Count(INetSharingPortMappingCollection* This,LONG *pVal) {
    return This->lpVtbl->get_Count(This,pVal);
}
#endif
#endif

#endif


#endif  /* __INetSharingPortMappingCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingConfiguration interface
 */
#ifndef __INetSharingConfiguration_INTERFACE_DEFINED__
#define __INetSharingConfiguration_INTERFACE_DEFINED__

typedef enum tagSHARINGCONNECTIONTYPE {
    ICSSHARINGTYPE_PUBLIC = 0,
    ICSSHARINGTYPE_PRIVATE = 1
} SHARINGCONNECTIONTYPE;
typedef enum tagSHARINGCONNECTIONTYPE *LPSHARINGCONNECTIONTYPE;
typedef enum tagSHARINGCONNECTION_ENUM_FLAGS {
    ICSSC_DEFAULT = 0,
    ICSSC_ENABLED = 1
} SHARINGCONNECTION_ENUM_FLAGS;
typedef enum tagICS_TARGETTYPE {
    ICSTT_NAME = 0,
    ICSTT_IPADDRESS = 1
} ICS_TARGETTYPE;
DEFINE_GUID(IID_INetSharingConfiguration, 0xc08956b6, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956b6-1cd3-11d1-b1c5-00805fc1270e")
INetSharingConfiguration : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_SharingEnabled(
        VARIANT_BOOL *pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SharingConnectionType(
        SHARINGCONNECTIONTYPE *pType) = 0;

    virtual HRESULT STDMETHODCALLTYPE DisableSharing(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnableSharing(
        SHARINGCONNECTIONTYPE Type) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_InternetFirewallEnabled(
        VARIANT_BOOL *pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE DisableInternetFirewall(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnableInternetFirewall(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_EnumPortMappings(
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPortMappingCollection **ppColl) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddPortMapping(
        BSTR bstrName,
        UCHAR ucIPProtocol,
        USHORT usExternalPort,
        USHORT usInternalPort,
        DWORD dwOptions,
        BSTR bstrTargetNameOrIPAddress,
        ICS_TARGETTYPE eTargetType,
        INetSharingPortMapping **ppMapping) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemovePortMapping(
        INetSharingPortMapping *pMapping) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingConfiguration, 0xc08956b6, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct INetSharingConfigurationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingConfiguration *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingConfiguration *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingConfiguration *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingConfiguration *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingConfiguration *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingConfiguration *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingConfiguration *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingConfiguration methods ***/
    HRESULT (STDMETHODCALLTYPE *get_SharingEnabled)(
        INetSharingConfiguration *This,
        VARIANT_BOOL *pbEnabled);

    HRESULT (STDMETHODCALLTYPE *get_SharingConnectionType)(
        INetSharingConfiguration *This,
        SHARINGCONNECTIONTYPE *pType);

    HRESULT (STDMETHODCALLTYPE *DisableSharing)(
        INetSharingConfiguration *This);

    HRESULT (STDMETHODCALLTYPE *EnableSharing)(
        INetSharingConfiguration *This,
        SHARINGCONNECTIONTYPE Type);

    HRESULT (STDMETHODCALLTYPE *get_InternetFirewallEnabled)(
        INetSharingConfiguration *This,
        VARIANT_BOOL *pbEnabled);

    HRESULT (STDMETHODCALLTYPE *DisableInternetFirewall)(
        INetSharingConfiguration *This);

    HRESULT (STDMETHODCALLTYPE *EnableInternetFirewall)(
        INetSharingConfiguration *This);

    HRESULT (STDMETHODCALLTYPE *get_EnumPortMappings)(
        INetSharingConfiguration *This,
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPortMappingCollection **ppColl);

    HRESULT (STDMETHODCALLTYPE *AddPortMapping)(
        INetSharingConfiguration *This,
        BSTR bstrName,
        UCHAR ucIPProtocol,
        USHORT usExternalPort,
        USHORT usInternalPort,
        DWORD dwOptions,
        BSTR bstrTargetNameOrIPAddress,
        ICS_TARGETTYPE eTargetType,
        INetSharingPortMapping **ppMapping);

    HRESULT (STDMETHODCALLTYPE *RemovePortMapping)(
        INetSharingConfiguration *This,
        INetSharingPortMapping *pMapping);

    END_INTERFACE
} INetSharingConfigurationVtbl;

interface INetSharingConfiguration {
    CONST_VTBL INetSharingConfigurationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingConfiguration_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingConfiguration_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingConfiguration_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingConfiguration_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingConfiguration_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingConfiguration methods ***/
#define INetSharingConfiguration_get_SharingEnabled(This,pbEnabled) (This)->lpVtbl->get_SharingEnabled(This,pbEnabled)
#define INetSharingConfiguration_get_SharingConnectionType(This,pType) (This)->lpVtbl->get_SharingConnectionType(This,pType)
#define INetSharingConfiguration_DisableSharing(This) (This)->lpVtbl->DisableSharing(This)
#define INetSharingConfiguration_EnableSharing(This,Type) (This)->lpVtbl->EnableSharing(This,Type)
#define INetSharingConfiguration_get_InternetFirewallEnabled(This,pbEnabled) (This)->lpVtbl->get_InternetFirewallEnabled(This,pbEnabled)
#define INetSharingConfiguration_DisableInternetFirewall(This) (This)->lpVtbl->DisableInternetFirewall(This)
#define INetSharingConfiguration_EnableInternetFirewall(This) (This)->lpVtbl->EnableInternetFirewall(This)
#define INetSharingConfiguration_get_EnumPortMappings(This,Flags,ppColl) (This)->lpVtbl->get_EnumPortMappings(This,Flags,ppColl)
#define INetSharingConfiguration_AddPortMapping(This,bstrName,ucIPProtocol,usExternalPort,usInternalPort,dwOptions,bstrTargetNameOrIPAddress,eTargetType,ppMapping) (This)->lpVtbl->AddPortMapping(This,bstrName,ucIPProtocol,usExternalPort,usInternalPort,dwOptions,bstrTargetNameOrIPAddress,eTargetType,ppMapping)
#define INetSharingConfiguration_RemovePortMapping(This,pMapping) (This)->lpVtbl->RemovePortMapping(This,pMapping)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingConfiguration_QueryInterface(INetSharingConfiguration* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingConfiguration_AddRef(INetSharingConfiguration* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingConfiguration_Release(INetSharingConfiguration* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingConfiguration_GetTypeInfoCount(INetSharingConfiguration* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingConfiguration_GetTypeInfo(INetSharingConfiguration* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingConfiguration_GetIDsOfNames(INetSharingConfiguration* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingConfiguration_Invoke(INetSharingConfiguration* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingConfiguration methods ***/
static FORCEINLINE HRESULT INetSharingConfiguration_get_SharingEnabled(INetSharingConfiguration* This,VARIANT_BOOL *pbEnabled) {
    return This->lpVtbl->get_SharingEnabled(This,pbEnabled);
}
static FORCEINLINE HRESULT INetSharingConfiguration_get_SharingConnectionType(INetSharingConfiguration* This,SHARINGCONNECTIONTYPE *pType) {
    return This->lpVtbl->get_SharingConnectionType(This,pType);
}
static FORCEINLINE HRESULT INetSharingConfiguration_DisableSharing(INetSharingConfiguration* This) {
    return This->lpVtbl->DisableSharing(This);
}
static FORCEINLINE HRESULT INetSharingConfiguration_EnableSharing(INetSharingConfiguration* This,SHARINGCONNECTIONTYPE Type) {
    return This->lpVtbl->EnableSharing(This,Type);
}
static FORCEINLINE HRESULT INetSharingConfiguration_get_InternetFirewallEnabled(INetSharingConfiguration* This,VARIANT_BOOL *pbEnabled) {
    return This->lpVtbl->get_InternetFirewallEnabled(This,pbEnabled);
}
static FORCEINLINE HRESULT INetSharingConfiguration_DisableInternetFirewall(INetSharingConfiguration* This) {
    return This->lpVtbl->DisableInternetFirewall(This);
}
static FORCEINLINE HRESULT INetSharingConfiguration_EnableInternetFirewall(INetSharingConfiguration* This) {
    return This->lpVtbl->EnableInternetFirewall(This);
}
static FORCEINLINE HRESULT INetSharingConfiguration_get_EnumPortMappings(INetSharingConfiguration* This,SHARINGCONNECTION_ENUM_FLAGS Flags,INetSharingPortMappingCollection **ppColl) {
    return This->lpVtbl->get_EnumPortMappings(This,Flags,ppColl);
}
static FORCEINLINE HRESULT INetSharingConfiguration_AddPortMapping(INetSharingConfiguration* This,BSTR bstrName,UCHAR ucIPProtocol,USHORT usExternalPort,USHORT usInternalPort,DWORD dwOptions,BSTR bstrTargetNameOrIPAddress,ICS_TARGETTYPE eTargetType,INetSharingPortMapping **ppMapping) {
    return This->lpVtbl->AddPortMapping(This,bstrName,ucIPProtocol,usExternalPort,usInternalPort,dwOptions,bstrTargetNameOrIPAddress,eTargetType,ppMapping);
}
static FORCEINLINE HRESULT INetSharingConfiguration_RemovePortMapping(INetSharingConfiguration* This,INetSharingPortMapping *pMapping) {
    return This->lpVtbl->RemovePortMapping(This,pMapping);
}
#endif
#endif

#endif


#endif  /* __INetSharingConfiguration_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumNetSharingPublicConnection interface
 */
#ifndef __IEnumNetSharingPublicConnection_INTERFACE_DEFINED__
#define __IEnumNetSharingPublicConnection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumNetSharingPublicConnection, 0xc08956b4, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956b4-1cd3-11d1-b1c5-00805fc1270e")
IEnumNetSharingPublicConnection : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG celt,
        VARIANT *rgVar,
        ULONG *pceltFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG celt) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumNetSharingPublicConnection **ppenum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumNetSharingPublicConnection, 0xc08956b4, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct IEnumNetSharingPublicConnectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IEnumNetSharingPublicConnection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IEnumNetSharingPublicConnection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IEnumNetSharingPublicConnection *This);

    /*** IEnumNetSharingPublicConnection methods ***/
    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumNetSharingPublicConnection *This,
        ULONG celt,
        VARIANT *rgVar,
        ULONG *pceltFetched);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumNetSharingPublicConnection *This,
        ULONG celt);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        IEnumNetSharingPublicConnection *This);

    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumNetSharingPublicConnection *This,
        IEnumNetSharingPublicConnection **ppenum);

    END_INTERFACE
} IEnumNetSharingPublicConnectionVtbl;

interface IEnumNetSharingPublicConnection {
    CONST_VTBL IEnumNetSharingPublicConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumNetSharingPublicConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumNetSharingPublicConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumNetSharingPublicConnection_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumNetSharingPublicConnection methods ***/
#define IEnumNetSharingPublicConnection_Next(This,celt,rgVar,pceltFetched) (This)->lpVtbl->Next(This,celt,rgVar,pceltFetched)
#define IEnumNetSharingPublicConnection_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumNetSharingPublicConnection_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumNetSharingPublicConnection_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IEnumNetSharingPublicConnection_QueryInterface(IEnumNetSharingPublicConnection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumNetSharingPublicConnection_AddRef(IEnumNetSharingPublicConnection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumNetSharingPublicConnection_Release(IEnumNetSharingPublicConnection* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumNetSharingPublicConnection methods ***/
static FORCEINLINE HRESULT IEnumNetSharingPublicConnection_Next(IEnumNetSharingPublicConnection* This,ULONG celt,VARIANT *rgVar,ULONG *pceltFetched) {
    return This->lpVtbl->Next(This,celt,rgVar,pceltFetched);
}
static FORCEINLINE HRESULT IEnumNetSharingPublicConnection_Skip(IEnumNetSharingPublicConnection* This,ULONG celt) {
    return This->lpVtbl->Skip(This,celt);
}
static FORCEINLINE HRESULT IEnumNetSharingPublicConnection_Reset(IEnumNetSharingPublicConnection* This) {
    return This->lpVtbl->Reset(This);
}
static FORCEINLINE HRESULT IEnumNetSharingPublicConnection_Clone(IEnumNetSharingPublicConnection* This,IEnumNetSharingPublicConnection **ppenum) {
    return This->lpVtbl->Clone(This,ppenum);
}
#endif
#endif

#endif


#endif  /* __IEnumNetSharingPublicConnection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumNetSharingPrivateConnection interface
 */
#ifndef __IEnumNetSharingPrivateConnection_INTERFACE_DEFINED__
#define __IEnumNetSharingPrivateConnection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumNetSharingPrivateConnection, 0xc08956b5, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956b5-1cd3-11d1-b1c5-00805fc1270e")
IEnumNetSharingPrivateConnection : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG celt,
        VARIANT *rgVar,
        ULONG *pCeltFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG celt) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumNetSharingPrivateConnection **ppenum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumNetSharingPrivateConnection, 0xc08956b5, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct IEnumNetSharingPrivateConnectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IEnumNetSharingPrivateConnection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IEnumNetSharingPrivateConnection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IEnumNetSharingPrivateConnection *This);

    /*** IEnumNetSharingPrivateConnection methods ***/
    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumNetSharingPrivateConnection *This,
        ULONG celt,
        VARIANT *rgVar,
        ULONG *pCeltFetched);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumNetSharingPrivateConnection *This,
        ULONG celt);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        IEnumNetSharingPrivateConnection *This);

    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumNetSharingPrivateConnection *This,
        IEnumNetSharingPrivateConnection **ppenum);

    END_INTERFACE
} IEnumNetSharingPrivateConnectionVtbl;

interface IEnumNetSharingPrivateConnection {
    CONST_VTBL IEnumNetSharingPrivateConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumNetSharingPrivateConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumNetSharingPrivateConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumNetSharingPrivateConnection_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumNetSharingPrivateConnection methods ***/
#define IEnumNetSharingPrivateConnection_Next(This,celt,rgVar,pCeltFetched) (This)->lpVtbl->Next(This,celt,rgVar,pCeltFetched)
#define IEnumNetSharingPrivateConnection_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumNetSharingPrivateConnection_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumNetSharingPrivateConnection_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IEnumNetSharingPrivateConnection_QueryInterface(IEnumNetSharingPrivateConnection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumNetSharingPrivateConnection_AddRef(IEnumNetSharingPrivateConnection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumNetSharingPrivateConnection_Release(IEnumNetSharingPrivateConnection* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumNetSharingPrivateConnection methods ***/
static FORCEINLINE HRESULT IEnumNetSharingPrivateConnection_Next(IEnumNetSharingPrivateConnection* This,ULONG celt,VARIANT *rgVar,ULONG *pCeltFetched) {
    return This->lpVtbl->Next(This,celt,rgVar,pCeltFetched);
}
static FORCEINLINE HRESULT IEnumNetSharingPrivateConnection_Skip(IEnumNetSharingPrivateConnection* This,ULONG celt) {
    return This->lpVtbl->Skip(This,celt);
}
static FORCEINLINE HRESULT IEnumNetSharingPrivateConnection_Reset(IEnumNetSharingPrivateConnection* This) {
    return This->lpVtbl->Reset(This);
}
static FORCEINLINE HRESULT IEnumNetSharingPrivateConnection_Clone(IEnumNetSharingPrivateConnection* This,IEnumNetSharingPrivateConnection **ppenum) {
    return This->lpVtbl->Clone(This,ppenum);
}
#endif
#endif

#endif


#endif  /* __IEnumNetSharingPrivateConnection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetConnectionProps interface
 */
#ifndef __INetConnectionProps_INTERFACE_DEFINED__
#define __INetConnectionProps_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetConnectionProps, 0xf4277c95, 0xce5b, 0x463d, 0x81,0x67, 0x56,0x62,0xd9,0xbc,0xaa,0x72);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("f4277c95-ce5b-463d-8167-5662d9bcaa72")
INetConnectionProps : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Guid(
        BSTR *pbstrGuid) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR *pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DeviceName(
        BSTR *pbstrDeviceName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Status(
        NETCON_STATUS *pStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MediaType(
        NETCON_MEDIATYPE *pMediaType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Characteristics(
        DWORD *pdwFlags) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetConnectionProps, 0xf4277c95, 0xce5b, 0x463d, 0x81,0x67, 0x56,0x62,0xd9,0xbc,0xaa,0x72)
#endif
#else
typedef struct INetConnectionPropsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetConnectionProps *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetConnectionProps *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetConnectionProps *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetConnectionProps *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetConnectionProps *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetConnectionProps *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetConnectionProps *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetConnectionProps methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Guid)(
        INetConnectionProps *This,
        BSTR *pbstrGuid);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        INetConnectionProps *This,
        BSTR *pbstrName);

    HRESULT (STDMETHODCALLTYPE *get_DeviceName)(
        INetConnectionProps *This,
        BSTR *pbstrDeviceName);

    HRESULT (STDMETHODCALLTYPE *get_Status)(
        INetConnectionProps *This,
        NETCON_STATUS *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_MediaType)(
        INetConnectionProps *This,
        NETCON_MEDIATYPE *pMediaType);

    HRESULT (STDMETHODCALLTYPE *get_Characteristics)(
        INetConnectionProps *This,
        DWORD *pdwFlags);

    END_INTERFACE
} INetConnectionPropsVtbl;

interface INetConnectionProps {
    CONST_VTBL INetConnectionPropsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetConnectionProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetConnectionProps_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetConnectionProps_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetConnectionProps_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetConnectionProps_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetConnectionProps_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetConnectionProps_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetConnectionProps methods ***/
#define INetConnectionProps_get_Guid(This,pbstrGuid) (This)->lpVtbl->get_Guid(This,pbstrGuid)
#define INetConnectionProps_get_Name(This,pbstrName) (This)->lpVtbl->get_Name(This,pbstrName)
#define INetConnectionProps_get_DeviceName(This,pbstrDeviceName) (This)->lpVtbl->get_DeviceName(This,pbstrDeviceName)
#define INetConnectionProps_get_Status(This,pStatus) (This)->lpVtbl->get_Status(This,pStatus)
#define INetConnectionProps_get_MediaType(This,pMediaType) (This)->lpVtbl->get_MediaType(This,pMediaType)
#define INetConnectionProps_get_Characteristics(This,pdwFlags) (This)->lpVtbl->get_Characteristics(This,pdwFlags)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetConnectionProps_QueryInterface(INetConnectionProps* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetConnectionProps_AddRef(INetConnectionProps* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetConnectionProps_Release(INetConnectionProps* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetConnectionProps_GetTypeInfoCount(INetConnectionProps* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetConnectionProps_GetTypeInfo(INetConnectionProps* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetConnectionProps_GetIDsOfNames(INetConnectionProps* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetConnectionProps_Invoke(INetConnectionProps* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetConnectionProps methods ***/
static FORCEINLINE HRESULT INetConnectionProps_get_Guid(INetConnectionProps* This,BSTR *pbstrGuid) {
    return This->lpVtbl->get_Guid(This,pbstrGuid);
}
static FORCEINLINE HRESULT INetConnectionProps_get_Name(INetConnectionProps* This,BSTR *pbstrName) {
    return This->lpVtbl->get_Name(This,pbstrName);
}
static FORCEINLINE HRESULT INetConnectionProps_get_DeviceName(INetConnectionProps* This,BSTR *pbstrDeviceName) {
    return This->lpVtbl->get_DeviceName(This,pbstrDeviceName);
}
static FORCEINLINE HRESULT INetConnectionProps_get_Status(INetConnectionProps* This,NETCON_STATUS *pStatus) {
    return This->lpVtbl->get_Status(This,pStatus);
}
static FORCEINLINE HRESULT INetConnectionProps_get_MediaType(INetConnectionProps* This,NETCON_MEDIATYPE *pMediaType) {
    return This->lpVtbl->get_MediaType(This,pMediaType);
}
static FORCEINLINE HRESULT INetConnectionProps_get_Characteristics(INetConnectionProps* This,DWORD *pdwFlags) {
    return This->lpVtbl->get_Characteristics(This,pdwFlags);
}
#endif
#endif

#endif


#endif  /* __INetConnectionProps_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingPublicConnectionCollection interface
 */
#ifndef __INetSharingPublicConnectionCollection_INTERFACE_DEFINED__
#define __INetSharingPublicConnectionCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingPublicConnectionCollection, 0x7d7a6355, 0xf372, 0x4971, 0xa1,0x49, 0xbf,0xc9,0x27,0xbe,0x76,0x2a);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7d7a6355-f372-4971-a149-bfc927be762a")
INetSharingPublicConnectionCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
        IUnknown **pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *pVal) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingPublicConnectionCollection, 0x7d7a6355, 0xf372, 0x4971, 0xa1,0x49, 0xbf,0xc9,0x27,0xbe,0x76,0x2a)
#endif
#else
typedef struct INetSharingPublicConnectionCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingPublicConnectionCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingPublicConnectionCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingPublicConnectionCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingPublicConnectionCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingPublicConnectionCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingPublicConnectionCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingPublicConnectionCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingPublicConnectionCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
        INetSharingPublicConnectionCollection *This,
        IUnknown **pVal);

    HRESULT (STDMETHODCALLTYPE *get_Count)(
        INetSharingPublicConnectionCollection *This,
        LONG *pVal);

    END_INTERFACE
} INetSharingPublicConnectionCollectionVtbl;

interface INetSharingPublicConnectionCollection {
    CONST_VTBL INetSharingPublicConnectionCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingPublicConnectionCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingPublicConnectionCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingPublicConnectionCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingPublicConnectionCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingPublicConnectionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingPublicConnectionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingPublicConnectionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingPublicConnectionCollection methods ***/
#define INetSharingPublicConnectionCollection_get__NewEnum(This,pVal) (This)->lpVtbl->get__NewEnum(This,pVal)
#define INetSharingPublicConnectionCollection_get_Count(This,pVal) (This)->lpVtbl->get_Count(This,pVal)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_QueryInterface(INetSharingPublicConnectionCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingPublicConnectionCollection_AddRef(INetSharingPublicConnectionCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingPublicConnectionCollection_Release(INetSharingPublicConnectionCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_GetTypeInfoCount(INetSharingPublicConnectionCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_GetTypeInfo(INetSharingPublicConnectionCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_GetIDsOfNames(INetSharingPublicConnectionCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_Invoke(INetSharingPublicConnectionCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingPublicConnectionCollection methods ***/
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_get__NewEnum(INetSharingPublicConnectionCollection* This,IUnknown **pVal) {
    return This->lpVtbl->get__NewEnum(This,pVal);
}
static FORCEINLINE HRESULT INetSharingPublicConnectionCollection_get_Count(INetSharingPublicConnectionCollection* This,LONG *pVal) {
    return This->lpVtbl->get_Count(This,pVal);
}
#endif
#endif

#endif


#endif  /* __INetSharingPublicConnectionCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingEveryConnectionCollection interface
 */
#ifndef __INetSharingEveryConnectionCollection_INTERFACE_DEFINED__
#define __INetSharingEveryConnectionCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingEveryConnectionCollection, 0x33c4643c, 0x7811, 0x46fa, 0xa8,0x9a, 0x76,0x85,0x97,0xbd,0x72,0x23);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("33c4643c-7811-46fa-a89a-768597bd7223")
INetSharingEveryConnectionCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
        IUnknown **pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *pVal) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingEveryConnectionCollection, 0x33c4643c, 0x7811, 0x46fa, 0xa8,0x9a, 0x76,0x85,0x97,0xbd,0x72,0x23)
#endif
#else
typedef struct INetSharingEveryConnectionCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingEveryConnectionCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingEveryConnectionCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingEveryConnectionCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingEveryConnectionCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingEveryConnectionCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingEveryConnectionCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingEveryConnectionCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingEveryConnectionCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
        INetSharingEveryConnectionCollection *This,
        IUnknown **pVal);

    HRESULT (STDMETHODCALLTYPE *get_Count)(
        INetSharingEveryConnectionCollection *This,
        LONG *pVal);

    END_INTERFACE
} INetSharingEveryConnectionCollectionVtbl;

interface INetSharingEveryConnectionCollection {
    CONST_VTBL INetSharingEveryConnectionCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingEveryConnectionCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingEveryConnectionCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingEveryConnectionCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingEveryConnectionCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingEveryConnectionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingEveryConnectionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingEveryConnectionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingEveryConnectionCollection methods ***/
#define INetSharingEveryConnectionCollection_get__NewEnum(This,pVal) (This)->lpVtbl->get__NewEnum(This,pVal)
#define INetSharingEveryConnectionCollection_get_Count(This,pVal) (This)->lpVtbl->get_Count(This,pVal)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_QueryInterface(INetSharingEveryConnectionCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingEveryConnectionCollection_AddRef(INetSharingEveryConnectionCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingEveryConnectionCollection_Release(INetSharingEveryConnectionCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_GetTypeInfoCount(INetSharingEveryConnectionCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_GetTypeInfo(INetSharingEveryConnectionCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_GetIDsOfNames(INetSharingEveryConnectionCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_Invoke(INetSharingEveryConnectionCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingEveryConnectionCollection methods ***/
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_get__NewEnum(INetSharingEveryConnectionCollection* This,IUnknown **pVal) {
    return This->lpVtbl->get__NewEnum(This,pVal);
}
static FORCEINLINE HRESULT INetSharingEveryConnectionCollection_get_Count(INetSharingEveryConnectionCollection* This,LONG *pVal) {
    return This->lpVtbl->get_Count(This,pVal);
}
#endif
#endif

#endif


#endif  /* __INetSharingEveryConnectionCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingPrivateConnectionCollection interface
 */
#ifndef __INetSharingPrivateConnectionCollection_INTERFACE_DEFINED__
#define __INetSharingPrivateConnectionCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingPrivateConnectionCollection, 0x38ae69e0, 0x4409, 0x402a, 0xa2,0xcb, 0xe9,0x65,0xc7,0x27,0xf8,0x40);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("38ae69e0-4409-402a-a2cb-e965c727f840")
INetSharingPrivateConnectionCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
        IUnknown **pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Count(
        LONG *pVal) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingPrivateConnectionCollection, 0x38ae69e0, 0x4409, 0x402a, 0xa2,0xcb, 0xe9,0x65,0xc7,0x27,0xf8,0x40)
#endif
#else
typedef struct INetSharingPrivateConnectionCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingPrivateConnectionCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingPrivateConnectionCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingPrivateConnectionCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingPrivateConnectionCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingPrivateConnectionCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingPrivateConnectionCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingPrivateConnectionCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingPrivateConnectionCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
        INetSharingPrivateConnectionCollection *This,
        IUnknown **pVal);

    HRESULT (STDMETHODCALLTYPE *get_Count)(
        INetSharingPrivateConnectionCollection *This,
        LONG *pVal);

    END_INTERFACE
} INetSharingPrivateConnectionCollectionVtbl;

interface INetSharingPrivateConnectionCollection {
    CONST_VTBL INetSharingPrivateConnectionCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingPrivateConnectionCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingPrivateConnectionCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingPrivateConnectionCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingPrivateConnectionCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingPrivateConnectionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingPrivateConnectionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingPrivateConnectionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingPrivateConnectionCollection methods ***/
#define INetSharingPrivateConnectionCollection_get__NewEnum(This,pVal) (This)->lpVtbl->get__NewEnum(This,pVal)
#define INetSharingPrivateConnectionCollection_get_Count(This,pVal) (This)->lpVtbl->get_Count(This,pVal)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_QueryInterface(INetSharingPrivateConnectionCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingPrivateConnectionCollection_AddRef(INetSharingPrivateConnectionCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingPrivateConnectionCollection_Release(INetSharingPrivateConnectionCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_GetTypeInfoCount(INetSharingPrivateConnectionCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_GetTypeInfo(INetSharingPrivateConnectionCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_GetIDsOfNames(INetSharingPrivateConnectionCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_Invoke(INetSharingPrivateConnectionCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingPrivateConnectionCollection methods ***/
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_get__NewEnum(INetSharingPrivateConnectionCollection* This,IUnknown **pVal) {
    return This->lpVtbl->get__NewEnum(This,pVal);
}
static FORCEINLINE HRESULT INetSharingPrivateConnectionCollection_get_Count(INetSharingPrivateConnectionCollection* This,LONG *pVal) {
    return This->lpVtbl->get_Count(This,pVal);
}
#endif
#endif

#endif


#endif  /* __INetSharingPrivateConnectionCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * INetSharingManager interface
 */
#ifndef __INetSharingManager_INTERFACE_DEFINED__
#define __INetSharingManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_INetSharingManager, 0xc08956b7, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c08956b7-1cd3-11d1-b1c5-00805fc1270e")
INetSharingManager : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_SharingInstalled(
        VARIANT_BOOL *pbInstalled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_EnumPublicConnections(
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPublicConnectionCollection **ppColl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_EnumPrivateConnections(
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPrivateConnectionCollection **ppColl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_INetSharingConfigurationForINetConnection(
        INetConnection *pNetConnection,
        INetSharingConfiguration **ppNetSharingConfiguration) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_EnumEveryConnection(
        INetSharingEveryConnectionCollection **ppColl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_NetConnectionProps(
        INetConnection *pNetConnection,
        INetConnectionProps **ppProps) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(INetSharingManager, 0xc08956b7, 0x1cd3, 0x11d1, 0xb1,0xc5, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
#endif
#else
typedef struct INetSharingManagerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        INetSharingManager *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        INetSharingManager *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        INetSharingManager *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        INetSharingManager *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        INetSharingManager *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        INetSharingManager *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        INetSharingManager *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** INetSharingManager methods ***/
    HRESULT (STDMETHODCALLTYPE *get_SharingInstalled)(
        INetSharingManager *This,
        VARIANT_BOOL *pbInstalled);

    HRESULT (STDMETHODCALLTYPE *get_EnumPublicConnections)(
        INetSharingManager *This,
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPublicConnectionCollection **ppColl);

    HRESULT (STDMETHODCALLTYPE *get_EnumPrivateConnections)(
        INetSharingManager *This,
        SHARINGCONNECTION_ENUM_FLAGS Flags,
        INetSharingPrivateConnectionCollection **ppColl);

    HRESULT (STDMETHODCALLTYPE *get_INetSharingConfigurationForINetConnection)(
        INetSharingManager *This,
        INetConnection *pNetConnection,
        INetSharingConfiguration **ppNetSharingConfiguration);

    HRESULT (STDMETHODCALLTYPE *get_EnumEveryConnection)(
        INetSharingManager *This,
        INetSharingEveryConnectionCollection **ppColl);

    HRESULT (STDMETHODCALLTYPE *get_NetConnectionProps)(
        INetSharingManager *This,
        INetConnection *pNetConnection,
        INetConnectionProps **ppProps);

    END_INTERFACE
} INetSharingManagerVtbl;

interface INetSharingManager {
    CONST_VTBL INetSharingManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define INetSharingManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define INetSharingManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define INetSharingManager_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define INetSharingManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define INetSharingManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define INetSharingManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define INetSharingManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** INetSharingManager methods ***/
#define INetSharingManager_get_SharingInstalled(This,pbInstalled) (This)->lpVtbl->get_SharingInstalled(This,pbInstalled)
#define INetSharingManager_get_EnumPublicConnections(This,Flags,ppColl) (This)->lpVtbl->get_EnumPublicConnections(This,Flags,ppColl)
#define INetSharingManager_get_EnumPrivateConnections(This,Flags,ppColl) (This)->lpVtbl->get_EnumPrivateConnections(This,Flags,ppColl)
#define INetSharingManager_get_INetSharingConfigurationForINetConnection(This,pNetConnection,ppNetSharingConfiguration) (This)->lpVtbl->get_INetSharingConfigurationForINetConnection(This,pNetConnection,ppNetSharingConfiguration)
#define INetSharingManager_get_EnumEveryConnection(This,ppColl) (This)->lpVtbl->get_EnumEveryConnection(This,ppColl)
#define INetSharingManager_get_NetConnectionProps(This,pNetConnection,ppProps) (This)->lpVtbl->get_NetConnectionProps(This,pNetConnection,ppProps)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT INetSharingManager_QueryInterface(INetSharingManager* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG INetSharingManager_AddRef(INetSharingManager* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG INetSharingManager_Release(INetSharingManager* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT INetSharingManager_GetTypeInfoCount(INetSharingManager* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT INetSharingManager_GetTypeInfo(INetSharingManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT INetSharingManager_GetIDsOfNames(INetSharingManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT INetSharingManager_Invoke(INetSharingManager* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** INetSharingManager methods ***/
static FORCEINLINE HRESULT INetSharingManager_get_SharingInstalled(INetSharingManager* This,VARIANT_BOOL *pbInstalled) {
    return This->lpVtbl->get_SharingInstalled(This,pbInstalled);
}
static FORCEINLINE HRESULT INetSharingManager_get_EnumPublicConnections(INetSharingManager* This,SHARINGCONNECTION_ENUM_FLAGS Flags,INetSharingPublicConnectionCollection **ppColl) {
    return This->lpVtbl->get_EnumPublicConnections(This,Flags,ppColl);
}
static FORCEINLINE HRESULT INetSharingManager_get_EnumPrivateConnections(INetSharingManager* This,SHARINGCONNECTION_ENUM_FLAGS Flags,INetSharingPrivateConnectionCollection **ppColl) {
    return This->lpVtbl->get_EnumPrivateConnections(This,Flags,ppColl);
}
static FORCEINLINE HRESULT INetSharingManager_get_INetSharingConfigurationForINetConnection(INetSharingManager* This,INetConnection *pNetConnection,INetSharingConfiguration **ppNetSharingConfiguration) {
    return This->lpVtbl->get_INetSharingConfigurationForINetConnection(This,pNetConnection,ppNetSharingConfiguration);
}
static FORCEINLINE HRESULT INetSharingManager_get_EnumEveryConnection(INetSharingManager* This,INetSharingEveryConnectionCollection **ppColl) {
    return This->lpVtbl->get_EnumEveryConnection(This,ppColl);
}
static FORCEINLINE HRESULT INetSharingManager_get_NetConnectionProps(INetSharingManager* This,INetConnection *pNetConnection,INetConnectionProps **ppProps) {
    return This->lpVtbl->get_NetConnectionProps(This,pNetConnection,ppProps);
}
#endif
#endif

#endif


#endif  /* __INetSharingManager_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __netcon_h__ */
