/*** Autogenerated by WIDL 10.4 from include/adhoc.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 __adhoc_h__
#define __adhoc_h__

/* Forward declarations */

#ifndef __IDot11AdHocManager_FWD_DEFINED__
#define __IDot11AdHocManager_FWD_DEFINED__
typedef interface IDot11AdHocManager IDot11AdHocManager;
#ifdef __cplusplus
interface IDot11AdHocManager;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
#define __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocManagerNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocNetworks_FWD_DEFINED__
#define __IEnumDot11AdHocNetworks_FWD_DEFINED__
typedef interface IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
#ifdef __cplusplus
interface IEnumDot11AdHocNetworks;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocNetwork_FWD_DEFINED__
#define __IDot11AdHocNetwork_FWD_DEFINED__
typedef interface IDot11AdHocNetwork IDot11AdHocNetwork;
#ifdef __cplusplus
interface IDot11AdHocNetwork;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
#define __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocNetworkNotificationSink IDot11AdHocNetworkNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocNetworkNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocInterface_FWD_DEFINED__
#define __IDot11AdHocInterface_FWD_DEFINED__
typedef interface IDot11AdHocInterface IDot11AdHocInterface;
#ifdef __cplusplus
interface IDot11AdHocInterface;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocInterfaces_FWD_DEFINED__
#define __IEnumDot11AdHocInterfaces_FWD_DEFINED__
typedef interface IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
#ifdef __cplusplus
interface IEnumDot11AdHocInterfaces;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
#define __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
typedef interface IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
#ifdef __cplusplus
interface IEnumDot11AdHocSecuritySettings;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocSecuritySettings_FWD_DEFINED__
#define __IDot11AdHocSecuritySettings_FWD_DEFINED__
typedef interface IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
#ifdef __cplusplus
interface IDot11AdHocSecuritySettings;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
#define __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocInterfaceNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __Dot11AdHocManager_FWD_DEFINED__
#define __Dot11AdHocManager_FWD_DEFINED__
#ifdef __cplusplus
typedef class Dot11AdHocManager Dot11AdHocManager;
#else
typedef struct Dot11AdHocManager Dot11AdHocManager;
#endif /* defined __cplusplus */
#endif /* defined __Dot11AdHocManager_FWD_DEFINED__ */

/* Headers for imported files */

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

#ifdef __cplusplus
extern "C" {
#endif

#include <winapifamily.h>

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef __IDot11AdHocManager_FWD_DEFINED__
#define __IDot11AdHocManager_FWD_DEFINED__
typedef interface IDot11AdHocManager IDot11AdHocManager;
#ifdef __cplusplus
interface IDot11AdHocManager;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
#define __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocManagerNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocNetwork_FWD_DEFINED__
#define __IDot11AdHocNetwork_FWD_DEFINED__
typedef interface IDot11AdHocNetwork IDot11AdHocNetwork;
#ifdef __cplusplus
interface IDot11AdHocNetwork;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
#define __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocNetworkNotificationSink IDot11AdHocNetworkNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocNetworkNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocInterface_FWD_DEFINED__
#define __IDot11AdHocInterface_FWD_DEFINED__
typedef interface IDot11AdHocInterface IDot11AdHocInterface;
#ifdef __cplusplus
interface IDot11AdHocInterface;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
#define __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
typedef interface IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
#ifdef __cplusplus
interface IDot11AdHocInterfaceNotificationSink;
#endif /* __cplusplus */
#endif

#ifndef __IDot11AdHocSecuritySettings_FWD_DEFINED__
#define __IDot11AdHocSecuritySettings_FWD_DEFINED__
typedef interface IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
#ifdef __cplusplus
interface IDot11AdHocSecuritySettings;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocInterfaces_FWD_DEFINED__
#define __IEnumDot11AdHocInterfaces_FWD_DEFINED__
typedef interface IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
#ifdef __cplusplus
interface IEnumDot11AdHocInterfaces;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocNetworks_FWD_DEFINED__
#define __IEnumDot11AdHocNetworks_FWD_DEFINED__
typedef interface IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
#ifdef __cplusplus
interface IEnumDot11AdHocNetworks;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
#define __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
typedef interface IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
#ifdef __cplusplus
interface IEnumDot11AdHocSecuritySettings;
#endif /* __cplusplus */
#endif

typedef enum tagDOT11_ADHOC_CIPHER_ALGORITHM {
    DOT11_ADHOC_CIPHER_ALGO_INVALID = -1,
    DOT11_ADHOC_CIPHER_ALGO_NONE = 0x0,
    DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x4,
    DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101
} DOT11_ADHOC_CIPHER_ALGORITHM;
typedef enum tagDOT11_ADHOC_AUTH_ALGORITHM {
    DOT11_ADHOC_AUTH_ALGO_INVALID = -1,
    DOT11_ADHOC_AUTH_ALGO_80211_OPEN = 1,
    DOT11_ADHOC_AUTH_ALGO_RSNA_PSK = 7
} DOT11_ADHOC_AUTH_ALGORITHM;
typedef enum tagDOT11_ADHOC_NETWORK_CONNECTION_STATUS {
    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_INVALID = 0,
    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_DISCONNECTED = 11,
    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTING = 12,
    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTED = 13,
    DOT11_ADHOC_NETWORK_CONNECTION_STATUS_FORMED = 14
} DOT11_ADHOC_NETWORK_CONNECTION_STATUS;
typedef enum tagDOT11_ADHOC_CONNECT_FAIL_REASON {
    DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH = 0,
    DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH = 1,
    DOT11_ADHOC_CONNECT_FAIL_OTHER = 2
} DOT11_ADHOC_CONNECT_FAIL_REASON;
EXTERN_C const CLSID CLSID_AdHocManager;
/*****************************************************************************
 * IDot11AdHocManager interface
 */
#ifndef __IDot11AdHocManager_INTERFACE_DEFINED__
#define __IDot11AdHocManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocManager, 0x8f10cc26, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc26-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocManager : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE CreateNetwork(
        LPCWSTR Name,
        LPCWSTR Password,
        LONG GeographicalId,
        IDot11AdHocInterface *pInterface,
        IDot11AdHocSecuritySettings *pSecurity,
        GUID *pContextGuid,
        IDot11AdHocNetwork **pIAdHoc) = 0;

    virtual HRESULT STDMETHODCALLTYPE CommitCreatedNetwork(
        IDot11AdHocNetwork *pIAdHoc,
        BOOLEAN fSaveProfile,
        BOOLEAN fMakeSavedProfileUserSpecific) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIEnumDot11AdHocNetworks(
        GUID *pContextGuid,
        IEnumDot11AdHocNetworks **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIEnumDot11AdHocInterfaces(
        IEnumDot11AdHocInterfaces **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNetwork(
        GUID *NetworkSignature,
        IDot11AdHocNetwork **pNetwork) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocManager, 0x8f10cc26, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocManagerVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocManager methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateNetwork)(
        IDot11AdHocManager *This,
        LPCWSTR Name,
        LPCWSTR Password,
        LONG GeographicalId,
        IDot11AdHocInterface *pInterface,
        IDot11AdHocSecuritySettings *pSecurity,
        GUID *pContextGuid,
        IDot11AdHocNetwork **pIAdHoc);

    HRESULT (STDMETHODCALLTYPE *CommitCreatedNetwork)(
        IDot11AdHocManager *This,
        IDot11AdHocNetwork *pIAdHoc,
        BOOLEAN fSaveProfile,
        BOOLEAN fMakeSavedProfileUserSpecific);

    HRESULT (STDMETHODCALLTYPE *GetIEnumDot11AdHocNetworks)(
        IDot11AdHocManager *This,
        GUID *pContextGuid,
        IEnumDot11AdHocNetworks **ppEnum);

    HRESULT (STDMETHODCALLTYPE *GetIEnumDot11AdHocInterfaces)(
        IDot11AdHocManager *This,
        IEnumDot11AdHocInterfaces **ppEnum);

    HRESULT (STDMETHODCALLTYPE *GetNetwork)(
        IDot11AdHocManager *This,
        GUID *NetworkSignature,
        IDot11AdHocNetwork **pNetwork);

    END_INTERFACE
} IDot11AdHocManagerVtbl;

interface IDot11AdHocManager {
    CONST_VTBL IDot11AdHocManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocManager_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocManager methods ***/
#define IDot11AdHocManager_CreateNetwork(This,Name,Password,GeographicalId,pInterface,pSecurity,pContextGuid,pIAdHoc) (This)->lpVtbl->CreateNetwork(This,Name,Password,GeographicalId,pInterface,pSecurity,pContextGuid,pIAdHoc)
#define IDot11AdHocManager_CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific) (This)->lpVtbl->CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific)
#define IDot11AdHocManager_GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum)
#define IDot11AdHocManager_GetIEnumDot11AdHocInterfaces(This,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocInterfaces(This,ppEnum)
#define IDot11AdHocManager_GetNetwork(This,NetworkSignature,pNetwork) (This)->lpVtbl->GetNetwork(This,NetworkSignature,pNetwork)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocManager_QueryInterface(IDot11AdHocManager* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocManager_AddRef(IDot11AdHocManager* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocManager_Release(IDot11AdHocManager* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocManager methods ***/
static inline HRESULT IDot11AdHocManager_CreateNetwork(IDot11AdHocManager* This,LPCWSTR Name,LPCWSTR Password,LONG GeographicalId,IDot11AdHocInterface *pInterface,IDot11AdHocSecuritySettings *pSecurity,GUID *pContextGuid,IDot11AdHocNetwork **pIAdHoc) {
    return This->lpVtbl->CreateNetwork(This,Name,Password,GeographicalId,pInterface,pSecurity,pContextGuid,pIAdHoc);
}
static inline HRESULT IDot11AdHocManager_CommitCreatedNetwork(IDot11AdHocManager* This,IDot11AdHocNetwork *pIAdHoc,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) {
    return This->lpVtbl->CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific);
}
static inline HRESULT IDot11AdHocManager_GetIEnumDot11AdHocNetworks(IDot11AdHocManager* This,GUID *pContextGuid,IEnumDot11AdHocNetworks **ppEnum) {
    return This->lpVtbl->GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum);
}
static inline HRESULT IDot11AdHocManager_GetIEnumDot11AdHocInterfaces(IDot11AdHocManager* This,IEnumDot11AdHocInterfaces **ppEnum) {
    return This->lpVtbl->GetIEnumDot11AdHocInterfaces(This,ppEnum);
}
static inline HRESULT IDot11AdHocManager_GetNetwork(IDot11AdHocManager* This,GUID *NetworkSignature,IDot11AdHocNetwork **pNetwork) {
    return This->lpVtbl->GetNetwork(This,NetworkSignature,pNetwork);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocManager_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocManagerNotificationSink interface
 */
#ifndef __IDot11AdHocManagerNotificationSink_INTERFACE_DEFINED__
#define __IDot11AdHocManagerNotificationSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocManagerNotificationSink, 0x8f10cc27, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc27-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocManagerNotificationSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE OnNetworkAdd(
        IDot11AdHocNetwork *pIAdHocNetwork) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnNetworkRemove(
        GUID *Signature) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnInterfaceAdd(
        IDot11AdHocInterface *pIAdHocInterface) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnInterfaceRemove(
        GUID *Signature) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocManagerNotificationSink, 0x8f10cc27, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocManagerNotificationSinkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocManagerNotificationSink methods ***/
    HRESULT (STDMETHODCALLTYPE *OnNetworkAdd)(
        IDot11AdHocManagerNotificationSink *This,
        IDot11AdHocNetwork *pIAdHocNetwork);

    HRESULT (STDMETHODCALLTYPE *OnNetworkRemove)(
        IDot11AdHocManagerNotificationSink *This,
        GUID *Signature);

    HRESULT (STDMETHODCALLTYPE *OnInterfaceAdd)(
        IDot11AdHocManagerNotificationSink *This,
        IDot11AdHocInterface *pIAdHocInterface);

    HRESULT (STDMETHODCALLTYPE *OnInterfaceRemove)(
        IDot11AdHocManagerNotificationSink *This,
        GUID *Signature);

    END_INTERFACE
} IDot11AdHocManagerNotificationSinkVtbl;

interface IDot11AdHocManagerNotificationSink {
    CONST_VTBL IDot11AdHocManagerNotificationSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocManagerNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocManagerNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocManagerNotificationSink_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocManagerNotificationSink methods ***/
#define IDot11AdHocManagerNotificationSink_OnNetworkAdd(This,pIAdHocNetwork) (This)->lpVtbl->OnNetworkAdd(This,pIAdHocNetwork)
#define IDot11AdHocManagerNotificationSink_OnNetworkRemove(This,Signature) (This)->lpVtbl->OnNetworkRemove(This,Signature)
#define IDot11AdHocManagerNotificationSink_OnInterfaceAdd(This,pIAdHocInterface) (This)->lpVtbl->OnInterfaceAdd(This,pIAdHocInterface)
#define IDot11AdHocManagerNotificationSink_OnInterfaceRemove(This,Signature) (This)->lpVtbl->OnInterfaceRemove(This,Signature)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocManagerNotificationSink_QueryInterface(IDot11AdHocManagerNotificationSink* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocManagerNotificationSink_AddRef(IDot11AdHocManagerNotificationSink* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocManagerNotificationSink_Release(IDot11AdHocManagerNotificationSink* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocManagerNotificationSink methods ***/
static inline HRESULT IDot11AdHocManagerNotificationSink_OnNetworkAdd(IDot11AdHocManagerNotificationSink* This,IDot11AdHocNetwork *pIAdHocNetwork) {
    return This->lpVtbl->OnNetworkAdd(This,pIAdHocNetwork);
}
static inline HRESULT IDot11AdHocManagerNotificationSink_OnNetworkRemove(IDot11AdHocManagerNotificationSink* This,GUID *Signature) {
    return This->lpVtbl->OnNetworkRemove(This,Signature);
}
static inline HRESULT IDot11AdHocManagerNotificationSink_OnInterfaceAdd(IDot11AdHocManagerNotificationSink* This,IDot11AdHocInterface *pIAdHocInterface) {
    return This->lpVtbl->OnInterfaceAdd(This,pIAdHocInterface);
}
static inline HRESULT IDot11AdHocManagerNotificationSink_OnInterfaceRemove(IDot11AdHocManagerNotificationSink* This,GUID *Signature) {
    return This->lpVtbl->OnInterfaceRemove(This,Signature);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocManagerNotificationSink_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumDot11AdHocNetworks interface
 */
#ifndef __IEnumDot11AdHocNetworks_INTERFACE_DEFINED__
#define __IEnumDot11AdHocNetworks_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumDot11AdHocNetworks, 0x8f10cc28, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc28-cf0d-42a0-acbe-e2de7007384d")
IEnumDot11AdHocNetworks : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG cElt,
        IDot11AdHocNetwork **rgElt,
        ULONG *pcEltFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG cElt) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumDot11AdHocNetworks **ppEnum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumDot11AdHocNetworks, 0x8f10cc28, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IEnumDot11AdHocNetworksVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IEnumDot11AdHocNetworks methods ***/
    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumDot11AdHocNetworks *This,
        ULONG cElt,
        IDot11AdHocNetwork **rgElt,
        ULONG *pcEltFetched);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumDot11AdHocNetworks *This,
        ULONG cElt);

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

    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumDot11AdHocNetworks *This,
        IEnumDot11AdHocNetworks **ppEnum);

    END_INTERFACE
} IEnumDot11AdHocNetworksVtbl;

interface IEnumDot11AdHocNetworks {
    CONST_VTBL IEnumDot11AdHocNetworksVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumDot11AdHocNetworks_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumDot11AdHocNetworks_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumDot11AdHocNetworks_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumDot11AdHocNetworks methods ***/
#define IEnumDot11AdHocNetworks_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
#define IEnumDot11AdHocNetworks_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
#define IEnumDot11AdHocNetworks_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumDot11AdHocNetworks_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#else
/*** IUnknown methods ***/
static inline HRESULT IEnumDot11AdHocNetworks_QueryInterface(IEnumDot11AdHocNetworks* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IEnumDot11AdHocNetworks_AddRef(IEnumDot11AdHocNetworks* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IEnumDot11AdHocNetworks_Release(IEnumDot11AdHocNetworks* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumDot11AdHocNetworks methods ***/
static inline HRESULT IEnumDot11AdHocNetworks_Next(IEnumDot11AdHocNetworks* This,ULONG cElt,IDot11AdHocNetwork **rgElt,ULONG *pcEltFetched) {
    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
}
static inline HRESULT IEnumDot11AdHocNetworks_Skip(IEnumDot11AdHocNetworks* This,ULONG cElt) {
    return This->lpVtbl->Skip(This,cElt);
}
static inline HRESULT IEnumDot11AdHocNetworks_Reset(IEnumDot11AdHocNetworks* This) {
    return This->lpVtbl->Reset(This);
}
static inline HRESULT IEnumDot11AdHocNetworks_Clone(IEnumDot11AdHocNetworks* This,IEnumDot11AdHocNetworks **ppEnum) {
    return This->lpVtbl->Clone(This,ppEnum);
}
#endif
#endif

#endif


#endif  /* __IEnumDot11AdHocNetworks_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocNetwork interface
 */
#ifndef __IDot11AdHocNetwork_INTERFACE_DEFINED__
#define __IDot11AdHocNetwork_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocNetwork, 0x8f10cc29, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc29-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocNetwork : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetStatus(
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSSID(
        LPWSTR *ppszwSSID) = 0;

    virtual HRESULT STDMETHODCALLTYPE HasProfile(
        BOOLEAN *pf11d) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProfileName(
        LPWSTR *ppszwProfileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteProfile(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSignalQuality(
        ULONG *puStrengthValue,
        ULONG *puStrengthMax) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSecuritySetting(
        IDot11AdHocSecuritySettings **pAdHocSecuritySetting) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetContextGuid(
        GUID *pContextGuid) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSignature(
        GUID *pSignature) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetInterface(
        IDot11AdHocInterface **pAdHocInterface) = 0;

    virtual HRESULT STDMETHODCALLTYPE Connect(
        LPCWSTR Passphrase,
        LONG GeographicalId,
        BOOLEAN fSaveProfile,
        BOOLEAN fMakeSavedProfileUserSpecific) = 0;

    virtual HRESULT STDMETHODCALLTYPE Disconnect(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocNetwork, 0x8f10cc29, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocNetworkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocNetwork methods ***/
    HRESULT (STDMETHODCALLTYPE *GetStatus)(
        IDot11AdHocNetwork *This,
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus);

    HRESULT (STDMETHODCALLTYPE *GetSSID)(
        IDot11AdHocNetwork *This,
        LPWSTR *ppszwSSID);

    HRESULT (STDMETHODCALLTYPE *HasProfile)(
        IDot11AdHocNetwork *This,
        BOOLEAN *pf11d);

    HRESULT (STDMETHODCALLTYPE *GetProfileName)(
        IDot11AdHocNetwork *This,
        LPWSTR *ppszwProfileName);

    HRESULT (STDMETHODCALLTYPE *DeleteProfile)(
        IDot11AdHocNetwork *This);

    HRESULT (STDMETHODCALLTYPE *GetSignalQuality)(
        IDot11AdHocNetwork *This,
        ULONG *puStrengthValue,
        ULONG *puStrengthMax);

    HRESULT (STDMETHODCALLTYPE *GetSecuritySetting)(
        IDot11AdHocNetwork *This,
        IDot11AdHocSecuritySettings **pAdHocSecuritySetting);

    HRESULT (STDMETHODCALLTYPE *GetContextGuid)(
        IDot11AdHocNetwork *This,
        GUID *pContextGuid);

    HRESULT (STDMETHODCALLTYPE *GetSignature)(
        IDot11AdHocNetwork *This,
        GUID *pSignature);

    HRESULT (STDMETHODCALLTYPE *GetInterface)(
        IDot11AdHocNetwork *This,
        IDot11AdHocInterface **pAdHocInterface);

    HRESULT (STDMETHODCALLTYPE *Connect)(
        IDot11AdHocNetwork *This,
        LPCWSTR Passphrase,
        LONG GeographicalId,
        BOOLEAN fSaveProfile,
        BOOLEAN fMakeSavedProfileUserSpecific);

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

    END_INTERFACE
} IDot11AdHocNetworkVtbl;

interface IDot11AdHocNetwork {
    CONST_VTBL IDot11AdHocNetworkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocNetwork_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocNetwork_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocNetwork_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocNetwork methods ***/
#define IDot11AdHocNetwork_GetStatus(This,eStatus) (This)->lpVtbl->GetStatus(This,eStatus)
#define IDot11AdHocNetwork_GetSSID(This,ppszwSSID) (This)->lpVtbl->GetSSID(This,ppszwSSID)
#define IDot11AdHocNetwork_HasProfile(This,pf11d) (This)->lpVtbl->HasProfile(This,pf11d)
#define IDot11AdHocNetwork_GetProfileName(This,ppszwProfileName) (This)->lpVtbl->GetProfileName(This,ppszwProfileName)
#define IDot11AdHocNetwork_DeleteProfile(This) (This)->lpVtbl->DeleteProfile(This)
#define IDot11AdHocNetwork_GetSignalQuality(This,puStrengthValue,puStrengthMax) (This)->lpVtbl->GetSignalQuality(This,puStrengthValue,puStrengthMax)
#define IDot11AdHocNetwork_GetSecuritySetting(This,pAdHocSecuritySetting) (This)->lpVtbl->GetSecuritySetting(This,pAdHocSecuritySetting)
#define IDot11AdHocNetwork_GetContextGuid(This,pContextGuid) (This)->lpVtbl->GetContextGuid(This,pContextGuid)
#define IDot11AdHocNetwork_GetSignature(This,pSignature) (This)->lpVtbl->GetSignature(This,pSignature)
#define IDot11AdHocNetwork_GetInterface(This,pAdHocInterface) (This)->lpVtbl->GetInterface(This,pAdHocInterface)
#define IDot11AdHocNetwork_Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific) (This)->lpVtbl->Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific)
#define IDot11AdHocNetwork_Disconnect(This) (This)->lpVtbl->Disconnect(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocNetwork_QueryInterface(IDot11AdHocNetwork* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocNetwork_AddRef(IDot11AdHocNetwork* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocNetwork_Release(IDot11AdHocNetwork* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocNetwork methods ***/
static inline HRESULT IDot11AdHocNetwork_GetStatus(IDot11AdHocNetwork* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus) {
    return This->lpVtbl->GetStatus(This,eStatus);
}
static inline HRESULT IDot11AdHocNetwork_GetSSID(IDot11AdHocNetwork* This,LPWSTR *ppszwSSID) {
    return This->lpVtbl->GetSSID(This,ppszwSSID);
}
static inline HRESULT IDot11AdHocNetwork_HasProfile(IDot11AdHocNetwork* This,BOOLEAN *pf11d) {
    return This->lpVtbl->HasProfile(This,pf11d);
}
static inline HRESULT IDot11AdHocNetwork_GetProfileName(IDot11AdHocNetwork* This,LPWSTR *ppszwProfileName) {
    return This->lpVtbl->GetProfileName(This,ppszwProfileName);
}
static inline HRESULT IDot11AdHocNetwork_DeleteProfile(IDot11AdHocNetwork* This) {
    return This->lpVtbl->DeleteProfile(This);
}
static inline HRESULT IDot11AdHocNetwork_GetSignalQuality(IDot11AdHocNetwork* This,ULONG *puStrengthValue,ULONG *puStrengthMax) {
    return This->lpVtbl->GetSignalQuality(This,puStrengthValue,puStrengthMax);
}
static inline HRESULT IDot11AdHocNetwork_GetSecuritySetting(IDot11AdHocNetwork* This,IDot11AdHocSecuritySettings **pAdHocSecuritySetting) {
    return This->lpVtbl->GetSecuritySetting(This,pAdHocSecuritySetting);
}
static inline HRESULT IDot11AdHocNetwork_GetContextGuid(IDot11AdHocNetwork* This,GUID *pContextGuid) {
    return This->lpVtbl->GetContextGuid(This,pContextGuid);
}
static inline HRESULT IDot11AdHocNetwork_GetSignature(IDot11AdHocNetwork* This,GUID *pSignature) {
    return This->lpVtbl->GetSignature(This,pSignature);
}
static inline HRESULT IDot11AdHocNetwork_GetInterface(IDot11AdHocNetwork* This,IDot11AdHocInterface **pAdHocInterface) {
    return This->lpVtbl->GetInterface(This,pAdHocInterface);
}
static inline HRESULT IDot11AdHocNetwork_Connect(IDot11AdHocNetwork* This,LPCWSTR Passphrase,LONG GeographicalId,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) {
    return This->lpVtbl->Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific);
}
static inline HRESULT IDot11AdHocNetwork_Disconnect(IDot11AdHocNetwork* This) {
    return This->lpVtbl->Disconnect(This);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocNetwork_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocNetworkNotificationSink interface
 */
#ifndef __IDot11AdHocNetworkNotificationSink_INTERFACE_DEFINED__
#define __IDot11AdHocNetworkNotificationSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocNetworkNotificationSink, 0x8f10cc2a, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2a-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocNetworkNotificationSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnConnectFail(
        DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocNetworkNotificationSink, 0x8f10cc2a, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocNetworkNotificationSinkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocNetworkNotificationSink methods ***/
    HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
        IDot11AdHocNetworkNotificationSink *This,
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);

    HRESULT (STDMETHODCALLTYPE *OnConnectFail)(
        IDot11AdHocNetworkNotificationSink *This,
        DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason);

    END_INTERFACE
} IDot11AdHocNetworkNotificationSinkVtbl;

interface IDot11AdHocNetworkNotificationSink {
    CONST_VTBL IDot11AdHocNetworkNotificationSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocNetworkNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocNetworkNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocNetworkNotificationSink_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocNetworkNotificationSink methods ***/
#define IDot11AdHocNetworkNotificationSink_OnStatusChange(This,eStatus) (This)->lpVtbl->OnStatusChange(This,eStatus)
#define IDot11AdHocNetworkNotificationSink_OnConnectFail(This,eFailReason) (This)->lpVtbl->OnConnectFail(This,eFailReason)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocNetworkNotificationSink_QueryInterface(IDot11AdHocNetworkNotificationSink* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocNetworkNotificationSink_AddRef(IDot11AdHocNetworkNotificationSink* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocNetworkNotificationSink_Release(IDot11AdHocNetworkNotificationSink* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocNetworkNotificationSink methods ***/
static inline HRESULT IDot11AdHocNetworkNotificationSink_OnStatusChange(IDot11AdHocNetworkNotificationSink* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) {
    return This->lpVtbl->OnStatusChange(This,eStatus);
}
static inline HRESULT IDot11AdHocNetworkNotificationSink_OnConnectFail(IDot11AdHocNetworkNotificationSink* This,DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason) {
    return This->lpVtbl->OnConnectFail(This,eFailReason);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocNetworkNotificationSink_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocInterface interface
 */
#ifndef __IDot11AdHocInterface_INTERFACE_DEFINED__
#define __IDot11AdHocInterface_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocInterface, 0x8f10cc2b, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2b-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocInterface : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetDeviceSignature(
        GUID *pSignature) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
        LPWSTR *ppszName) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsDot11d(
        BOOLEAN *pf11d) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsAdHocCapable(
        BOOLEAN *pfAdHocCapable) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsRadioOn(
        BOOLEAN *pfIsRadioOn) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetActiveNetwork(
        IDot11AdHocNetwork **ppNetwork) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIEnumSecuritySettings(
        IEnumDot11AdHocSecuritySettings **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIEnumDot11AdHocNetworks(
        GUID *pFilterGuid,
        IEnumDot11AdHocNetworks **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStatus(
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocInterface, 0x8f10cc2b, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocInterfaceVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocInterface methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDeviceSignature)(
        IDot11AdHocInterface *This,
        GUID *pSignature);

    HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
        IDot11AdHocInterface *This,
        LPWSTR *ppszName);

    HRESULT (STDMETHODCALLTYPE *IsDot11d)(
        IDot11AdHocInterface *This,
        BOOLEAN *pf11d);

    HRESULT (STDMETHODCALLTYPE *IsAdHocCapable)(
        IDot11AdHocInterface *This,
        BOOLEAN *pfAdHocCapable);

    HRESULT (STDMETHODCALLTYPE *IsRadioOn)(
        IDot11AdHocInterface *This,
        BOOLEAN *pfIsRadioOn);

    HRESULT (STDMETHODCALLTYPE *GetActiveNetwork)(
        IDot11AdHocInterface *This,
        IDot11AdHocNetwork **ppNetwork);

    HRESULT (STDMETHODCALLTYPE *GetIEnumSecuritySettings)(
        IDot11AdHocInterface *This,
        IEnumDot11AdHocSecuritySettings **ppEnum);

    HRESULT (STDMETHODCALLTYPE *GetIEnumDot11AdHocNetworks)(
        IDot11AdHocInterface *This,
        GUID *pFilterGuid,
        IEnumDot11AdHocNetworks **ppEnum);

    HRESULT (STDMETHODCALLTYPE *GetStatus)(
        IDot11AdHocInterface *This,
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState);

    END_INTERFACE
} IDot11AdHocInterfaceVtbl;

interface IDot11AdHocInterface {
    CONST_VTBL IDot11AdHocInterfaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocInterface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocInterface_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocInterface_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocInterface methods ***/
#define IDot11AdHocInterface_GetDeviceSignature(This,pSignature) (This)->lpVtbl->GetDeviceSignature(This,pSignature)
#define IDot11AdHocInterface_GetFriendlyName(This,ppszName) (This)->lpVtbl->GetFriendlyName(This,ppszName)
#define IDot11AdHocInterface_IsDot11d(This,pf11d) (This)->lpVtbl->IsDot11d(This,pf11d)
#define IDot11AdHocInterface_IsAdHocCapable(This,pfAdHocCapable) (This)->lpVtbl->IsAdHocCapable(This,pfAdHocCapable)
#define IDot11AdHocInterface_IsRadioOn(This,pfIsRadioOn) (This)->lpVtbl->IsRadioOn(This,pfIsRadioOn)
#define IDot11AdHocInterface_GetActiveNetwork(This,ppNetwork) (This)->lpVtbl->GetActiveNetwork(This,ppNetwork)
#define IDot11AdHocInterface_GetIEnumSecuritySettings(This,ppEnum) (This)->lpVtbl->GetIEnumSecuritySettings(This,ppEnum)
#define IDot11AdHocInterface_GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum)
#define IDot11AdHocInterface_GetStatus(This,pState) (This)->lpVtbl->GetStatus(This,pState)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocInterface_QueryInterface(IDot11AdHocInterface* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocInterface_AddRef(IDot11AdHocInterface* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocInterface_Release(IDot11AdHocInterface* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocInterface methods ***/
static inline HRESULT IDot11AdHocInterface_GetDeviceSignature(IDot11AdHocInterface* This,GUID *pSignature) {
    return This->lpVtbl->GetDeviceSignature(This,pSignature);
}
static inline HRESULT IDot11AdHocInterface_GetFriendlyName(IDot11AdHocInterface* This,LPWSTR *ppszName) {
    return This->lpVtbl->GetFriendlyName(This,ppszName);
}
static inline HRESULT IDot11AdHocInterface_IsDot11d(IDot11AdHocInterface* This,BOOLEAN *pf11d) {
    return This->lpVtbl->IsDot11d(This,pf11d);
}
static inline HRESULT IDot11AdHocInterface_IsAdHocCapable(IDot11AdHocInterface* This,BOOLEAN *pfAdHocCapable) {
    return This->lpVtbl->IsAdHocCapable(This,pfAdHocCapable);
}
static inline HRESULT IDot11AdHocInterface_IsRadioOn(IDot11AdHocInterface* This,BOOLEAN *pfIsRadioOn) {
    return This->lpVtbl->IsRadioOn(This,pfIsRadioOn);
}
static inline HRESULT IDot11AdHocInterface_GetActiveNetwork(IDot11AdHocInterface* This,IDot11AdHocNetwork **ppNetwork) {
    return This->lpVtbl->GetActiveNetwork(This,ppNetwork);
}
static inline HRESULT IDot11AdHocInterface_GetIEnumSecuritySettings(IDot11AdHocInterface* This,IEnumDot11AdHocSecuritySettings **ppEnum) {
    return This->lpVtbl->GetIEnumSecuritySettings(This,ppEnum);
}
static inline HRESULT IDot11AdHocInterface_GetIEnumDot11AdHocNetworks(IDot11AdHocInterface* This,GUID *pFilterGuid,IEnumDot11AdHocNetworks **ppEnum) {
    return This->lpVtbl->GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum);
}
static inline HRESULT IDot11AdHocInterface_GetStatus(IDot11AdHocInterface* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState) {
    return This->lpVtbl->GetStatus(This,pState);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocInterface_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumDot11AdHocInterfaces interface
 */
#ifndef __IEnumDot11AdHocInterfaces_INTERFACE_DEFINED__
#define __IEnumDot11AdHocInterfaces_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumDot11AdHocInterfaces, 0x8f10cc2c, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2c-cf0d-42a0-acbe-e2de7007384d")
IEnumDot11AdHocInterfaces : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG cElt,
        IDot11AdHocInterface **rgElt,
        ULONG *pcEltFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG cElt) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumDot11AdHocInterfaces **ppEnum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumDot11AdHocInterfaces, 0x8f10cc2c, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IEnumDot11AdHocInterfacesVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IEnumDot11AdHocInterfaces methods ***/
    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumDot11AdHocInterfaces *This,
        ULONG cElt,
        IDot11AdHocInterface **rgElt,
        ULONG *pcEltFetched);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumDot11AdHocInterfaces *This,
        ULONG cElt);

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

    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumDot11AdHocInterfaces *This,
        IEnumDot11AdHocInterfaces **ppEnum);

    END_INTERFACE
} IEnumDot11AdHocInterfacesVtbl;

interface IEnumDot11AdHocInterfaces {
    CONST_VTBL IEnumDot11AdHocInterfacesVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumDot11AdHocInterfaces_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumDot11AdHocInterfaces_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumDot11AdHocInterfaces_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumDot11AdHocInterfaces methods ***/
#define IEnumDot11AdHocInterfaces_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
#define IEnumDot11AdHocInterfaces_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
#define IEnumDot11AdHocInterfaces_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumDot11AdHocInterfaces_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#else
/*** IUnknown methods ***/
static inline HRESULT IEnumDot11AdHocInterfaces_QueryInterface(IEnumDot11AdHocInterfaces* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IEnumDot11AdHocInterfaces_AddRef(IEnumDot11AdHocInterfaces* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IEnumDot11AdHocInterfaces_Release(IEnumDot11AdHocInterfaces* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumDot11AdHocInterfaces methods ***/
static inline HRESULT IEnumDot11AdHocInterfaces_Next(IEnumDot11AdHocInterfaces* This,ULONG cElt,IDot11AdHocInterface **rgElt,ULONG *pcEltFetched) {
    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
}
static inline HRESULT IEnumDot11AdHocInterfaces_Skip(IEnumDot11AdHocInterfaces* This,ULONG cElt) {
    return This->lpVtbl->Skip(This,cElt);
}
static inline HRESULT IEnumDot11AdHocInterfaces_Reset(IEnumDot11AdHocInterfaces* This) {
    return This->lpVtbl->Reset(This);
}
static inline HRESULT IEnumDot11AdHocInterfaces_Clone(IEnumDot11AdHocInterfaces* This,IEnumDot11AdHocInterfaces **ppEnum) {
    return This->lpVtbl->Clone(This,ppEnum);
}
#endif
#endif

#endif


#endif  /* __IEnumDot11AdHocInterfaces_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumDot11AdHocSecuritySettings interface
 */
#ifndef __IEnumDot11AdHocSecuritySettings_INTERFACE_DEFINED__
#define __IEnumDot11AdHocSecuritySettings_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumDot11AdHocSecuritySettings, 0x8f10cc2d, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2d-cf0d-42a0-acbe-e2de7007384d")
IEnumDot11AdHocSecuritySettings : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG cElt,
        IDot11AdHocSecuritySettings **rgElt,
        ULONG *pcEltFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG cElt) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumDot11AdHocSecuritySettings **ppEnum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumDot11AdHocSecuritySettings, 0x8f10cc2d, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IEnumDot11AdHocSecuritySettingsVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IEnumDot11AdHocSecuritySettings methods ***/
    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumDot11AdHocSecuritySettings *This,
        ULONG cElt,
        IDot11AdHocSecuritySettings **rgElt,
        ULONG *pcEltFetched);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumDot11AdHocSecuritySettings *This,
        ULONG cElt);

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

    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumDot11AdHocSecuritySettings *This,
        IEnumDot11AdHocSecuritySettings **ppEnum);

    END_INTERFACE
} IEnumDot11AdHocSecuritySettingsVtbl;

interface IEnumDot11AdHocSecuritySettings {
    CONST_VTBL IEnumDot11AdHocSecuritySettingsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumDot11AdHocSecuritySettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumDot11AdHocSecuritySettings_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumDot11AdHocSecuritySettings_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumDot11AdHocSecuritySettings methods ***/
#define IEnumDot11AdHocSecuritySettings_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
#define IEnumDot11AdHocSecuritySettings_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
#define IEnumDot11AdHocSecuritySettings_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumDot11AdHocSecuritySettings_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#else
/*** IUnknown methods ***/
static inline HRESULT IEnumDot11AdHocSecuritySettings_QueryInterface(IEnumDot11AdHocSecuritySettings* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IEnumDot11AdHocSecuritySettings_AddRef(IEnumDot11AdHocSecuritySettings* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IEnumDot11AdHocSecuritySettings_Release(IEnumDot11AdHocSecuritySettings* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumDot11AdHocSecuritySettings methods ***/
static inline HRESULT IEnumDot11AdHocSecuritySettings_Next(IEnumDot11AdHocSecuritySettings* This,ULONG cElt,IDot11AdHocSecuritySettings **rgElt,ULONG *pcEltFetched) {
    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
}
static inline HRESULT IEnumDot11AdHocSecuritySettings_Skip(IEnumDot11AdHocSecuritySettings* This,ULONG cElt) {
    return This->lpVtbl->Skip(This,cElt);
}
static inline HRESULT IEnumDot11AdHocSecuritySettings_Reset(IEnumDot11AdHocSecuritySettings* This) {
    return This->lpVtbl->Reset(This);
}
static inline HRESULT IEnumDot11AdHocSecuritySettings_Clone(IEnumDot11AdHocSecuritySettings* This,IEnumDot11AdHocSecuritySettings **ppEnum) {
    return This->lpVtbl->Clone(This,ppEnum);
}
#endif
#endif

#endif


#endif  /* __IEnumDot11AdHocSecuritySettings_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocSecuritySettings interface
 */
#ifndef __IDot11AdHocSecuritySettings_INTERFACE_DEFINED__
#define __IDot11AdHocSecuritySettings_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocSecuritySettings, 0x8f10cc2e, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2e-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocSecuritySettings : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetDot11AuthAlgorithm(
        DOT11_ADHOC_AUTH_ALGORITHM *pAuth) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDot11CipherAlgorithm(
        DOT11_ADHOC_CIPHER_ALGORITHM *pCipher) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocSecuritySettings, 0x8f10cc2e, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocSecuritySettingsVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocSecuritySettings methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDot11AuthAlgorithm)(
        IDot11AdHocSecuritySettings *This,
        DOT11_ADHOC_AUTH_ALGORITHM *pAuth);

    HRESULT (STDMETHODCALLTYPE *GetDot11CipherAlgorithm)(
        IDot11AdHocSecuritySettings *This,
        DOT11_ADHOC_CIPHER_ALGORITHM *pCipher);

    END_INTERFACE
} IDot11AdHocSecuritySettingsVtbl;

interface IDot11AdHocSecuritySettings {
    CONST_VTBL IDot11AdHocSecuritySettingsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocSecuritySettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocSecuritySettings_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocSecuritySettings_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocSecuritySettings methods ***/
#define IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm(This,pAuth) (This)->lpVtbl->GetDot11AuthAlgorithm(This,pAuth)
#define IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm(This,pCipher) (This)->lpVtbl->GetDot11CipherAlgorithm(This,pCipher)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocSecuritySettings_QueryInterface(IDot11AdHocSecuritySettings* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocSecuritySettings_AddRef(IDot11AdHocSecuritySettings* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocSecuritySettings_Release(IDot11AdHocSecuritySettings* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocSecuritySettings methods ***/
static inline HRESULT IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm(IDot11AdHocSecuritySettings* This,DOT11_ADHOC_AUTH_ALGORITHM *pAuth) {
    return This->lpVtbl->GetDot11AuthAlgorithm(This,pAuth);
}
static inline HRESULT IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm(IDot11AdHocSecuritySettings* This,DOT11_ADHOC_CIPHER_ALGORITHM *pCipher) {
    return This->lpVtbl->GetDot11CipherAlgorithm(This,pCipher);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocSecuritySettings_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDot11AdHocInterfaceNotificationSink interface
 */
#ifndef __IDot11AdHocInterfaceNotificationSink_INTERFACE_DEFINED__
#define __IDot11AdHocInterfaceNotificationSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDot11AdHocInterfaceNotificationSink, 0x8f10cc2f, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8f10cc2f-cf0d-42a0-acbe-e2de7007384d")
IDot11AdHocInterfaceNotificationSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE OnConnectionStatusChange(
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDot11AdHocInterfaceNotificationSink, 0x8f10cc2f, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
#endif
#else
typedef struct IDot11AdHocInterfaceNotificationSinkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDot11AdHocInterfaceNotificationSink methods ***/
    HRESULT (STDMETHODCALLTYPE *OnConnectionStatusChange)(
        IDot11AdHocInterfaceNotificationSink *This,
        DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);

    END_INTERFACE
} IDot11AdHocInterfaceNotificationSinkVtbl;

interface IDot11AdHocInterfaceNotificationSink {
    CONST_VTBL IDot11AdHocInterfaceNotificationSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDot11AdHocInterfaceNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDot11AdHocInterfaceNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDot11AdHocInterfaceNotificationSink_Release(This) (This)->lpVtbl->Release(This)
/*** IDot11AdHocInterfaceNotificationSink methods ***/
#define IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange(This,eStatus) (This)->lpVtbl->OnConnectionStatusChange(This,eStatus)
#else
/*** IUnknown methods ***/
static inline HRESULT IDot11AdHocInterfaceNotificationSink_QueryInterface(IDot11AdHocInterfaceNotificationSink* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDot11AdHocInterfaceNotificationSink_AddRef(IDot11AdHocInterfaceNotificationSink* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDot11AdHocInterfaceNotificationSink_Release(IDot11AdHocInterfaceNotificationSink* This) {
    return This->lpVtbl->Release(This);
}
/*** IDot11AdHocInterfaceNotificationSink methods ***/
static inline HRESULT IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange(IDot11AdHocInterfaceNotificationSink* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) {
    return This->lpVtbl->OnConnectionStatusChange(This,eStatus);
}
#endif
#endif

#endif


#endif  /* __IDot11AdHocInterfaceNotificationSink_INTERFACE_DEFINED__ */

#ifndef __ADHOCLib_LIBRARY_DEFINED__
#define __ADHOCLib_LIBRARY_DEFINED__

DEFINE_GUID(LIBID_ADHOCLib, 0x45357166, 0xff38, 0x4302, 0x8f,0x5c, 0xdf,0x5b,0x70,0x3a,0x6e,0x3d);

/*****************************************************************************
 * Dot11AdHocManager coclass
 */

DEFINE_GUID(CLSID_Dot11AdHocManager, 0xdd06a84f, 0x83bd, 0x4d01, 0x8a,0xb9, 0x23,0x89,0xfe,0xa0,0x86,0x9e);

#ifdef __cplusplus
class DECLSPEC_UUID("dd06a84f-83bd-4d01-8ab9-2389fea0869e") Dot11AdHocManager;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(Dot11AdHocManager, 0xdd06a84f, 0x83bd, 0x4d01, 0x8a,0xb9, 0x23,0x89,0xfe,0xa0,0x86,0x9e)
#endif
#endif

#endif /* __ADHOCLib_LIBRARY_DEFINED__ */
#endif
/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __adhoc_h__ */
