VC通信程序源代码.TCP/UDP高级编程,TCP,IP终端程序源代码等.

源代码在线查看: regkey.cpp

软件大小: 1993 K
上传用户: cy_jing
关键词: TCP UDP 源代码 IP
下载地址: 免注册下载 普通下载 VIP

相关代码

				// RegKey.cpp : implementation file
				//
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			1998. EarthWalk Designs Software, by Jay Wheeler.					//
				//			All inquiries and/or comments to Jay@EarthWalkDesigns.com			//
				//			Latest version can be downloaded from:								//
				//																				//
				//				http://www.earthwalkdesigns.com									//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Designed using Microsoft VisualC++ 4.2 and MFC						//
				//			Tested on WindowsNT 4.0 Workstation and Server						//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			This software is released into the public domain as is and			//
				//			without warranty.													//
				//																				//
				//			Use it in good health, and please let me know if it was useful.		//
				//			If you make improvements or fixed problems, please drop me an		//
				//			e-mail describing your changes.  I will try to incorporate			//
				//			them into this package so that others may benefit from your			//
				//			improvements.														//
				//																				//
				//			Enjoy!																//
				//																				// 
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			RegKey Class - Derived from CWnd, base class						//
				//																				//
				//		Provides the following class methods for WindowsNT 4.0 systems			//
				//		utilizing the WindowsNT Winsock 2 interface to the Internet.			//
				//																				//
				//		GetRegistryValue														//
				//			If passed an integer value, Get the specified integer value.		//
				//			if passed a DWORD value, get the specified DWORD value.				//
				//			if passed a xxx_SZ value, get the specified string value.			//
				//																				//
				//			Get the specified value from the system registry.  Specify			//
				//			the Registry table, key and entry for the value.					//
				//			A value of TRUE is returned if the value is found, else FALSE.		//
				//																				//
				//		SetRegistryValue														//
				//			if passed an integer value, set the specified DWORD_SZ				//
				//			if passed a DWORD value, set the specified DWORD_SZ					//
				//			if passed a CString value, set the specified xxx_SZ value			//
				//																				//
				//			Set the specified value in the system registry.  If the entry		//
				//			does not exist, it is created.  Specify	the Registry table, key		//
				//			and entry for the value.  A value of TRUE is returned if the		//
				//			entry is created, else FALSE.										//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//		Useage:																	//
				//			To use this class, copy the files RegKey.cpp and RegKey.h to		//
				//			the same directory as your project.	Include RegKey.cpp in your		//
				//			project.															//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				
				#include "stdafx.h"
				#include "RegKey.h"
				
				#ifdef _DEBUG
				#define new DEBUG_NEW
				#undef THIS_FILE
				static char THIS_FILE[] = __FILE__;
				#endif
				
				/////////////////////////////////////////////////////////////////////////////
				// RegKey
				
				RegKey::RegKey()
				{
				}
				
				RegKey::~RegKey()
				{
				}
				
				
				BEGIN_MESSAGE_MAP(RegKey, CWnd)
					//{{AFX_MSG_MAP(RegKey)
						// NOTE - the ClassWizard will add and remove mapping macros here.
					//}}AFX_MSG_MAP
				END_MESSAGE_MAP()
				
				
				/////////////////////////////////////////////////////////////////////////////
				// RegKey message handlers
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Get the specified value from the system registry.  Specify			//
				//			the Registry table, key and entry for the value.					//
				//			A value of TRUE is returned if the value is found, else FALSE.		//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::GetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, LPINT RegValue, LPDWORD RegType)
				{
					HKEY hKey;
					
					if(RegOpenKeyEx(RootKey,
								    (LPCSTR)RegKey,
									0,
									KEY_ALL_ACCESS,
									&hKey) != ERROR_SUCCESS)
						return FALSE;
				
					unsigned long	BufferSize=80L;
					char			ValueBuffer[80];
					CString			regname=RegEntry;
					DWORD			dwType = NULL;
					
					if(RegQueryValueEx(hKey,
									   regname,
									   NULL,
									   (LPDWORD)dwType,
									   (LPBYTE)ValueBuffer,
									   &BufferSize) == ERROR_SUCCESS)
					{
						DWORD		FetchVal;
				
						FetchVal = *((long *)ValueBuffer);
						*RegValue = (int)FetchVal;
						*RegType = dwType;
						RegCloseKey (hKey);
				
						return TRUE;
					}
				
					RegCloseKey (hKey);
					
					return FALSE;
				
				}
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Set the specified value in the system registry.  If the entry		//
				//			does not exist, it is created.  Specify	the Registry table, key		//
				//			and entry for the value.  A value of TRUE is returned if the		//
				//			entry is created, else FALSE.										//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::SetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, int RegValue, DWORD RegType)
				{
					HKEY			hKey;
					DWORD			result;
					
					if(RegCreateKeyEx (RootKey,
									   (LPCSTR)RegKey,
									   0,
									   NULL,
									   REG_OPTION_NON_VOLATILE,
									   KEY_ALL_ACCESS,
									   NULL,
									   &hKey,
									   &result) != ERROR_SUCCESS)
							return FALSE;
				
					DWORD		regval = (long)RegValue;
					CString		regname = RegEntry;
				
					if (RegSetValueEx (hKey,
									   RegEntry,
									   0,
									   RegType,
									   (unsigned char *)®val,
									   sizeof(DWORD)) != ERROR_SUCCESS)
					{
						RegCloseKey (hKey);
						return FALSE;
					}
				
					RegCloseKey (hKey);
				
					return TRUE;
				
				}
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Get the specified value from the system registry.  Specify			//
				//			the Registry table, key and entry for the value.					//
				//			A value of TRUE is returned if the value is found, else FALSE.		//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::GetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, LPDWORD RegValue, LPDWORD RegType)
				{
					HKEY hKey;
					
					if(RegOpenKeyEx(RootKey,
								    (LPCSTR)RegKey,
									0,
									KEY_ALL_ACCESS,
									&hKey) != ERROR_SUCCESS)
						return FALSE;
				
					unsigned long	BufferSize=80L;
					char			ValueBuffer[80];
					CString			regname=RegEntry;
					DWORD			dwType = NULL;
					
					if(RegQueryValueEx(hKey,
									   regname,
									   NULL,
									   (LPDWORD)dwType,
									   (LPBYTE)ValueBuffer,
									   &BufferSize) == ERROR_SUCCESS)
					{
						*RegValue = *((DWORD *)ValueBuffer);
						*RegType = dwType;
						RegCloseKey (hKey);
				
						return TRUE;
					}
				
					RegCloseKey (hKey);
					
					return FALSE;
				
				}
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Set the specified value in the system registry.  If the entry		//
				//			does not exist, it is created.  Specify	the Registry table, key		//
				//			and entry for the value.  A value of TRUE is returned if the		//
				//			entry is created, else FALSE.										//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::SetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, DWORD RegValue, DWORD RegType)
				{
					HKEY			hKey;
					DWORD			result;
					
					if(RegCreateKeyEx (RootKey,
									   (LPCSTR)RegKey,
									   0,
									   NULL,
									   REG_OPTION_NON_VOLATILE,
									   KEY_ALL_ACCESS,
									   NULL,
									   &hKey,
									   &result) != ERROR_SUCCESS)
							return FALSE;
				
					CString		regname = RegEntry;
				
					if (RegSetValueEx (hKey,
									   RegEntry,
									   0,
									   RegType,
									   (unsigned char *)&RegValue,
									   sizeof(DWORD)) != ERROR_SUCCESS)
					{
						RegCloseKey (hKey);
						return FALSE;
					}
				
					RegCloseKey (hKey);
				
					return TRUE;
				
				}
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Get the specified string value from the system registry.  Specify	//
				//			the Registry table, key and entry for the string.					//
				//			A value of TRUE is returned if the string is found, else FALSE.		//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::GetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, CString *RegValue, LPDWORD RegType)
				{
					HKEY				hKey;
					
					if (RegOpenKeyEx (RootKey,
									  (LPCSTR)RegKey,
									  0,
									  KEY_ALL_ACCESS,
									  &hKey) != ERROR_SUCCESS)
						return FALSE;
				
					unsigned long		BufferSize = 80L;
					char				ValueBuffer[80];
					CString				regname = RegEntry;
					DWORD				dwType = NULL;
				
					if (RegQueryValueEx (hKey,
										 regname,
										 NULL,
										 (LPDWORD)dwType,
										 (LPBYTE)ValueBuffer,
										 &BufferSize) == ERROR_SUCCESS)
					{
						*RegValue = ValueBuffer;
						*RegType = dwType;
				
						RegCloseKey (hKey);
						
						return TRUE;
					}
				
					RegCloseKey (hKey);
					return FALSE;
				
				}
				
				//////////////////////////////////////////////////////////////////////////////////
				//																				//
				//			Set the specified string value in the system registry.  If the		//
				//			entry does not exist, it is created.  Specify the Registry table,	//
				//			key and entry for the value.  A value of TRUE is returned if the	//
				//			entry is created, else FALSE.										//
				//																				//
				//////////////////////////////////////////////////////////////////////////////////
				BOOL RegKey::SetRegistryValue(HKEY RootKey, CString RegKey, CString RegEntry, CString RegValue, DWORD RegType)
				{
					HKEY				hKey;
					DWORD				result;
					
					if (RegCreateKeyEx (RootKey,
									    (LPCSTR)RegKey,
									    0,
									    NULL,
									    REG_OPTION_NON_VOLATILE,
									    KEY_ALL_ACCESS,
									    NULL,
									    &hKey,
									    &result) != ERROR_SUCCESS)
							return FALSE;
				
					char				ValueBuffer[80];
					
					strcpy (ValueBuffer, (LPCSTR)RegValue);
				
					CString				regname = RegEntry;
				
					if (RegSetValueEx (hKey,
								       regname,
									   0,
									   RegType,
									   (unsigned char*)ValueBuffer,
									   strlen(ValueBuffer) + 1) != ERROR_SUCCESS)
					{
						RegCloseKey (hKey);
						return FALSE;
					}
				
					RegCloseKey (hKey);
				
					return TRUE;
				
				}
							

相关资源