2025-11-28 00:35:46 +09:00

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
}