Ignore:
Timestamp:
May 19, 2001, 1:13:05 PM (24 years ago)
Author:
sandervl
Message:

added systemfunctionxx stubs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/advapi32/service.cpp

    r2343 r5748  
    1 /* $Id: service.cpp,v 1.5 2000-01-06 20:05:00 sandervl Exp $ */
     1/* $Id: service.cpp,v 1.6 2001-05-19 11:13:05 sandervl Exp $ */
    22
    33/*
     
    6262//This key exists if DeleteService has been called for a specific service
    6363#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"
    6466
    6567//Win32 service can call StartServiceCtrlDispatcherA/W only once
     
    589591  DWORD deletepending, keytype = REG_DWORD, size = sizeof(DWORD);
    590592  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] = "";
    594594
    595595        HKEY keyServices;
     
    598598                return FALSE;
    599599        }
    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
    605604        RegCloseKey((HKEY)hSCObject);
    606         RegDeleteKeyA(keyServices, szClassName);
     605        RegDeleteKeyA(keyServices, szKeyName);
     606        RegCloseKey((HKEY)keyServices);
    607607  }
    608608
     
    715715        return 0;
    716716  }
     717  RegSetValueExA(keyThisService, REG_SERVICE_NAME, 0, REG_SZ, (LPBYTE)lpServiceName, strlen(lpServiceName)+1);
    717718  RegSetValueExA(keyThisService, REG_SERVICE_TYPE, 0, REG_DWORD, (LPBYTE)&dwServiceType, sizeof(DWORD));
    718719  RegSetValueExA(keyThisService, REG_SERVICE_STARTTYPE, 0, REG_DWORD, (LPBYTE)&dwStartType, sizeof(DWORD));
     
    11831184           lpResumeHandle));
    11841185
     1186  SetLastError (ERROR_ACCESS_DENIED);
    11851187  return (FALSE); /* signal failure */
    11861188}
     
    12261228           lpResumeHandle));
    12271229
     1230  SetLastError (ERROR_ACCESS_DENIED);
    12281231  return (FALSE); /* signal failure */
    12291232}
Note: See TracChangeset for help on using the changeset viewer.