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

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

?? common.cpp

?? 骨骼動畫....把魔獸模型解出的代碼..
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "Common.h"


//+-----------------------------------------------------------------------------
//| Global objects
//+-----------------------------------------------------------------------------
COMMON Common;


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
COMMON::COMMON()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
COMMON::~COMMON()
{
	//Empty
}


//+-----------------------------------------------------------------------------
//| Copies a string into the clipboard
//+-----------------------------------------------------------------------------
BOOL COMMON::SetClipboardData(CONST std::string& String)
{
	HGLOBAL GlobalString;
	CHAR* GlobalStringPointer;

	if(!::OpenClipboard(NULL))
	{
		Error.SetMessage("Unable to open the clipboard!");
		return FALSE;
	}

	GlobalString = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, static_cast<INT>(String.size()) + 1);
	if(GlobalString == NULL)
	{
		::CloseClipboard();
		Error.SetMessage("Unable to allocate memory for the clipboard data!");
		return FALSE;
	}

	EmptyClipboard();

	GlobalStringPointer = reinterpret_cast<CHAR*>(::GlobalLock(GlobalString));
	if(GlobalStringPointer == NULL)
	{
		::CloseClipboard();
		Error.SetMessage("Unable to lock the global memory!");
		return FALSE;
	}

	std::memcpy(GlobalStringPointer, String.c_str(), static_cast<INT>(String.size()) + 1);
	::GlobalUnlock(GlobalString);

	::SetClipboardData(CF_TEXT, GlobalString);
	::CloseClipboard();

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Retrieves a string from the clipboard
//+-----------------------------------------------------------------------------
std::string COMMON::GetClipboardData()
{
	INT Size;
	HGLOBAL GlobalString;
	CHAR* GlobalStringPointer;
	std::vector<CHAR> Buffer;

	if(!::OpenClipboard(NULL)) return "";

	GlobalString = ::GetClipboardData(CF_TEXT);
	if(GlobalString == NULL)
	{
		::CloseClipboard();
		return "";
	}

	GlobalStringPointer = reinterpret_cast<CHAR*>(::GlobalLock(GlobalString));
	if(GlobalStringPointer == NULL)
	{
		::CloseClipboard();
		return "";
	}

	Size = static_cast<INT>(std::strlen(GlobalStringPointer));
	Buffer.resize(Size + 1);
	std::memcpy(&Buffer[0], GlobalStringPointer, Size);
	Buffer[Size] = '\0';

	::GlobalUnlock(GlobalString);
	::CloseClipboard();

	return &Buffer[0];
}


//+-----------------------------------------------------------------------------
//| Checks if a point is inside a rect
//+-----------------------------------------------------------------------------
BOOL COMMON::PointInsideRect(CONST POINT& Point, CONST RECT& Rect) CONST
{
	if(Point.x < Rect.left) return FALSE;
	if(Point.y < Rect.top) return FALSE;
	if(Point.x >= Rect.right) return FALSE;
	if(Point.y >= Rect.bottom) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Turns the string into all lowercase characters
//+-----------------------------------------------------------------------------
std::string COMMON::LowerCase(CONST std::string& String) CONST
{
	INT i;
	std::string Result = String;

	for(i = 0; i < static_cast<INT>(Result.size()); i++)
	{
		Result[i] = std::tolower(Result[i]);
	}

	return Result;
}


//+-----------------------------------------------------------------------------
//| Turns the string into all uppercase characters
//+-----------------------------------------------------------------------------
std::string COMMON::UpperCase(CONST std::string& String) CONST
{
	INT i;
	std::string Result = String;

	for(i = 0; i < static_cast<INT>(Result.size()); i++)
	{
		Result[i] = std::toupper(Result[i]);
	}

	return Result;
}


//+-----------------------------------------------------------------------------
//| Returns the path of a filename
//+-----------------------------------------------------------------------------
std::string COMMON::GetPath(CONST std::string& FileName) CONST
{
	INT i;

	i = static_cast<INT>(FileName.rfind("\\"));
	if(i == std::string::npos)
	{
		i = static_cast<INT>(FileName.rfind("/"));
		if(i == std::string::npos)
		{
			return "";
		}
	}

	return FileName.substr(0, i + 1);
}


//+-----------------------------------------------------------------------------
//| Returns the name of a filename
//+-----------------------------------------------------------------------------
std::string COMMON::GetName(CONST std::string& FileName) CONST
{
	INT i;
	INT j;

	i = static_cast<INT>(FileName.rfind("\\"));
	if(i == std::string::npos)
	{
		i = static_cast<INT>(FileName.rfind("/"));
		if(i == std::string::npos)
		{
			i = -1;
		}
	}

	j = static_cast<INT>(FileName.rfind("."));
	if(j == std::string::npos) j = static_cast<INT>(FileName.size());

	return FileName.substr(i + 1, j - i - 1);
}


//+-----------------------------------------------------------------------------
//| Returns the filename of a filename (excluding the path)
//+-----------------------------------------------------------------------------
std::string COMMON::GetFileName(CONST std::string& FileName) CONST
{
	INT i;

	i = static_cast<INT>(FileName.rfind("\\"));
	if(i == std::string::npos)
	{
		i = static_cast<INT>(FileName.rfind("/"));
		if(i == std::string::npos)
		{
			return FileName;
		}
	}

	return FileName.substr(i + 1, FileName.size() - i - 1);
}


//+-----------------------------------------------------------------------------
//| Returns the extention of a filename
//+-----------------------------------------------------------------------------
std::string COMMON::GetExtention(CONST std::string& FileName) CONST
{
	INT i;

	i = static_cast<INT>(FileName.rfind("."));
	if(i == std::string::npos) return "";

	return FileName.substr(i + 1, FileName.size() - i - 1);
}


//+-----------------------------------------------------------------------------
//| Splits a filename into path, name and extention
//+-----------------------------------------------------------------------------
VOID COMMON::SplitFileName(std::string& FullFileName, std::string& Path, std::string& Name, std::string& FileName,std::string& Extention) CONST
{
	INT i;
	INT j;

	i = static_cast<INT>(FullFileName.rfind("\\"));
	if(i == std::string::npos)
	{
		i = static_cast<INT>(FullFileName.rfind("/"));
		if(i == std::string::npos)
		{
			i = -1;
		}
	}

	j = static_cast<INT>(FullFileName.rfind("."));
	if(j == std::string::npos) j = static_cast<INT>(FullFileName.size());

	Path = (i >= 0) ? FullFileName.substr(0, i + 1) : "";
	Name = FullFileName.substr(i + 1, j - i - 1);
	FileName = FullFileName.substr(i + 1, FullFileName.size() - i - 1);
	Extention = (j < static_cast<INT>(FullFileName.size())) ? FullFileName.substr(i + 1, FullFileName.size() - i - 1) : "";
}


//+-----------------------------------------------------------------------------
//| Returns the program filename
//+-----------------------------------------------------------------------------
std::string COMMON::GetProgramFileName() CONST
{
	INT i;
	std::string FileName;
	CHAR Buffer[BUFFER_SIZE];

	::GetModuleFileName(NULL, Buffer, BUFFER_SIZE - 1);
	FileName = Buffer;

	i = static_cast<INT>(FileName.rfind("\\"));
	if(i != std::string::npos)
	{
		FileName = FileName.substr((i + 1), (static_cast<INT>(FileName.size()) - (i + 1)));
	}

	return FileName;
}


//+-----------------------------------------------------------------------------
//| Returns the program directory
//+-----------------------------------------------------------------------------
std::string COMMON::GetProgramDirectory() CONST
{
	INT i;
	std::string Directory;
	CHAR Buffer[BUFFER_SIZE];

	::GetModuleFileName(NULL, Buffer, BUFFER_SIZE - 1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情动漫在线观看| 欧美一卡2卡三卡4卡5免费| 欧美精品精品一区| 中文字幕成人av| 久久精品久久99精品久久| 成人亚洲一区二区一| 日韩欧美一卡二卡| 午夜视频一区二区| 91美女视频网站| 久久久亚洲高清| 蜜臀av一区二区| 欧美性大战久久久| 亚洲欧美日韩久久| 成人精品小蝌蚪| 久久蜜桃av一区二区天堂| 婷婷久久综合九色国产成人| 丁香五精品蜜臀久久久久99网站 | 老司机免费视频一区二区三区| 成人av先锋影音| 久久精品综合网| 久久精品久久99精品久久| 欧美美女激情18p| 一区二区三区精品视频在线| 国产91富婆露脸刺激对白| 欧美不卡激情三级在线观看| 亚洲成av人片一区二区三区 | 东方欧美亚洲色图在线| 26uuu亚洲| 九九精品一区二区| 精品美女一区二区| 精品一区二区在线观看| 日韩欧美黄色影院| 九九视频精品免费| 久久综合av免费| 激情综合网激情| 精品国产91乱码一区二区三区 | 欧美α欧美αv大片| 蜜臀av一区二区在线免费观看| 欧美日韩中字一区| 婷婷夜色潮精品综合在线| 欧美精品tushy高清| 丝袜亚洲另类丝袜在线| 欧美日本视频在线| 狠狠色2019综合网| 精品动漫一区二区三区在线观看| 精品午夜久久福利影院| 国产偷国产偷亚洲高清人白洁| 国产成人综合在线播放| 久久久久久久网| 高清国产一区二区三区| 国产精品久久久久三级| 91黄色在线观看| 婷婷开心激情综合| 久久精品欧美一区二区三区麻豆| 国产不卡高清在线观看视频| 亚洲欧美电影一区二区| 欧洲精品在线观看| 捆绑调教一区二区三区| 久久精品日韩一区二区三区| 91一区二区在线观看| 亚洲va韩国va欧美va| 精品免费视频.| 91香蕉视频mp4| 美国十次综合导航| 中文字幕制服丝袜成人av| 国产成人自拍网| 在线视频欧美精品| 日本中文字幕不卡| 欧美日韩国产片| 一区二区久久久| 日韩欧美国产精品| 亚洲欧洲国产日韩| 8x8x8国产精品| 国产一区欧美二区| 亚洲精品免费在线| 日韩精品一区二区在线| 99精品国产一区二区三区不卡| 亚瑟在线精品视频| 中文字幕精品一区| 欧美老肥妇做.爰bbww视频| 国产原创一区二区三区| 亚洲综合一二区| 久久久午夜精品| 欧美少妇bbb| 国产成人av电影在线| 视频一区二区国产| 亚洲欧洲制服丝袜| 蜜桃一区二区三区在线| 91久久精品国产91性色tv| 亚洲一区二区三区美女| 国产精品色在线观看| 欧美一区午夜精品| 91免费版在线看| 国产成人av电影在线观看| 精品无人码麻豆乱码1区2区 | 欧美久久久久久久久久| 国产91精品一区二区麻豆网站| 天天综合色天天综合| 国产精品动漫网站| www日韩大片| 日韩一区二区免费高清| 色婷婷综合久久久久中文一区二区| 激情久久久久久久久久久久久久久久| 亚洲精品视频自拍| 中文字幕在线观看一区二区| 国产清纯白嫩初高生在线观看91| 欧美精品视频www在线观看| 日本乱人伦一区| 91麻豆蜜桃一区二区三区| 亚洲精品日韩一| 成人av免费在线播放| 男男视频亚洲欧美| 天天色综合成人网| 丝袜美腿成人在线| 亚洲国产另类av| 亚洲一区二区三区四区在线观看 | 日韩免费观看高清完整版在线观看| 欧美日韩中字一区| 欧美日韩国产小视频| 在线视频国内自拍亚洲视频| 91欧美一区二区| 在线看日本不卡| 欧美视频一区二区三区四区| 欧美三片在线视频观看| 色一情一伦一子一伦一区| 91久久线看在观草草青青| 在线中文字幕一区二区| 欧美亚一区二区| 在线不卡a资源高清| 欧美日韩二区三区| 欧美va亚洲va| 亚洲国产经典视频| 亚洲精品乱码久久久久久| 亚洲一区二区三区激情| 香蕉成人啪国产精品视频综合网 | 国产精品黄色在线观看| 国产精品卡一卡二| 夜夜嗨av一区二区三区网页| 亚洲动漫第一页| 国产尤物一区二区| 91色.com| 欧美一区二区三区精品| 久久精品视频一区| 洋洋成人永久网站入口| 美女视频黄频大全不卡视频在线播放| 日本不卡视频一二三区| 国产福利一区二区| 91丨国产丨九色丨pron| 欧美欧美午夜aⅴ在线观看| 精品va天堂亚洲国产| 国产精品伦理一区二区| 亚洲午夜电影网| 国产一区在线精品| 欧美伊人精品成人久久综合97| 欧美电影在哪看比较好| 国产精品久久毛片| 亚洲va国产va欧美va观看| 国产福利91精品一区二区三区| av午夜一区麻豆| 欧美日韩精品一区二区三区四区 | 中文字幕综合网| 裸体一区二区三区| 91免费小视频| 久久综合狠狠综合久久综合88 | 精品一区二区三区免费观看| 99久久99久久免费精品蜜臀| 91精品国产aⅴ一区二区| 亚洲成av人片一区二区梦乃| 狠狠色丁香婷婷综合| 欧美视频三区在线播放| 欧美国产1区2区| 美女一区二区三区在线观看| 91精品福利视频| 日本一区二区免费在线观看视频 | 欧美一区二区人人喊爽| 亚洲日本va在线观看| 国产精品白丝jk黑袜喷水| 欧美精品乱码久久久久久| 国产精品久久久久国产精品日日| 玖玖九九国产精品| 欧美人妖巨大在线| 最新国产の精品合集bt伙计| 国产成人av一区二区| 久久亚洲一级片| 寂寞少妇一区二区三区| 日韩色视频在线观看| 午夜精品久久久久久久| 91久久精品网| 亚洲综合一区二区精品导航| av一区二区不卡| 国产精品色噜噜| 成人精品国产一区二区4080| 久久久久久久久久看片| 国产在线视视频有精品| 精品国产一二三| 精品在线视频一区| 久久亚洲综合色| 国产91综合网| 国产精品久久久久久亚洲伦| 国产91在线观看丝袜|