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

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

?? ihelper.cpp

?? vc+mapx 源代碼
?? CPP
字號:
/* This sample application and corresponding sample code is provided 
 * for example purposes only.  It has not undergone rigorous testing 
 * and as such should not be shipped as part of a final application 
 * without extensive testing on the part of the organization releasing 
 * the end-user product.
 */

#include "stdafx.h"
#include "IHelper.h"

CString ReadStream(IStorage* stg, const CString streamName, long size) /*throw (CFileException*)*/ {
	ASSERT(stg!=NULL);

	CString result;
	IStream* stream;
	stream = OpenStream(stg, streamName);
	result = ReadStream(stream, size);
	CloseStream(stream);
	return result;
}

CString ReadStream(IStream* stream, long size) /*throw (CFileException*)*/ {
	ASSERT(stream != NULL);
	CString result;
	HRESULT err;
	ULONG read;

	if(size == 0)
		size = GetStreamSize(stream);

	err = stream->Read(result.GetBuffer(size+1), size, &read);
	result.ReleaseBuffer();
	result.SetAt(size, '\0');

	if(err != S_OK)
		CFileException::ThrowOsError(err);
	return result;
}

IStream* OpenStream(IStorage* stg, const CString streamName, bool write) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);

	IStream* outStream;
	BSTR bStrName = streamName.AllocSysString();
	HRESULT result;

	result = stg->OpenStream(bStrName, NULL, (write ? STGM_READWRITE : STGM_READ) | STGM_SHARE_EXCLUSIVE, 0, &outStream);
	if(result != S_OK)
		CFileException::ThrowOsError(result, streamName);

	SysFreeString(bStrName);
	return outStream;
}	

IStream* CreateStream(IStorage* stg, const CString name) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);

	IStream* outStream;
	BSTR bStrName = name.AllocSysString();
	HRESULT result;
	
	result = stg->CreateStream(bStrName, STGM_WRITE | STGM_SHARE_EXCLUSIVE, NULL, NULL, &outStream);
	if(result != S_OK)
		CFileException::ThrowOsError(result, name);

	SysFreeString(bStrName);
	return outStream;
}

void CreateStream(IStorage* stg, const CString name, const CString value) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);
	
	IStream* outStream;

	outStream = CreateStream(stg, name);
	WriteStream(outStream, value);
	CloseStream(outStream);
}

void WriteStream(IStream* outStream, const CString value) /*throw (CFileException*)*/ {
	ASSERT(outStream != NULL);

	HRESULT result;
	
	result = outStream->Write((const char*)value, value.GetLength(), NULL);
	
	if(result != S_OK)
		CFileException::ThrowOsError(result);
}

void CloseStream(IStream* stream) {
	ASSERT(stream != NULL);
	stream->Release();
}

long GetStreamSize(IStream* stream) /*throw (CFileException*)*/ {
	ASSERT(stream != NULL);

	STATSTG info;
	HRESULT result;
	
	result = stream->Stat(&info, STATFLAG_NONAME);
	if(result != S_OK)
		CFileException::ThrowOsError(result);

	return info.cbSize.LowPart;
}

IStorage* OpenStorage(const CString path, bool write) /*throw (CFileException*)*/ {
	HRESULT result;
	BSTR bPath = path.AllocSysString();
	IStorage* stg;

	result = StgOpenStorage(bPath, NULL, (write ? STGM_READWRITE : STGM_READ) | STGM_SHARE_EXCLUSIVE, NULL, NULL, &stg);
	if(result != S_OK)
		CFileException::ThrowOsError(result, path);

	SysFreeString(bPath);
	return stg;
}

IStorage* CreateStorage(const CString path) /*throw (CFileException*)*/ {
	HRESULT result;
	BSTR bPath = path.AllocSysString();
	IStorage* stg;

	result = StgCreateDocfile(bPath, STGM_READWRITE | STGM_CREATE | STGM_TRANSACTED | STGM_SHARE_EXCLUSIVE, NULL, &stg);
	if(result != S_OK)
		CFileException::ThrowOsError(result, path);

	SysFreeString(bPath);
	return stg;
}

void SaveStorage(IStorage* stg) {
	ASSERT(stg != NULL);

	stg->Commit(STGC_DEFAULT);
}

IStorage* OpenSubstorage(IStorage* stg, const CString substgName, bool write) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);
	
	IStorage* outSubstg;
	HRESULT result;
	BSTR bName = substgName.AllocSysString();

	result = stg->OpenStorage(bName, NULL, (write ? STGM_READWRITE : STGM_READ) | STGM_SHARE_EXCLUSIVE, NULL, NULL, &outSubstg);
	if(result != S_OK)
		CFileException::ThrowOsError(result);

	SysFreeString(bName);
	return outSubstg;
}

void CloseStorage(IStorage* stg) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);

	stg->Release();
}

IStorage* CreateSubstorage(IStorage* stg, const CString substgName) /*throw (CFileException*)*/ {
	ASSERT(stg != NULL);
	
	IStorage* outSubstg;
	HRESULT result;
	BSTR bName = substgName.AllocSysString();

	result = stg->CreateStorage(bName, STGM_WRITE | STGM_SHARE_EXCLUSIVE, NULL, NULL, &outSubstg);
	if(result != S_OK)
		CFileException::ThrowOsError(result);

	SysFreeString(bName);
	return outSubstg;
}

void EnumElementNames(CStringList* names, IStorage* stg) /*throw (CFileException*)*/ {
	CString str;
	IEnumSTATSTG* enumElts;
	HRESULT err;
	STATSTG* elts;
	ULONG num = 20;
	IMalloc* allocator;

	err = stg->EnumElements(NULL, NULL, NULL, &enumElts);

	if(err != S_OK)
		CFileException::ThrowOsError(S_OK);

	CoGetMalloc(1, &allocator);
	elts = new STATSTG[20];
	
	do {
		err = enumElts->Next(20, elts, &num);
		for(ULONG i = 0; i < num; i++) {
			names->AddTail(elts[i].pwcsName);
			allocator->Free(elts[i].pwcsName);
		}
	} while(err == S_OK);
	
	delete elts;
	enumElts->Release();
	allocator->Release();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品在线观看视频| 老司机午夜精品| 精品裸体舞一区二区三区| 欧洲日韩一区二区三区| 成人精品一区二区三区四区| 国产一区二区女| 另类欧美日韩国产在线| 日本欧美加勒比视频| 美日韩一区二区| 美女mm1313爽爽久久久蜜臀| 美女mm1313爽爽久久久蜜臀| 一区二区成人在线| 亚洲国产日产av| 蜜桃视频一区二区三区在线观看| 精品亚洲aⅴ乱码一区二区三区| 国产精品一区二区x88av| 成人国产精品免费观看动漫| 91小宝寻花一区二区三区| 一本在线高清不卡dvd| 欧美高清精品3d| 国产亚洲制服色| 亚洲免费资源在线播放| 亚洲成人你懂的| 国产一区视频导航| 99久久久无码国产精品| 色综合天天在线| 777久久久精品| 国产女人18水真多18精品一级做| 亚洲欧美欧美一区二区三区| 午夜在线成人av| 韩国三级在线一区| 99国产精品国产精品久久| 欧美妇女性影城| 中文字幕欧美一区| 日韩精品一卡二卡三卡四卡无卡| 国产福利一区二区三区| 欧美日产在线观看| 欧美精品一区二区高清在线观看 | 欧美在线看片a免费观看| 欧美一激情一区二区三区| 国产精品久久久久久久第一福利| 亚洲高清视频在线| 精品一区精品二区高清| 在线观看日产精品| 中文幕一区二区三区久久蜜桃| 亚洲二区视频在线| 91污片在线观看| 久久精品亚洲乱码伦伦中文| 亚洲高清视频在线| 99国产麻豆精品| 久久久精品黄色| 蜜桃一区二区三区四区| 欧美性做爰猛烈叫床潮| 中文字幕亚洲电影| 国产成人av福利| 欧美精品一区二区三区四区| 日韩有码一区二区三区| 欧美怡红院视频| 一区二区三区欧美日| 成av人片一区二区| 国产午夜精品久久久久久免费视| 麻豆成人久久精品二区三区红 | 色综合中文字幕| 亚洲欧洲精品成人久久奇米网| 精品系列免费在线观看| 日韩一级完整毛片| 奇米影视一区二区三区小说| 欧美日韩高清一区二区不卡| 亚洲成人av电影| 欧美美女网站色| 天堂精品中文字幕在线| 欧美日韩中文另类| 一区二区三区中文字幕| 欧美亚洲动漫精品| 中文字幕欧美一| 91色视频在线| 亚洲精品国久久99热| 欧洲国内综合视频| 天天色综合成人网| 日韩三级中文字幕| 国内成+人亚洲+欧美+综合在线| 精品理论电影在线| 国产一区二区三区综合| 欧美精品一区二区三区在线| 国产高清不卡一区| 亚洲欧洲综合另类在线| 欧美三级三级三级爽爽爽| 首页国产欧美日韩丝袜| 欧美大胆一级视频| 国产白丝网站精品污在线入口| 国产精品国产自产拍高清av王其| www.久久久久久久久| 亚洲午夜视频在线观看| 91精品麻豆日日躁夜夜躁| 蜜臀久久99精品久久久久宅男 | 色综合欧美在线视频区| 亚洲伦理在线免费看| 欧美午夜在线一二页| 另类小说欧美激情| 欧美国产亚洲另类动漫| 91久久精品一区二区| 人人超碰91尤物精品国产| 亚洲精品一区二区三区99| 99热在这里有精品免费| 日韩在线播放一区二区| 中文字幕va一区二区三区| 在线观看视频一区| 精品无人区卡一卡二卡三乱码免费卡| 国产欧美日韩精品a在线观看| 欧美在线免费观看亚洲| 国产一区二区三区免费| 亚洲一区视频在线观看视频| 久久久91精品国产一区二区三区| 一本一道波多野结衣一区二区| 久久99精品国产麻豆不卡| 亚洲狼人国产精品| 成人手机在线视频| 日韩精品一区二区三区视频在线观看| 国产一区二区导航在线播放| 亚洲欧美一区二区三区孕妇| 欧美成人免费网站| 在线观看亚洲专区| 成人午夜电影小说| 久久99在线观看| 亚洲国产成人av| 亚洲女与黑人做爰| 国产日韩欧美麻豆| 国产欧美视频在线观看| 欧美在线播放高清精品| 成人免费看视频| 九色porny丨国产精品| 亚洲高清视频中文字幕| 亚洲欧美日韩国产综合在线 | 精品一区二区国语对白| 亚洲一区二区精品3399| 国产精品每日更新在线播放网址| 欧美一级免费大片| 欧美精品粉嫩高潮一区二区| 日本丶国产丶欧美色综合| 成人av在线影院| 国产二区国产一区在线观看| 久久99久久久久久久久久久| 偷偷要91色婷婷| 丝袜亚洲精品中文字幕一区| 一区二区三区四区蜜桃| 1000部国产精品成人观看| 国产午夜亚洲精品羞羞网站| 久久久青草青青国产亚洲免观| 精品国产髙清在线看国产毛片| 欧美精品自拍偷拍| 欧美一区二区在线免费观看| 7777精品伊人久久久大香线蕉的 | 国产mv日韩mv欧美| 国产成人在线视频网站| 国产99久久久国产精品| 国产成人av影院| 国产成人自拍在线| 不卡av免费在线观看| 成人动漫一区二区在线| 国产91丝袜在线18| 成人黄色小视频在线观看| 成人精品视频一区二区三区尤物| 国产成a人亚洲精| voyeur盗摄精品| 欧美无乱码久久久免费午夜一区| 在线中文字幕一区| 欧美一区二区国产| 国产视频一区二区三区在线观看| 久久久久国产精品麻豆| 1024成人网| 日产欧产美韩系列久久99| 毛片不卡一区二区| 国产精品12区| 欧美日韩一区不卡| 精品福利二区三区| 亚洲天堂网中文字| 日韩中文字幕区一区有砖一区| 国内精品写真在线观看| av资源网一区| 欧美日韩成人在线| 国产亚洲一二三区| 亚洲二区在线视频| 国内精品伊人久久久久av一坑 | 精品污污网站免费看| 久久久欧美精品sm网站 | 欧美日韩性生活| 久久久久国产一区二区三区四区| 亚洲男人的天堂一区二区| 青青国产91久久久久久| 99精品视频在线播放观看| 欧美一级在线观看| 亚洲人成在线播放网站岛国| 精品一区二区三区免费播放 | 日本vs亚洲vs韩国一区三区二区| 国产精品系列在线播放| 欧美日韩在线播放一区| 国产精品美女视频| 国产毛片精品视频| 欧美日韩美女一区二区| 国产精品萝li|