118 lines
2.8 KiB
C++
118 lines
2.8 KiB
C++
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "resource.h"
|
|
|
|
CImageList CWlanDevice::m_ImageList;
|
|
|
|
int CWlanDevice::m_DeviceImageIndex[device_type_invalid];
|
|
|
|
DEVICE_TYPE MatchPredefinedDeviceType(DOT11_MAC_ADDRESS& MacAddress)
|
|
{
|
|
//to be added: method of detecting the device type.
|
|
return device_type_default;
|
|
}
|
|
|
|
//
|
|
// Static functions
|
|
//
|
|
VOID
|
|
CWlanDevice::InitDeviceImageList(CWinApp * App)
|
|
{
|
|
//
|
|
// Add device images
|
|
//
|
|
m_ImageList.Create(48, 48, ILC_COLOR32, 5, 2);
|
|
// set background color
|
|
m_ImageList.SetBkColor(RGB(255,255,255));
|
|
|
|
// default device
|
|
m_DeviceImageIndex[device_type_default] = m_ImageList.Add(App->LoadIcon(IDR_DEFAULTDEVICE));
|
|
// camera
|
|
m_DeviceImageIndex[device_type_camera] = m_ImageList.Add(App->LoadIcon(IDR_CAMERA));
|
|
// printer
|
|
m_DeviceImageIndex[device_type_printer] = m_ImageList.Add(App->LoadIcon(IDR_PRINTER));
|
|
// computer
|
|
m_DeviceImageIndex[device_type_computer] = m_ImageList.Add(App->LoadIcon(IDR_COMPUTER));
|
|
// telephone
|
|
m_DeviceImageIndex[device_type_telephone] = m_ImageList.Add(App->LoadIconW(IDR_TELEPHONE));
|
|
// zune device
|
|
m_DeviceImageIndex[device_type_zune] = m_ImageList.Add(App->LoadIconW(IDR_ZUNEDEVICE));
|
|
}
|
|
|
|
CImageList *
|
|
CWlanDevice::GetDeviceImageList()
|
|
{
|
|
return &m_ImageList;
|
|
}
|
|
|
|
// CWlanDevice
|
|
CWlanDevice::CWlanDevice(
|
|
DOT11_MAC_ADDRESS& MacAddress
|
|
)
|
|
{
|
|
// copy MAC address
|
|
memcpy(m_MacAddress, MacAddress, sizeof(DOT11_MAC_ADDRESS));
|
|
|
|
// By default, the friendly name is the MAC address
|
|
GetDisplayMacAddress(m_FriendlyName);
|
|
|
|
m_Type = MatchPredefinedDeviceType(MacAddress);
|
|
}
|
|
|
|
CWlanDevice::~CWlanDevice()
|
|
{
|
|
}
|
|
|
|
BOOL
|
|
CWlanDevice::operator==(
|
|
const CWlanDevice& Other
|
|
)
|
|
{
|
|
// only match the MAC address
|
|
return *this == Other.m_MacAddress;
|
|
}
|
|
|
|
BOOL
|
|
CWlanDevice::operator==(
|
|
const DOT11_MAC_ADDRESS MacAddress
|
|
)
|
|
{
|
|
// only match MAC address
|
|
return memcmp(m_MacAddress, MacAddress, sizeof(DOT11_MAC_ADDRESS)) == 0;
|
|
}
|
|
|
|
VOID
|
|
CWlanDevice::GetDisplayMacAddress(
|
|
CAtlString& strMacAddress
|
|
)
|
|
{
|
|
WCHAR strDisplayName[WLAN_MAX_NAME_LENGTH] = {0};
|
|
DWORD szDisplayName = WLAN_MAX_NAME_LENGTH;
|
|
|
|
StringCchPrintf(
|
|
strDisplayName,
|
|
szDisplayName,
|
|
L"%02X-%02X-%02X-%02X-%02X-%02X",
|
|
m_MacAddress[0],
|
|
m_MacAddress[1],
|
|
m_MacAddress[2],
|
|
m_MacAddress[3],
|
|
m_MacAddress[4],
|
|
m_MacAddress[5]
|
|
);
|
|
|
|
strMacAddress = strDisplayName;
|
|
}
|
|
|
|
int
|
|
CWlanDevice::GetImageIndex()
|
|
{
|
|
return m_DeviceImageIndex[m_Type]; // default
|
|
} |