Changeset 5748 for trunk/src/advapi32/service.cpp
- Timestamp:
- May 19, 2001, 1:13:05 PM (24 years ago)
- File:
-
- 1 edited
-
trunk/src/advapi32/service.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/advapi32/service.cpp
r2343 r5748 1 /* $Id: service.cpp,v 1. 5 2000-01-06 20:05:00sandervl Exp $ */1 /* $Id: service.cpp,v 1.6 2001-05-19 11:13:05 sandervl Exp $ */ 2 2 3 3 /* … … 62 62 //This key exists if DeleteService has been called for a specific service 63 63 #define REG_SERVICE_DELETEPENDING "DeletePending" 64 //TODO: How can you query the name of a key from the key handle???? 65 #define REG_SERVICE_NAME "ServiceName" 64 66 65 67 //Win32 service can call StartServiceCtrlDispatcherA/W only once … … 589 591 DWORD deletepending, keytype = REG_DWORD, size = sizeof(DWORD); 590 592 if(!RegQueryValueExA((HKEY)hSCObject, REG_SERVICE_DELETEPENDING, 0, &keytype, (LPBYTE)&deletepending, &size)) { 591 FILETIME filetime; 592 DWORD bla, classsize; 593 CHAR szClassName[64]; 593 CHAR szKeyName[256] = ""; 594 594 595 595 HKEY keyServices; … … 598 598 return FALSE; 599 599 } 600 601 //NOTE: Assumes for now there are no subkeys 602 //TODO: DOes not work 603 classsize = sizeof(szClassName); 604 RegQueryValueA((HKEY)hSCObject, NULL, szClassName, (LPLONG)&classsize); 600 keytype = REG_SZ; 601 size = sizeof(szKeyName); 602 RegQueryValueExA(hSCObject, REG_SERVICE_NAME, 0, &keytype, (LPBYTE)szKeyName, &size); 603 605 604 RegCloseKey((HKEY)hSCObject); 606 RegDeleteKeyA(keyServices, szClassName); 605 RegDeleteKeyA(keyServices, szKeyName); 606 RegCloseKey((HKEY)keyServices); 607 607 } 608 608 … … 715 715 return 0; 716 716 } 717 RegSetValueExA(keyThisService, REG_SERVICE_NAME, 0, REG_SZ, (LPBYTE)lpServiceName, strlen(lpServiceName)+1); 717 718 RegSetValueExA(keyThisService, REG_SERVICE_TYPE, 0, REG_DWORD, (LPBYTE)&dwServiceType, sizeof(DWORD)); 718 719 RegSetValueExA(keyThisService, REG_SERVICE_STARTTYPE, 0, REG_DWORD, (LPBYTE)&dwStartType, sizeof(DWORD)); … … 1183 1184 lpResumeHandle)); 1184 1185 1186 SetLastError (ERROR_ACCESS_DENIED); 1185 1187 return (FALSE); /* signal failure */ 1186 1188 } … … 1226 1228 lpResumeHandle)); 1227 1229 1230 SetLastError (ERROR_ACCESS_DENIED); 1228 1231 return (FALSE); /* signal failure */ 1229 1232 }
Note:
See TracChangeset
for help on using the changeset viewer.
