Update of /cvsroot/com0com/com0com/setup
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv26810
Modified Files:
setup.cpp
Log Message:
Added C0C_PREF_PORT_NAME_A and C0C_PREF_PORT_NAME_B defines
Added deleting Class subkeys
Index: setup.cpp
===================================================================
RCS file: /cvsroot/com0com/com0com/setup/setup.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** setup.cpp 28 Jul 2006 12:16:42 -0000 1.1
--- setup.cpp 25 Aug 2006 10:36:48 -0000 1.2
***************
*** 20,23 ****
--- 20,27 ----
*
* $Log$
+ * Revision 1.2 2006/08/25 10:36:48 vfrolov
+ * Added C0C_PREF_PORT_NAME_A and C0C_PREF_PORT_NAME_B defines
+ * Added deleting Class subkeys
+ *
* Revision 1.1 2006/07/28 12:16:42 vfrolov
* Initial revision
***************
*** 33,39 ****
#include "utils.h"
- #define C0C_INF_NAME "com0com.inf"
#define C0C_BUS_DEVICE_ID "root\\com0com"
#define C0C_PORT_DEVICE_ID "com0com\\port"
#define C0C_CLASS_GUID "{df799e12-3c56-421b-b298-b6d3642bc878}"
#define C0C_CLASS "CNCPorts"
--- 37,46 ----
#include "utils.h"
#define C0C_BUS_DEVICE_ID "root\\com0com"
#define C0C_PORT_DEVICE_ID "com0com\\port"
+ #define C0C_PREF_PORT_NAME_A "CNCA"
+ #define C0C_PREF_PORT_NAME_B "CNCB"
+
+ #define C0C_INF_NAME "com0com.inf"
#define C0C_CLASS_GUID "{df799e12-3c56-421b-b298-b6d3642bc878}"
#define C0C_CLASS "CNCPorts"
***************
*** 55,59 ****
char phPortName[20];
! SNPRINTF(phPortName, sizeof(phPortName), "CNC%c%d", j ? 'B' : 'A', i);
PortParameters portParameters(C0C_SERVICE, phPortName);
--- 62,66 ----
char phPortName[20];
! SNPRINTF(phPortName, sizeof(phPortName), "%s%d", j ? C0C_PREF_PORT_NAME_B : C0C_PREF_PORT_NAME_A, i);
PortParameters portParameters(C0C_SERVICE, phPortName);
***************
*** 135,139 ****
pParameters = j ? pParametersB : pParametersA;
! SNPRINTF(phPortName, sizeof(phPortName), "CNC%c%d", j ? 'B' : 'A', i);
PortParameters portParameters(C0C_SERVICE, phPortName);
--- 142,146 ----
pParameters = j ? pParametersB : pParametersA;
! SNPRINTF(phPortName, sizeof(phPortName), "%s%d", j ? C0C_PREF_PORT_NAME_B : C0C_PREF_PORT_NAME_A, i);
PortParameters portParameters(C0C_SERVICE, phPortName);
***************
*** 290,293 ****
--- 297,334 ----
err = RegDeleteKey(hKey, infFile.ClassGUID());
+ if (err != ERROR_SUCCESS) {
+ HKEY hClassGuidKey;
+ err = RegOpenKeyEx(hKey, infFile.ClassGUID(), 0, KEY_READ, &hClassGuidKey);
+
+ if (err == ERROR_SUCCESS) {
+ for (;;) {
+ char subKey[MAX_PATH+1];
+ DWORD subKeySize = sizeof(subKey)/sizeof(subKey[0]);
+
+ err = RegEnumKeyEx(hClassGuidKey, 0, subKey, &subKeySize, NULL, NULL, NULL, NULL);
+
+ if (err != ERROR_SUCCESS)
+ break;
+
+ err = RegDeleteKey(hClassGuidKey, subKey);
+
+ if (err == ERROR_SUCCESS)
+ Trace("Deleted Class subkey %s\\%s\n", infFile.ClassGUID(), subKey);
+ else
+ if (err != ERROR_FILE_NOT_FOUND) {
+ ShowError(MB_OK|MB_ICONWARNING, err, "RegDeleteKey(%s\\%s)", infFile.ClassGUID(), subKey);
+ break;
+ }
+ }
+
+ err = RegCloseKey(hClassGuidKey);
+
+ if (err != ERROR_SUCCESS)
+ ShowError(MB_OK|MB_ICONWARNING, err, "RegCloseKey()");
+ }
+
+ err = RegDeleteKey(hKey, infFile.ClassGUID());
+ }
+
if (err == ERROR_SUCCESS) {
Trace("Deleted Class %s\n", infFile.ClassGUID());
***************
*** 360,364 ****
, pProgName);
Trace(
! " %s change CNCA0 EmuBR=yes,EmuOverrun=yes\n"
, pProgName);
--- 401,405 ----
, pProgName);
Trace(
! " %s change " C0C_PREF_PORT_NAME_A "0 EmuBR=yes,EmuOverrun=yes\n"
, pProgName);
|