www.pudn.com > SMS.rar > RegisterTable.h


#pragma once 
#include "..\..\global.h" 
 
// 搜索类型 
typedef enum _ENUM_SEARCH_TYPE 
{ 
	ENUM_SEARCH_TYPE_WHOLE_MATCH,		// 完全匹配 
	ENUM_SEARCH_TYPE_INCLUDE,			// 包含 
	ENUM_SEARCH_TYPE_AT_HEAD,			// 出现在前面 
	ENUM_SEARCH_TYPE_AT_TAIL,			// 出现在后面 
	ENUM_SEARCH_TYPE_NOT_MATCH,			// 不匹配 
	ENUM_SEARCH_TYPE_NUM, 
} ENUM_SEARCH_TYPE; 
#define MAX_KEY_LENGTH 1024 
 
DLL_INTERNAL BOOL WriteRegister(HKEY mainKey, LPCTSTR lpszSubKey, LPCTSTR KeyName, DWORD dwType, LPVOID resBuf, DWORD *bufSize); 
DLL_INTERNAL BOOL CreateRegisterSubKey ( HKEY mainKey, CString csSubKey, HKEY *pHkey=NULL ); 
DLL_INTERNAL BOOL DeleteValueRegister(HKEY mainKey, LPCTSTR lpszSubKey, LPCTSTR lpValueName ); 
DLL_INTERNAL BOOL DeleteKeyRegister ( HKEY mainKey, LPCTSTR lpszSubKey, LPCTSTR lpSubKeyToDel ); 
DLL_INTERNAL long ReadRegister(HKEY mainKey, LPCTSTR lpszSubKey, LPCTSTR KeyName, LPVOID resBuf, DWORD *bufSize); 
DLL_INTERNAL BOOL AddAutoRunProgram ( LPTSTR lpszDesc, LPCTSTR lpszArguments=NULL, LPCTSTR lpszProgramPath=NULL ); 
DLL_INTERNAL BOOL DeleteAutoRunProgram ( LPTSTR lpszDesc=NULL ); 
DLL_INTERNAL BOOL RegSearch ( 
		IN LPCTSTR lpszSearchText, 
		IN ENUM_SEARCH_TYPE eSearchType, 
		IN HKEY mainKey, 
		IN LPCTSTR lpszSubKey, 
		IN BOOL bSearchKeyNameValue, 
		OUT CStringArray &StrAry_SubKey, 
		OUT CStringArray &StrAry_KeyName, 
		OUT CStringArray &StrAry_KeyValue, 
		HWND hWndRecvMsg 
	); 
DLL_INTERNAL BOOL RegDeleteAllSubKey ( 
		HKEY mainKey,			// 如: HKEY_CLASSES_ROOT; HKEY_CURRENT_CONFIG; HKEY_CURRENT_USER; 等等 
		LPCTSTR lpszSubKey		// 如: "SOFTWARE\\MySoft\\" 
	); 
DLL_INTERNAL BOOL RegFileType ( 
		CString csExtensionName,	// 扩展名,如:"txt" 
		CString &csFileTypeDesc,	// 文件类型,如:"txtfile" 
		CString csIconParameter,	// 图标参数,如:"%SystemRoot%\system32\shell32.dll,-152" 
		CString csOpenCommand,		// 打开这个文件默认的程序和参数,如:"%SystemRoot%\system32\NOTEPAD.EXE %1" 
		BOOL bDeleteIfExist			// 存在时是否删除重新注册 
	); 
DLL_INTERNAL BOOL AddFileTypeMenu ( 
		CString csFileTypeDesc,		// 文件类型,如:"txtfile" 
		CString csMenuName,			// 菜单名,如:"Open with notepad" 
		CString csCommandPara,		// 点该菜单时所用的的程序和参数,如:"%SystemRoot%\system32\NOTEPAD.EXE %1" 
		BOOL bDeleteIfExist			// 存在时是否删除重新注册 
	); 
DLL_INTERNAL BOOL DeleteFileTypeMenu ( 
		CString csExtensionName,	// 扩展名,如:"txt" 
		CString csMenuName			// 菜单名,如:"Open with notepad" 
	); 
DLL_INTERNAL CString PartKeyBySubKey ( LPCTSTR lpszSubKey, CString *pcsSubKeyLeft=NULL );