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

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

?? ufilterutils.cpp

?? 采用DirecShow通過網絡傳輸實現遠程視頻動態播放,
?? CPP
字號:
//
// UFilterUtils.cpp
//

/*-----------------------------------------------------*\
			HQ Tech, Make Technology Easy!       
 More information, please go to http://hqtech.nease.net.
/*-----------------------------------------------------*/

#include "stdafx.h"
#include <streams.h>
#include "UFilterUtils.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

////////////////////////////////////////////////////////////////////////////
IPin * UFilterUtils::GetPin(IBaseFilter * inFilter, BOOL inInput, 
							const char * inPartialName)
{
	PIN_DIRECTION direction = inInput ? PINDIR_INPUT : PINDIR_OUTPUT;
	IPin * foundPin = NULL;

	if (inFilter)
	{
		IEnumPins * pinEnum = NULL;
		if (SUCCEEDED(inFilter->EnumPins(&pinEnum)))
		{
			pinEnum->Reset();

			IPin * pin = NULL;
			ULONG fetchCount = 0;
			while (!foundPin && SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && fetchCount)
			{
				if (pin)
				{
					PIN_INFO pinInfo;
					if (SUCCEEDED(pin->QueryPinInfo(&pinInfo)))
					{
						if (pinInfo.dir == direction)
						{
							// Ignore the pin name
							if (!inPartialName)
							{
								pin->AddRef();
								foundPin = pin;
							}
							else
							{
								char pinName[128];
								::WideCharToMultiByte(CP_ACP, 0, pinInfo.achName, 
									-1,	pinName, 128, NULL, NULL);
								if (::strstr(pinName, inPartialName))
								{
									pin->AddRef();
									foundPin = pin;
								}


if (foundPin == NULL) 
{ 
if (strcmp(inPartialName, "Capture") == 0) 
{ 
if (::strstr(pinName, "捕獲")) 
{ 
pin->AddRef(); 
foundPin = pin; 
} 
} 
} 


							}
						}
						pinInfo.pFilter->Release();
					}
					pin->Release();
				}
			}
			pinEnum->Release();
		}
	}

	// We don't keep outstanding reference count
	if (foundPin)
	{
		foundPin->Release();
	}
	return foundPin;
}

IPin * UFilterUtils::GetUnconnectedPin(IBaseFilter * inFilter, BOOL inInput)
{
	PIN_DIRECTION direction = inInput ? PINDIR_INPUT : PINDIR_OUTPUT;
	IPin * foundPin = NULL;

	if (inFilter)
	{
		IEnumPins * pinEnum = NULL;
		if (SUCCEEDED(inFilter->EnumPins(&pinEnum)))
		{
			pinEnum->Reset();

			IPin * pin = NULL;
			ULONG fetchCount = 0;
			while (!foundPin && SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && fetchCount)
			{
				if (pin)
				{
					PIN_INFO pinInfo;
					if (SUCCEEDED(pin->QueryPinInfo(&pinInfo)))
					{
						pinInfo.pFilter->Release();
						if (pinInfo.dir == direction)
						{
							IPin * connected = NULL;
							pin->ConnectedTo(&connected);
							if (connected)
							{
								connected->Release();
							}
							else
							{
								pin->AddRef();
								foundPin = pin;
							}
						}						
					}
					pin->Release();
				}
			}
			pinEnum->Release();
		}
	}

	// We don't keep outstanding reference count
	if (foundPin)
	{
		foundPin->Release();
	}
	return foundPin;
}

BOOL UFilterUtils::GetPinCount(IBaseFilter * inFilter, 
							   int & outInputPin, 
							   int & outOutputPin)
{
	outInputPin  = 0;
	outOutputPin = 0;

	if (inFilter)
	{		
		IEnumPins * pinEnum = NULL;
		if (SUCCEEDED(inFilter->EnumPins(&pinEnum)))
		{
			pinEnum->Reset();

			IPin * pin = NULL;
			ULONG fetchCount = 0;
			while (SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && fetchCount)
			{
				if (pin)
				{
					PIN_INFO  pinInfo;
					if (SUCCEEDED(pin->QueryPinInfo(&pinInfo)))
					{
						pinInfo.pFilter->Release();
						if (pinInfo.dir == PINDIR_INPUT)
						{
							outInputPin++;
						}
						else
						{
							outOutputPin++;
						}
					}
					pin->Release();
				}
			}
			pinEnum->Release();
		}
		return TRUE;
	}

	return FALSE;
}

BOOL UFilterUtils::IsCompletelyConnected(IBaseFilter * inFilter)
{
	if (!inFilter)
	{
		return FALSE;
	}

	BOOL allConnected   = TRUE;
	IEnumPins * pinEnum = NULL;
	if (SUCCEEDED(inFilter->EnumPins(&pinEnum)))
	{
		pinEnum->Reset();

		IPin * pin = NULL;
		ULONG fetchCount = 0;
		while (SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && 
			fetchCount && allConnected)
		{
			if (pin)
			{
				pin->Release();

				IPin * connected = NULL;
				pin->ConnectedTo(&connected);
				if (connected)
				{
					connected->Release();
				}
				else
				{
					allConnected = FALSE;
				}				
			}
		}
		pinEnum->Release();
	}

	return allConnected;
}

// Pick up one of media types to determine pin type
PIN_MEDIA UFilterUtils::GetPinMediaType(IPin * inPin)
{
	PIN_MEDIA pinMedia = PIN_UNKNOWN;

	if (inPin)
	{
		IEnumMediaTypes * typeEnum = NULL;
		if (SUCCEEDED(inPin->EnumMediaTypes(&typeEnum)))
		{
			typeEnum->Reset();

			AM_MEDIA_TYPE * type = 0;
			ULONG     fetchCount = 0;
			if (SUCCEEDED(typeEnum->Next(1, &type, &fetchCount)) && fetchCount)
			{
				if (type)
				{
					if (type->majortype == MEDIATYPE_Video)
					{
						pinMedia = PIN_VIDEO;
					}
					else if (type->majortype == MEDIATYPE_Audio)
					{
						pinMedia = PIN_AUDIO;
					}
					else if (type->majortype == MEDIATYPE_Interleaved)
					{
						pinMedia = PIN_INTERLEAVED;
					}
					else if (type->majortype == MEDIATYPE_Stream)
					{
						pinMedia = PIN_STREAM;
					}

					DeleteMediaType(type);
					type = NULL;
				}
			}
			typeEnum->Release();
		}
	}

	return pinMedia;
}

BOOL UFilterUtils::HasMediaType(IPin * inPin, GUID inMajorType, GUID inSubType)
{
	return FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产乱码| 国产精品素人视频| 婷婷成人激情在线网| 欧美成人猛片aaaaaaa| 亚洲一区在线视频观看| 91精品国产综合久久小美女| 性做久久久久久| 精品国产乱码久久久久久老虎| 国产成人综合在线| 懂色一区二区三区免费观看 | 国产最新精品精品你懂的| 日韩欧美一区中文| 日韩一区国产二区欧美三区| 欧美猛男男办公室激情| 欧美精品日韩一区| 91精品啪在线观看国产60岁| 在线不卡中文字幕| 欧美va亚洲va| 中文字幕第一区二区| 亚洲女爱视频在线| 亚洲一区二区三区视频在线| 性欧美大战久久久久久久久| 日韩精品亚洲一区二区三区免费| 亚洲一区二区在线视频| 欧美96一区二区免费视频| 国产资源在线一区| 99麻豆久久久国产精品免费| 欧美精品三级在线观看| 精品91自产拍在线观看一区| 亚洲午夜免费电影| 日韩欧美在线综合网| 久久99精品国产| 亚洲品质自拍视频| 久久九九久久九九| 欧美日韩国产三级| 91黄视频在线观看| 欧美色综合天天久久综合精品| 91网站黄www| 麻豆精品在线看| 69堂成人精品免费视频| 偷偷要91色婷婷| 一区在线中文字幕| 26uuu国产电影一区二区| 精品久久人人做人人爰| 国产欧美日韩三级| 亚洲国产一区视频| 成人不卡免费av| 日韩女优毛片在线| 亚洲福利视频导航| 粉嫩aⅴ一区二区三区四区| 91无套直看片红桃| 26uuu精品一区二区三区四区在线| 久久久久久久国产精品影院| 日韩中文字幕亚洲一区二区va在线| 福利电影一区二区三区| 欧美无人高清视频在线观看| 亚洲欧洲日韩av| 成人美女在线观看| 欧美一二三区在线| 久久99精品久久只有精品| 欧美亚洲图片小说| 国产日韩欧美精品在线| 另类小说视频一区二区| 91精品国产高清一区二区三区| 成人免费在线播放视频| 色综合天天综合网天天看片| 国产精品乱码人人做人人爱| 国产一区二区中文字幕| 精品国产成人在线影院 | 国产精品视频一区二区三区不卡| 日韩在线一二三区| 日韩一本二本av| 成人午夜激情视频| 成人久久视频在线观看| 国产欧美视频一区二区三区| 高清av一区二区| 亚洲欧美日韩在线播放| 91麻豆.com| 欧美成人乱码一区二区三区| 精品一区二区在线播放| 国产欧美一区二区在线| 91亚洲精品乱码久久久久久蜜桃| 洋洋av久久久久久久一区| 日韩亚洲欧美中文三级| 成人黄色片在线观看| 亚洲一级在线观看| 国产欧美综合在线| 欧美日韩国产综合久久| 国内精品视频666| 亚洲国产一区二区三区青草影视| 欧美变态凌虐bdsm| 欧美婷婷六月丁香综合色| 麻豆精品在线播放| 午夜精品在线视频一区| 国产精品不卡一区| 久久久99精品久久| 欧美日韩在线精品一区二区三区激情| 日韩av在线免费观看不卡| 国产精品久久久久久久久晋中| 日韩一区二区在线观看| 欧美吻胸吃奶大尺度电影| 成人av网站在线| 欧美日韩国产成人在线免费| 亚洲一区二区四区蜜桃| 久久综合色天天久久综合图片| 一本色道亚洲精品aⅴ| 国产一区美女在线| 亚洲综合成人在线视频| 国产欧美一区二区在线| 欧美群妇大交群中文字幕| 日韩欧美在线网站| 欧美性欧美巨大黑白大战| 欧美日韩综合一区| 成人激情黄色小说| 成人手机电影网| 青青草国产精品亚洲专区无| 亚洲一区二区三区四区的| 裸体一区二区三区| 99久久精品国产一区| 精品日产卡一卡二卡麻豆| 国产精品理论片在线观看| 日本中文字幕不卡| 91久久精品一区二区| 中文字幕av资源一区| 麻豆中文一区二区| 色88888久久久久久影院按摩| 日韩欧美成人一区二区| 玉米视频成人免费看| 国产91在线|亚洲| 精品欧美乱码久久久久久| 日韩电影在线一区二区| 91成人在线观看喷潮| 亚洲乱码中文字幕综合| 成人国产免费视频| 国产亚洲短视频| 成人国产免费视频| 国产精品高潮呻吟| 97se亚洲国产综合自在线不卡 | 久久久久亚洲蜜桃| 激情五月播播久久久精品| 日韩免费一区二区三区在线播放| 日韩国产精品91| 日韩你懂的在线观看| 成人少妇影院yyyy| 亚洲欧美乱综合| 欧美伦理电影网| 国产裸体歌舞团一区二区| 欧美大黄免费观看| 国产成人精品一区二| 中文字幕日韩av资源站| 欧美午夜精品一区二区蜜桃| 日本在线不卡视频| 国产亚洲一本大道中文在线| 暴力调教一区二区三区| 五月天网站亚洲| 国产欧美一区二区精品忘忧草| 丁香婷婷综合网| 午夜精品爽啪视频| 亚洲美女视频在线| 欧美日韩午夜精品| 捆绑调教一区二区三区| 亚洲视频一区二区在线| 日韩欧美中文一区二区| 在线免费观看不卡av| 国产一区二区免费看| 亚洲va在线va天堂| 国产精品久久久久久久久久免费看| 91精品国产综合久久婷婷香蕉| 成人国产精品免费观看动漫| 免费观看一级欧美片| 亚洲国产成人91porn| ●精品国产综合乱码久久久久| 日韩一区二区精品葵司在线| 在线精品亚洲一区二区不卡| 高清国产午夜精品久久久久久| 蜜桃一区二区三区在线| 日本欧美一区二区| 亚洲超碰精品一区二区| 亚洲午夜免费视频| 日韩国产在线观看| 青娱乐精品视频在线| 日韩和欧美一区二区| 久久99久久99精品免视看婷婷 | 日韩国产在线一| 亚洲成人福利片| 麻豆成人免费电影| 丰满少妇久久久久久久| 成人免费观看视频| 色综合久久久久综合| 欧美性色综合网| 日韩小视频在线观看专区| 久久新电视剧免费观看| 中文字幕av不卡| 亚洲成人精品一区二区| 蜜桃久久精品一区二区| 国产麻豆成人传媒免费观看| jizzjizzjizz欧美| 欧美嫩在线观看| 日本一区二区电影| 午夜久久久久久久久久一区二区|