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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? imapitools.cpp

?? CD刻錄,含有源代碼,好東西大家分享哈.互相交流學(xué)習(xí).
?? CPP
字號(hào):
////////////////////////////////////////////////////////////////
// MSDN Magazine -- April 2004
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual Studio .NET on Windows XP. Tab size=3.
//
#include "StdAfx.h"
#include "IMAPITools.h"

//////////////////
// Get supported formats as an array. There are currently only two, so
// why bother wrapping IEnumDiscMasterFormats just for this?
//
int CDiscMaster::GetSupportedFormats(IID* buf, int len)
{
	ULONG nActual=0;
	CComPtr<IEnumDiscMasterFormats> it;
	m_hr = (*this)->EnumDiscMasterFormats(&it);
	if (SUCCEEDED(m_hr))
		m_hr = it->Next(len, buf, &nActual);
	return SUCCEEDED(m_hr) ? nActual : 0;
}

//////////////////
// If CDiscMaster specified in ctor, get default recorder = 1st in enum
//
CDiscRecorder::CDiscRecorder(CDiscMaster& dm)
{
	CDiscRecorderIterator it(dm);
	it.Next(*this);
}

//////////////////
// Get display names for vendor, product and revision
//
BOOL CDiscRecorder::GetDisplayNames(DISPLAYNAMES& dn)
{
	CComBSTR v(256),p(256),r(256);
	m_hr = (*this)->GetDisplayNames(&v,&p,&r);
	TRACEHR(_T("CDiscRecorder::GetDisplayNames"),m_hr);
	if (SUCCEEDED(m_hr)) {
		dn.vendor = v;
		dn.product = p;
		dn.revision = r;
		return TRUE;
	}
	return FALSE;
}

//////////////////
// Helper to get human-readable format name from IID
//
LPCTSTR IMAPITools::GetFormatName(const IID& iid)
{
	if (iid==IID_IRedbookDiscMaster) {
		return _T("Redbook (audio)");
	} else if (iid==IID_IJolietDiscMaster) {
		return _T("Joliet (data)");
	} else if (iid==IID_NULL) {
		return _T("<none>");
	}
	return(_T("unknown"));
}

LPCTSTR IMAPITools::GetRecorderTypeName(long type)
{
	return type==RECORDER_CDR ? _T("RECORDER_CDR") :
		type==RECORDER_CDRW ? _T("RECORDER_CDRW") : _T("");
}

LPCTSTR IMAPITools::GetRecorderStateName(ULONG state)
{
	const struct {
		ULONG state;
		LPCTSTR name;
	} StateNames[] = {
		{RECORDER_DOING_NOTHING,_T("RECORDER_DOING_NOTHING")},
		{RECORDER_OPENED,       _T("RECORDER_OPENED")},
		{RECORDER_BURNING,      _T("RECORDER_BURNING")},
		{0,NULL}
	};
	for (int i=0; StateNames[i].name; i++) {
		if (state==StateNames[i].state)
			return StateNames[i].name;
	}
	static TCHAR buf[16];
	_stprintf(buf,_T("0x%08x"),state);
	return buf;
}

LPCTSTR IMAPITools::GetMediaTypeName(long type)
{
	const struct {
		long type;
		LPCTSTR name;
	} TypeNames[] = {
		{ 0,_T("[empty]") },
		{ MEDIA_CDDA_CDROM,_T("MEDIA_CDDA_CDROM") },
		{ MEDIA_CD_ROM_XA,_T("MEDIA_CD_ROM_XA") },
		{ MEDIA_CD_I,_T("MEDIA_CD_I") },
		{ MEDIA_CD_EXTRA,_T("MEDIA_CD_EXTRA") },
		{ MEDIA_CD_OTHER,_T("MEDIA_CD_OTHER") },
		{ MEDIA_SPECIAL,_T("MEDIA_SPECIAL") },
		{ 0,NULL }
	};
	for (int i=0; TypeNames[i].name; i++) {
		if (type==TypeNames[i].type)
			return TypeNames[i].name;
	}
	static TCHAR buf[16];
	_stprintf(buf,_T("%d"),type);
	return buf;
}

LPCTSTR IMAPITools::GetMediaFlagsName(long flags)
{
	if (flags==0)
		return _T("[empty]");

	const struct {
		long flag;
		LPCTSTR name;
	} FlagNames[] = {
		{ MEDIA_BLANK,_T("MEDIA_BLANK") },
		{ MEDIA_RW,_T("MEDIA_RW") },
		{ MEDIA_WRITABLE,_T("MEDIA_WRITABLE") },
		{ MEDIA_FORMAT_UNUSABLE_BY_IMAPI,_T("MEDIA_FORMAT_UNUSABLE_BY_IMAPI") },
		{ 0,NULL }
	};
	BOOL first = TRUE;
	static TCHAR buf[256]={0};
	for (int i=0; FlagNames[i].name; i++) {
		if (flags & FlagNames[i].flag) {
			if (first)
				first = FALSE;
			else
				_tcscat(buf,_T("|"));
			_tcscat(buf,FlagNames[i].name);
		}
	}
	return buf;
}

//////////////////
// Helper function to get error name from HRESULT.
// These come from imapierror.h.
//
LPCTSTR IMAPITools::GetErrorName(HRESULT hr)
{
	const struct {
		HRESULT hr;
		LPCTSTR name;
	} ImapiErrors[] = {
		{IMAPI_S_PROPERTIESIGNORED,_T("IMAPI_S_PROPERTIESIGNORED")},
		{IMAPI_S_BUFFER_TO_SMALL,_T("IMAPI_S_BUFFER_TO_SMALL")},
		{IMAPI_E_NOTOPENED,_T("IMAPI_E_NOTOPENED")},
		{IMAPI_E_NOTINITIALIZED,_T("IMAPI_E_NOTINITIALIZED")},
		{IMAPI_E_USERABORT,_T("IMAPI_E_USERABORT")},
		{IMAPI_E_GENERIC,_T("IMAPI_E_GENERIC")},
		{IMAPI_E_MEDIUM_NOTPRESENT,_T("IMAPI_E_MEDIUM_NOTPRESENT")},
		{IMAPI_E_MEDIUM_INVALIDTYPE,_T("IMAPI_E_MEDIUM_INVALIDTYPE")},
		{IMAPI_E_DEVICE_NOPROPERTIES,_T("IMAPI_E_DEVICE_NOPROPERTIES")},
		{IMAPI_E_DEVICE_NOTACCESSIBLE,_T("IMAPI_E_DEVICE_NOTACCESSIBLE")},
		{IMAPI_E_DEVICE_NOTPRESENT,_T("IMAPI_E_DEVICE_NOTPRESENT")},
		{IMAPI_E_DEVICE_INVALIDTYPE,_T("IMAPI_E_DEVICE_INVALIDTYPE")},
		{IMAPI_E_INITIALIZE_WRITE,_T("IMAPI_E_INITIALIZE_WRITE")},
		{IMAPI_E_INITIALIZE_ENDWRITE,_T("IMAPI_E_INITIALIZE_ENDWRITE")},
		{IMAPI_E_FILESYSTEM,_T("IMAPI_E_FILESYSTEM")},
		{IMAPI_E_FILEACCESS,_T("IMAPI_E_FILEACCESS")},
		{IMAPI_E_DISCINFO,_T("IMAPI_E_DISCINFO")},
		{IMAPI_E_TRACKNOTOPEN,_T("IMAPI_E_TRACKNOTOPEN")},
		{IMAPI_E_TRACKOPEN,_T("IMAPI_E_TRACKOPEN")},
		{IMAPI_E_DISCFULL,_T("IMAPI_E_DISCFULL")},
		{IMAPI_E_BADJOLIETNAME,_T("IMAPI_E_BADJOLIETNAME")},
		{IMAPI_E_INVALIDIMAGE,_T("IMAPI_E_INVALIDIMAGE")},
		{IMAPI_E_NOACTIVEFORMAT,_T("IMAPI_E_NOACTIVEFORMAT")},
		{IMAPI_E_NOACTIVERECORDER,_T("IMAPI_E_NOACTIVERECORDER")},
		{IMAPI_E_WRONGFORMAT,_T("IMAPI_E_WRONGFORMAT")},
		{IMAPI_E_ALREADYOPEN,_T("IMAPI_E_ALREADYOPEN")},
		{IMAPI_E_WRONGDISC,_T("IMAPI_E_WRONGDISC")},
		{IMAPI_E_FILEEXISTS,_T("IMAPI_E_FILEEXISTS")},
		{IMAPI_E_STASHINUSE,_T("IMAPI_E_STASHINUSE")},
		{IMAPI_E_DEVICE_STILL_IN_USE,_T("IMAPI_E_DEVICE_STILL_IN_USE")},
		{IMAPI_E_LOSS_OF_STREAMING,_T("IMAPI_E_LOSS_OF_STREAMING")},
		{IMAPI_E_COMPRESSEDSTASH,_T("IMAPI_E_COMPRESSEDSTASH")},
		{IMAPI_E_ENCRYPTEDSTASH,_T("IMAPI_E_ENCRYPTEDSTASH")},
		{IMAPI_E_NOTENOUGHDISKFORSTASH,_T("IMAPI_E_NOTENOUGHDISKFORSTASH")},
		{IMAPI_E_REMOVABLESTASH,_T("IMAPI_E_REMOVABLESTASH")},
		{IMAPI_E_CANNOT_WRITE_TO_MEDIA,_T("IMAPI_E_CANNOT_WRITE_TO_MEDIA")},
		{IMAPI_E_TRACK_NOT_BIG_ENOUGH,_T("IMAPI_E_TRACK_NOT_BIG_ENOUGH")},
		{IMAPI_E_BOOTIMAGE_AND_NONBLANK_DISC,_T("IMAPI_E_BOOTIMAGE_AND_NONBLANK_DISC")},
		{0,NULL}
	};
	for (int i=0; ImapiErrors[i].hr; i++) {
		if (hr==ImapiErrors[i].hr)
			return ImapiErrors[i].name;
	}
	static TCHAR buf[16];
	_stprintf(buf,_T("0x%08x"),hr);
	return buf;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丝袜呻吟高潮美腿白嫩在线观看| 欧美乱妇20p| 欧美性高清videossexo| 欧美成人综合网站| 亚洲欧洲国产日本综合| 午夜精品久久久久久久99樱桃| 麻豆精品一区二区三区| 99在线精品视频| 在线不卡中文字幕播放| 久久蜜桃av一区精品变态类天堂 | 99国内精品久久| 欧美理论在线播放| 国产精品国产自产拍高清av | 国产亚洲女人久久久久毛片| 一级精品视频在线观看宜春院| 麻豆精品蜜桃视频网站| 色婷婷精品久久二区二区蜜臀av| 在线综合亚洲欧美在线视频| 国产精品视频yy9299一区| 麻豆视频一区二区| 欧美日韩中文字幕精品| 国产精品久久久久久久久免费丝袜| 日韩av电影天堂| 色94色欧美sute亚洲13| 国产清纯美女被跳蛋高潮一区二区久久w | 精品一区二区三区蜜桃| 在线看一区二区| 国产精品国产a级| 日韩高清一区二区| 欧美色成人综合| 欧美一区二区在线播放| 亚洲乱码中文字幕| 欧美性猛片xxxx免费看久爱| 亚洲最大成人综合| 欧美日韩免费一区二区三区视频| 一二三四社区欧美黄| 欧美日本在线看| 蜜桃av一区二区在线观看| 日韩精品综合一本久道在线视频| 久久9热精品视频| 精品日韩欧美在线| 国产a精品视频| 亚洲丝袜另类动漫二区| 欧美性生交片4| 久草热8精品视频在线观看| 久久婷婷国产综合精品青草| 国产成人免费xxxxxxxx| 亚洲男女一区二区三区| 欧美肥妇free| 国产成人av福利| 亚洲一区在线视频| 日韩欧美国产午夜精品| 风间由美中文字幕在线看视频国产欧美 | 国模一区二区三区白浆| 国产精品亲子乱子伦xxxx裸| 色欧美日韩亚洲| 美女免费视频一区二区| 国产精品免费免费| 在线观看视频91| 国产一级精品在线| 亚洲精品成a人| 精品美女在线播放| 色综合久久久久久久| 久久99精品久久久| 亚洲欧美电影院| 91精品国产欧美一区二区| 丁香婷婷综合五月| 日本伊人午夜精品| 亚洲欧洲韩国日本视频| 欧美大片日本大片免费观看| 福利一区在线观看| 日本欧美在线看| 国产精品久久久久久久久免费相片 | 国产激情视频一区二区在线观看 | 亚洲国产日韩一级| 亚洲国产岛国毛片在线| 日韩一区二区免费在线观看| 99久久久免费精品国产一区二区| 青青草91视频| 亚洲综合在线观看视频| 久久精品这里都是精品| 欧美日本一区二区三区四区| www.视频一区| 国产一区二区三区在线观看免费| 亚洲卡通欧美制服中文| 国产精品污网站| 欧美精品一区二区蜜臀亚洲| 欧美精品乱人伦久久久久久| av电影在线观看一区| 国产精品一区二区x88av| 麻豆国产欧美一区二区三区| 亚洲成a人片综合在线| 成人欧美一区二区三区黑人麻豆 | 91精品国产高清一区二区三区蜜臀| 91麻豆精品在线观看| 大美女一区二区三区| 韩国一区二区视频| 麻豆视频一区二区| 奇米影视一区二区三区| 五月天亚洲精品| 一区二区三区在线观看欧美| 亚洲视频免费在线| 亚洲特黄一级片| 最新中文字幕一区二区三区| 国产拍揄自揄精品视频麻豆| 国产亚洲一二三区| 精品国产乱码久久久久久久| 日韩免费成人网| 日韩欧美亚洲另类制服综合在线| 欧美日韩电影在线播放| 欧美色区777第一页| 精品视频资源站| 5858s免费视频成人| 欧美日韩美女一区二区| 欧美写真视频网站| 欧美巨大另类极品videosbest| 欧美精品丝袜中出| 日韩情涩欧美日韩视频| 久久亚洲一级片| 日本一区二区三区四区| 亚洲欧美一区二区久久| 亚洲成人激情社区| 日本成人在线一区| 国产一区二区h| 99re免费视频精品全部| 欧美日韩精品欧美日韩精品一综合| 欧美午夜在线一二页| 91精品国产91久久久久久一区二区| 欧美一个色资源| 久久精品欧美日韩精品| 亚洲免费在线看| 首页国产欧美久久| 国产精品一区二区x88av| 99久久99久久免费精品蜜臀| 欧美三级韩国三级日本三斤| 日韩一区二区麻豆国产| 中文字幕av免费专区久久| 亚洲激情校园春色| 欧美a级一区二区| 国产成人丝袜美腿| 欧美三级电影精品| 久久婷婷国产综合国色天香| 亚洲天堂网中文字| 秋霞国产午夜精品免费视频 | 看国产成人h片视频| 国产精品资源在线观看| 色婷婷综合久久| 精品欧美一区二区三区精品久久 | 欧美激情一区二区三区| 亚洲在线中文字幕| 国产精品综合一区二区三区| 色婷婷精品久久二区二区蜜臀av| 日韩色视频在线观看| 中文字幕一区二区三区不卡| 日本aⅴ精品一区二区三区 | 国产乱码精品一品二品| 欧洲av在线精品| xvideos.蜜桃一区二区| 亚洲精品美腿丝袜| 国产很黄免费观看久久| 欧美美女一区二区三区| 国产精品久久久久一区二区三区共 | 91久久精品一区二区三区| 国产电影精品久久禁18| 欧美日本一区二区三区四区 | 日韩黄色免费网站| 成人a级免费电影| 日韩精品自拍偷拍| 亚洲成人免费av| 91麻豆精品在线观看| 26uuu国产电影一区二区| 午夜激情久久久| 色中色一区二区| 欧美国产激情一区二区三区蜜月| 免费一区二区视频| 欧美日韩高清一区二区不卡| 亚洲天堂网中文字| 成人激情免费视频| 国产午夜精品一区二区三区视频| 天堂资源在线中文精品| 色国产综合视频| 亚洲桃色在线一区| 日韩一区二区三区高清免费看看| 免费的国产精品| 一本到三区不卡视频| 中文字幕 久热精品 视频在线 | 国产精品美女久久久久aⅴ国产馆| 亚洲成av人片一区二区梦乃| 麻豆一区二区在线| 777xxx欧美| 天天综合天天做天天综合| 欧美日韩一区二区在线观看视频| 亚洲免费av在线| 色综合天天综合| 亚洲精品国产无套在线观| 91麻豆国产精品久久| 亚洲精品水蜜桃| 欧美体内she精高潮| 香蕉加勒比综合久久| 欧美一级淫片007|