mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 19:52:56 +00:00
[DEVMGMT]
Implement the 'View/Devices by Connection' feature. It runs very well on windows XP but fails on ReactOS. Needs to be investigated. svn path=/trunk/; revision=56197
This commit is contained in:
parent
f2162e8335
commit
8f0db19a99
24 changed files with 452 additions and 159 deletions
|
@ -421,6 +421,165 @@ ListDevicesByType(HWND hTreeView,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static HTREEITEM
|
||||||
|
AddDeviceToTree(HWND hTreeView,
|
||||||
|
HTREEITEM hRoot,
|
||||||
|
DEVINST dnDevInst)
|
||||||
|
{
|
||||||
|
TCHAR DevName[MAX_DEV_LEN];
|
||||||
|
TCHAR FriendlyName[MAX_DEV_LEN];
|
||||||
|
TCHAR ClassGuidString[MAX_GUID_STRING_LEN];
|
||||||
|
GUID ClassGuid;
|
||||||
|
ULONG ulLength;
|
||||||
|
LPTSTR DeviceID;
|
||||||
|
INT ClassImage = 24;
|
||||||
|
CONFIGRET cr;
|
||||||
|
|
||||||
|
cr = CM_Get_Device_ID(dnDevInst,
|
||||||
|
DevName,
|
||||||
|
MAX_DEV_LEN,
|
||||||
|
0);
|
||||||
|
if (cr != CR_SUCCESS)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
ulLength = MAX_DEV_LEN * sizeof(TCHAR);
|
||||||
|
cr = CM_Get_DevNode_Registry_Property(dnDevInst,
|
||||||
|
CM_DRP_FRIENDLYNAME,
|
||||||
|
NULL,
|
||||||
|
FriendlyName,
|
||||||
|
&ulLength,
|
||||||
|
0);
|
||||||
|
if (cr != CR_SUCCESS)
|
||||||
|
{
|
||||||
|
ulLength = MAX_DEV_LEN * sizeof(TCHAR);
|
||||||
|
cr = CM_Get_DevNode_Registry_Property(dnDevInst,
|
||||||
|
CM_DRP_DEVICEDESC,
|
||||||
|
NULL,
|
||||||
|
FriendlyName,
|
||||||
|
&ulLength,
|
||||||
|
0);
|
||||||
|
if (cr != CR_SUCCESS)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ulLength = MAX_GUID_STRING_LEN * sizeof(TCHAR);
|
||||||
|
cr = CM_Get_DevNode_Registry_Property(dnDevInst,
|
||||||
|
CM_DRP_CLASSGUID,
|
||||||
|
NULL,
|
||||||
|
ClassGuidString,
|
||||||
|
&ulLength,
|
||||||
|
0);
|
||||||
|
if (cr == CR_SUCCESS)
|
||||||
|
{
|
||||||
|
pSetupGuidFromString(ClassGuidString, &ClassGuid);
|
||||||
|
|
||||||
|
if (!SetupDiGetClassImageIndex(&ImageListData,
|
||||||
|
&ClassGuid,
|
||||||
|
&ClassImage))
|
||||||
|
{
|
||||||
|
/* FIXME: can we do this?
|
||||||
|
* Set the blank icon: IDI_SETUPAPI_BLANK = 41
|
||||||
|
* it'll be image 24 in the imagelist */
|
||||||
|
ClassImage = 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DevName != NULL)
|
||||||
|
{
|
||||||
|
DeviceID = HeapAlloc(GetProcessHeap(),
|
||||||
|
0,
|
||||||
|
(lstrlen(DevName) + 1) * sizeof(TCHAR));
|
||||||
|
if (DeviceID == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
lstrcpy(DeviceID, DevName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return InsertIntoTreeView(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
FriendlyName,
|
||||||
|
DeviceID,
|
||||||
|
ClassImage,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
EnumChildDevices(HWND hTreeView,
|
||||||
|
HTREEITEM hRoot,
|
||||||
|
DEVINST dnParentDevInst)
|
||||||
|
{
|
||||||
|
HTREEITEM hDevItem;
|
||||||
|
DEVINST dnDevInst;
|
||||||
|
CONFIGRET cr;
|
||||||
|
|
||||||
|
cr = CM_Get_Child(&dnDevInst,
|
||||||
|
dnParentDevInst,
|
||||||
|
0);
|
||||||
|
if (cr != CR_SUCCESS)
|
||||||
|
return;
|
||||||
|
|
||||||
|
hDevItem = AddDeviceToTree(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
dnDevInst);
|
||||||
|
if (hDevItem == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
EnumChildDevices(hTreeView,
|
||||||
|
hDevItem,
|
||||||
|
dnDevInst);
|
||||||
|
|
||||||
|
while (cr == CR_SUCCESS)
|
||||||
|
{
|
||||||
|
cr = CM_Get_Sibling(&dnDevInst,
|
||||||
|
dnDevInst,
|
||||||
|
0);
|
||||||
|
if (cr != CR_SUCCESS)
|
||||||
|
break;
|
||||||
|
|
||||||
|
hDevItem = AddDeviceToTree(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
dnDevInst);
|
||||||
|
if (hDevItem == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
EnumChildDevices(hTreeView,
|
||||||
|
hDevItem,
|
||||||
|
dnDevInst);
|
||||||
|
}
|
||||||
|
|
||||||
|
(void)TreeView_SortChildren(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
ListDevicesByConnection(HWND hTreeView,
|
||||||
|
HTREEITEM hRoot)
|
||||||
|
{
|
||||||
|
DEVINST devInst;
|
||||||
|
CONFIGRET cr;
|
||||||
|
|
||||||
|
cr = CM_Locate_DevNode(&devInst,
|
||||||
|
NULL,
|
||||||
|
CM_LOCATE_DEVNODE_NORMAL);
|
||||||
|
if (cr == CR_SUCCESS)
|
||||||
|
EnumChildDevices(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
devInst);
|
||||||
|
|
||||||
|
(void)TreeView_Expand(hTreeView,
|
||||||
|
hRoot,
|
||||||
|
TVE_EXPAND);
|
||||||
|
|
||||||
|
(void)TreeView_SelectItem(hTreeView,
|
||||||
|
hRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
HTREEITEM
|
HTREEITEM
|
||||||
InitTreeView(HWND hTreeView)
|
InitTreeView(HWND hTreeView)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Изглед"
|
POPUP "Изглед"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Устройствата според вид", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Устройствата според вид", IDC_DEVBYTYPE
|
||||||
MENUITEM "Устройствата според свързването", IDC_STATIC, GRAYED
|
MENUITEM "Устройствата според свързването", IDC_DEVBYCONN
|
||||||
MENUITEM "Средствата според вида", IDC_STATIC, GRAYED
|
MENUITEM "Средствата според вида", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Средствата според свързването", IDC_STATIC, GRAYED
|
MENUITEM "Средствата според свързването", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Помощ"
|
POPUP "Помощ"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "&Zobrazení"
|
POPUP "&Zobrazení"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Zařízení podle typu", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Zařízení podle typu", IDC_DEVBYTYPE
|
||||||
MENUITEM "Zařízení podle připojení", IDC_STATIC, GRAYED
|
MENUITEM "Zařízení podle připojení", IDC_DEVBYCONN
|
||||||
MENUITEM "Prostředky podle typu", IDC_STATIC, GRAYED
|
MENUITEM "Prostředky podle typu", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Prostředky podle připojení", IDC_STATIC, GRAYED
|
MENUITEM "Prostředky podle připojení", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Nápověda"
|
POPUP "Nápověda"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -4,27 +4,27 @@ IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Datei"
|
POPUP "&Datei"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Beenden", IDC_EXIT
|
MENUITEM "&Beenden", IDC_EXIT
|
||||||
END
|
END
|
||||||
POPUP "Aktion"
|
POPUP "Aktion"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Drucken", IDC_PRINT, GRAYED
|
MENUITEM "Drucken", IDC_PRINT, GRAYED
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Eigenschaften", IDC_PROP, GRAYED
|
MENUITEM "Eigenschaften", IDC_PROP, GRAYED
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Hilfe", IDC_PROGHELP, GRAYED
|
MENUITEM "Hilfe", IDC_PROGHELP, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Ansicht"
|
POPUP "Ansicht"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Geräte nach Typ", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Geräte nach Typ", IDC_DEVBYTYPE
|
||||||
MENUITEM "Geräte nach Verbindung", IDC_STATIC, GRAYED
|
MENUITEM "Geräte nach Verbindung", IDC_DEVBYCONN
|
||||||
MENUITEM "Resourcen nach Typ", IDC_STATIC, GRAYED
|
MENUITEM "Resourcen nach Typ", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resourcen nach Verbindung", IDC_STATIC, GRAYED
|
MENUITEM "Resourcen nach Verbindung", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "&?"
|
POPUP "&?"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Hilfe", IDC_PROGHELP
|
MENUITEM "Hilfe", IDC_PROGHELP
|
||||||
MENUITEM "Info", IDC_ABOUT
|
MENUITEM "Info", IDC_ABOUT
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -32,9 +32,9 @@ IDR_POPUP MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "popup"
|
POPUP "popup"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Eigenschaften", IDC_PROP, GRAYED
|
MENUITEM "Eigenschaften", IDC_PROP, GRAYED
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Hilfe", IDC_PROGHELP
|
MENUITEM "Hilfe", IDC_PROGHELP
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
|
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Εμφάνιση"
|
POPUP "Εμφάνιση"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Συσκευές ανά τύπο", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Συσκευές ανά τύπο", IDC_DEVBYTYPE
|
||||||
MENUITEM "Συσκευές ανά σύνδεση", IDC_STATIC, GRAYED
|
MENUITEM "Συσκευές ανά σύνδεση", IDC_DEVBYCONN
|
||||||
MENUITEM "Πηγές ανά τύπο", IDC_STATIC, GRAYED
|
MENUITEM "Πηγές ανά τύπο", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Πηγές ανά σύνδεση", IDC_STATIC, GRAYED
|
MENUITEM "Πηγές ανά σύνδεση", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Βοήθεια"
|
POPUP "Βοήθεια"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "View"
|
POPUP "View"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Devices by type", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Devices by type", IDC_DEVBYTYPE
|
||||||
MENUITEM "Devices by connection", IDC_STATIC, GRAYED
|
MENUITEM "Devices by connection", IDC_DEVBYCONN
|
||||||
MENUITEM "Resources by type", IDC_STATIC, GRAYED
|
MENUITEM "Resources by type", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resources by connection", IDC_STATIC, GRAYED
|
MENUITEM "Resources by connection", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Help"
|
POPUP "Help"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Spanish Language resource file
|
* Spanish Language resource file
|
||||||
* Traducido por: Javier Remacha 2007-12-21
|
* Traducido por: Javier Remacha 2007-12-21
|
||||||
*/
|
*/
|
||||||
|
@ -21,10 +21,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Ver"
|
POPUP "Ver"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Dispositivos por tipo", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Dispositivos por tipo", IDC_DEVBYTYPE
|
||||||
MENUITEM "Dispositivos por conexión", IDC_STATIC, GRAYED
|
MENUITEM "Dispositivos por conexión", IDC_DEVBYCONN
|
||||||
MENUITEM "Recursos por tipo", IDC_STATIC, GRAYED
|
MENUITEM "Recursos por tipo", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Recursos por conexión", IDC_STATIC, GRAYED
|
MENUITEM "Recursos por conexión", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Ayuda"
|
POPUP "Ayuda"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Affichage"
|
POPUP "Affichage"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Périphériques par type", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Périphériques par type", IDC_DEVBYTYPE
|
||||||
MENUITEM "Périphériques par connexion", IDC_STATIC, GRAYED
|
MENUITEM "Périphériques par connexion", IDC_DEVBYCONN
|
||||||
MENUITEM "Ressources par type", IDC_STATIC, GRAYED
|
MENUITEM "Ressources par type", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Ressources par connexion", IDC_STATIC, GRAYED
|
MENUITEM "Ressources par connexion", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Aide"
|
POPUP "Aide"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Lihat"
|
POPUP "Lihat"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Device dengan tipe", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Device dengan tipe", IDC_DEVBYTYPE
|
||||||
MENUITEM "Device dengan koneksi", IDC_STATIC, GRAYED
|
MENUITEM "Device dengan koneksi", IDC_DEVBYCONN
|
||||||
MENUITEM "Resource dengan tipe", IDC_STATIC, GRAYED
|
MENUITEM "Resource dengan tipe", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resource dengan koneksi", IDC_STATIC, GRAYED
|
MENUITEM "Resource dengan koneksi", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Bantuan"
|
POPUP "Bantuan"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Visualizza"
|
POPUP "Visualizza"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Dispositivi per tipo", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Dispositivi per tipo", IDC_DEVBYTYPE
|
||||||
MENUITEM "Dispositivi per connessione", IDC_STATIC, GRAYED
|
MENUITEM "Dispositivi per connessione", IDC_DEVBYCONN
|
||||||
MENUITEM "Risorse per tipo", IDC_STATIC, GRAYED
|
MENUITEM "Risorse per tipo", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Risorse per connessione", IDC_STATIC, GRAYED
|
MENUITEM "Risorse per connessione", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Aiuto"
|
POPUP "Aiuto"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "表 示"
|
POPUP "表 示"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "デバイス (種類別)", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "デバイス (種類別)", IDC_DEVBYTYPE
|
||||||
MENUITEM "デバイス (接続別)", IDC_STATIC, GRAYED
|
MENUITEM "デバイス (接続別)", IDC_DEVBYCONN
|
||||||
MENUITEM "リソ ース (種類別)", IDC_STATIC, GRAYED
|
MENUITEM "リソ ース (種類別)", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "リソ ース (接続別)", IDC_STATIC, GRAYED
|
MENUITEM "リソ ース (接続別)", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "ヘルプ"
|
POPUP "ヘルプ"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Korean translation by manatails007(www.manatails007.org)
|
* Korean translation by manatails007(www.manatails007.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -20,10 +20,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "보기"
|
POPUP "보기"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Devices by type", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Devices by type", IDC_DEVBYTYPE
|
||||||
MENUITEM "Devices by connection", IDC_STATIC, GRAYED
|
MENUITEM "Devices by connection", IDC_DEVBYCONN
|
||||||
MENUITEM "Resources by type", IDC_STATIC, GRAYED
|
MENUITEM "Resources by type", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resources by connection", IDC_STATIC, GRAYED
|
MENUITEM "Resources by connection", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "도움말"
|
POPUP "도움말"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
|
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -16,10 +16,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Vis"
|
POPUP "Vis"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Enheter etter type", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Enheter etter type", IDC_DEVBYTYPE
|
||||||
MENUITEM "Enheter etter tilkobling", IDC_STATIC, GRAYED
|
MENUITEM "Enheter etter tilkobling", IDC_DEVBYCONN
|
||||||
MENUITEM "Ressurser etter type", IDC_STATIC, GRAYED
|
MENUITEM "Ressurser etter type", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Ressurser etter tilkobling", IDC_STATIC, GRAYED
|
MENUITEM "Ressurser etter tilkobling", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Hjelp"
|
POPUP "Hjelp"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* translated by xrogers
|
* translated by xrogers
|
||||||
* xxrogers@users.sourceforge.net
|
* xxrogers@users.sourceforge.net
|
||||||
* https://sourceforge.net/projects/reactospl
|
* https://sourceforge.net/projects/reactospl
|
||||||
|
@ -23,10 +23,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "&Widok"
|
POPUP "&Widok"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Urządzenia w&edług typu", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Urządzenia w&edług typu", IDC_DEVBYTYPE
|
||||||
MENUITEM "Ur&ządzenia według połączenia", IDC_STATIC, GRAYED
|
MENUITEM "Ur&ządzenia według połączenia", IDC_DEVBYCONN
|
||||||
MENUITEM "Zaso&by według typu", IDC_STATIC, GRAYED
|
MENUITEM "Zaso&by według typu", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Za&soby według połączenia", IDC_STATIC, GRAYED
|
MENUITEM "Za&soby według połączenia", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Pomo&c"
|
POPUP "Pomo&c"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//2011.10.19 - Fulea Ștefan: minor changes
|
//2011.10.19 - Fulea Ștefan: minor changes
|
||||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDR_MAINMENU MENU
|
IDR_MAINMENU MENU
|
||||||
|
@ -17,10 +17,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "&Afișare"
|
POPUP "&Afișare"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Dispozitive după &tip", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Dispozitive după &tip", IDC_DEVBYTYPE
|
||||||
MENUITEM "Dispozitive după &conexiune", IDC_STATIC, GRAYED
|
MENUITEM "Dispozitive după &conexiune", IDC_DEVBYCONN
|
||||||
MENUITEM "Resurse după t&ip", IDC_STATIC, GRAYED
|
MENUITEM "Resurse după t&ip", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resurse după c&onexiune", IDC_STATIC, GRAYED
|
MENUITEM "Resurse după c&onexiune", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "&?"
|
POPUP "&?"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Russian language resource file (Dmitry Chapyshev, 2007-06-10)
|
// Russian language resource file (Dmitry Chapyshev, 2007-06-10)
|
||||||
|
|
||||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
@ -18,10 +18,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Вид"
|
POPUP "Вид"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Устройства по типу", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Устройства по типу", IDC_DEVBYTYPE
|
||||||
MENUITEM "Устройства по подключению", IDC_STATIC, GRAYED
|
MENUITEM "Устройства по подключению", IDC_DEVBYCONN
|
||||||
MENUITEM "Ресурсы по типу", IDC_STATIC, GRAYED
|
MENUITEM "Ресурсы по типу", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Ресурсы по подключению", IDC_STATIC, GRAYED
|
MENUITEM "Ресурсы по подключению", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Справка"
|
POPUP "Справка"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* TRANSLATOR: Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
|
/* TRANSLATOR: Mário Kačmár /Mario Kacmar/ aka Kario (kario@szm.sk)
|
||||||
* DATE OF TR.: 14-02-2008
|
* DATE OF TR.: 14-02-2008
|
||||||
* LAST CHANGE: 29-08-2008
|
* LAST CHANGE: 29-08-2008
|
||||||
*/
|
*/
|
||||||
|
@ -21,10 +21,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Zobraziť"
|
POPUP "Zobraziť"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Zariadenia podľa typu", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Zariadenia podľa typu", IDC_DEVBYTYPE
|
||||||
MENUITEM "Zariadenia podľa pripojenia", IDC_STATIC, GRAYED
|
MENUITEM "Zariadenia podľa pripojenia", IDC_DEVBYCONN
|
||||||
MENUITEM "Prostriedky podľa typu", IDC_STATIC, GRAYED
|
MENUITEM "Prostriedky podľa typu", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Prostriedky podľa pripojenia", IDC_STATIC, GRAYED
|
MENUITEM "Prostriedky podľa pripojenia", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Pomocník"
|
POPUP "Pomocník"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS MSCUTILS
|
* PROJECT: ReactOS MSCUTILS
|
||||||
* FILE: base\applications\mscutils\devmgmt\lang\sv-SE.rc
|
* FILE: base\applications\mscutils\devmgmt\lang\sv-SE.rc
|
||||||
* PURPOSE: Swedish resource file
|
* PURPOSE: Swedish resource file
|
||||||
|
@ -23,10 +23,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Visa"
|
POPUP "Visa"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Enheter efter typ", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Enheter efter typ", IDC_DEVBYTYPE
|
||||||
MENUITEM "Enheter efter koppling", IDC_STATIC, GRAYED
|
MENUITEM "Enheter efter koppling", IDC_DEVBYCONN
|
||||||
MENUITEM "Resurcer efter typ", IDC_STATIC, GRAYED
|
MENUITEM "Resurcer efter typ", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Resurcer efter koppling", IDC_STATIC, GRAYED
|
MENUITEM "Resurcer efter koppling", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Hjälp"
|
POPUP "Hjälp"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Device Management
|
* PROJECT: ReactOS Device Management
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: base/applications/devmgmt/lang/th-TH.rc
|
* FILE: base/applications/devmgmt/lang/th-TH.rc
|
||||||
|
@ -24,10 +24,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "มุมมอง"
|
POPUP "มุมมอง"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "อุปกรณ์แบ่งตามประเภท", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "อุปกรณ์แบ่งตามประเภท", IDC_DEVBYTYPE
|
||||||
MENUITEM "อุปกรณ์แบ่งตามการเชื่อมต่อ", IDC_STATIC, GRAYED
|
MENUITEM "อุปกรณ์แบ่งตามการเชื่อมต่อ", IDC_DEVBYCONN
|
||||||
MENUITEM "แหล่งข้อมูลตามประเภท", IDC_STATIC, GRAYED
|
MENUITEM "แหล่งข้อมูลตามประเภท", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "แหล่งข้อมูลตามการเชื่อมต่อ", IDC_STATIC, GRAYED
|
MENUITEM "แหล่งข้อมูลตามการเชื่อมต่อ", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "ช่วยเหลือ"
|
POPUP "ช่วยเหลือ"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Device Management
|
* PROJECT: ReactOS Device Management
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: base/applications/devmgmt/lang/uk-UA.rc
|
* FILE: base/applications/devmgmt/lang/uk-UA.rc
|
||||||
|
@ -24,10 +24,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "Вигляд"
|
POPUP "Вигляд"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Пристрої за типом", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "Пристрої за типом", IDC_DEVBYTYPE
|
||||||
MENUITEM "Пристрої за підключенням", IDC_STATIC, GRAYED
|
MENUITEM "Пристрої за підключенням", IDC_DEVBYCONN
|
||||||
MENUITEM "Ресурси за типом", IDC_STATIC, GRAYED
|
MENUITEM "Ресурси за типом", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "Ресурси за підключенням", IDC_STATIC, GRAYED
|
MENUITEM "Ресурси за підключенням", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "Довідка"
|
POPUP "Довідка"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Translated by Song Fuchang (0xfc) <sfc_0@yahoo.com.cn>
|
* Translated by Song Fuchang (0xfc) <sfc_0@yahoo.com.cn>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -20,10 +20,10 @@ BEGIN
|
||||||
END
|
END
|
||||||
POPUP "查看"
|
POPUP "查看"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "设备,按类型", IDC_DEVBYTYPE, CHECKED
|
MENUITEM "设备,按类型", IDC_DEVBYTYPE
|
||||||
MENUITEM "设备,按连接", IDC_STATIC, GRAYED
|
MENUITEM "设备,按连接", IDC_DEVBYCONN
|
||||||
MENUITEM "资源,按类型", IDC_STATIC, GRAYED
|
MENUITEM "资源,按类型", IDC_RESBYTYPE, GRAYED
|
||||||
MENUITEM "资源,按连接", IDC_STATIC, GRAYED
|
MENUITEM "资源,按连接", IDC_RESBYCONN, GRAYED
|
||||||
END
|
END
|
||||||
POPUP "帮助"
|
POPUP "帮助"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
|
@ -203,18 +203,30 @@ CreateStatusBar(PMAIN_WND_INFO Info)
|
||||||
static DWORD WINAPI
|
static DWORD WINAPI
|
||||||
DeviceEnumThread(LPVOID lpParameter)
|
DeviceEnumThread(LPVOID lpParameter)
|
||||||
{
|
{
|
||||||
|
PMAIN_WND_INFO Info;
|
||||||
HTREEITEM hRoot;
|
HTREEITEM hRoot;
|
||||||
HWND *hTreeView;
|
|
||||||
|
|
||||||
hTreeView = (HWND *)lpParameter;
|
Info = (PMAIN_WND_INFO)lpParameter;
|
||||||
|
|
||||||
if (*hTreeView)
|
if (Info->hTreeView)
|
||||||
FreeDeviceStrings(*hTreeView);
|
FreeDeviceStrings(Info->hTreeView);
|
||||||
|
|
||||||
hRoot = InitTreeView(*hTreeView);
|
hRoot = InitTreeView(Info->hTreeView);
|
||||||
if (hRoot)
|
if (hRoot)
|
||||||
{
|
{
|
||||||
ListDevicesByType(*hTreeView, hRoot);
|
switch (Info->Display)
|
||||||
|
{
|
||||||
|
case DevicesByType:
|
||||||
|
ListDevicesByType(Info->hTreeView, hRoot);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DevicesByConnection:
|
||||||
|
ListDevicesByConnection(Info->hTreeView, hRoot);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,6 +234,35 @@ DeviceEnumThread(LPVOID lpParameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
UpdateViewMenu(PMAIN_WND_INFO Info)
|
||||||
|
{
|
||||||
|
UINT id = IDC_DEVBYTYPE;
|
||||||
|
|
||||||
|
switch (Info->Display)
|
||||||
|
{
|
||||||
|
case DevicesByType:
|
||||||
|
id = IDC_DEVBYTYPE;
|
||||||
|
break;
|
||||||
|
case DevicesByConnection:
|
||||||
|
id = IDC_DEVBYCONN;
|
||||||
|
break;
|
||||||
|
case RessourcesByType:
|
||||||
|
id = IDC_RESBYTYPE;
|
||||||
|
break;
|
||||||
|
case RessourcesByConnection:
|
||||||
|
id = IDC_RESBYCONN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckMenuRadioItem(GetMenu(Info->hMainWnd),
|
||||||
|
IDC_DEVBYTYPE,
|
||||||
|
IDC_RESBYCONN,
|
||||||
|
id,
|
||||||
|
MF_BYCOMMAND);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static BOOL
|
static BOOL
|
||||||
InitMainWnd(PMAIN_WND_INFO Info)
|
InitMainWnd(PMAIN_WND_INFO Info)
|
||||||
{
|
{
|
||||||
|
@ -240,6 +281,8 @@ InitMainWnd(PMAIN_WND_INFO Info)
|
||||||
if (!CreateStatusBar(Info))
|
if (!CreateStatusBar(Info))
|
||||||
DisplayString(_T("error creating status bar"));
|
DisplayString(_T("error creating status bar"));
|
||||||
|
|
||||||
|
UpdateViewMenu(Info);
|
||||||
|
|
||||||
/* make 'properties' bold */
|
/* make 'properties' bold */
|
||||||
hMenu = GetMenu(Info->hMainWnd);
|
hMenu = GetMenu(Info->hMainWnd);
|
||||||
hMenu = GetSubMenu(hMenu, 1);
|
hMenu = GetSubMenu(hMenu, 1);
|
||||||
|
@ -256,7 +299,7 @@ InitMainWnd(PMAIN_WND_INFO Info)
|
||||||
DevEnumThread = CreateThread(NULL,
|
DevEnumThread = CreateThread(NULL,
|
||||||
0,
|
0,
|
||||||
DeviceEnumThread,
|
DeviceEnumThread,
|
||||||
&Info->hTreeView,
|
Info,
|
||||||
0,
|
0,
|
||||||
NULL);
|
NULL);
|
||||||
if (!DevEnumThread)
|
if (!DevEnumThread)
|
||||||
|
@ -303,11 +346,12 @@ OnContext(PMAIN_WND_INFO Info,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VOID
|
static LRESULT
|
||||||
OnNotify(PMAIN_WND_INFO Info,
|
OnNotify(PMAIN_WND_INFO Info,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
LPNMHDR pnmhdr = (LPNMHDR)lParam;
|
LPNMHDR pnmhdr = (LPNMHDR)lParam;
|
||||||
|
LRESULT ret = 0;
|
||||||
|
|
||||||
switch (pnmhdr->code)
|
switch (pnmhdr->code)
|
||||||
{
|
{
|
||||||
|
@ -315,26 +359,52 @@ OnNotify(PMAIN_WND_INFO Info,
|
||||||
{
|
{
|
||||||
LPNM_TREEVIEW pnmtv = (LPNM_TREEVIEW)lParam;
|
LPNM_TREEVIEW pnmtv = (LPNM_TREEVIEW)lParam;
|
||||||
|
|
||||||
if (!TreeView_GetChild(Info->hTreeView,
|
if (Info->Display == DevicesByType)
|
||||||
pnmtv->itemNew.hItem))
|
|
||||||
{
|
{
|
||||||
SendMessage(Info->hTool,
|
if (!TreeView_GetChild(Info->hTreeView,
|
||||||
TB_SETSTATE,
|
pnmtv->itemNew.hItem))
|
||||||
IDC_PROP,
|
{
|
||||||
(LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
|
SendMessage(Info->hTool,
|
||||||
|
TB_SETSTATE,
|
||||||
|
IDC_PROP,
|
||||||
|
(LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
|
||||||
|
|
||||||
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
|
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
|
||||||
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
|
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendMessage(Info->hTool,
|
||||||
|
TB_SETSTATE,
|
||||||
|
IDC_PROP,
|
||||||
|
(LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
|
||||||
|
|
||||||
|
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
|
||||||
|
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (Info->Display == DevicesByConnection)
|
||||||
{
|
{
|
||||||
SendMessage(Info->hTool,
|
if (pnmtv->itemNew.hItem == TreeView_GetRoot(Info->hTreeView))
|
||||||
TB_SETSTATE,
|
{
|
||||||
IDC_PROP,
|
SendMessage(Info->hTool,
|
||||||
(LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
|
TB_SETSTATE,
|
||||||
|
IDC_PROP,
|
||||||
|
(LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
|
||||||
|
|
||||||
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
|
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
|
||||||
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
|
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendMessage(Info->hTool,
|
||||||
|
TB_SETSTATE,
|
||||||
|
IDC_PROP,
|
||||||
|
(LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
|
||||||
|
|
||||||
|
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
|
||||||
|
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -344,17 +414,42 @@ OnNotify(PMAIN_WND_INFO Info,
|
||||||
HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
|
HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
|
||||||
TV_HITTESTINFO HitTest;
|
TV_HITTESTINFO HitTest;
|
||||||
|
|
||||||
if (!TreeView_GetChild(Info->hTreeView,
|
if (Info->Display == DevicesByType)
|
||||||
hSelected))
|
|
||||||
{
|
{
|
||||||
if (GetCursorPos(&HitTest.pt) &&
|
if (!TreeView_GetChild(Info->hTreeView,
|
||||||
ScreenToClient(Info->hTreeView, &HitTest.pt))
|
hSelected))
|
||||||
{
|
{
|
||||||
if (TreeView_HitTest(Info->hTreeView, &HitTest))
|
if (GetCursorPos(&HitTest.pt) &&
|
||||||
|
ScreenToClient(Info->hTreeView, &HitTest.pt))
|
||||||
{
|
{
|
||||||
if (HitTest.hItem == hSelected)
|
if (TreeView_HitTest(Info->hTreeView, &HitTest))
|
||||||
OpenPropSheet(Info->hTreeView,
|
{
|
||||||
hSelected);
|
if (HitTest.hItem == hSelected)
|
||||||
|
{
|
||||||
|
OpenPropSheet(Info->hTreeView,
|
||||||
|
hSelected);
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Info->Display == DevicesByConnection)
|
||||||
|
{
|
||||||
|
if (hSelected != TreeView_GetRoot(Info->hTreeView))
|
||||||
|
{
|
||||||
|
if (GetCursorPos(&HitTest.pt) &&
|
||||||
|
ScreenToClient(Info->hTreeView, &HitTest.pt))
|
||||||
|
{
|
||||||
|
if (TreeView_HitTest(Info->hTreeView, &HitTest))
|
||||||
|
{
|
||||||
|
if (HitTest.hItem == hSelected)
|
||||||
|
{
|
||||||
|
OpenPropSheet(Info->hTreeView,
|
||||||
|
hSelected);
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -403,6 +498,38 @@ OnNotify(PMAIN_WND_INFO Info,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
OnRefresh(PMAIN_WND_INFO Info)
|
||||||
|
{
|
||||||
|
HANDLE DevEnumThread;
|
||||||
|
|
||||||
|
SendMessage(Info->hTool,
|
||||||
|
TB_SETSTATE,
|
||||||
|
IDC_PROP,
|
||||||
|
(LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
|
||||||
|
|
||||||
|
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
|
||||||
|
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
|
||||||
|
|
||||||
|
/* create seperate thread to emum devices */
|
||||||
|
DevEnumThread = CreateThread(NULL,
|
||||||
|
0,
|
||||||
|
DeviceEnumThread,
|
||||||
|
Info,
|
||||||
|
0,
|
||||||
|
NULL);
|
||||||
|
if (!DevEnumThread)
|
||||||
|
{
|
||||||
|
DisplayString(_T("Failed to enumerate devices"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle(DevEnumThread);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -425,30 +552,7 @@ MainWndCommand(PMAIN_WND_INFO Info,
|
||||||
|
|
||||||
case IDC_REFRESH:
|
case IDC_REFRESH:
|
||||||
{
|
{
|
||||||
HANDLE DevEnumThread;
|
OnRefresh(Info);
|
||||||
|
|
||||||
SendMessage(Info->hTool,
|
|
||||||
TB_SETSTATE,
|
|
||||||
IDC_PROP,
|
|
||||||
(LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
|
|
||||||
|
|
||||||
EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
|
|
||||||
EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
|
|
||||||
|
|
||||||
/* create seperate thread to emum devices */
|
|
||||||
DevEnumThread = CreateThread(NULL,
|
|
||||||
0,
|
|
||||||
DeviceEnumThread,
|
|
||||||
&Info->hTreeView,
|
|
||||||
0,
|
|
||||||
NULL);
|
|
||||||
if (!DevEnumThread)
|
|
||||||
{
|
|
||||||
DisplayString(_T("Failed to enumerate devices"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle(DevEnumThread);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -479,6 +583,21 @@ MainWndCommand(PMAIN_WND_INFO Info,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IDC_DEVBYTYPE:
|
||||||
|
{
|
||||||
|
Info->Display = DevicesByType;
|
||||||
|
UpdateViewMenu(Info);
|
||||||
|
OnRefresh(Info);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_DEVBYCONN:
|
||||||
|
{
|
||||||
|
Info->Display = DevicesByConnection;
|
||||||
|
UpdateViewMenu(Info);
|
||||||
|
OnRefresh(Info);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -570,7 +689,7 @@ MainWndProc(HWND hwnd,
|
||||||
|
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
{
|
{
|
||||||
OnNotify(Info, lParam);
|
Ret = OnNotify(Info, lParam);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -674,6 +793,7 @@ CreateMainWindow(LPCTSTR lpCaption,
|
||||||
if (Info != NULL)
|
if (Info != NULL)
|
||||||
{
|
{
|
||||||
Info->nCmdShow = nCmdShow;
|
Info->nCmdShow = nCmdShow;
|
||||||
|
Info->Display = DevicesByType;
|
||||||
|
|
||||||
hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE,
|
hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE,
|
||||||
szMainWndClass,
|
szMainWndClass,
|
||||||
|
|
|
@ -18,6 +18,14 @@
|
||||||
|
|
||||||
#define MAX_DEV_LEN 256
|
#define MAX_DEV_LEN 256
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DevicesByType,
|
||||||
|
DevicesByConnection,
|
||||||
|
RessourcesByType,
|
||||||
|
RessourcesByConnection
|
||||||
|
} DISPLAY_TYPE;
|
||||||
|
|
||||||
typedef struct _MAIN_WND_INFO
|
typedef struct _MAIN_WND_INFO
|
||||||
{
|
{
|
||||||
HWND hMainWnd;
|
HWND hMainWnd;
|
||||||
|
@ -28,6 +36,8 @@ typedef struct _MAIN_WND_INFO
|
||||||
HMENU hShortcutMenu;
|
HMENU hShortcutMenu;
|
||||||
int nCmdShow;
|
int nCmdShow;
|
||||||
|
|
||||||
|
DISPLAY_TYPE Display;
|
||||||
|
|
||||||
/* status flags */
|
/* status flags */
|
||||||
UINT InMenuLoop : 1;
|
UINT InMenuLoop : 1;
|
||||||
|
|
||||||
|
@ -59,6 +69,7 @@ VOID FreeDeviceStrings(HWND hTreeView);
|
||||||
VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem);
|
VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem);
|
||||||
HTREEITEM InitTreeView(HWND hTreeView);
|
HTREEITEM InitTreeView(HWND hTreeView);
|
||||||
VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot);
|
VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot);
|
||||||
|
VOID ListDevicesByConnection(HWND hTreeView, HTREEITEM hRoot);
|
||||||
|
|
||||||
|
|
||||||
/* misc.c */
|
/* misc.c */
|
||||||
|
|
|
@ -20,6 +20,9 @@
|
||||||
#define IDR_MAINMENU 102
|
#define IDR_MAINMENU 102
|
||||||
#define IDR_POPUP 103
|
#define IDR_POPUP 103
|
||||||
#define IDC_DEVBYTYPE 104
|
#define IDC_DEVBYTYPE 104
|
||||||
|
#define IDC_DEVBYCONN 105
|
||||||
|
#define IDC_RESBYTYPE 106
|
||||||
|
#define IDC_RESBYCONN 107
|
||||||
|
|
||||||
/* tooltips */
|
/* tooltips */
|
||||||
#define IDS_TOOLTIP_PROP 6000
|
#define IDS_TOOLTIP_PROP 6000
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue