亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? import.c

?? wince 用的注冊表編輯器源代碼。可以看和編輯wince 注冊表
?? C
字號:
#define	STRICT
#include	<windows.h>
#include	<windowsx.h>
#include	<string.h>
#include	<tchar.h>
#include	<commdlg.h>
#include	"resource.h"
#include	"tools.h"
#include	"import.h"
#include	"convert.h"
#include	"fileopen.h"

extern	HWND		hMainWnd ;
extern	HINSTANCE	hInst ;

static	TCHAR	UnicodeBuf[ 2048 ] ;
static	BYTE	SjisBuf[ 2048 ] ;
static	OPENFILENAME	ofn ;
static	TCHAR	buf1[ MAX_PATH + 1 ] ;
static	TCHAR	Filename[ MAX_PATH ] ;

const	TCHAR	HexStr[] = TEXT("0123456789ABCDEFabcdef") ;

BOOL
ImportDlg( HWND hWnd, LPTSTR buf )
{
	memset( &ofn, 0, sizeof ofn ) ;
	memcpy( buf1, TEXT("*.reg\0"), sizeof TEXT("*.reg\0") ) ;
	ofn.lStructSize = sizeof ofn ;
    ofn.hwndOwner = hWnd ;
    ofn.hInstance = hInst ;
    ofn.lpstrFilter = TEXT("Registry Files (*.reg)\0*.reg\0All Files (*.*)\0*.*\0\0") ;
    ofn.lpstrCustomFilter = NULL ;
    ofn.nMaxCustFilter = 0 ;
    ofn.nFilterIndex = 1 ;
    ofn.lpstrFile = buf1 ;
    ofn.nMaxFile = MAX_PATH + 1 ;
    ofn.lpstrFileTitle = NULL ;
    ofn.nMaxFileTitle = 0 ;
    ofn.lpstrInitialDir = NULL ;
    ofn.lpstrTitle = NULL ;
    ofn.Flags = 0 ;
    ofn.nFileOffset = 0 ;
    ofn.nFileExtension = 0 ;
    ofn.lpstrDefExt = TEXT("REG") ;
    ofn.lCustData = 0 ;
    ofn.lpfnHook = NULL ;
    ofn.lpTemplateName = NULL ;
	if ( !GetOpenFileName( &ofn ) ) {
		return FALSE ;
	}
	_tcscpy( buf, buf1 ) ;
	return TRUE ;
}

static	BOOL
ExportDlg( HWND hWnd, LPTSTR buf )
{
	memset( &ofn, 0, sizeof ofn ) ;
	memcpy( buf1, TEXT("*.reg\0"), sizeof TEXT("*.reg\0") ) ;
	ofn.lStructSize = sizeof ofn ;
    ofn.hwndOwner = hWnd ;
    ofn.hInstance = hInst ;
    ofn.lpstrFilter = TEXT("Registry Files (*.reg)\0*.reg\0All Files (*.*)\0*.*\0\0") ;
    ofn.lpstrCustomFilter = NULL ;
    ofn.nMaxCustFilter = 0 ;
    ofn.nFilterIndex = 1 ;
    ofn.lpstrFile = buf1 ;
    ofn.nMaxFile = MAX_PATH + 1 ;
    ofn.lpstrFileTitle = NULL ;
    ofn.nMaxFileTitle = 0 ;
    ofn.lpstrInitialDir = NULL ;
    ofn.lpstrTitle = NULL ;
    ofn.Flags = 0 ;
    ofn.nFileOffset = 0 ;
    ofn.nFileExtension = 0 ;
    ofn.lpstrDefExt = TEXT("REG") ;
    ofn.lCustData = 0 ;
    ofn.lpfnHook = NULL ;
    ofn.lpTemplateName = NULL ;
	if ( !GetSaveFileName( &ofn ) ) {
		return FALSE ;
	}
	_tcscpy( buf, buf1 ) ;
	return TRUE ;
}

DWORD
hex2num( LPCTSTR str )
{
	TCHAR	c ;
	DWORD	result = 0 ;

	while ( c = *str++ ) {
		if ( !_tcschr( HexStr, c ) ) {
			break ;
		}
		result *= 16 ;
		if ( c >= TEXT('a') && c <= TEXT('f') ) {
			result += c - 'a' + 10 ;
		} else if ( c >= TEXT('A') && c <= TEXT('F') ) {
			result += c - 'A' + 10 ;
		} else {
			result += c - '0' ;
		}
	}
	return result ;
}

BOOL
parse_str( LPTSTR dst, LPDWORD pSize, LPCTSTR *pSrc, TCHAR last )
{
	DWORD	size = 0 ;
	TCHAR	c, buf[ 3 ] ;
	LPCTSTR	src = *pSrc ;
	BOOL	f_quote = FALSE ;

	while ( c = *src++ ) {
		if ( f_quote ) {
			if ( c == TEXT('\\') ) {
				c = *src++ ;
				if ( !c ) {
					return FALSE ;
				} else if ( c == TEXT('x') ) {
					buf[0] = *src++ ;
					buf[1] = *src++ ;
					buf[2] = 0 ;
					if ( _tcslen( buf ) != 2 ) {
						return FALSE ;
					}
					c = (TCHAR) hex2num( buf ) ;
				}
			} else if ( c == TEXT('"') ) {
				f_quote = FALSE ;
				continue ;
			}
		} else {
			if ( c == TEXT('"') ) {
				f_quote = TRUE ;
				continue ;
			} else if ( c == last ) {
				break ;
			}
		}
		*dst++ = c ;
		size ++ ;
	}
	if ( c != last ) {
		return FALSE ;
	}
	*dst = 0 ;
	size ++ ;
	*pSrc = src ;
	if ( pSize ) {
		*pSize = size * sizeof (TCHAR) ;
	}
	return TRUE ;
}

BOOL
parse_hex( LPBYTE dst, LPDWORD pSize, LPCTSTR src )
{
	DWORD	size = 0 ;
	TCHAR	c, buf[ 3 ] ;

	while ( c = *src++ ) {
		buf[0] = c ;
		buf[1] = *src++ ;
		buf[2] = 0 ;
		if ( !buf[1] ) {
			return FALSE ;
		}
		*dst++ = (BYTE) hex2num( buf ) ;
		size ++ ;
		c = *src++ ;
		if ( c != TEXT(',') ) {
			break ;
		}
	}
	if ( c ) {
		return FALSE ;
	}
	if ( pSize ) {
		*pSize = size ;
	}
	return TRUE ;
}

BOOL
parse_reg( LPCTSTR line )
{
	LPCTSTR	ptr ;
	DWORD	size ;
	TCHAR	buf[ 20 ] ;

	/* 儗僕僗僩儕柤傪庢摼偡傞 */
	if ( !parse_str( ValueName, NULL, &line, TEXT('=') ) ) {
		return FALSE ;
	}
	if ( !_tcsnicmp( line, TEXT("DWORD:"), 6 ) ) {
		ValueType = REG_DWORD ;
		*(LPDWORD)ValueData = hex2num( &line[ 6 ] ) ;
		ValueSize = sizeof (DWORD) ;
		return TRUE ;
	} else if ( !_tcsnicmp( line, TEXT("HEX("), 4 ) ) {
		ptr = _tcschr( line, TEXT(')') ) ;
		if ( !ptr ) {
			return FALSE ;
		}
		size = (DWORD) (ptr - line) ;
		if ( (size + 1) * sizeof (TCHAR) > sizeof buf ) {
			return FALSE ;
		}
		memcpy( buf, &line[ 4 ], size * sizeof (TCHAR) ) ;
		buf[ size ] = 0 ;
		ValueType = _ttol( buf ) ;
		line = ptr + 1 ;
		if ( *line++ != TEXT(':') ) {
			return FALSE ;
		}
		return parse_hex( ValueData, &ValueSize, line ) ;
	} else {
		ValueType = REG_SZ ;
		return parse_str( (LPTSTR) ValueData, &ValueSize, &line, 0 ) ;
	}
}

BOOL
import_reg( LPCTSTR fn )
{
	LONG	lret ;
	DWORD	disposition ;
	LPTSTR	subkey, ptr ;
	HKEY	hKeyRoot, hKey = 0 ;

	if ( !Fopen( fn, TEXT("r") ) ) {
		return FALSE ;
	}
	while ( Fgets( SjisBuf, sizeof SjisBuf ) ) {
		SjisToUnicode( SjisBuf, UnicodeBuf, sizeof UnicodeBuf ) ;
		ptr = _tcsrchr( UnicodeBuf, TEXT('\n') ) ;
		if ( ptr ) {
			*ptr = 0 ;
		}
		if ( !*UnicodeBuf ) {
			continue ;
		} else if ( *UnicodeBuf == '[' ) {
			if ( hKey ) {
				RegCloseKey( hKey ) ;
				hKey = 0 ;
			}
			subkey = _tcschr( UnicodeBuf, TEXT('\\') ) ;
			if ( !subkey ) {
				continue ;
			}
			*subkey++ = 0 ;
			ptr = _tcsrchr( subkey, TEXT(']') ) ;
			if ( !ptr ) {
				continue ;
			}
			*ptr = 0 ;
			if ( !_tcsicmp( &UnicodeBuf[1], TEXT("HKEY_LOCAL_MACHINE") ) ) {
				hKeyRoot = HKEY_LOCAL_MACHINE ;
			} else if ( !_tcsicmp( &UnicodeBuf[1], TEXT("HKEY_CURRENT_USER") ) ) {
				hKeyRoot = HKEY_CURRENT_USER ;
			} else if ( !_tcsicmp( &UnicodeBuf[1], TEXT("HKEY_USERS") ) ) {
				hKeyRoot = HKEY_USERS ;
			} else if ( !_tcsicmp( &UnicodeBuf[1], TEXT("HKEY_CLASSES_ROOT") ) ) {
				hKeyRoot = HKEY_CLASSES_ROOT ;
			} else {
				continue ;
			}
			/* Key傪嶌惉偡傞 */
			lret = RegCreateKeyEx( hKeyRoot, subkey, 0, TEXT(""), 0,
#ifdef	_WIN32_WCE
									0,
#else	/* _WIN32_WCE */
									KEY_ALL_ACCESS,
#endif	/* _WIN32_WCE */
									NULL, &hKey, &disposition ) ;
			if ( lret != ERROR_SUCCESS ) {
				DWORD	ret = GetLastError() ;
				MessageBox( hMainWnd, TEXT("can't create the key"), subkey, MB_OK ) ;
				hKey = 0 ;
				continue ;
			}
		} else if ( hKey ) {
			parse_reg( UnicodeBuf ) ;
			lret = RegSetValueEx( hKey, ValueName, 0, ValueType, ValueData, ValueSize ) ;
			if ( lret != ERROR_SUCCESS ) {
				MessageBox( hMainWnd, TEXT("can't write the value"), ValueName, MB_OK ) ;
				continue ;
			}
		}
	}
	if ( hKey ) {
		RegCloseKey( hKey ) ;
	}
	Fclose() ;
	return TRUE ;
}

typedef struct list {
	LPTSTR	subkey ;
	struct list	*next ;
} List, *LPList ;

LPList		Root = 0 ;
HANDLE		hHeap = 0 ;

void
push( LPCTSTR subkey )
{
	LPList	newlist ;

	newlist = HeapAlloc( hHeap, HEAP_ZERO_MEMORY, sizeof (List) ) ;
	if ( !newlist ) {
		return ;
	}
	newlist->subkey = HeapAlloc( hHeap, HEAP_ZERO_MEMORY, (_tcslen( subkey ) + 1) * sizeof (TCHAR) ) ;
	if ( !newlist->subkey ) {
		HeapFree( hHeap, 0, newlist ) ;
		return ;
	}
	_tcscpy( newlist->subkey, subkey ) ;
	newlist->next = Root ;
	Root = newlist ;
}

BOOL
pop( LPTSTR subkey )
{
	LPList	todelete ;

	if ( !Root ) {
		return FALSE ;
	}
	todelete = Root ;
	Root = Root->next ;
	_tcscpy( subkey, todelete->subkey ) ;
	HeapFree( hHeap, 0, todelete->subkey ) ;
	HeapFree( hHeap, 0, todelete ) ;
	return TRUE ;
}

void
Fputs_quoted( LPCTSTR str )
{
	TCHAR	c ;
	LPTSTR	dst = UnicodeBuf ;

	*dst++ = TEXT('"') ;
	while ( c = *str++ ) {
		if ( c == TEXT('"') || c == TEXT('\\') ) {
			*dst++ = TEXT('\\') ;
		} else if ( c < TEXT(' ') ) {
			wsprintf( dst, TEXT("\\x%02X"), c ) ;
			dst += 4 ;
			continue ;
		}
		*dst++ = c ;
	}
	*dst++ = TEXT('"') ;
	*dst = 0 ;
	UnicodeToSjis( UnicodeBuf, SjisBuf, sizeof SjisBuf ) ;
	Fputs( SjisBuf ) ;
}

BOOL
export_reg_sub( HKEY root, LPCTSTR rootkey )
{
	HKEY	hKey ;
	LONG	lret ;
	LPCTSTR	rootname ;
	TCHAR	subkey[ MAX_PATH ] ;
	DWORD	index, cchName, cbData, i ;

	if ( root == HKEY_LOCAL_MACHINE ) {
		rootname = TEXT("HKEY_LOCAL_MACHINE") ;
	} else if ( root == HKEY_CURRENT_USER ) {
		rootname = TEXT("HKEY_CURRENT_USER") ;
	} else if ( root == HKEY_USERS ) {
		rootname = TEXT("HKEY_USERS") ;
	} else if ( root == HKEY_CLASSES_ROOT ) {
		rootname = TEXT("HKEY_CLASSES_ROOT") ;
	} else {
		return FALSE ;
	}
	push( rootkey ) ;
	while ( pop( subkey ) ) {
		wsprintf( UnicodeBuf, TEXT("\n[%s\\%s]\n"), rootname, subkey ) ;
		UnicodeToSjis( UnicodeBuf, SjisBuf, sizeof SjisBuf ) ;
		Fputs( SjisBuf ) ;

		lret = RegOpenKeyEx( root, subkey, 0,
#ifdef	_WIN32_WCE
							0,
#else	/* _WIN32_WCE */
							KEY_ALL_ACCESS,
#endif	/* _WIN32_WCE */
							&hKey ) ;
		if ( lret != ERROR_SUCCESS ) {
			continue ;
		}
		index = 0 ;
		while ( 1 ) {
			cchName = sizeof ValueName / sizeof (TCHAR) ;
			cbData = sizeof ValueData ;
			lret = RegEnumValue( hKey, index ++,
								 ValueName, &cchName,
								 NULL, &ValueType,
								 ValueData, &cbData ) ;
			if ( lret != ERROR_SUCCESS ) {
				break ;
			}
			Fputs_quoted( ValueName ) ;
			Fputc( '=' ) ;
			if ( ValueType == REG_DWORD ) {
				Fputs( "dword:" ) ;
				wsprintf( UnicodeBuf, TEXT("%08X"), *(LPDWORD)ValueData ) ;
				UnicodeToSjis( UnicodeBuf, SjisBuf, sizeof SjisBuf ) ;
				Fputs( SjisBuf ) ;
			} else if ( ValueType == REG_SZ ) {
				Fputs_quoted( (LPCTSTR)ValueData ) ;
			} else {
				wsprintf( UnicodeBuf, TEXT("hex(%d):"), ValueType ) ;
				UnicodeToSjis( UnicodeBuf, SjisBuf, sizeof SjisBuf ) ;
				Fputs( SjisBuf ) ;
				for ( i = 0 ; i < cbData ; i ++ ) {
					if ( i ) {
						Fputc( ',' ) ;
					}
					wsprintf( UnicodeBuf, TEXT("%02x"), ValueData[i] ) ;
					UnicodeToSjis( UnicodeBuf, SjisBuf, sizeof SjisBuf ) ;
					Fputs( SjisBuf ) ;
				}
			}
			Fputc( '\n' ) ;
		}
		index = 0 ;
		while ( 1 ) {
			cchName = sizeof KeyName / sizeof (TCHAR) ;
			lret = RegEnumKeyEx( hKey, index ++,
								 KeyName, &cchName,
								 NULL, NULL, NULL, NULL ) ;
			if ( lret != ERROR_SUCCESS ) {
				break ;
			} else if ( !*KeyName ) {
				continue ;
			}
			_tcscpy( UnicodeBuf, subkey ) ;
			if ( *UnicodeBuf ) {
				_tcscat( UnicodeBuf, TEXT("\\") ) ;
			}
			_tcscat( UnicodeBuf, KeyName ) ;
			push( UnicodeBuf ) ;
		}
		RegCloseKey( hKey ) ;
	}
	Fputc( '\n' ) ;
	return TRUE ;
}

BOOL
export_reg( HKEY root, LPCTSTR subkey )
{
	BOOL	ret = FALSE ;

	if ( !ExportDlg( hMainWnd, Filename ) ) {
		return FALSE ;
	}
	if ( Fexist( Filename ) ) {
		if ( MessageBox( hMainWnd, TEXT("Replace existing file?"), TEXT("File Already Exists"), MB_OKCANCEL ) != IDOK ) {
			return FALSE ;
		}
	}
	hHeap = HeapCreate( 0, 1024, 0 ) ;
	if ( hHeap == NULL ) {
		return FALSE ;
	}
	if ( !Fopen( Filename, TEXT("w") ) ) {
		goto exit ;
	}
	ret = export_reg_sub( root, subkey ) ;
	Fclose() ;

exit:
	HeapDestroy( hHeap ) ;
	hHeap = 0 ;
	return ret ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线视频一区| 日韩视频一区二区| 国产精品影视在线| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品久久久久久久久免费樱桃 | 一区二区视频在线看| 久久看人人爽人人| 精品国产区一区| 欧美人与禽zozo性伦| 欧美日韩免费高清一区色橹橹 | 亚洲精品免费在线| 国产精品久久久久影院老司 | av不卡免费电影| 国产91精品在线观看| 国产精品自拍一区| 国产在线精品一区二区不卡了| 国产一区欧美二区| 国产一区二区h| 99久久99久久精品国产片果冻| 成人激情免费网站| 色一情一乱一乱一91av| 在线一区二区三区四区五区| 欧美日韩国产高清一区二区| 欧美一激情一区二区三区| 精品国产一区二区精华| 国产亚洲福利社区一区| 视频一区在线视频| 精品中文字幕一区二区 | 久久久国际精品| 国产精品久久久一区麻豆最新章节| 亚洲美女偷拍久久| 日本成人超碰在线观看| 国产福利91精品| 色哟哟一区二区| 67194成人在线观看| 国产日韩亚洲欧美综合| 亚洲欧洲精品一区二区精品久久久| 亚洲美女淫视频| 国产自产高清不卡| 欧美三片在线视频观看 | 美腿丝袜在线亚洲一区| 成人免费视频视频在线观看免费| 色婷婷精品大视频在线蜜桃视频| 777亚洲妇女| 亚洲欧洲成人精品av97| 蜜臂av日日欢夜夜爽一区| 色婷婷狠狠综合| 亚洲精品一线二线三线无人区| 洋洋av久久久久久久一区| 国产一区二区三区四区五区入口| 91成人免费在线| 欧美mv和日韩mv的网站| 亚洲va欧美va人人爽午夜| 懂色av中文字幕一区二区三区| 欧美精选午夜久久久乱码6080| 久久噜噜亚洲综合| 蜜桃视频第一区免费观看| 色综合天天在线| 国产精品热久久久久夜色精品三区| 秋霞影院一区二区| 欧美色区777第一页| 日本一区二区三区在线观看| 日本va欧美va欧美va精品| 欧美在线色视频| 国产精品久久99| 国产成人综合在线播放| 亚洲成人免费看| av激情成人网| 国产精品蜜臀在线观看| 国产一区在线看| 精品日韩一区二区| 美腿丝袜在线亚洲一区| 欧美日韩免费在线视频| 亚洲电影你懂得| 欧美曰成人黄网| 一区二区三区在线视频免费| 99视频超级精品| 中文一区二区在线观看| 成人av网站免费| 欧美极品美女视频| 国产成人av资源| 国产精品你懂的| av在线一区二区| 亚洲欧美日韩国产成人精品影院| www.av精品| 亚洲综合自拍偷拍| 欧洲精品一区二区三区在线观看| 夜夜嗨av一区二区三区中文字幕 | 精品一区二区国语对白| 精品久久国产97色综合| 国内精品伊人久久久久av影院| 亚洲日本中文字幕区| 在线观看一区不卡| 午夜激情综合网| 日韩美一区二区三区| 国产aⅴ综合色| 国产精品久久久久久久裸模| 欧美性色欧美a在线播放| 香蕉加勒比综合久久| 日韩午夜激情视频| 国产成人aaa| 一区二区三区精品视频| 欧美日韩高清一区二区不卡| 美国av一区二区| 久久九九全国免费| 91丝袜美腿高跟国产极品老师 | 国产精品第一页第二页第三页| 日本伦理一区二区| 毛片一区二区三区| 国产精品成人免费精品自在线观看| 94-欧美-setu| 日韩国产高清影视| 欧美极品另类videosde| 欧美猛男男办公室激情| 国产成人免费视频| 亚洲电影你懂得| 中文字幕欧美日韩一区| 欧美日韩国产在线观看| 国产在线观看免费一区| 一区二区三区加勒比av| 精品国产免费一区二区三区四区 | 午夜视频在线观看一区二区| 国产日韩精品一区二区三区| 欧美日韩精品免费| 成人黄色网址在线观看| 奇米四色…亚洲| 亚洲精品美腿丝袜| 亚洲精品在线免费播放| 欧美日韩国产高清一区二区| eeuss鲁片一区二区三区| 蜜桃视频一区二区三区在线观看| 亚洲欧美另类久久久精品| 日韩午夜中文字幕| 欧美日韩高清在线播放| 91在线观看污| 国产91丝袜在线播放九色| 日韩福利视频导航| 一区二区三区不卡视频| 国产精品视频你懂的| 久久亚洲二区三区| 日韩美一区二区三区| 制服丝袜亚洲色图| 在线观看精品一区| 色偷偷成人一区二区三区91| hitomi一区二区三区精品| 国产99久久久国产精品免费看| 青青草成人在线观看| 日韩av在线发布| 三级欧美韩日大片在线看| 亚洲国产人成综合网站| 亚洲乱码一区二区三区在线观看| 中文字幕高清不卡| 国产午夜精品理论片a级大结局| 日韩免费观看高清完整版在线观看| 欧美午夜精品免费| 欧美日韩亚洲不卡| 欧美一区二区三区系列电影| 91麻豆精品国产自产在线| 欧美欧美午夜aⅴ在线观看| 欧美高清性hdvideosex| 欧美精品三级日韩久久| 91精品国产综合久久福利 | 六月丁香婷婷久久| 美女视频第一区二区三区免费观看网站| 一区二区国产视频| 亚洲伊人伊色伊影伊综合网| 午夜在线电影亚洲一区| 三级久久三级久久| 国产尤物一区二区在线| 国产aⅴ综合色| 色婷婷av一区二区三区软件| 欧美午夜电影在线播放| 777奇米成人网| 日韩免费观看高清完整版| 国产午夜精品一区二区三区视频| 国产精品私房写真福利视频| 亚洲免费av高清| 日韩精品久久久久久| 国产一区91精品张津瑜| 97精品视频在线观看自产线路二| 欧美少妇xxx| 欧美一区二区大片| 国产欧美va欧美不卡在线| 综合分类小说区另类春色亚洲小说欧美 | 6080午夜不卡| 精品国产成人在线影院| 中文字幕在线不卡一区| 三级影片在线观看欧美日韩一区二区| 奇米四色…亚洲| 成人av先锋影音| 欧美一级xxx| 最新久久zyz资源站| 日韩一区精品视频| 国产99久久久久| 欧美区在线观看| 中文字幕国产精品一区二区| 日韩高清不卡一区二区三区| 99久久精品国产毛片| 欧美色倩网站大全免费| 久久久久高清精品|