本文整理汇总了C++中DeviceInfo::DeviceState方法的典型用法代码示例。如果您正苦于以下问题:C++ DeviceInfo::DeviceState方法的具体用法?C++ DeviceInfo::DeviceState怎么用?C++ DeviceInfo::DeviceState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DeviceInfo
的用法示例。
在下文中一共展示了DeviceInfo::DeviceState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DeviceInfo
// new DeviceInfo object, transfers ownership of strings,
DeviceInfo *DeviceInfo::NewDevice(enum DevType aDevType,
enum DevState aDevState, FILETIME aNow, wchar_t *aSerialnumber, wchar_t *aPortName,
wchar_t *aFriendlyName, wchar_t *aHardwareId, int aPortNumber, wchar_t *aContainerId,
unsigned aUsbHub, unsigned aUsbPort, BOOL aUsbValid, unsigned aScanId, DeviceInfo *aDevNext,
BOOL aIsWinSerial, SerialType aSerialType)
{
DeviceInfo *newDev = NULL;
// decide if new device should be DevArrived rather than DevPresent
if ((aDevState == DevPresent) && !gdevTracker->CheckInitialScanFlag(aDevType)) {
aDevState = DevArrived;
}
newDev = new DeviceInfo(aDevType, aDevState, aNow, aSerialnumber, aPortName,
aPortNumber, aContainerId, aFriendlyName, aHardwareId,
aUsbHub, aUsbPort, aUsbValid, aScanId, aDevNext,
aIsWinSerial, aSerialType);
if (newDev) {
TCHAR buffer[20];
// update double linked list
if (aDevNext) {
aDevNext->devPrev = newDev;
}
gdevTracker->SetPortList(newDev);
StringCbPrintf(buffer, sizeof(buffer),
(newDev->DeviceState() == DevArrived) ? _T("%s 0min") : _T("%s"), newDev->StateName());
// display update shouldn't fail, but check anyway
if (!gdevTracker->AddViewItem(newDev->DisplayName(), newDev->devImage,
newDev->DevTypeName(), buffer, newDev->LocationString(), aSerialnumber,
(LPARAM)newDev)) {
newDev->Destroy();
newDev = NULL;
} else {
if ((aDevState == DevArrived) || (aDevState == DevPresent)) {
// update count
newDev->IncDeviceTypeCount();
}
// update DeviceTracker counts, decide on notifications
gdevTracker->DetermineArrivalNotifications(aDevType, aDevState);
}
}
return newDev;
}