亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
蜜桃视频在线一区| 91久久精品一区二区| 精品中文字幕一区二区| 五月婷婷久久丁香| 三级久久三级久久| 天堂蜜桃91精品| 丝瓜av网站精品一区二区| 亚洲第一在线综合网站| 亚洲国产精品一区二区尤物区| 亚洲一区二区三区小说| 夜夜精品视频一区二区| 亚洲综合另类小说| 日韩影院在线观看| 激情综合色丁香一区二区| 经典三级在线一区| 成人黄页毛片网站| 91蜜桃婷婷狠狠久久综合9色| 一本到三区不卡视频| 在线观看网站黄不卡| 91精品国产综合久久福利软件| 欧美一区国产二区| 欧美tk丨vk视频| 久久精品免费在线观看| 国产精品美女视频| 亚洲妇女屁股眼交7| 蜜臀久久99精品久久久久久9| 狠狠v欧美v日韩v亚洲ⅴ| 成人性生交大片免费看中文| 97se亚洲国产综合在线| 欧美色综合天天久久综合精品| 欧美精品vⅰdeose4hd| 精品国精品国产| 国产精品超碰97尤物18| 亚洲成人一区二区在线观看| 麻豆精品一区二区综合av| 国产酒店精品激情| 在线免费精品视频| 26uuu欧美日本| 亚洲色图.com| 久久99精品网久久| 色哟哟一区二区| 欧美一区二区福利在线| 国产精品久久免费看| 午夜欧美视频在线观看| 国产成人在线视频播放| 欧美一a一片一级一片| 欧美不卡一二三| 亚洲男人电影天堂| 九九久久精品视频| 91视频xxxx| 精品国产免费人成电影在线观看四季 | 亚洲成在线观看| 国产在线播精品第三| 日本乱人伦aⅴ精品| 久久色视频免费观看| 一片黄亚洲嫩模| 日本午夜一区二区| 99在线精品观看| 精品久久一区二区| 亚洲大片精品永久免费| 国产91对白在线观看九色| 91麻豆精品国产91久久久久久| 国产精品久久久久婷婷| 久久91精品久久久久久秒播| 91片在线免费观看| 国产人妖乱国产精品人妖| 日本欧美肥老太交大片| 在线观看av一区二区| 国产亚洲成av人在线观看导航| 日本一区中文字幕 | 欧美激情一区在线| 午夜成人在线视频| 94-欧美-setu| 国产日韩影视精品| 美女任你摸久久| 欧美精品在线观看一区二区| 中文字幕一区日韩精品欧美| 久久不见久久见免费视频7| 国产综合色产在线精品| 欧美久久一区二区| 玉米视频成人免费看| 99久久精品国产麻豆演员表| 26uuu国产一区二区三区| 亚洲444eee在线观看| 色哟哟一区二区在线观看| 国产日韩精品一区二区三区| 蜜臀精品久久久久久蜜臀| 欧美日韩激情在线| 一区二区三区在线不卡| av欧美精品.com| 国产亚洲一二三区| 国产一区高清在线| 精品人在线二区三区| 蜜臀精品久久久久久蜜臀| 91精品婷婷国产综合久久| 亚洲第一福利一区| 欧美日韩一区三区| 五月天网站亚洲| 欧美视频在线观看一区| 亚洲国产精品天堂| 一区二区三区久久| 99久久免费视频.com| 国产精品久久免费看| www.激情成人| 亚洲人成影院在线观看| 在线视频国产一区| 亚洲高清不卡在线观看| 7777精品久久久大香线蕉| 视频在线观看一区| 日韩视频不卡中文| 精品一区二区三区免费观看 | 日韩专区一卡二卡| 欧美一级午夜免费电影| 久草中文综合在线| 久久理论电影网| 国产不卡一区视频| 中文字幕中文在线不卡住| 91亚洲国产成人精品一区二区三| 亚洲人精品午夜| 欧美日韩综合不卡| 九九九精品视频| 国产精品网站在线播放| 91丨porny丨蝌蚪视频| 亚洲综合视频在线| 91精品久久久久久久99蜜桃| 久久99日本精品| 国产精品三级电影| 在线观看中文字幕不卡| 免费在线观看一区| 国产欧美日韩视频在线观看| 色综合久久久久| 天天射综合影视| 精品国产网站在线观看| 成人三级在线视频| 亚洲高清在线精品| 精品人在线二区三区| 91在线高清观看| 婷婷综合久久一区二区三区| 精品91自产拍在线观看一区| 韩国女主播一区二区三区| 亚洲欧洲99久久| 欧美久久久久免费| 国产精品一区二区男女羞羞无遮挡| 国产精品成人免费| 91精品国产色综合久久不卡电影| 高清在线不卡av| 午夜欧美一区二区三区在线播放| 久久久亚洲国产美女国产盗摄| 色综合久久综合中文综合网| 美女精品一区二区| 亚洲日本护士毛茸茸| 日韩欧美在线123| 波多野结衣亚洲| 日本在线不卡视频| 亚洲精选视频免费看| 欧美xxx久久| 欧美影院一区二区| 成人网页在线观看| 日韩—二三区免费观看av| 中文字幕一区二区三区在线观看| 欧美巨大另类极品videosbest| 成人午夜电影网站| 免费成人深夜小野草| 一区二区欧美视频| 国产亚洲美州欧州综合国| 欧美日韩亚洲高清一区二区| 成人黄色免费短视频| 另类的小说在线视频另类成人小视频在线| 国产精品日产欧美久久久久| 日韩一区二区三| 欧美亚洲动漫精品| 成人18视频日本| 精品一区二区三区视频| 视频在线观看一区| 亚洲综合小说图片| 国产精品成人免费在线| 久久精品视频网| 欧美电视剧在线观看完整版| 欧美日韩高清一区| 91天堂素人约啪| 丰满白嫩尤物一区二区| 精品一区二区三区不卡| 日韩主播视频在线| 亚洲午夜私人影院| 一区二区在线观看免费视频播放| 久久久久久9999| 欧美成人高清电影在线| 91精品国产综合久久久久| 欧美少妇性性性| 91国偷自产一区二区使用方法| 成人精品视频一区二区三区尤物| 国产在线精品免费| 蜜臀精品一区二区三区在线观看 | 国产精品18久久久久久久网站| 日韩电影在线一区| 日日摸夜夜添夜夜添国产精品| 亚洲一区二区高清| 亚洲一线二线三线久久久| 亚洲男人电影天堂| 一区二区成人在线|