Add AdHoc API interfaces


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6551 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 62dab90..ffbd843 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -64,6 +64,7 @@
   include/activdbg100.idl \
   include/activprof.idl \
   include/activscp.idl \
+  include/adhoc.idl \
   include/audioclient.idl \
   include/audioendpoints.idl \
   include/audiopolicy.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 683b02e..b28f10f 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -288,6 +288,7 @@
 @HAVE_WIDL_TRUE@  include/activdbg100.idl \
 @HAVE_WIDL_TRUE@  include/activprof.idl \
 @HAVE_WIDL_TRUE@  include/activscp.idl \
+@HAVE_WIDL_TRUE@  include/adhoc.idl \
 @HAVE_WIDL_TRUE@  include/audioclient.idl \
 @HAVE_WIDL_TRUE@  include/audioendpoints.idl \
 @HAVE_WIDL_TRUE@  include/audiopolicy.idl \
diff --git a/mingw-w64-headers/include/adhoc.h b/mingw-w64-headers/include/adhoc.h
index 2612411..0908a8c 100644
--- a/mingw-w64-headers/include/adhoc.h
+++ b/mingw-w64-headers/include/adhoc.h
@@ -1,107 +1,1158 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_ADHOC
-#define _INC_ADHOC
+/*** Autogenerated by WIDL 1.6 from adhoc.idl - Do not edit ***/
 
-#if (_WIN32_WINNT >= 0x0600)
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
 
-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;
+#include <rpc.h>
+#include <rpcndr.h>
+
+#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;
+#endif
+
+#ifndef __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
+#endif
+
+#ifndef __IEnumDot11AdHocNetworks_FWD_DEFINED__
+#define __IEnumDot11AdHocNetworks_FWD_DEFINED__
+typedef interface IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
+#endif
+
+#ifndef __IDot11AdHocNetwork_FWD_DEFINED__
+#define __IDot11AdHocNetwork_FWD_DEFINED__
+typedef interface IDot11AdHocNetwork IDot11AdHocNetwork;
+#endif
+
+#ifndef __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocNetworkNotificationSink IDot11AdHocNetworkNotificationSink;
+#endif
+
+#ifndef __IDot11AdHocInterface_FWD_DEFINED__
+#define __IDot11AdHocInterface_FWD_DEFINED__
+typedef interface IDot11AdHocInterface IDot11AdHocInterface;
+#endif
+
+#ifndef __IEnumDot11AdHocInterfaces_FWD_DEFINED__
+#define __IEnumDot11AdHocInterfaces_FWD_DEFINED__
+typedef interface IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
+#endif
+
+#ifndef __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
+#define __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
+typedef interface IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
+#endif
+
+#ifndef __IDot11AdHocSecuritySettings_FWD_DEFINED__
+#define __IDot11AdHocSecuritySettings_FWD_DEFINED__
+typedef interface IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
+#endif
+
+#ifndef __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
+#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;
+#endif
+
+#ifndef __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocManagerNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
+#endif
+
+#ifndef __IDot11AdHocNetwork_FWD_DEFINED__
+#define __IDot11AdHocNetwork_FWD_DEFINED__
+typedef interface IDot11AdHocNetwork IDot11AdHocNetwork;
+#endif
+
+#ifndef __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocNetworkNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocNetworkNotificationSink IDot11AdHocNetworkNotificationSink;
+#endif
+
+#ifndef __IDot11AdHocInterface_FWD_DEFINED__
+#define __IDot11AdHocInterface_FWD_DEFINED__
+typedef interface IDot11AdHocInterface IDot11AdHocInterface;
+#endif
+
+#ifndef __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
+#define __IDot11AdHocInterfaceNotificationSink_FWD_DEFINED__
+typedef interface IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
+#endif
+
+#ifndef __IDot11AdHocSecuritySettings_FWD_DEFINED__
+#define __IDot11AdHocSecuritySettings_FWD_DEFINED__
+typedef interface IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
+#endif
+
+#ifndef __IEnumDot11AdHocInterfaces_FWD_DEFINED__
+#define __IEnumDot11AdHocInterfaces_FWD_DEFINED__
+typedef interface IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
+#endif
+
+#ifndef __IEnumDot11AdHocNetworks_FWD_DEFINED__
+#define __IEnumDot11AdHocNetworks_FWD_DEFINED__
+typedef interface IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
+#endif
+
+#ifndef __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
+#define __IEnumDot11AdHocSecuritySettings_FWD_DEFINED__
+typedef interface IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
+#endif
 
 typedef enum tagDOT11_ADHOC_CIPHER_ALGORITHM {
-  DOT11_ADHOC_CIPHER_ALGO_INVALID   = -1,
-  DOT11_ADHOC_CIPHER_ALGO_NONE      = 0x00,
-  DOT11_ADHOC_CIPHER_ALGO_CCMP      = 0x04,
-  DOT11_ADHOC_CIPHER_ALGO_WEP       = 0x101 
+    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_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;
-
+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_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__
 
-typedef struct IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
-typedef struct IDot11AdHocInterface IDot11AdHocInterface;
-typedef struct IDot11AdHocManager IDot11AdHocManager;
-typedef struct IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
-typedef struct IDot11AdHocNetwork IDot11AdHocNetwork;
-typedef struct IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
-typedef struct IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
-typedef struct IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
-typedef struct IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
-typedef struct IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocInterfaceNotificationSink
-DECLARE_INTERFACE_(IDot11AdHocInterfaceNotificationSink,IUnknown)
+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
 {
-    BEGIN_INTERFACE
+    virtual HRESULT STDMETHODCALLTYPE CreateNetwork(
+        LPCWSTR Name,
+        LPCWSTR Password,
+        LONG GeographicalId,
+        IDot11AdHocInterface *pInterface,
+        IDot11AdHocSecuritySettings *pSecurity,
+        GUID *pContextGuid,
+        IDot11AdHocNetwork **pIAdHoc) = 0;
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    virtual HRESULT STDMETHODCALLTYPE CommitCreatedNetwork(
+        IDot11AdHocNetwork *pIAdHoc,
+        BOOLEAN fSaveProfile,
+        BOOLEAN fMakeSavedProfileUserSpecific) = 0;
 
-    /* IDot11AdHocInterfaceNotificationSink methods */
-    STDMETHOD_(HRESULT,OnConnectionStatusChange)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) PURE;
+    virtual HRESULT STDMETHODCALLTYPE GetIEnumDot11AdHocNetworks(
+        GUID *pContextGuid,
+        IEnumDot11AdHocNetworks **ppEnum) = 0;
 
-    END_INTERFACE
+    virtual HRESULT STDMETHODCALLTYPE GetIEnumDot11AdHocInterfaces(
+        IEnumDot11AdHocInterfaces **ppEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNetwork(
+        GUID *NetworkSignature,
+        IDot11AdHocNetwork **pNetwork) = 0;
+
 };
-#ifdef COBJMACROS
-#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)
-#define IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange(This,eStatus) (This)->lpVtbl->OnConnectionStatusChange(This,eStatus)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocInterface
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDot11AdHocManager, 0x8f10cc26, 0xcf0d, 0x42a0, 0xac,0xbe, 0xe2,0xde,0x70,0x07,0x38,0x4d)
 #endif
-DECLARE_INTERFACE_(IDot11AdHocInterface,IUnknown)
-{
+#else
+typedef struct IDot11AdHocManagerVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDot11AdHocManager* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDot11AdHocInterface methods */
-    STDMETHOD_(HRESULT,GetDeviceSignature)(THIS_ GUID *pSignature) PURE;
-    STDMETHOD_(HRESULT,GetFriendlyName)(THIS_ LPWSTR *ppszName) PURE;
-    STDMETHOD_(HRESULT,IsDot11d)(THIS_ BOOLEAN *pf11d) PURE;
-    STDMETHOD_(HRESULT,IsAdHocCapable)(THIS_ BOOLEAN *pfAdHocCapable) PURE;
-    STDMETHOD_(HRESULT,IsRadioOn)(THIS_ BOOLEAN *pfIsRadioOn) PURE;
-    STDMETHOD_(HRESULT,GetActiveNetwork)(THIS_ IDot11AdHocNetwork **ppNetwork) PURE;
-    STDMETHOD_(HRESULT,GetIEnumSecuritySettings)(THIS_ IEnumDot11AdHocSecuritySettings **ppEnum) PURE;
-    STDMETHOD_(HRESULT,GetIEnumDot11AdHocNetworks)(THIS_ GUID *pFilterGuid,IEnumDot11AdHocNetworks **ppEnum) PURE;
-    STDMETHOD_(HRESULT,GetStatus)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState) PURE;
+    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 FORCEINLINE HRESULT IDot11AdHocManager_QueryInterface(IDot11AdHocManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocManager_AddRef(IDot11AdHocManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocManager_Release(IDot11AdHocManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocManager methods ***/
+static FORCEINLINE 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 FORCEINLINE HRESULT IDot11AdHocManager_CommitCreatedNetwork(IDot11AdHocManager* This,IDot11AdHocNetwork *pIAdHoc,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) {
+    return This->lpVtbl->CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific);
+}
+static FORCEINLINE HRESULT IDot11AdHocManager_GetIEnumDot11AdHocNetworks(IDot11AdHocManager* This,GUID *pContextGuid,IEnumDot11AdHocNetworks **ppEnum) {
+    return This->lpVtbl->GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum);
+}
+static FORCEINLINE HRESULT IDot11AdHocManager_GetIEnumDot11AdHocInterfaces(IDot11AdHocManager* This,IEnumDot11AdHocInterfaces **ppEnum) {
+    return This->lpVtbl->GetIEnumDot11AdHocInterfaces(This,ppEnum);
+}
+static FORCEINLINE HRESULT IDot11AdHocManager_GetNetwork(IDot11AdHocManager* This,GUID *NetworkSignature,IDot11AdHocNetwork **pNetwork) {
+    return This->lpVtbl->GetNetwork(This,NetworkSignature,pNetwork);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocManager_CreateNetwork_Proxy(
+    IDot11AdHocManager* This,
+    LPCWSTR Name,
+    LPCWSTR Password,
+    LONG GeographicalId,
+    IDot11AdHocInterface *pInterface,
+    IDot11AdHocSecuritySettings *pSecurity,
+    GUID *pContextGuid,
+    IDot11AdHocNetwork **pIAdHoc);
+void __RPC_STUB IDot11AdHocManager_CreateNetwork_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManager_CommitCreatedNetwork_Proxy(
+    IDot11AdHocManager* This,
+    IDot11AdHocNetwork *pIAdHoc,
+    BOOLEAN fSaveProfile,
+    BOOLEAN fMakeSavedProfileUserSpecific);
+void __RPC_STUB IDot11AdHocManager_CommitCreatedNetwork_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManager_GetIEnumDot11AdHocNetworks_Proxy(
+    IDot11AdHocManager* This,
+    GUID *pContextGuid,
+    IEnumDot11AdHocNetworks **ppEnum);
+void __RPC_STUB IDot11AdHocManager_GetIEnumDot11AdHocNetworks_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManager_GetIEnumDot11AdHocInterfaces_Proxy(
+    IDot11AdHocManager* This,
+    IEnumDot11AdHocInterfaces **ppEnum);
+void __RPC_STUB IDot11AdHocManager_GetIEnumDot11AdHocInterfaces_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManager_GetNetwork_Proxy(
+    IDot11AdHocManager* This,
+    GUID *NetworkSignature,
+    IDot11AdHocNetwork **pNetwork);
+void __RPC_STUB IDot11AdHocManager_GetNetwork_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IDot11AdHocManagerNotificationSink_QueryInterface(IDot11AdHocManagerNotificationSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocManagerNotificationSink_AddRef(IDot11AdHocManagerNotificationSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocManagerNotificationSink_Release(IDot11AdHocManagerNotificationSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocManagerNotificationSink methods ***/
+static FORCEINLINE HRESULT IDot11AdHocManagerNotificationSink_OnNetworkAdd(IDot11AdHocManagerNotificationSink* This,IDot11AdHocNetwork *pIAdHocNetwork) {
+    return This->lpVtbl->OnNetworkAdd(This,pIAdHocNetwork);
+}
+static FORCEINLINE HRESULT IDot11AdHocManagerNotificationSink_OnNetworkRemove(IDot11AdHocManagerNotificationSink* This,GUID *Signature) {
+    return This->lpVtbl->OnNetworkRemove(This,Signature);
+}
+static FORCEINLINE HRESULT IDot11AdHocManagerNotificationSink_OnInterfaceAdd(IDot11AdHocManagerNotificationSink* This,IDot11AdHocInterface *pIAdHocInterface) {
+    return This->lpVtbl->OnInterfaceAdd(This,pIAdHocInterface);
+}
+static FORCEINLINE HRESULT IDot11AdHocManagerNotificationSink_OnInterfaceRemove(IDot11AdHocManagerNotificationSink* This,GUID *Signature) {
+    return This->lpVtbl->OnInterfaceRemove(This,Signature);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocManagerNotificationSink_OnNetworkAdd_Proxy(
+    IDot11AdHocManagerNotificationSink* This,
+    IDot11AdHocNetwork *pIAdHocNetwork);
+void __RPC_STUB IDot11AdHocManagerNotificationSink_OnNetworkAdd_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManagerNotificationSink_OnNetworkRemove_Proxy(
+    IDot11AdHocManagerNotificationSink* This,
+    GUID *Signature);
+void __RPC_STUB IDot11AdHocManagerNotificationSink_OnNetworkRemove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManagerNotificationSink_OnInterfaceAdd_Proxy(
+    IDot11AdHocManagerNotificationSink* This,
+    IDot11AdHocInterface *pIAdHocInterface);
+void __RPC_STUB IDot11AdHocManagerNotificationSink_OnInterfaceAdd_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocManagerNotificationSink_OnInterfaceRemove_Proxy(
+    IDot11AdHocManagerNotificationSink* This,
+    GUID *Signature);
+void __RPC_STUB IDot11AdHocManagerNotificationSink_OnInterfaceRemove_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IEnumDot11AdHocNetworks_QueryInterface(IEnumDot11AdHocNetworks* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocNetworks_AddRef(IEnumDot11AdHocNetworks* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocNetworks_Release(IEnumDot11AdHocNetworks* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDot11AdHocNetworks methods ***/
+static FORCEINLINE HRESULT IEnumDot11AdHocNetworks_Next(IEnumDot11AdHocNetworks* This,ULONG cElt,IDot11AdHocNetwork **rgElt,ULONG *pcEltFetched) {
+    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocNetworks_Skip(IEnumDot11AdHocNetworks* This,ULONG cElt) {
+    return This->lpVtbl->Skip(This,cElt);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocNetworks_Reset(IEnumDot11AdHocNetworks* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocNetworks_Clone(IEnumDot11AdHocNetworks* This,IEnumDot11AdHocNetworks **ppEnum) {
+    return This->lpVtbl->Clone(This,ppEnum);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocNetworks_Next_Proxy(
+    IEnumDot11AdHocNetworks* This,
+    ULONG cElt,
+    IDot11AdHocNetwork **rgElt,
+    ULONG *pcEltFetched);
+void __RPC_STUB IEnumDot11AdHocNetworks_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocNetworks_Skip_Proxy(
+    IEnumDot11AdHocNetworks* This,
+    ULONG cElt);
+void __RPC_STUB IEnumDot11AdHocNetworks_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocNetworks_Reset_Proxy(
+    IEnumDot11AdHocNetworks* This);
+void __RPC_STUB IEnumDot11AdHocNetworks_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocNetworks_Clone_Proxy(
+    IEnumDot11AdHocNetworks* This,
+    IEnumDot11AdHocNetworks **ppEnum);
+void __RPC_STUB IEnumDot11AdHocNetworks_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IDot11AdHocNetwork_QueryInterface(IDot11AdHocNetwork* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocNetwork_AddRef(IDot11AdHocNetwork* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocNetwork_Release(IDot11AdHocNetwork* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocNetwork methods ***/
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetStatus(IDot11AdHocNetwork* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus) {
+    return This->lpVtbl->GetStatus(This,eStatus);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetSSID(IDot11AdHocNetwork* This,LPWSTR *ppszwSSID) {
+    return This->lpVtbl->GetSSID(This,ppszwSSID);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_HasProfile(IDot11AdHocNetwork* This,BOOLEAN *pf11d) {
+    return This->lpVtbl->HasProfile(This,pf11d);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetProfileName(IDot11AdHocNetwork* This,LPWSTR *ppszwProfileName) {
+    return This->lpVtbl->GetProfileName(This,ppszwProfileName);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_DeleteProfile(IDot11AdHocNetwork* This) {
+    return This->lpVtbl->DeleteProfile(This);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetSignalQuality(IDot11AdHocNetwork* This,ULONG *puStrengthValue,ULONG *puStrengthMax) {
+    return This->lpVtbl->GetSignalQuality(This,puStrengthValue,puStrengthMax);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetSecuritySetting(IDot11AdHocNetwork* This,IDot11AdHocSecuritySettings **pAdHocSecuritySetting) {
+    return This->lpVtbl->GetSecuritySetting(This,pAdHocSecuritySetting);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetContextGuid(IDot11AdHocNetwork* This,GUID *pContextGuid) {
+    return This->lpVtbl->GetContextGuid(This,pContextGuid);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetSignature(IDot11AdHocNetwork* This,GUID *pSignature) {
+    return This->lpVtbl->GetSignature(This,pSignature);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_GetInterface(IDot11AdHocNetwork* This,IDot11AdHocInterface **pAdHocInterface) {
+    return This->lpVtbl->GetInterface(This,pAdHocInterface);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_Connect(IDot11AdHocNetwork* This,LPCWSTR Passphrase,LONG GeographicalId,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) {
+    return This->lpVtbl->Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetwork_Disconnect(IDot11AdHocNetwork* This) {
+    return This->lpVtbl->Disconnect(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetStatus_Proxy(
+    IDot11AdHocNetwork* This,
+    DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus);
+void __RPC_STUB IDot11AdHocNetwork_GetStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetSSID_Proxy(
+    IDot11AdHocNetwork* This,
+    LPWSTR *ppszwSSID);
+void __RPC_STUB IDot11AdHocNetwork_GetSSID_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_HasProfile_Proxy(
+    IDot11AdHocNetwork* This,
+    BOOLEAN *pf11d);
+void __RPC_STUB IDot11AdHocNetwork_HasProfile_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetProfileName_Proxy(
+    IDot11AdHocNetwork* This,
+    LPWSTR *ppszwProfileName);
+void __RPC_STUB IDot11AdHocNetwork_GetProfileName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_DeleteProfile_Proxy(
+    IDot11AdHocNetwork* This);
+void __RPC_STUB IDot11AdHocNetwork_DeleteProfile_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetSignalQuality_Proxy(
+    IDot11AdHocNetwork* This,
+    ULONG *puStrengthValue,
+    ULONG *puStrengthMax);
+void __RPC_STUB IDot11AdHocNetwork_GetSignalQuality_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetSecuritySetting_Proxy(
+    IDot11AdHocNetwork* This,
+    IDot11AdHocSecuritySettings **pAdHocSecuritySetting);
+void __RPC_STUB IDot11AdHocNetwork_GetSecuritySetting_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetContextGuid_Proxy(
+    IDot11AdHocNetwork* This,
+    GUID *pContextGuid);
+void __RPC_STUB IDot11AdHocNetwork_GetContextGuid_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetSignature_Proxy(
+    IDot11AdHocNetwork* This,
+    GUID *pSignature);
+void __RPC_STUB IDot11AdHocNetwork_GetSignature_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_GetInterface_Proxy(
+    IDot11AdHocNetwork* This,
+    IDot11AdHocInterface **pAdHocInterface);
+void __RPC_STUB IDot11AdHocNetwork_GetInterface_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_Connect_Proxy(
+    IDot11AdHocNetwork* This,
+    LPCWSTR Passphrase,
+    LONG GeographicalId,
+    BOOLEAN fSaveProfile,
+    BOOLEAN fMakeSavedProfileUserSpecific);
+void __RPC_STUB IDot11AdHocNetwork_Connect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetwork_Disconnect_Proxy(
+    IDot11AdHocNetwork* This);
+void __RPC_STUB IDot11AdHocNetwork_Disconnect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IDot11AdHocNetworkNotificationSink_QueryInterface(IDot11AdHocNetworkNotificationSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocNetworkNotificationSink_AddRef(IDot11AdHocNetworkNotificationSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocNetworkNotificationSink_Release(IDot11AdHocNetworkNotificationSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocNetworkNotificationSink methods ***/
+static FORCEINLINE HRESULT IDot11AdHocNetworkNotificationSink_OnStatusChange(IDot11AdHocNetworkNotificationSink* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) {
+    return This->lpVtbl->OnStatusChange(This,eStatus);
+}
+static FORCEINLINE HRESULT IDot11AdHocNetworkNotificationSink_OnConnectFail(IDot11AdHocNetworkNotificationSink* This,DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason) {
+    return This->lpVtbl->OnConnectFail(This,eFailReason);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetworkNotificationSink_OnStatusChange_Proxy(
+    IDot11AdHocNetworkNotificationSink* This,
+    DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);
+void __RPC_STUB IDot11AdHocNetworkNotificationSink_OnStatusChange_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocNetworkNotificationSink_OnConnectFail_Proxy(
+    IDot11AdHocNetworkNotificationSink* This,
+    DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason);
+void __RPC_STUB IDot11AdHocNetworkNotificationSink_OnConnectFail_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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)
@@ -111,289 +1162,627 @@
 #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)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocManager
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDot11AdHocInterface_QueryInterface(IDot11AdHocInterface* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocInterface_AddRef(IDot11AdHocInterface* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocInterface_Release(IDot11AdHocInterface* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocInterface methods ***/
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetDeviceSignature(IDot11AdHocInterface* This,GUID *pSignature) {
+    return This->lpVtbl->GetDeviceSignature(This,pSignature);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetFriendlyName(IDot11AdHocInterface* This,LPWSTR *ppszName) {
+    return This->lpVtbl->GetFriendlyName(This,ppszName);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_IsDot11d(IDot11AdHocInterface* This,BOOLEAN *pf11d) {
+    return This->lpVtbl->IsDot11d(This,pf11d);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_IsAdHocCapable(IDot11AdHocInterface* This,BOOLEAN *pfAdHocCapable) {
+    return This->lpVtbl->IsAdHocCapable(This,pfAdHocCapable);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_IsRadioOn(IDot11AdHocInterface* This,BOOLEAN *pfIsRadioOn) {
+    return This->lpVtbl->IsRadioOn(This,pfIsRadioOn);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetActiveNetwork(IDot11AdHocInterface* This,IDot11AdHocNetwork **ppNetwork) {
+    return This->lpVtbl->GetActiveNetwork(This,ppNetwork);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetIEnumSecuritySettings(IDot11AdHocInterface* This,IEnumDot11AdHocSecuritySettings **ppEnum) {
+    return This->lpVtbl->GetIEnumSecuritySettings(This,ppEnum);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetIEnumDot11AdHocNetworks(IDot11AdHocInterface* This,GUID *pFilterGuid,IEnumDot11AdHocNetworks **ppEnum) {
+    return This->lpVtbl->GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum);
+}
+static FORCEINLINE HRESULT IDot11AdHocInterface_GetStatus(IDot11AdHocInterface* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState) {
+    return This->lpVtbl->GetStatus(This,pState);
+}
 #endif
-DECLARE_INTERFACE_(IDot11AdHocManager,IUnknown)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetDeviceSignature_Proxy(
+    IDot11AdHocInterface* This,
+    GUID *pSignature);
+void __RPC_STUB IDot11AdHocInterface_GetDeviceSignature_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetFriendlyName_Proxy(
+    IDot11AdHocInterface* This,
+    LPWSTR *ppszName);
+void __RPC_STUB IDot11AdHocInterface_GetFriendlyName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_IsDot11d_Proxy(
+    IDot11AdHocInterface* This,
+    BOOLEAN *pf11d);
+void __RPC_STUB IDot11AdHocInterface_IsDot11d_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_IsAdHocCapable_Proxy(
+    IDot11AdHocInterface* This,
+    BOOLEAN *pfAdHocCapable);
+void __RPC_STUB IDot11AdHocInterface_IsAdHocCapable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_IsRadioOn_Proxy(
+    IDot11AdHocInterface* This,
+    BOOLEAN *pfIsRadioOn);
+void __RPC_STUB IDot11AdHocInterface_IsRadioOn_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetActiveNetwork_Proxy(
+    IDot11AdHocInterface* This,
+    IDot11AdHocNetwork **ppNetwork);
+void __RPC_STUB IDot11AdHocInterface_GetActiveNetwork_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetIEnumSecuritySettings_Proxy(
+    IDot11AdHocInterface* This,
+    IEnumDot11AdHocSecuritySettings **ppEnum);
+void __RPC_STUB IDot11AdHocInterface_GetIEnumSecuritySettings_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetIEnumDot11AdHocNetworks_Proxy(
+    IDot11AdHocInterface* This,
+    GUID *pFilterGuid,
+    IEnumDot11AdHocNetworks **ppEnum);
+void __RPC_STUB IDot11AdHocInterface_GetIEnumDot11AdHocNetworks_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterface_GetStatus_Proxy(
+    IDot11AdHocInterface* This,
+    DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState);
+void __RPC_STUB IDot11AdHocInterface_GetStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDot11AdHocInterfaces* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDot11AdHocManager methods */
-    STDMETHOD_(HRESULT,CreateNetwork)(THIS_ LPCWSTR Name,LPCWSTR Password,LONG GeographicalId,IDot11AdHocInterface *pInterface,IDot11AdHocSecuritySettings *pSecurity,GUID *pContextGuid,IDot11AdHocNetwork **pIAdHoc) PURE;
-    STDMETHOD_(HRESULT,CommitCreatedNetwork)(THIS_ IDot11AdHocNetwork *pIAdHoc,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) PURE;
-    STDMETHOD_(HRESULT,GetIEnumDot11AdHocNetworks)(THIS_ GUID *pContextGuid,IEnumDot11AdHocNetworks **ppEnum) PURE;
-    STDMETHOD_(HRESULT,GetIEnumDot11AdHocInterfaces)(THIS_ IEnumDot11AdHocInterfaces **ppEnum) PURE;
-    STDMETHOD_(HRESULT,GetNetwork)(THIS_ GUID *NetworkSignature,IDot11AdHocNetwork **pNetwork) PURE;
+    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
-#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)
-#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)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocManagerNotificationSink
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IDot11AdHocManagerNotificationSink,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDot11AdHocManagerNotificationSink methods */
-    STDMETHOD_(HRESULT,OnNetworkAdd)(THIS_ IDot11AdHocNetwork *pIAdHocNetwork) PURE;
-    STDMETHOD_(HRESULT,OnNetworkRemove)(THIS_ GUID *Signature) PURE;
-    STDMETHOD_(HRESULT,OnInterfaceAdd)(THIS_ IDot11AdHocInterface *pIAdHocInterface) PURE;
-    STDMETHOD_(HRESULT,OnInterfaceRemove)(THIS_ GUID *Signature) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#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)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocNetwork
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IDot11AdHocNetwork,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDot11AdHocNetwork methods */
-    STDMETHOD_(HRESULT,GetStatus)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus) PURE;
-    STDMETHOD_(HRESULT,GetSSID)(THIS_ LPWSTR *ppszwSSID) PURE;
-    STDMETHOD_(HRESULT,HasProfile)(THIS_ BOOLEAN *pf11d) PURE;
-    STDMETHOD_(HRESULT,GetProfileName)(THIS_ LPWSTR *ppszwProfileName) PURE;
-    STDMETHOD_(HRESULT,DeleteProfile)(THIS) PURE;
-    STDMETHOD_(HRESULT,GetSignalQuality)(THIS_ ULONG *puStrengthValue,ULONG *puStrengthMax) PURE;
-    STDMETHOD_(HRESULT,GetSecuritySetting)(THIS_ IDot11AdHocSecuritySettings **pAdHocSecuritySetting) PURE;
-    STDMETHOD_(HRESULT,GetContextGuid)(THIS_ GUID *pContextGuid) PURE;
-    STDMETHOD_(HRESULT,GetSignature)(THIS_ GUID *pSignature) PURE;
-    STDMETHOD_(HRESULT,GetInterface)(THIS_ IDot11AdHocInterface **pAdHocInterface) PURE;
-    STDMETHOD_(HRESULT,Connect)(THIS_ LPCWSTR Passphrase,LONG GeographicalId,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) PURE;
-    STDMETHOD_(HRESULT,Disconnect)(THIS) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#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)->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)->lpVtbl->Disconnect(This)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocNetworkNotificationSink
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IDot11AdHocNetworkNotificationSink,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDot11AdHocNetworkNotificationSink methods */
-    STDMETHOD_(HRESULT,OnStatusChange)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) PURE;
-    STDMETHOD_(HRESULT,OnConnectFail)(THIS_ DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#define IDot11AdHocNetworkNotificationSink_OnStatusChange(This,eStatus) (This)->lpVtbl->OnStatusChange(This,eStatus)
-#define IDot11AdHocNetworkNotificationSink_OnConnectFail(This,eFailReason) (This)->lpVtbl->OnConnectFail(This,eFailReason)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IDot11AdHocSecuritySettings
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IDot11AdHocSecuritySettings,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IDot11AdHocSecuritySettings methods */
-    STDMETHOD_(HRESULT,GetDot11AuthAlgorithm)(THIS_ DOT11_ADHOC_AUTH_ALGORITHM *pAuth) PURE;
-    STDMETHOD_(HRESULT,GetDot11CipherAlgorithm)(THIS_ DOT11_ADHOC_CIPHER_ALGORITHM *pCipher) PURE;
-
-    END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#define IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm(This,pAuth) (This)->lpVtbl->GetDot11AuthAlgorithm(This,pAuth)
-#define IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm(This,pCipher) (This)->lpVtbl->GetDot11CipherAlgorithm(This,pCipher)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IEnumDot11AdHocInterfaces
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IEnumDot11AdHocInterfaces,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IEnumDot11AdHocInterfaces methods */
-    STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocInterface **rgElt,ULONG *pcEltFetched) PURE;
-    STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
-    STDMETHOD_(HRESULT,Reset)(THIS) PURE;
-    STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocInterfaces **ppEnum) PURE;
-
-    END_INTERFACE
-};
-#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)->lpVtbl->Reset(This)
+#define IEnumDot11AdHocInterfaces_Reset(This) (This)->lpVtbl->Reset(This)
 #define IEnumDot11AdHocInterfaces_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IEnumDot11AdHocNetworks
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDot11AdHocInterfaces_QueryInterface(IEnumDot11AdHocInterfaces* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocInterfaces_AddRef(IEnumDot11AdHocInterfaces* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocInterfaces_Release(IEnumDot11AdHocInterfaces* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDot11AdHocInterfaces methods ***/
+static FORCEINLINE HRESULT IEnumDot11AdHocInterfaces_Next(IEnumDot11AdHocInterfaces* This,ULONG cElt,IDot11AdHocInterface **rgElt,ULONG *pcEltFetched) {
+    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocInterfaces_Skip(IEnumDot11AdHocInterfaces* This,ULONG cElt) {
+    return This->lpVtbl->Skip(This,cElt);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocInterfaces_Reset(IEnumDot11AdHocInterfaces* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocInterfaces_Clone(IEnumDot11AdHocInterfaces* This,IEnumDot11AdHocInterfaces **ppEnum) {
+    return This->lpVtbl->Clone(This,ppEnum);
+}
 #endif
-DECLARE_INTERFACE_(IEnumDot11AdHocNetworks,IUnknown)
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocInterfaces_Next_Proxy(
+    IEnumDot11AdHocInterfaces* This,
+    ULONG cElt,
+    IDot11AdHocInterface **rgElt,
+    ULONG *pcEltFetched);
+void __RPC_STUB IEnumDot11AdHocInterfaces_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocInterfaces_Skip_Proxy(
+    IEnumDot11AdHocInterfaces* This,
+    ULONG cElt);
+void __RPC_STUB IEnumDot11AdHocInterfaces_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocInterfaces_Reset_Proxy(
+    IEnumDot11AdHocInterfaces* This);
+void __RPC_STUB IEnumDot11AdHocInterfaces_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocInterfaces_Clone_Proxy(
+    IEnumDot11AdHocInterfaces* This,
+    IEnumDot11AdHocInterfaces **ppEnum);
+void __RPC_STUB IEnumDot11AdHocInterfaces_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDot11AdHocSecuritySettings* This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IEnumDot11AdHocNetworks methods */
-    STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocNetwork **rgElt,ULONG *pcEltFetched) PURE;
-    STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
-    STDMETHOD_(HRESULT,Reset)(THIS) PURE;
-    STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocNetworks **ppEnum) PURE;
+    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
-#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)
-#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)->lpVtbl->Reset(This)
-#define IEnumDot11AdHocNetworks_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif /*COBJMACROS*/
-
-#undef  INTERFACE
-#define INTERFACE IEnumDot11AdHocSecuritySettings
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IEnumDot11AdHocSecuritySettings,IUnknown)
-{
-    BEGIN_INTERFACE
-
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-    /* IEnumDot11AdHocSecuritySettings methods */
-    STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocSecuritySettings **rgElt,ULONG *pcEltFetched) PURE;
-    STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
-    STDMETHOD_(HRESULT,Reset)(THIS) PURE;
-    STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocSecuritySettings **ppEnum) PURE;
-
-    END_INTERFACE
-};
-#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)->lpVtbl->Reset(This)
+#define IEnumDot11AdHocSecuritySettings_Reset(This) (This)->lpVtbl->Reset(This)
 #define IEnumDot11AdHocSecuritySettings_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
-#endif /*COBJMACROS*/
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDot11AdHocSecuritySettings_QueryInterface(IEnumDot11AdHocSecuritySettings* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocSecuritySettings_AddRef(IEnumDot11AdHocSecuritySettings* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDot11AdHocSecuritySettings_Release(IEnumDot11AdHocSecuritySettings* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDot11AdHocSecuritySettings methods ***/
+static FORCEINLINE HRESULT IEnumDot11AdHocSecuritySettings_Next(IEnumDot11AdHocSecuritySettings* This,ULONG cElt,IDot11AdHocSecuritySettings **rgElt,ULONG *pcEltFetched) {
+    return This->lpVtbl->Next(This,cElt,rgElt,pcEltFetched);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocSecuritySettings_Skip(IEnumDot11AdHocSecuritySettings* This,ULONG cElt) {
+    return This->lpVtbl->Skip(This,cElt);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocSecuritySettings_Reset(IEnumDot11AdHocSecuritySettings* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDot11AdHocSecuritySettings_Clone(IEnumDot11AdHocSecuritySettings* This,IEnumDot11AdHocSecuritySettings **ppEnum) {
+    return This->lpVtbl->Clone(This,ppEnum);
+}
+#endif
+#endif
 
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-#endif /*_INC_ADHOC*/
+#endif
+
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocSecuritySettings_Next_Proxy(
+    IEnumDot11AdHocSecuritySettings* This,
+    ULONG cElt,
+    IDot11AdHocSecuritySettings **rgElt,
+    ULONG *pcEltFetched);
+void __RPC_STUB IEnumDot11AdHocSecuritySettings_Next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocSecuritySettings_Skip_Proxy(
+    IEnumDot11AdHocSecuritySettings* This,
+    ULONG cElt);
+void __RPC_STUB IEnumDot11AdHocSecuritySettings_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocSecuritySettings_Reset_Proxy(
+    IEnumDot11AdHocSecuritySettings* This);
+void __RPC_STUB IEnumDot11AdHocSecuritySettings_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDot11AdHocSecuritySettings_Clone_Proxy(
+    IEnumDot11AdHocSecuritySettings* This,
+    IEnumDot11AdHocSecuritySettings **ppEnum);
+void __RPC_STUB IEnumDot11AdHocSecuritySettings_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IDot11AdHocSecuritySettings_QueryInterface(IDot11AdHocSecuritySettings* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocSecuritySettings_AddRef(IDot11AdHocSecuritySettings* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocSecuritySettings_Release(IDot11AdHocSecuritySettings* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocSecuritySettings methods ***/
+static FORCEINLINE HRESULT IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm(IDot11AdHocSecuritySettings* This,DOT11_ADHOC_AUTH_ALGORITHM *pAuth) {
+    return This->lpVtbl->GetDot11AuthAlgorithm(This,pAuth);
+}
+static FORCEINLINE HRESULT IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm(IDot11AdHocSecuritySettings* This,DOT11_ADHOC_CIPHER_ALGORITHM *pCipher) {
+    return This->lpVtbl->GetDot11CipherAlgorithm(This,pCipher);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm_Proxy(
+    IDot11AdHocSecuritySettings* This,
+    DOT11_ADHOC_AUTH_ALGORITHM *pAuth);
+void __RPC_STUB IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm_Proxy(
+    IDot11AdHocSecuritySettings* This,
+    DOT11_ADHOC_CIPHER_ALGORITHM *pCipher);
+void __RPC_STUB IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#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 FORCEINLINE HRESULT IDot11AdHocInterfaceNotificationSink_QueryInterface(IDot11AdHocInterfaceNotificationSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDot11AdHocInterfaceNotificationSink_AddRef(IDot11AdHocInterfaceNotificationSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDot11AdHocInterfaceNotificationSink_Release(IDot11AdHocInterfaceNotificationSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDot11AdHocInterfaceNotificationSink methods ***/
+static FORCEINLINE HRESULT IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange(IDot11AdHocInterfaceNotificationSink* This,DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) {
+    return This->lpVtbl->OnConnectionStatusChange(This,eStatus);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange_Proxy(
+    IDot11AdHocInterfaceNotificationSink* This,
+    DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);
+void __RPC_STUB IDot11AdHocInterfaceNotificationSink_OnConnectionStatusChange_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDot11AdHocInterfaceNotificationSink_INTERFACE_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
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __adhoc_h__ */
diff --git a/mingw-w64-headers/include/adhoc.idl b/mingw-w64-headers/include/adhoc.idl
new file mode 100755
index 0000000..b53ced5
--- /dev/null
+++ b/mingw-w64-headers/include/adhoc.idl
@@ -0,0 +1,151 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef DO_NO_IMPORTS
+import "oaidl.idl";
+import "unknwn.idl";
+import "wtypes.idl";
+#endif
+
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+
+interface IDot11AdHocManager;
+interface IDot11AdHocManagerNotificationSink;
+interface IDot11AdHocNetwork;
+interface IDot11AdHocNetworkNotificationSink;
+interface IDot11AdHocInterface;
+interface IDot11AdHocInterfaceNotificationSink;
+interface IDot11AdHocSecuritySettings;
+interface IEnumDot11AdHocInterfaces;
+interface IEnumDot11AdHocNetworks;
+interface IEnumDot11AdHocSecuritySettings;
+
+typedef [v1_enum] enum tagDOT11_ADHOC_CIPHER_ALGORITHM {
+  DOT11_ADHOC_CIPHER_ALGO_INVALID = -1,
+  DOT11_ADHOC_CIPHER_ALGO_NONE = 0x00,
+  DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x04,
+  DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101,
+} DOT11_ADHOC_CIPHER_ALGORITHM;
+
+typedef [v1_enum] 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 [v1_enum] 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 [v1_enum] 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;
+
+cpp_quote("EXTERN_C const CLSID CLSID_AdHocManager;")
+
+[object, local, uuid (8f10cc26-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocManager : IUnknown {
+  HRESULT CreateNetwork ([in, string] LPCWSTR Name,[in, string] LPCWSTR Password,[in] LONG GeographicalId,[in] IDot11AdHocInterface *pInterface,[in] IDot11AdHocSecuritySettings *pSecurity,[in] GUID *pContextGuid,[out] IDot11AdHocNetwork **pIAdHoc);
+  HRESULT CommitCreatedNetwork ([in] IDot11AdHocNetwork *pIAdHoc,[in] BOOLEAN fSaveProfile,[in] BOOLEAN fMakeSavedProfileUserSpecific);
+  HRESULT GetIEnumDot11AdHocNetworks ([in] GUID *pContextGuid,[out] IEnumDot11AdHocNetworks **ppEnum);
+  HRESULT GetIEnumDot11AdHocInterfaces ([out] IEnumDot11AdHocInterfaces **ppEnum);
+  HRESULT GetNetwork ([in] GUID *NetworkSignature,[out] IDot11AdHocNetwork **pNetwork);
+};
+
+[object, local, uuid (8f10cc27-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocManagerNotificationSink : IUnknown {
+  HRESULT OnNetworkAdd ([in] IDot11AdHocNetwork *pIAdHocNetwork);
+  HRESULT OnNetworkRemove ([in] GUID *Signature);
+  HRESULT OnInterfaceAdd ([in] IDot11AdHocInterface *pIAdHocInterface);
+  HRESULT OnInterfaceRemove ([in] GUID *Signature);
+}
+
+[object, local, uuid (8f10cc28-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IEnumDot11AdHocNetworks : IUnknown {
+  HRESULT Next ([in] ULONG cElt,[out, size_is (cElt), length_is (*pcEltFetched)]IDot11AdHocNetwork **rgElt,[out] ULONG *pcEltFetched);
+  HRESULT Skip ([in] ULONG cElt);
+  HRESULT Reset ();
+  HRESULT Clone ([out] IEnumDot11AdHocNetworks **ppEnum);
+};
+
+[object, local, uuid (8f10cc29-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocNetwork : IUnknown {
+  HRESULT GetStatus ([in, out] DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus);
+  HRESULT GetSSID ([out, string] LPWSTR *ppszwSSID);
+  HRESULT HasProfile ([in, out] BOOLEAN *pf11d);
+  HRESULT GetProfileName ([out, string] LPWSTR *ppszwProfileName);
+  HRESULT DeleteProfile ();
+  HRESULT GetSignalQuality ([out] ULONG *puStrengthValue,[out] ULONG *puStrengthMax);
+  HRESULT GetSecuritySetting ([out] IDot11AdHocSecuritySettings **pAdHocSecuritySetting);
+  HRESULT GetContextGuid ([in, out] GUID *pContextGuid);
+  HRESULT GetSignature ([in, out] GUID *pSignature);
+  HRESULT GetInterface ([out] IDot11AdHocInterface **pAdHocInterface);
+  HRESULT Connect ([in, string] LPCWSTR Passphrase,[in] LONG GeographicalId,[in] BOOLEAN fSaveProfile,[in] BOOLEAN fMakeSavedProfileUserSpecific);
+  HRESULT Disconnect ();
+};
+
+[object, local, uuid (8f10cc2a-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocNetworkNotificationSink : IUnknown {
+  HRESULT OnStatusChange (DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);
+  HRESULT OnConnectFail (DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason);
+}
+
+[object, local, uuid (8f10cc2b-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocInterface : IUnknown {
+  HRESULT GetDeviceSignature ([in, out] GUID *pSignature);
+  HRESULT GetFriendlyName ([out, string] LPWSTR *ppszName);
+  HRESULT IsDot11d ([in, out] BOOLEAN *pf11d);
+  HRESULT IsAdHocCapable ([in, out] BOOLEAN *pfAdHocCapable);
+  HRESULT IsRadioOn ([in, out] BOOLEAN *pfIsRadioOn);
+  HRESULT GetActiveNetwork ([out] IDot11AdHocNetwork **ppNetwork);
+  HRESULT GetIEnumSecuritySettings ([out] IEnumDot11AdHocSecuritySettings **ppEnum);
+  HRESULT GetIEnumDot11AdHocNetworks ([in] GUID *pFilterGuid,[out] IEnumDot11AdHocNetworks **ppEnum);
+  HRESULT GetStatus ([in, out] DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState);
+}
+
+[object, local, uuid (8f10cc2c-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IEnumDot11AdHocInterfaces : IUnknown {
+  HRESULT Next ([in] ULONG cElt,[out, size_is (cElt), length_is (*pcEltFetched)]IDot11AdHocInterface **rgElt,[out] ULONG *pcEltFetched);
+  HRESULT Skip ([in] ULONG cElt);
+  HRESULT Reset ();
+  HRESULT Clone ([out] IEnumDot11AdHocInterfaces **ppEnum);
+}
+
+[object, local, uuid (8f10cc2d-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IEnumDot11AdHocSecuritySettings : IUnknown {
+  HRESULT Next ([in] ULONG cElt,[out, size_is (cElt), length_is (*pcEltFetched)]IDot11AdHocSecuritySettings **rgElt,[out] ULONG *pcEltFetched);
+  HRESULT Skip ([in] ULONG cElt);
+  HRESULT Reset ();
+  HRESULT Clone ([out] IEnumDot11AdHocSecuritySettings **ppEnum);
+}
+
+[object, local, uuid (8f10cc2e-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocSecuritySettings : IUnknown {
+  HRESULT GetDot11AuthAlgorithm ([in, out] DOT11_ADHOC_AUTH_ALGORITHM *pAuth);
+  HRESULT GetDot11CipherAlgorithm ([in, out] DOT11_ADHOC_CIPHER_ALGORITHM *pCipher);
+}
+
+[object, local, uuid (8f10cc2f-cf0d-42a0-acbe-e2de7007384d), pointer_default (unique)]
+interface IDot11AdHocInterfaceNotificationSink : IUnknown {
+  HRESULT OnConnectionStatusChange (DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus);
+}
+
+[uuid (45357166-ff38-4302-8f5c-df5b703a6e3d), version (1.0)]
+library ADHOCLib {
+  importlib ("stdole2.tlb");
+  [uuid (dd06a84f-83bd-4d01-8ab9-2389fea0869e)]
+  coclass Dot11AdHocManager {
+    [default] interface IDot11AdHocManager;
+  };
+};
+cpp_quote("#endif")