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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? afxcore.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
	Cross Platform Core Code.

	Copyright(R) 2001-2002 Balang Software.
	All rights reserved.

	Using:
		some afx-global-functions;
*/

#include	"stdafx.h"

#include	<ctype.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#ifdef	_DEBUG
#define	new	DEBUG_NEW
#endif


CFont * AfxSelectDCFont( CDC * pDC, int nHeight )
{
	static	CFont	font;
	font.DeleteObject();
	font.CreateFont(nHeight, 0, 0, 0, FW_NORMAL, FALSE, FALSE, 0,
		DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH,
		"楷體" );
	return	pDC->SelectObject( &font );
}

//////////////////////////////////////////////////////////////////////////////
// 注冊(cè)表讀寫函數(shù)

BOOL AfxSetRegKey(LPCTSTR lpszKey, LPCTSTR lpszValue, LPCTSTR lpszValueName)
{
	if (lpszValueName == NULL)
	{
		if (::RegSetValue(HKEY_CLASSES_ROOT, lpszKey, REG_SZ,
			  lpszValue, lstrlen(lpszValue) * sizeof(TCHAR)) != ERROR_SUCCESS)
		{
			TRACE1("Warning: registration database update failed for key '%s'.\n",
				lpszKey);
			return FALSE;
		}
		return TRUE;
	}
	else
	{
		HKEY hKey;

		if(::RegCreateKey(HKEY_CLASSES_ROOT, lpszKey, &hKey) == ERROR_SUCCESS)
		{
			LONG lResult = ::RegSetValueEx(hKey, lpszValueName, 0, REG_SZ,
				(CONST BYTE*)lpszValue, (lstrlen(lpszValue) + 1) * sizeof(TCHAR));

			if(::RegCloseKey(hKey) == ERROR_SUCCESS && lResult == ERROR_SUCCESS)
				return TRUE;
		}
		TRACE1("Warning: registration database update failed for key '%s'.\n", lpszKey);
		return FALSE;
	}
}

LONG AfxGetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata)
{
	HKEY hkey;
	LONG retval = RegOpenKeyEx(key, subkey, 0, KEY_QUERY_VALUE, &hkey);

	if (retval == ERROR_SUCCESS) {
		long datasize = MAX_PATH;
		TCHAR data[MAX_PATH];
		RegQueryValue(hkey, NULL, data, &datasize);
		lstrcpy(retdata,data);
		RegCloseKey(hkey);
	}

	return retval;
}

// recursively remove a registry key if and only if it has no subkeys
BOOL AfxDeleteRegKey(LPCTSTR lpszKey)
{
	// copy the string
	LPTSTR lpszKeyCopy = _tcsdup(lpszKey);
	LPTSTR lpszLast = lpszKeyCopy + lstrlen(lpszKeyCopy);

	// work until the end of the string
	while (lpszLast != NULL)
	{
		*lpszLast = '\0';
		lpszLast = _tcsdec(lpszKeyCopy, lpszLast);

		// try to open that key
		HKEY hKey;
		if (::RegOpenKey(HKEY_CLASSES_ROOT, lpszKeyCopy, &hKey) != ERROR_SUCCESS)
			break;

		// enumerate the keys underneath
		TCHAR szScrap[_MAX_PATH+1];
		DWORD dwLen = sizeof(szScrap);
		BOOL bItExists = FALSE;

		if (::RegEnumKey(hKey, 0, szScrap, dwLen) == ERROR_SUCCESS)
			bItExists = TRUE;
		::RegCloseKey(hKey);

		// found one?  quit looping
		if (bItExists)
			break;

		// otherwise, delete and find the previous backwhack
		::RegDeleteKey(HKEY_CLASSES_ROOT, lpszKeyCopy);
		lpszLast = _tcsrchr(lpszKeyCopy, '\\');
	}

	// release the string and return
	free(lpszKeyCopy);
	return TRUE;
}

HKEY AfxGetSectionKey( HKEY hKey, LPCTSTR szRegKeyGroup, LPCTSTR szRegKeyCompany, LPCTSTR szRegKeyApp, LPCTSTR lpszSection )
{
	HKEY hGroupKey = NULL;
	HKEY hCompanyKey = NULL;
	HKEY hAppKey = NULL;
	HKEY hSectionKey = NULL;
	if (RegOpenKeyEx( hKey, szRegKeyGroup, 0, KEY_WRITE|KEY_READ,
		&hGroupKey) == ERROR_SUCCESS)
	{
		DWORD dw;
		if (RegCreateKeyEx(hGroupKey, szRegKeyCompany, 0, REG_NONE,
			REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
			&hCompanyKey, &dw) == ERROR_SUCCESS )
		{
			RegCreateKeyEx(hCompanyKey, szRegKeyApp, 0, REG_NONE,
				REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
				&hAppKey, &dw);
		}
	}
	if (hGroupKey != NULL)
		RegCloseKey(hGroupKey);
	if (hCompanyKey != NULL)
		RegCloseKey(hCompanyKey);

	DWORD dw;
	if( NULL == hAppKey )
		return FALSE;
	RegCreateKeyEx(hAppKey, lpszSection, 0, REG_NONE,
		REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
		&hSectionKey, &dw);
	RegCloseKey(hAppKey);
	
	return hSectionKey;
}

BOOL AfxRegSetValue( LPCTSTR szRegKeyCompany, LPCTSTR szRegKeyApp, LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue )
{
	ASSERT( lpszSection && lpszEntry && lpszValue );
	if( !lpszSection || !lpszEntry || !lpszValue )
		return FALSE;
	
	HKEY hSectionKey = AfxGetSectionKey( HKEY_LOCAL_MACHINE, _T("Software"), szRegKeyCompany, szRegKeyApp, lpszSection );

	if (hSectionKey == NULL)
		return FALSE;
	LONG lResult = RegSetValueEx(hSectionKey, lpszEntry, NULL, REG_SZ,
		(LPBYTE)lpszValue, (lstrlen(lpszValue)+1)*sizeof(TCHAR));
	RegCloseKey(hSectionKey);

	return lResult == ERROR_SUCCESS;
}

CString	AfxRegQueryString(HKEY hKey, LPCTSTR szRegKeyGroup, LPCTSTR szRegKeyCompany, LPCTSTR szRegKeyApp, LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault )
// hKey = HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, or so
{
	HKEY hSecKey = AfxGetSectionKey(hKey, szRegKeyGroup, szRegKeyCompany, szRegKeyApp, lpszSection);
	if (hSecKey == NULL)
		return lpszDefault;
	CString strValue;
	DWORD dwType, dwCount;
	LONG lResult = RegQueryValueEx(hSecKey, (LPTSTR)lpszEntry, NULL, &dwType,
		NULL, &dwCount);
	if (lResult == ERROR_SUCCESS)
	{
		ASSERT(dwType == REG_SZ);
		lResult = RegQueryValueEx(hSecKey, (LPTSTR)lpszEntry, NULL, &dwType,
			(LPBYTE)strValue.GetBuffer(dwCount/sizeof(TCHAR)), &dwCount);
		strValue.ReleaseBuffer();
	}
	RegCloseKey(hSecKey);
	if (lResult == ERROR_SUCCESS)
	{
		ASSERT(dwType == REG_SZ);
		return strValue;
	}
	return lpszDefault;
}

BOOL AfxRegQueryString(HKEY hKey, LPCTSTR szRegKeyGroup, LPCTSTR szRegKeyCompany, LPCTSTR szRegKeyApp,
					   CStringArray &astrName, CStringArray &astrData )
// hKey = HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, or so
{
	HKEY hSecKey = AfxGetSectionKey(hKey, szRegKeyGroup, szRegKeyCompany, szRegKeyApp, "");
	if (hSecKey == NULL)
		return FALSE;
	
	int	nIndex	=	0;
	while( TRUE )
	{
		CString strName, strData;
		CHAR szName[MAX_PATH];
		BYTE szData[MAX_PATH];
		DWORD dwType, dwNameLen=sizeof(szName), dwDataLen=sizeof(szData);
		if( ERROR_SUCCESS != RegEnumValue(hSecKey, nIndex, szName, &dwNameLen,
				NULL, &dwType, szData, &dwDataLen ) )
			break;
		if( dwType == REG_SZ )
		{
			astrName.Add( (LPCTSTR)szName );
			astrData.Add( (LPCTSTR)szData );
		}
		nIndex	++;
	}

	RegCloseKey(hSecKey);
	return astrName.GetSize() > 0;
}

HINSTANCE AfxGotoURL(LPCTSTR url, int showcmd)
{
	TCHAR key[MAX_PATH + MAX_PATH];

	// First try ShellExecute()
	HINSTANCE result = ShellExecute(NULL, _T("open"), url, NULL,NULL, showcmd);

	// If it failed, get the .htm regkey and lookup the program
	if ((UINT)result <= HINSTANCE_ERROR) {

		if (AfxGetRegKey(HKEY_CLASSES_ROOT, _T(".htm"), key) == ERROR_SUCCESS) {
			lstrcat(key, _T("\\shell\\open\\command"));

			if (AfxGetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS) {
				TCHAR *pos;
				pos = _tcsstr(key, _T("\"%1\""));
				if (pos == NULL) {                     // No quotes found
					pos = strstr(key, _T("%1"));       // Check for %1, without quotes 
					if (pos == NULL)                   // No parameter at all...
						pos = key+lstrlen(key)-1;
					else
						*pos = '\0';                   // Remove the parameter
				}
				else
					*pos = '\0';                       // Remove the parameter

				lstrcat(pos, _T(" "));
				lstrcat(pos, url);
				result = (HINSTANCE) WinExec(key,showcmd);
			}
		}
	}

	return result;
}

BOOL AfxRegisterActiveXCtrls( LPCTSTR lpszOcxFileName )
{
	HINSTANCE hLib = LoadLibrary( lpszOcxFileName );
	if (hLib < (HINSTANCE)HINSTANCE_ERROR)
		return FALSE; 
  
	FARPROC   lpfnRegister;
	(FARPROC&)lpfnRegister = ::GetProcAddress( hLib, _T("DllRegisterServer") );
  
	if (lpfnRegister!= NULL)
	{
		(*lpfnRegister)();//Register control
		return TRUE;
	}
	return FALSE;
}

CString AfxGetVersionString( )
{
	static	CString	strVersion;
	if( strVersion.IsEmpty() )
	{
		strVersion	=	(LPCTSTR)AfxGetProfile().GetVersion( );
	}
	return strVersion;
}

CString AfxGetFileTitle( LPCTSTR lpszPathName )
{
	CString	strPathName	=	lpszPathName;
	if( strPathName.IsEmpty() )
		return "";
	UINT nTitleLen = AfxGetFileTitle( strPathName, NULL, 0 );
	if( nTitleLen <= 0 || nTitleLen-1 > (UINT)strPathName.GetLength() )
		return "";

	CString strTitle = strPathName.Right( nTitleLen-1 );
	return strTitle;
}

CString AfxGetFileTitleNoExt( LPCTSTR lpszPathName )
{
	CString	strPathName	=	lpszPathName;
	if( strPathName.IsEmpty() )
		return "";
	UINT nTitleLen = AfxGetFileTitle( strPathName, NULL, 0 );
	if( nTitleLen <= 0 || nTitleLen-1 > (UINT)strPathName.GetLength() )
		return "";

	CString strTitle = strPathName.Right( nTitleLen-1 );
	int nIndex = strTitle.ReverseFind( '.' );
	if( -1 != nIndex )
		strTitle = strTitle.Left( nIndex );
	return strTitle;
}

CString AfxGetFileDirectoryExist( LPCTSTR lpszPathName, LPCTSTR lpszDefault )
{
	CString	strPathName	=	lpszPathName;
	CString	strDefault	=	lpszDefault;
	if( strPathName.IsEmpty() )
		return strDefault;

	CString	strResult	=	strPathName;
	while( !strResult.IsEmpty()
		&& FILE_ATTRIBUTE_DIRECTORY != GetFileAttributes( strResult ) )
	{
		int	nIndex	=	strResult.ReverseFind( '\\' );
		if( -1 == nIndex )
			nIndex	=	strResult.ReverseFind( '/' );
		if( -1 == nIndex )
		{
			strResult = strDefault;
			break;
		}
		strResult	=	strResult.Left( nIndex );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品欧美日韩精品一 | 国产一区二区电影| 中文字幕一区日韩精品欧美| 欧美精品一级二级| 91色婷婷久久久久合中文| 精品在线播放午夜| 午夜天堂影视香蕉久久| **欧美大码日韩| 久久先锋影音av| 91精品国产欧美一区二区成人| 97se亚洲国产综合自在线 | 99综合电影在线视频| 免费在线欧美视频| 丰满少妇久久久久久久| 日韩黄色一级片| 自拍偷拍亚洲综合| 国产欧美一区二区三区网站| 制服丝袜av成人在线看| 在线观看国产一区二区| 成人av网址在线| 精品影院一区二区久久久| 日日夜夜一区二区| 亚洲高清免费一级二级三级| 亚洲国产精品t66y| 国产日产亚洲精品系列| 精品黑人一区二区三区久久| 欧美一区二区视频观看视频| 欧美性生活一区| 日本精品视频一区二区| 91性感美女视频| 成人午夜精品在线| 国产成+人+日韩+欧美+亚洲| 久久99精品久久久| 毛片一区二区三区| 久久se这里有精品| 男人的天堂亚洲一区| 免费在线观看一区二区三区| 亚洲午夜电影在线观看| 午夜影院久久久| 亚洲国产视频a| 婷婷成人综合网| 免费精品视频在线| 久久精品国内一区二区三区| 老司机午夜精品| 国产尤物一区二区| 国产成人啪午夜精品网站男同| 国产黄人亚洲片| 成人性视频网站| av资源网一区| 在线影视一区二区三区| 欧美日韩免费观看一区三区| 欧美日韩夫妻久久| 日韩欧美一二三四区| 久久嫩草精品久久久精品一| 久久女同精品一区二区| 中文字幕亚洲电影| 一区二区免费视频| 亚洲第一在线综合网站| 蜜臀a∨国产成人精品| 国产乱人伦偷精品视频免下载| 国产成人免费视频精品含羞草妖精| 韩国成人在线视频| 成人va在线观看| 欧美性三三影院| 日韩亚洲电影在线| 国产日产欧美精品一区二区三区| 中文字幕欧美一区| 亚洲成在人线在线播放| 精品一区二区三区香蕉蜜桃| 国产a级毛片一区| 色国产精品一区在线观看| 欧美久久高跟鞋激| 久久久九九九九| 亚洲猫色日本管| 麻豆freexxxx性91精品| 成人禁用看黄a在线| 欧美日韩国产一区二区三区地区| 精品国产伦一区二区三区观看体验 | 欧美韩国日本不卡| 亚洲一区视频在线| 国产米奇在线777精品观看| 91在线无精精品入口| 91精品国产综合久久福利| 日本一区二区综合亚洲| 亚洲第一电影网| 国产午夜亚洲精品理论片色戒| 国产精品嫩草99a| 天天av天天翘天天综合网色鬼国产| 国产在线播放一区二区三区| 91久久久免费一区二区| 26uuu久久综合| 一区二区在线电影| 国产麻豆一精品一av一免费 | 久久综合久久综合亚洲| 亚洲男人天堂av| 国产在线播放一区三区四| 欧美色男人天堂| 中文字幕一区二区三中文字幕 | 色综合久久综合网欧美综合网| 日韩精品一区二区三区视频| 一区二区三区鲁丝不卡| 国产福利不卡视频| 欧美一区日本一区韩国一区| 亚洲欧洲综合另类| 国产在线精品不卡| 在线电影欧美成精品| 亚洲精品国产视频| 粗大黑人巨茎大战欧美成人| 日韩欧美中文一区二区| 亚洲电影第三页| 91老师片黄在线观看| 欧美极品xxx| 久久机这里只有精品| 欧美日韩精品欧美日韩精品| 1024成人网| 高清视频一区二区| 2024国产精品视频| 另类欧美日韩国产在线| 欧美吞精做爰啪啪高潮| 亚洲欧洲一区二区在线播放| 国产成人在线视频免费播放| 精品久久五月天| 奇米亚洲午夜久久精品| 欧美日韩一区小说| 亚洲九九爱视频| 97久久超碰国产精品| 自拍视频在线观看一区二区| 国产 日韩 欧美大片| 久久青草欧美一区二区三区| 黄色日韩三级电影| 日韩三级av在线播放| 日韩综合在线视频| 91精品啪在线观看国产60岁| 三级久久三级久久久| 欧美精品一二三| 欧美a一区二区| 日韩一级黄色片| 久久疯狂做爰流白浆xx| www国产精品av| 国产精品一二三四| 国产精品少妇自拍| jlzzjlzz亚洲女人18| ●精品国产综合乱码久久久久| 91玉足脚交白嫩脚丫在线播放| 亚洲精品美国一| 欧美日本一道本| 日本三级韩国三级欧美三级| 日韩美女视频一区二区在线观看| 卡一卡二国产精品| 久久久国产综合精品女国产盗摄| 国产乱子伦视频一区二区三区| 国产女主播视频一区二区| 成人不卡免费av| 依依成人综合视频| 欧美一级精品大片| 国产成人午夜99999| 成人欧美一区二区三区1314 | 国产亚洲成年网址在线观看| 国产电影精品久久禁18| 中文字幕在线一区| 欧美视频中文字幕| 久久精品国产99| 中文字幕一区二区三区乱码在线 | 欧美午夜一区二区三区免费大片| 性做久久久久久久久| 日韩欧美不卡一区| 成人午夜在线播放| 伊人夜夜躁av伊人久久| 欧美狂野另类xxxxoooo| 精品中文av资源站在线观看| 国产精品黄色在线观看| 欧美性感一区二区三区| 国产中文字幕精品| 亚洲综合免费观看高清完整版在线 | 99免费精品视频| 日韩精品亚洲专区| 中文字幕国产一区| 69堂国产成人免费视频| 成人国产精品免费观看| 亚洲成人免费影院| 中文一区二区完整视频在线观看| 欧美无乱码久久久免费午夜一区 | 久久福利视频一区二区| 日韩理论片在线| 在线电影院国产精品| 成人av电影免费观看| 日本aⅴ精品一区二区三区| 国产精品色在线| 欧美一区二区视频观看视频| 91在线视频官网| 国产一区二区三区四区在线观看| 夜夜操天天操亚洲| 国产亚洲精品aa午夜观看| 制服丝袜亚洲色图| 91视频在线观看| 国内成人自拍视频| 日韩精品色哟哟| 亚洲激情综合网| 国产精品久久久久久久久晋中| 日韩欧美激情四射|