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

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

?? winpipes.cpp

?? 加密函數庫:包括多種加密解密算法,數字簽名,散列算法
?? CPP
字號:
// winpipes.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"
#include "winpipes.h"

#ifdef WINDOWS_PIPES_AVAILABLE

#include "wait.h"

NAMESPACE_BEGIN(CryptoPP)

WindowsHandle::WindowsHandle(HANDLE h, bool own)
	: m_h(h), m_own(own)
{
}

WindowsHandle::~WindowsHandle()
{
	if (m_own)
	{
		try
		{
			CloseHandle();
		}
		catch (...)
		{
		}
	}
}

bool WindowsHandle::HandleValid() const
{
	return m_h && m_h != INVALID_HANDLE_VALUE;
}

void WindowsHandle::AttachHandle(HANDLE h, bool own)
{
	if (m_own)
		CloseHandle();

	m_h = h;
	m_own = own;
	HandleChanged();
}

HANDLE WindowsHandle::DetachHandle()
{
	HANDLE h = m_h;
	m_h = INVALID_HANDLE_VALUE;
	HandleChanged();
	return h;
}

void WindowsHandle::CloseHandle()
{
	if (m_h != INVALID_HANDLE_VALUE)
	{
		::CloseHandle(m_h);
		m_h = INVALID_HANDLE_VALUE;
		HandleChanged();
	}
}

// ********************************************************

void WindowsPipe::HandleError(const char *operation) const
{
	DWORD err = GetLastError();
	throw Err(GetHandle(), operation, err);
}

WindowsPipe::Err::Err(HANDLE s, const std::string& operation, int error)
	: OS_Error(IO_ERROR, "WindowsPipe: " + operation + " operation failed with error 0x" + IntToString(error, 16), operation, error)
	, m_h(s)
{
}

// *************************************************************

WindowsPipeReceiver::WindowsPipeReceiver()
	: m_resultPending(false), m_eofReceived(false)
{
	m_event.AttachHandle(CreateEvent(NULL, true, false, NULL), true);
	CheckAndHandleError("CreateEvent", m_event.HandleValid());
	memset(&m_overlapped, 0, sizeof(m_overlapped));
	m_overlapped.hEvent = m_event;
}

void WindowsPipeReceiver::Receive(byte* buf, unsigned int bufLen)
{
	assert(!m_resultPending && !m_eofReceived);

	HANDLE h = GetHandle();
	if (ReadFile(h, buf, bufLen, &m_lastResult, &m_overlapped))
	{
		if (m_lastResult == 0)
			m_eofReceived = true;
	}
	else
	{
		switch (GetLastError())
		{
		default:
			CheckAndHandleError("ReadFile", false);
		case ERROR_BROKEN_PIPE:
		case ERROR_HANDLE_EOF:
			m_lastResult = 0;
			m_eofReceived = true;
			break;
		case ERROR_IO_PENDING:
			m_resultPending = true;
		}
	}
}

void WindowsPipeReceiver::GetWaitObjects(WaitObjectContainer &container)
{
	if (m_resultPending)
		container.AddHandle(m_event);
	else if (!m_eofReceived)
		container.SetNoWait();
}

unsigned int WindowsPipeReceiver::GetReceiveResult()
{
	if (m_resultPending)
	{
		HANDLE h = GetHandle();
		if (GetOverlappedResult(h, &m_overlapped, &m_lastResult, false))
		{
			if (m_lastResult == 0)
				m_eofReceived = true;
		}
		else
		{
			switch (GetLastError())
			{
			default:
				CheckAndHandleError("GetOverlappedResult", false);
			case ERROR_BROKEN_PIPE:
			case ERROR_HANDLE_EOF:
				m_lastResult = 0;
				m_eofReceived = true;
			}
		}
		m_resultPending = false;
	}
	return m_lastResult;
}

// *************************************************************

WindowsPipeSender::WindowsPipeSender()
	: m_resultPending(false), m_lastResult(0)
{
	m_event.AttachHandle(CreateEvent(NULL, true, false, NULL), true);
	CheckAndHandleError("CreateEvent", m_event.HandleValid());
	memset(&m_overlapped, 0, sizeof(m_overlapped));
	m_overlapped.hEvent = m_event;
}

void WindowsPipeSender::Send(const byte* buf, unsigned int bufLen)
{
	DWORD written = 0;
	HANDLE h = GetHandle();
	if (WriteFile(h, buf, bufLen, &written, &m_overlapped))
	{
		m_resultPending = false;
		m_lastResult = written;
	}
	else
	{
		if (GetLastError() != ERROR_IO_PENDING)
			CheckAndHandleError("WriteFile", false);

		m_resultPending = true;
	}
}

void WindowsPipeSender::GetWaitObjects(WaitObjectContainer &container)
{
	if (m_resultPending)
		container.AddHandle(m_event);
	else
		container.SetNoWait();
}

unsigned int WindowsPipeSender::GetSendResult()
{
	if (m_resultPending)
	{
		HANDLE h = GetHandle();
		BOOL result = GetOverlappedResult(h, &m_overlapped, &m_lastResult, false);
		CheckAndHandleError("GetOverlappedResult", result);
		m_resultPending = false;
	}
	return m_lastResult;
}

NAMESPACE_END

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品tushy高清| 欧美日韩在线播放一区| 中文字幕精品一区二区三区精品 | 精品国产污污免费网站入口| 日本美女一区二区三区视频| 日韩午夜三级在线| 国产精品77777| 亚洲欧洲日产国产综合网| 99久久精品免费精品国产| 亚洲一级二级三级| 日韩一区二区在线观看视频| 国产成人精品综合在线观看| 亚洲视频一区二区在线| 在线电影一区二区三区| 国产精品88av| 亚洲国产一区二区三区青草影视 | 678五月天丁香亚洲综合网| 麻豆91小视频| 国产精品久久久久国产精品日日| 一本到高清视频免费精品| 日韩中文字幕亚洲一区二区va在线| 欧美电视剧免费观看| aa级大片欧美| 日韩中文字幕区一区有砖一区 | 国产一区二区h| 成人欧美一区二区三区小说| 欧美日韩另类国产亚洲欧美一级| 久久精品国内一区二区三区| 国产精品国产精品国产专区不蜜| 欧美美女网站色| 成a人片亚洲日本久久| 日本vs亚洲vs韩国一区三区二区 | 2014亚洲片线观看视频免费| 一本到三区不卡视频| 国产在线日韩欧美| 亚洲成a人片综合在线| 国产亚洲欧美日韩日本| 91精品欧美一区二区三区综合在| fc2成人免费人成在线观看播放| 日精品一区二区| 国产精品久久久久影院亚瑟| 日韩免费看网站| 精品视频123区在线观看| 高清免费成人av| 久久黄色级2电影| 亚洲一区成人在线| 1024成人网| 国产欧美精品一区二区色综合| 欧美精品黑人性xxxx| 972aa.com艺术欧美| 国产精品一区久久久久| 日本伊人午夜精品| 亚洲一卡二卡三卡四卡无卡久久| 国产日韩欧美激情| 久久青草欧美一区二区三区| 欧美精品777| 欧美日韩视频第一区| 91色视频在线| 99久久综合99久久综合网站| 国产一区二区三区综合| 裸体健美xxxx欧美裸体表演| 亚洲国产一二三| 亚洲自拍偷拍网站| 18欧美亚洲精品| 中文字幕一区二区三区不卡在线| 欧美精品一区二区三区蜜桃| 欧美一区二区三区四区高清| 欧美卡1卡2卡| 欧美片网站yy| 欧美日韩国产三级| 欧美日韩在线亚洲一区蜜芽| 欧美三级日韩在线| 欧美视频精品在线观看| 欧美婷婷六月丁香综合色| 91国产成人在线| 色婷婷av一区二区三区大白胸| 91首页免费视频| 一本大道av一区二区在线播放| 色综合天天综合网国产成人综合天 | 蜜臀av国产精品久久久久| 日韩国产欧美在线播放| 日本成人中文字幕在线视频| 日本不卡1234视频| 国产一区二区三区免费在线观看| 九一九一国产精品| 国产成人精品免费看| 成人精品gif动图一区| 成人免费视频国产在线观看| 99精品视频一区二区三区| 色噜噜狠狠色综合中国| 欧美日韩另类国产亚洲欧美一级| 7777精品伊人久久久大香线蕉完整版 | 日本久久一区二区三区| 欧美在线free| 7777精品伊人久久久大香线蕉的| 91精品欧美一区二区三区综合在| 欧美一区二区久久久| 精品国产精品一区二区夜夜嗨| 久久久久久久久蜜桃| 中文字幕一区在线观看视频| 亚洲最大的成人av| 男人的天堂亚洲一区| 国产一区二区福利视频| 7777精品伊人久久久大香线蕉完整版 | 色婷婷av久久久久久久| 欧美日韩精品是欧美日韩精品| 日韩欧美一区电影| 欧美激情中文不卡| 亚洲韩国一区二区三区| 激情久久五月天| 99精品视频中文字幕| 6080国产精品一区二区| 国产日产欧美一区二区三区 | 欧美精品自拍偷拍| 久久免费美女视频| 亚洲综合色噜噜狠狠| 久久国产精品99久久人人澡| kk眼镜猥琐国模调教系列一区二区| 在线观看免费成人| 久久亚洲综合av| 亚洲自拍偷拍九九九| 韩国女主播成人在线观看| 色综合久久综合网97色综合| 精品久久久三级丝袜| 亚洲国产视频在线| 不卡的av在线| 久久综合九色综合欧美就去吻| 一区二区在线观看免费| 韩国v欧美v日本v亚洲v| 欧美色中文字幕| 欧美国产禁国产网站cc| 蜜桃av一区二区三区| 在线精品视频小说1| 综合久久国产九一剧情麻豆| 久久97超碰色| 欧美高清视频在线高清观看mv色露露十八| 欧美最新大片在线看| 久久精品在线观看| 日韩在线a电影| 在线视频欧美区| 国产精品网站在线| 精品在线一区二区三区| 欧美剧情片在线观看| 亚洲欧美成人一区二区三区| 国产传媒久久文化传媒| 精品日韩欧美在线| 性欧美疯狂xxxxbbbb| 色婷婷久久一区二区三区麻豆| 久久久91精品国产一区二区精品| 视频一区二区国产| 欧美伊人精品成人久久综合97 | 日韩亚洲欧美一区| 亚洲国产sm捆绑调教视频| 972aa.com艺术欧美| 中文在线一区二区| 国产成人av电影| 日本一区二区电影| 成人免费高清视频在线观看| 久久伊99综合婷婷久久伊| 日韩国产欧美视频| 91精品国产91热久久久做人人| 亚洲自拍欧美精品| 欧美色图在线观看| 天天综合色天天| 国产午夜精品福利| 国产剧情一区在线| 久久免费视频一区| 粉嫩绯色av一区二区在线观看| 国产嫩草影院久久久久| 国产成+人+日韩+欧美+亚洲 | 国产精品久久久久7777按摩| 成人免费高清在线| 亚洲欧美色一区| 欧美亚洲国产一卡| 奇米精品一区二区三区在线观看 | 欧美影院精品一区| 午夜免费久久看| 日韩欧美激情一区| 国产99久久久久久免费看农村| 国产精品视频你懂的| 91美女在线观看| 亚洲超丰满肉感bbw| 日韩亚洲国产中文字幕欧美| 久久www免费人成看片高清| 久久久久国产免费免费 | 亚洲蜜臀av乱码久久精品蜜桃| 在线观看亚洲一区| 欧美bbbbb| 亚洲国产成人私人影院tom| 91色视频在线| 日韩精品欧美精品| 久久女同性恋中文字幕| 99国产精品国产精品毛片| 一二三四区精品视频| 日韩欧美高清dvd碟片| 不卡电影一区二区三区| 亚洲成人免费影院| 久久久精品一品道一区| 欧美日韩国产一区二区三区地区| 久久精品国产**网站演员|