diff options
| author | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
|---|---|---|
| committer | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
| commit | 97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch) | |
| tree | 46f3701832d70b420eb0fc0eb93261f9da45db3f /network/wlan/ihvsampleui/IHVSampleExtUI.h | |
| parent | ef1905bf1e8825bb31120dfb27e0daf3154d859a (diff) | |
Initial publish
Diffstat (limited to 'network/wlan/ihvsampleui/IHVSampleExtUI.h')
| -rw-r--r-- | network/wlan/ihvsampleui/IHVSampleExtUI.h | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/network/wlan/ihvsampleui/IHVSampleExtUI.h b/network/wlan/ihvsampleui/IHVSampleExtUI.h new file mode 100644 index 00000000..474c56a3 --- /dev/null +++ b/network/wlan/ihvsampleui/IHVSampleExtUI.h @@ -0,0 +1,238 @@ +// +// Copyright (C) Microsoft Corporation 2005 +// IHV UI Extension sample +// + +#ifndef _IHVSAMPLEEXTUI_H_ +#define _IHVSAMPLEEXTUI_H_ + +#include "precomp.h" + +// object ref count +extern long g_objRefCount; + +//lock count on server +extern long g_serverLock; + +#define IHV_KEY_LENGTH 64 + +#define MAX_IHV_CIPHERS 6 +#define MAX_IHV_AUTHS 6 + +// IHV Auth types +typedef enum _IHV_AUTH_TYPE { + IHVAuthV1, + IHVAuthV2, + IHVAuthV3, + IHVAuthInvalid +} IHV_AUTH_TYPE, *PIHV_AUTH_TYPE; + +// IHV cipher types +typedef enum _IHV_CIPHER_TYPE { + None, + IHVCipher1, + IHVCipher2, + IHVCipher3, + IHVCipherInvalid +} IHV_CIPHER_TYPE, *PIHV_CIPHER_TYPE; + +// structure holding valid ciphers for a given auth +typedef struct _IHV_AUTH_CIPHERS { + IHV_AUTH_TYPE IHVAuth; + DWORD dwCipherCount; + IHV_CIPHER_TYPE IHVCiphers[MAX_IHV_CIPHERS]; +} IHV_AUTH_CIPHERS, *PIHV_AUTH_CIPHERS; + +// structure for all auths and corresponding ciphers +typedef struct _IHV_AUTH_CIPHER_CAPABILITY { + DWORD dwAuthCount; + IHV_AUTH_CIPHERS IhvAuthCiphers[MAX_IHV_AUTHS]; +} IHV_AUTH_CIPHER_CAPABILITY, *PIHV_AUTH_CIPHER_CAPABILITY; + +typedef struct _IHV_SECURITY_CONFIG { + IHV_AUTH_TYPE Auth; + IHV_CIPHER_TYPE Cipher; +} IHV_SECURITY_CONFIG, *PIHV_SECURITY_CONFIG; + +extern IHV_AUTH_CIPHER_CAPABILITY g_IHVOneXExtCapability; + +extern LPWSTR g_IHVAuthFriendlyName[]; +extern LPWSTR g_IHVCipherFriendlyName[]; + + +#define PROP_COUNT_CONNECTION 1 + +#define PROP_COUNT_SECURITY 2 +#define PROP_COUNT_SEC_CIPHERS 2 +typedef enum _IHV_SECURITY_TYPE { + IHVSecurityV1, + IHVSecurityV2, + IHVSecurityInvalid +} IHV_SECURITY_TYPE, *PIHV_SECURITY_TYPE; +static LPWSTR wstrSecurityTypes[] = { L"IHV Security v1", L"IHV Security v2" }; + +#define PROP_COUNT_KEYEXTENSION 3 +static LPWSTR wstrAuthArray[] = { L"IHVAuth Open-with-1X", L"IHVAuth v1", L"IHVAuth v2" }; + + + + +#define IHV_CIPHER_COUNT 3 +static LPWSTR wstrCipherArray[] = { L"None", L"IHVCipher v1", L"IHVCipher v2" }; +static LPWSTR wstr1XCipherArray[] = { L"IHVCipher WEP"}; +static BSTR bstrCipherArray[IHV_CIPHER_COUNT] = {0}; + +typedef struct _IHV_CIPHERS_FOR_AUTH_INFO +{ + DOT11_EXT_UI_PROPERTY_DISPLAY_INFO displayInfo[IHV_CIPHER_COUNT]; +} IHV_CIPHERS_FOR_AUTH_INFO; +static DOT11_EXT_UI_PROPERTY_DISPLAY_INFO cipherOne = {1, DOT11_EXT_UI_DISPLAY_INFO_CIPHER, 0}; +static DOT11_EXT_UI_PROPERTY_DISPLAY_INFO cipherTwo = {2, DOT11_EXT_UI_DISPLAY_INFO_CIPHER, 0}; +static DOT11_EXT_UI_PROPERTY_DISPLAY_INFO cipherThree = {3, DOT11_EXT_UI_DISPLAY_INFO_CIPHER, 0}; +static DOT11_EXT_UI_PROPERTY_DISPLAY_INFO ciphersInfoArray[MAX_IHV_AUTHS][MAX_IHV_CIPHERS] = {0}; + + +//////// structures for balloon ///////// + +struct IHV_UI_REQUEST +{ + char title[80]; + char help[80]; + + IHV_UI_REQUEST() + { + memset(this, 0, sizeof(IHV_UI_REQUEST)); + } +}; + +struct IHV_UI_RESPONSE +{ + char key[100]; + int num[150]; + + IHV_UI_RESPONSE() + { + memset(this, 0, sizeof(IHV_UI_RESPONSE)); + } +}; + + +class CDot11SampleExtUI: public IDot11SampleExtUI, public IWizardExtension, public IObjectWithSite +{ +public: + CDot11SampleExtUI(); + + ~CDot11SampleExtUI(); + + // IUnknown Implementation + BEGIN_INTERFACE_TABLE() + IMPLEMENTS_INTERFACE(IDot11ExtUI) + IMPLEMENTS_INTERFACE(IDot11SampleExtUI) + IMPLEMENTS_INTERFACE(IWizardExtension) + IMPLEMENTS_INTERFACE(IObjectWithSite) + END_INTERFACE_TABLE(); + + // Used to get the IHV friendly name + STDMETHODIMP + GetDot11ExtUIFriendlyName(BSTR* bstrFriendlyName); + + // Used to display an IHV specific connection page + STDMETHODIMP + GetDot11ExtUIProperties( + DOT11_EXT_UI_PROPERTY_TYPE ExtType, + ULONG *pcExtensions, + IDot11ExtUIProperty **ppDot11ExtUIProperty + ); + + STDMETHODIMP + GetDot11ExtUIBalloonText( + BSTR pIHVUIRequest, // the UI request structure from IHV + BSTR* pwszBalloonText // the balloon text to be displayed + ); + + HRESULT + CreateConnectionProperties( + ULONG *pcExtensions, + IDot11ExtUIProperty **ppDot11ExtUIProperty + ); + + HRESULT + CreateSecurityProperties( + ULONG *pcExtensions, + IDot11ExtUIProperty **ppDot11ExtUIProperty + ); + + HRESULT + CreateKeyProperties( + ULONG *pcExtensions, + IDot11ExtUIProperty **ppDot11ExtUIProperty + ); + + // IObjectWithSite + STDMETHOD (SetSite) ( + IUnknown* pUnkSite + ); + + STDMETHOD (GetSite) ( + REFIID riid, + void** ppvSite + ); + + //IWizardExtension + STDMETHOD (AddPages) ( + HPROPSHEETPAGE* aPages, + UINT cPages, + UINT *pnPagesAdded + ); + + STDMETHOD (GetFirstPage) ( + HPROPSHEETPAGE *phpage + ); + + STDMETHOD (GetLastPage) ( + HPROPSHEETPAGE *phpage + ); + +private: + HRESULT FinalConstruct(); + void FinalRelease(); + static BOOL CALLBACK GetKeyDlgProc ( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + ); + + + static BOOL CALLBACK HelpDlgProc ( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + ); + + static BOOL CALLBACK LastPageDlgProc ( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam + ); + + HRESULT GetClsidPropertyName ( + _In_ const CLSID* pCLSID, + _In_opt_ PCWSTR pwszPropertyName, + _Out_writes_(maxResultLen) PWSTR pResultStr, + _In_ UINT maxResultLen); + +private: + IHV_UI_REQUEST* m_pUIRequest; + IHV_UI_RESPONSE m_UIResponse; + + IUnknown* m_pUnkSite; + + HPROPSHEETPAGE m_hFirstPagePsp; + HPROPSHEETPAGE m_hLastPagePsp; +}; + + +#endif _IHVSAMPLEEXTUI_H_ |
