rendered paste body/*int _tmain(int argc, _TCHAR* argv[]){ if(argc < 1) return 1; bool res; HKEY Services, myService; PWSTR thefeed; BYTE *result = (BYTE*)malloc(50); BYTE *resulta = (BYTE*)malloc(50); wchar_t resd[50]; memset(&resd, 0, sizeof(resd)); DWORD buffer; MessageBoxW(NULL, L"Testing", L"Test", MB_OK); if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Services", 0, 0, &Services) != ERROR_SUCCESS) return 1; if(RegOpenKeyEx(Services, argv[1], 0, 0, &myService) != ERROR_SUCCESS) return 1; RegQueryValueEx(myService, L"Prefix", NULL, NULL, result, &buffer); wcsncpy(resd, (wchar_t*)result, 20); wcscpy(thefeed, resd); RegQueryValueEx(myService, L"Index", NULL, NULL, resulta, &buffer); *resulta = *resulta | 0x30; wcscat(thefeed, (wchar_t*)resulta); wcscat(thefeed, L":"); HANDLE hnd = GetServiceHandle(thefeed, 0, 0); if(hnd == INVALID_HANDLE_VALUE) ActivateService(argv[1], 0); else res = DeregisterService(hnd); if(res == true) return 0; return 1;}*/#define INITIALBUFFER 2048#define INCREMENTS 1024int _tmain(int argc, _TCHAR* argv[]){ if(argc < 1) return 1; bool res; HKEY Services, myService; LPBYTE prefix = (LPBYTE) malloc(INITIALBUFFER); LPBYTE index = (LPBYTE) malloc(INITIALBUFFER); LPWSTR Device, devBuf; DWORD buffer, dwRet, cbData, devlen; buffer = INITIALBUFFER; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Services", 0, 0, &Services) != ERROR_SUCCESS) return 1; if(RegOpenKeyEx(Services, argv[1], 0, 0, &myService) != ERROR_SUCCESS) return 1; dwRet = RegQueryValueEx(myService, L"Prefix", NULL, NULL, prefix, &cbData); while(dwRet == ERROR_MORE_DATA) { buffer += INCREMENTS; prefix = (LPBYTE) realloc(prefix, buffer); cbData = buffer; dwRet = RegQueryValueEx(myService, L"Prefix", NULL, NULL, prefix, &cbData); } buffer = INITIALBUFFER; //wcsncpy(resd, (wchar_t*)result, 20); //wcscpy(thefeed, resd); dwRet = RegQueryValueEx(myService, L"Index", NULL, NULL, index, &buffer); while(dwRet == ERROR_MORE_DATA) { buffer += INCREMENTS; index = (LPBYTE) realloc(index, buffer); cbData = buffer; dwRet = RegQueryValueEx(myService, L"Prefix", NULL, NULL, index, &cbData); } devlen = wcslen((LPWSTR)prefix); devBuf = (LPWSTR) malloc(sizeof(*index)); _stprintf(devBuf, L"%d", *index); devlen += wcslen(devBuf); free(index); Device = (LPWSTR) malloc(devlen*2); wcsncpy(Device, (LPWSTR)prefix, 10); wcsncat(Device, devBuf, 3); wcscat(Device, L":"); HANDLE hnd = GetServiceHandle(Device, 0, 0); if(hnd == INVALID_HANDLE_VALUE) ActivateService(argv[1], 0); else res = DeregisterService(hnd); free(Device); free(devBuf); free(prefix); free(index); if(res == true) return 0; return 1;}