All pastes #924274 Raw Edit

Stuff

public cpp v1 · immutable
·published 2008-03-01 05:16 UTC
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;}