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

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

?? filedlg.cpp

?? 一個由VC實現的加密解密代碼
?? CPP
字號:

/*
	Copyright 2006 - 2008
	ZhangLuduo <zhangluduo@msn.com>
	All Rights Reserved.
							
	打開, 保存, 目錄瀏覽對話框之調用

	作者	- 張魯奪(zhangluduo)
	MSN		- zhangluduo@msn.com
	QQ群	- 34064264

	為所有愛我的人和我愛的人努力!
*/

#include "stdafx.h"
#include "FileDlg.h"
#include <memory.h> // for memset

FileDlg::FileDlg()
{
	/** 判斷操作系統, 
		并根據操作系統填充結構體大小
	*/

	memset(&m_OFNOpen, 0, sizeof(OPENFILENAMEEX));
	memset(&m_OFNSave, 0, sizeof(OPENFILENAMEEX));
	memset(&m_BIFBrowse, 0, sizeof(BROWSEINFO));

	OSVERSIONINFOEX osvi;
	osvi.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);
	if(!GetVersionEx((OSVERSIONINFO *)&osvi))
		return ;
	switch(osvi.dwPlatformId)
	{
	case VER_PLATFORM_WIN32_WINDOWS:
		if(	(osvi.dwMajorVersion==4 && osvi.dwMinorVersion ==10) || //win 98
			(osvi.dwMajorVersion==4 && osvi.dwMinorVersion ==90) || //win Me
			(osvi.dwMajorVersion==3 && osvi.dwMinorVersion ==51) || //win NT 3.51
			(osvi.dwMajorVersion==4 && osvi.dwMinorVersion ==0))	//win NT 4.0
		{
			m_OFNOpen.lStructSize = sizeof(OPENFILENAME);
			m_OFNSave.lStructSize = sizeof(OPENFILENAME);
		}
		break;
	case VER_PLATFORM_WIN32_NT:
		if(	(osvi.dwMajorVersion==5 && osvi.dwMinorVersion ==0) ||	//win 2000
			(osvi.dwMajorVersion==5 && osvi.dwMinorVersion ==1) ||	//win xp
			(osvi.dwMajorVersion==5 && osvi.dwMinorVersion ==2))	//win 2003
		{
			m_OFNOpen.lStructSize = sizeof(OPENFILENAMEEX);
			m_OFNSave.lStructSize = sizeof(OPENFILENAMEEX);
		}
		break;
	default:
		return ;
	}

	// 初始目錄

	char szAppName[256]	= {0};
	GetModuleFileName(NULL, szAppName, 255);
	string strAppName	= szAppName;
	m_InitOpenDir = m_InitSaveDir = strAppName.substr(0,strAppName.find_last_of("\\")+1);
}

FileDlg::~FileDlg()
{

}

UINT_PTR FileDlg::OpenProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if(uMsg == WM_INITDIALOG)
	{
		RECT rtWnd, rcSys;
		::GetWindowRect(GetParent(hWnd), &rtWnd);
		SystemParametersInfo(SPI_GETWORKAREA, 0, &rcSys, 0);
		::MoveWindow(GetParent(hWnd),
					(rcSys.right	- (rtWnd.right	- rtWnd.left))	/ 2,
					(rcSys.bottom	- (rtWnd.bottom	- rtWnd.top))	/ 2,
					rtWnd.right		- rtWnd.left,
					rtWnd.bottom	- rtWnd.top,
					true);
	}
	return 0;
}

UINT_PTR FileDlg::SaveProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if(uMsg == WM_INITDIALOG)
	{
		RECT rtWnd, rcSys;
		::GetWindowRect(GetParent(hWnd), &rtWnd);
		SystemParametersInfo(SPI_GETWORKAREA, 0, &rcSys, 0);
		::MoveWindow(GetParent(hWnd),
					(rcSys.right	- (rtWnd.right	- rtWnd.left))	/ 2,
					(rcSys.bottom	- (rtWnd.bottom	- rtWnd.top))	/ 2,
					rtWnd.right		- rtWnd.left,
					rtWnd.bottom	- rtWnd.top,
					true);
	}
	return 0;
}

int FileDlg::BrowseProc(HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
	if(uMsg == WM_INITDIALOG)
	{
		RECT rtWnd, rcSys;
		::GetWindowRect(GetParent(hWnd), &rtWnd);
		SystemParametersInfo(SPI_GETWORKAREA, 0, &rcSys, 0);
		::MoveWindow(GetParent(hWnd),
					(rcSys.right	- (rtWnd.right	- rtWnd.left))	/ 2,
					(rcSys.bottom	- (rtWnd.bottom	- rtWnd.top))	/ 2,
					rtWnd.right		- rtWnd.left,
					rtWnd.bottom	- rtWnd.top,
					true);
	}

	// 初始化目錄
	if(uMsg == BFFM_INITIALIZED && !m_InitBrowseDir.empty())
		::SendMessage(hWnd, BFFM_SETSELECTION, 1, (WPARAM)m_InitBrowseDir.c_str());

	// 確定按鈕是否禁用
	if(uMsg == BFFM_SELCHANGED )
	{
		char buf[MAX_PATH] = {0};
		if(SHGetPathFromIDList((LPCITEMIDLIST)lParam, buf) && buf != 0)
		{
			::SendMessage(hWnd, BFFM_ENABLEOK, 0, 1);
			::SendMessage(hWnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)buf);
		}
		else
			::SendMessage(hWnd, BFFM_ENABLEOK, 0, 0);
	}
	return 0;
}

vector<string> FileDlg::GetOpenFileName(HWND hWnd, bool bMulti, char* szFilter, char* szInitName)
{
	vector<string> Files;

	m_OpenNameBuf				= new char[_FILEDLG_BUFSIZE + 1];
	if(m_OpenNameBuf == 0)
		AfxMessageBox("sdf");
	memset(m_OpenNameBuf, 0, _FILEDLG_BUFSIZE + 1);
	
	if(szInitName != "\0")
		strcpy(m_OpenNameBuf, szInitName);

	m_OFNOpen.lpstrFile			= m_OpenNameBuf;
	m_OFNOpen.nMaxFile			= _FILEDLG_BUFSIZE;


	m_OFNOpen.Flags				|= OFN_EXPLORER | OFN_ENABLEHOOK | OFN_FILEMUSTEXIST | OFN_ENABLESIZING;
	m_OFNOpen.hwndOwner			= hWnd;
	m_OFNOpen.lpstrInitialDir	= m_InitOpenDir.c_str();
	m_OFNOpen.lpfnHook			= (LPOFNHOOKPROC)m_ThunkOpen.Thiscall(this, Thunk::GetMemberFxnAddr(&FileDlg::OpenProc));

	if(szFilter == NULL)
		m_OFNOpen.lpstrFilter	= "所有文件 (*.*)\0*.*\0\0";
	else
		m_OFNOpen.lpstrFilter	= szFilter;		

	if(bMulti)
		m_OFNOpen.Flags			|= OFN_ALLOWMULTISELECT;	

	string strTmp				= "";
	char* ptr					= m_OFNOpen.lpstrFile;
	int nFiles					= 0;

	if(!::GetOpenFileName(&m_OFNOpen))
	{
		delete[] m_OpenNameBuf;
		return Files;
	}

	while(*ptr++)
	{
		nFiles++;
		if(nFiles == 1)
		{
			strTmp = ptr - 1;
			if(strTmp[strTmp.size() - 1] != '\\')
			{
				strTmp += "\\";
				m_InitOpenDir = strTmp;
			}
		}
		else if(nFiles >= 2)
		{
			Files.push_back(strTmp+(ptr - 1));
		}
		while(*ptr++);
	}
	if(Files.size() ==0 )
		Files.push_back(m_OFNOpen.lpstrFile);

	// 返回
	delete[] m_OpenNameBuf;
	return Files;
}

string FileDlg::GetSaveFileName(HWND hWnd, bool AutoAddSuffixName, char* szFilter, char* szInitName)
{
	m_OFNSave.Flags				|= OFN_EXPLORER | OFN_ENABLEHOOK | OFN_OVERWRITEPROMPT | OFN_ENABLESIZING;
	m_OFNSave.hwndOwner			= hWnd;
	m_OFNSave.lpfnHook			= (LPOFNHOOKPROC)m_ThunkSave.Thiscall(this, Thunk::GetMemberFxnAddr(&FileDlg::SaveProc));

	m_SaveNameBuf				= new char[_FILEDLG_BUFSIZE + 1];
	memset(m_SaveNameBuf, 0, _FILEDLG_BUFSIZE + 1);

	// 初始化文件名
	if(szInitName != "\0")
		strcpy(m_SaveNameBuf, szInitName);

	m_OFNSave.lpstrFile			= m_SaveNameBuf;
	m_OFNSave.nMaxFile			= _FILEDLG_BUFSIZE;

	// 初始化目錄
	m_OFNSave.lpstrInitialDir	= m_InitSaveDir.c_str();

	if(szFilter == NULL)
		m_OFNSave.lpstrFilter	= "所有文件 (*.*)\0*.*\0\0";
	else
		m_OFNSave.lpstrFilter	= szFilter;	


	// 顯示保存對話框
	if(!::GetSaveFileName(&m_OFNSave))
	{
		delete[] m_SaveNameBuf;

//		CString str;
//		str.Format("Error Code = 0x%X, defined in file \"Cderr.h\"", CommDlgExtendedError());
//		AfxMessageBox(str);
		
		return "";
	}

	// 取文件名框中的輸入
	string strFileName = m_SaveNameBuf; 

	// 保存當前打開的目錄名
	m_InitSaveDir = m_OFNSave.lpstrFile;
	m_InitSaveDir = m_InitSaveDir.substr(0,m_InitSaveDir.find_last_of("\\")+1);

	// 是否為保存的文件名自動添加后綴名
	if(!AutoAddSuffixName)
	{
		delete[] m_SaveNameBuf;
		return strFileName;
	}

	// 判斷用戶填寫的文件名是否有后綴
	bool bSuffix = strFileName.find_last_of(".") == -1 ? false : true;
	if(bSuffix)
	{
		delete[] m_SaveNameBuf;
		return strFileName;
	}

	//將"過濾器"中的串以'\0'分隔成數組存放
	vector<string> FilterArray;
	char* p = (char*)m_OFNSave.lpstrFilter;
	int odd = 0;
	while(*p++)
	{
		odd++;
		if(odd == 2)
		{
			FilterArray.push_back(p - 1);
			odd = 0;
		}
		while(*p++);
	}

	// 如果過濾類型為"*.*",則不進行處理,直接返回
	string strFilter = FilterArray[m_OFNSave.nFilterIndex - 1];
	strFilter.erase(remove_if(strFilter.begin(), strFilter.end(), ptr_fun(::isspace)), strFilter.end());
	if(strFilter == "*.*")
	{
		delete[] m_SaveNameBuf;
		return strFileName;
	}

	// 取過濾器中的后綴名
	string	strSuffixName = strFilter.substr(strFilter.find_last_of(".") + 1);
	if(strSuffixName == "*")
	{
		delete[] m_SaveNameBuf;
		return strFileName;
	}

	if(!bSuffix)
	{
		delete[] m_SaveNameBuf;
		return strFileName + "." + strSuffixName;
	}

	delete[] m_SaveNameBuf;
	return strFileName;
}

string FileDlg::GetBrowseForFolder(HWND hWnd, char* szInitPath)
{
	m_BrowseNameBuf = new char[MAX_PATH + 1];
	memset(m_BrowseNameBuf, 0, MAX_PATH + 1);
	m_BIFBrowse.pszDisplayName	= m_BrowseNameBuf;
	m_BIFBrowse.hwndOwner		= hWnd;
	if(szInitPath != "\0")
	m_InitBrowseDir				= szInitPath;
	m_BIFBrowse.lpszTitle		= "請選擇文件夾:";
	m_BIFBrowse.pidlRoot		= NULL;
	m_BIFBrowse.ulFlags			|= BIF_STATUSTEXT;
	m_BIFBrowse.lpfn			= (BFFCALLBACK)m_ThunkBrowse.Thiscall(this, Thunk::GetMemberFxnAddr(&FileDlg::BrowseProc));
	LPCITEMIDLIST lpcitemidlist = SHBrowseForFolder(&m_BIFBrowse);

	if(lpcitemidlist)
	{
		if(SHGetPathFromIDList(lpcitemidlist, m_BrowseNameBuf))
		{
			if((int)m_BrowseNameBuf[strlen(m_BrowseNameBuf) - 1] == (int)'\\')
			{
				string strRetVal = m_BrowseNameBuf;
				delete[] m_BrowseNameBuf;
				return strRetVal;
			}
			else
			{
				string strRetVal = string(m_BrowseNameBuf) + "\\";
				delete[] m_BrowseNameBuf;
				return strRetVal;
			}
		}
	}

	delete[] m_BrowseNameBuf;
	return "";
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清免费观看| 亚洲精品videosex极品| 国产精品自拍三区| 麻豆成人综合网| 日韩激情中文字幕| 日韩国产在线观看一区| 日韩国产欧美三级| 日本欧美一区二区三区乱码| 三级欧美韩日大片在线看| 亚洲电影激情视频网站| 五月婷婷综合在线| 麻豆精品视频在线观看| 国产福利精品一区| 91在线观看视频| 91久久香蕉国产日韩欧美9色| 在线观看欧美黄色| 日韩一二在线观看| 久久精品人人做| ...xxx性欧美| 日韩精品免费专区| 国产激情视频一区二区三区欧美| av一区二区久久| 欧美人成免费网站| 337p日本欧洲亚洲大胆精品 | 亚洲综合色自拍一区| 亚洲亚洲人成综合网络| 蜜桃精品视频在线观看| 大胆亚洲人体视频| 欧美图片一区二区三区| 91精品国产一区二区三区| 国产午夜亚洲精品不卡| 一区二区三区精品| 韩国三级在线一区| 91福利在线免费观看| 日韩一区二区影院| 亚洲免费大片在线观看| 蓝色福利精品导航| 91福利视频在线| 久久亚洲捆绑美女| 亚洲第一av色| 国产99久久久国产精品潘金网站| 欧美午夜寂寞影院| 中文字幕不卡的av| 奇米精品一区二区三区四区| 99久久精品久久久久久清纯| 日韩一区二区在线观看视频播放| 亚洲免费伊人电影| 国产v日产∨综合v精品视频| 91麻豆精品久久久久蜜臀 | 在线免费观看一区| 日韩美女视频在线| 亚洲电影在线免费观看| www.在线欧美| 欧美激情综合在线| 日本网站在线观看一区二区三区 | 亚洲国产成人av网| 成人免费视频视频在线观看免费 | 白白色亚洲国产精品| 日韩欧美中文字幕精品| 日韩精品一级二级| 欧美日韩国产经典色站一区二区三区| 国产喂奶挤奶一区二区三区| 久久不见久久见免费视频7| 欧美性猛交xxxx黑人交| 亚洲欧美电影院| 国产成人福利片| 亚洲国产电影在线观看| 国产精品18久久久久久久网站| 欧美日韩中文另类| 亚洲一区二区免费视频| 色综合色综合色综合色综合色综合 | 精品国产一二三区| 蜜桃视频在线一区| 日韩精品在线看片z| 免费不卡在线观看| 51精品秘密在线观看| 日韩高清在线电影| 欧美疯狂做受xxxx富婆| 午夜精品成人在线视频| 精品视频在线看| 亚洲成人中文在线| 日韩丝袜情趣美女图片| 久久国产麻豆精品| 国产亚洲欧洲一区高清在线观看| 成人一道本在线| 18成人在线视频| 在线观看三级视频欧美| 天天综合天天综合色| 欧美电影免费观看高清完整版| 国模一区二区三区白浆| 中文字幕在线不卡国产视频| 一本一道久久a久久精品综合蜜臀| 亚洲黄色av一区| 这里只有精品视频在线观看| 国产自产视频一区二区三区| 中文字幕精品一区二区精品绿巨人| 99综合电影在线视频| 亚洲图片欧美色图| 26uuu久久天堂性欧美| bt欧美亚洲午夜电影天堂| 亚洲成av人综合在线观看| 日韩欧美一卡二卡| av中文字幕一区| 日韩国产欧美在线播放| 欧美高清一级片在线观看| 欧美午夜宅男影院| 国产精品一二二区| 天堂久久一区二区三区| 国产日韩欧美a| 欧美最猛性xxxxx直播| 国产精品原创巨作av| 亚洲国产综合在线| 国产日韩综合av| 欧美日韩一区不卡| 成人午夜视频网站| 日本亚洲天堂网| 亚洲欧美偷拍另类a∨色屁股| 欧美福利视频导航| 一本色道久久加勒比精品 | 99麻豆久久久国产精品免费优播| 亚洲一区二区三区四区在线观看 | 亚洲欧洲三级电影| 日韩精品中文字幕一区| 91福利社在线观看| 亚洲天堂福利av| 久久天堂av综合合色蜜桃网| 美女一区二区三区| 欧美激情中文字幕一区二区| 日韩成人精品在线观看| 欧美激情综合在线| 精品捆绑美女sm三区| 欧美自拍偷拍一区| 粉嫩欧美一区二区三区高清影视| 日韩精品色哟哟| 亚洲国产精品精华液网站| 国产精品视频麻豆| 国产丝袜美腿一区二区三区| 欧美一区二区在线免费播放| 欧美亚洲国产一区二区三区va| 成人教育av在线| 国产一区二区在线影院| 精品中文字幕一区二区| 午夜国产不卡在线观看视频| 亚洲四区在线观看| 中文字幕在线不卡| 成人免费一区二区三区视频 | 成人看片黄a免费看在线| 久久99精品久久久久久动态图| 日韩精品三区四区| 天天免费综合色| 丝袜美腿成人在线| 日韩精品一级中文字幕精品视频免费观看 | 国产欧美一区二区精品性色超碰| 欧美一激情一区二区三区| 欧美中文字幕一二三区视频| aaa欧美大片| 色成人在线视频| 91成人在线精品| 欧美无砖专区一中文字| 欧美性一区二区| 欧美肥妇free| 日韩精品一区二区三区蜜臀 | 日韩精品一区二区三区视频播放| 欧美一级二级三级蜜桃| 欧美大片在线观看一区二区| 日韩一区二区影院| 国产三级精品在线| 欧美日韩免费一区二区三区 | 精品免费一区二区三区| 一本久久a久久免费精品不卡| 91久久人澡人人添人人爽欧美| 国产91色综合久久免费分享| 国产成a人亚洲| 91免费在线视频观看| 欧美乱妇20p| 国产精品免费视频观看| 亚洲女性喷水在线观看一区| www.66久久| 精久久久久久久久久久| www.日韩在线| 欧美精品在线观看播放| 国产色综合一区| 玉米视频成人免费看| 成人午夜视频福利| 色偷偷一区二区三区| 日韩片之四级片| 18成人在线视频| 开心九九激情九九欧美日韩精美视频电影 | 国产在线一区观看| caoporen国产精品视频| 欧美一区二区视频在线观看| 国产午夜精品一区二区三区嫩草| 亚洲乱码国产乱码精品精98午夜 | 久久久久久久综合色一本| 亚洲欧美怡红院| 精品亚洲欧美一区| 在线一区二区观看| 国产午夜三级一区二区三| 日韩黄色一级片| 91在线观看下载|