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

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

?? adpcm.cpp

?? This code demonstrates how to use installed audio codecs to compress a WAVE file.
?? CPP
字號:
#include <afx.h>
#include <dshow.h>
#include <iostream>
using namespace std;
HRESULT AddFilterByCLSID(
    IGraphBuilder *pGraph,  // Pointer to the Filter Graph Manager.
    LPCWSTR wszName,        // A name for the filter.
	const GUID& clsid,      // CLSID of the filter to create.
    IBaseFilter **ppF)      // Receives a pointer to the filter.
{
    if (!pGraph || ! ppF) return E_POINTER;
    *ppF = 0;
    IBaseFilter *pF = 0;
    HRESULT hr = CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER,
        IID_IBaseFilter, reinterpret_cast<void**>(&pF));
    if (SUCCEEDED(hr))
    {
        hr = pGraph->AddFilter(pF, wszName);
        if (SUCCEEDED(hr))
            *ppF = pF;
        else
            pF->Release();
    }
    return hr;
}

int main(int argc,char **argv)
{
	HRESULT hr;
	IBaseFilter *pParser=NULL,*pDest=NULL,*pSourceFilter=NULL,*pADPCM=NULL,*pWriter=NULL;
	IFileSinkFilter2 *pSink=NULL;
	IFileSourceFilter* pSource = NULL;
	IFilterGraph2 *pGraph = NULL;    // Graph builder interface
    IMediaControl *pControl = NULL;  // Media control interface
    IMediaEvent   *pEvent = NULL;    // Media event interface

	CLSID CLSID_WavParser;
	CLSID CLSID_MS_ADPCM;
	CLSID CLSID_WavDest;
	long code;

	UuidFromString((unsigned char*)"3C78B8E2-6C4D-11D1-ADE2-0000F8754B99", &CLSID_WavParser);
	UuidFromString((unsigned char*)"33D9A761-90C8-11D0-BD43-00A0C911CE86", &CLSID_MS_ADPCM);//MS ADPCM
	UuidFromString((unsigned char*)"D51BD5A1-7548-11CF-A520-0080C77EF58A", &CLSID_WavDest);
	
	hr = CoInitialize(NULL);
	if (!SUCCEEDED(hr))
	{
		cout<<"Error:COM";
		return -1;
	}
	
	hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IFilterGraph2, (void**) &pGraph);

	if (!SUCCEEDED(hr))
	{
		cout<<"Error:Graph Builder";
		return -1;
	}
	
	//Obtain MediaContol and MediaEvent interfaces
	pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl));
	pGraph->QueryInterface(IID_IMediaEventEx, reinterpret_cast<void**>(&pEvent));

	if (SUCCEEDED(hr)) {
		//File Source
		hr = AddFilterByCLSID(pGraph, L"File Source", CLSID_AsyncReader, &pSourceFilter);
		if (!SUCCEEDED(hr))
		{
			cout<<"Error:File Source";
			pControl->Release();
			pEvent->Release();
			pSourceFilter->Release();
			return -1;
		}
//		WCHAR wFileName[MAX_PATH];
		//MultiByteToWideChar(CP_ACP, 0, argv[1], -1, wFileName, MAX_PATH);
		
		//Wave File Parser
		hr = AddFilterByCLSID(pGraph, L"Wav Parser", CLSID_WavParser, &pParser);
		if (!SUCCEEDED(hr))
		{
			cout<<"Error:Wav Parser";
			pControl->Release();
			pEvent->Release();
			pSourceFilter->Release();
			return -1;
		}

		HRESULT hr;
		
		ICreateDevEnum *pSysDevEnum = NULL;
		hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,IID_ICreateDevEnum, (void **)&pSysDevEnum);
		if (FAILED(hr))
		{
			return hr;
		}

		// Obtain a class enumerator for the audio compressor category.
		IEnumMoniker *pEnumCat = NULL;
		hr = pSysDevEnum->CreateClassEnumerator(CLSID_AudioCompressorCategory, &pEnumCat, 0);

		if (hr == S_OK) 
		{
			// Enumerate the monikers.
			IMoniker *pMoniker = NULL;
			ULONG cFetched;
			while(pEnumCat->Next(1, &pMoniker, &cFetched) == S_OK)
			{
				IPropertyBag *pPropBag;
				hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pPropBag);
				if (SUCCEEDED(hr))
				{
					// To retrieve the filter's friendly name, do the following:
					VARIANT varName;
					VariantInit(&varName);
					hr = pPropBag->Read(L"FriendlyName", &varName, 0);
					if (SUCCEEDED(hr))
					{
						CString s(varName.bstrVal);
						cout<<s.GetBuffer(s.GetLength())<<"\n";
						s.ReleaseBuffer();
						if(s=="Microsoft ADPCM")
						{
							hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter,(void**)&pADPCM);
							pGraph->AddFilter(pADPCM,L"ADPCM");
							pPropBag->Release();
							pMoniker->Release();
							VariantClear(&varName);
							break;
						}
						// Display the name in your UI somehow.
					}
					VariantClear(&varName);
					pPropBag->Release();
				}
				pMoniker->Release();
			}
			pEnumCat->Release();
		}
		pSysDevEnum->Release();

		hr = AddFilterByCLSID(pGraph, L"Wav Dest", CLSID_WavDest, &pDest);
		
//		MultiByteToWideChar(CP_ACP, 0, argv[2], -1, wFileName, MAX_PATH);
		hr = AddFilterByCLSID(pGraph, L"File Writer", CLSID_FileWriter, &pWriter);
		hr=pWriter->QueryInterface(IID_IFileSinkFilter2,reinterpret_cast<void**>(&pSink));
		if (!SUCCEEDED(hr))
		{
			cout<<"Error:Itf:File Destination";
			pControl->Release();
			pEvent->Release();
			pSourceFilter->Release();
			pParser->Release();
			pADPCM->Release();
			pDest->Release();
			return -1;
		}
		
		pSink->SetFileName(/*wFileName*/L"c:\\out2.wav",NULL);
		pSink->Release();

		//Now run the graph
		if(SUCCEEDED(pGraph->RenderFile(L"c:\\out.wav", NULL)))
		{
			hr=pControl->Run();
			pEvent->WaitForCompletion(5000/*INFINITE*/,&code);
			hr=pControl->Stop();
		}

		//Cleanup
		pControl->Release();
		pEvent->Release();
		pSourceFilter->Release();
		pParser->Release();
		pADPCM->Release();
		pDest->Release();
		pWriter->Release();
		CoUninitialize();

	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区在线| 国产精品三级av| 亚洲va欧美va国产va天堂影院| 91视频免费观看| 亚洲午夜免费视频| 91麻豆精品久久久久蜜臀| 美女网站在线免费欧美精品| 亚洲精品一线二线三线无人区| 久久se这里有精品| 中文字幕不卡在线| 在线观看中文字幕不卡| 天堂成人免费av电影一区| 日韩欧美电影一区| 国产黑丝在线一区二区三区| 亚洲天堂网中文字| 555夜色666亚洲国产免| 久久99国内精品| 中文字幕一区二区三区在线不卡 | 天天做天天摸天天爽国产一区| 欧美日韩在线综合| 国产资源在线一区| 亚洲欧洲色图综合| 91精品久久久久久久99蜜桃 | 九九精品一区二区| 国产精品成人免费| 91精品国产免费久久综合| 国产精品一区一区三区| 一区二区三区精品在线| 日韩欧美一区二区免费| 99久久久久久| 麻豆成人久久精品二区三区小说| 国产精品毛片a∨一区二区三区| 欧美三级韩国三级日本一级| 国产成人亚洲综合a∨猫咪| 一区二区三区日韩精品| www国产成人| 91精品1区2区| 国产一区在线不卡| 亚洲1区2区3区4区| 国产精品麻豆视频| 精品乱人伦一区二区三区| 色婷婷亚洲婷婷| 国产精品一区二区无线| 石原莉奈一区二区三区在线观看| 国产精品传媒入口麻豆| 精品少妇一区二区三区在线播放| 在线观看日韩国产| 成人午夜激情影院| 看电视剧不卡顿的网站| 亚洲一二三专区| 国产精品久久久久婷婷二区次| 欧美一区二区精美| 欧美日韩国产高清一区二区| www.日本不卡| 国产成人免费xxxxxxxx| 久久精品国产秦先生| 亚洲一区二区美女| 亚洲人成精品久久久久久| 国产午夜精品一区二区| 51久久夜色精品国产麻豆| 欧美色精品天天在线观看视频| 99久久婷婷国产综合精品电影 | 久久在线观看免费| 欧美一区二区免费观在线| 欧美日韩另类一区| 色狠狠综合天天综合综合| 成人av资源站| 成人高清在线视频| 日韩一二三四区| 欧美人体做爰大胆视频| 欧美日韩在线播放| 欧美色网一区二区| 欧美系列在线观看| 欧美日韩精品电影| 欧美日韩综合在线| 欧美午夜精品电影| 欧美图片一区二区三区| 欧美日韩精品高清| 制服丝袜国产精品| 日韩三级精品电影久久久| 在线成人av影院| 日韩欧美中文字幕精品| 精品国精品国产| 国产日韩欧美精品电影三级在线| 久久人人97超碰com| 久久精品亚洲国产奇米99| 国产欧美综合色| 中文字幕免费不卡| 一区二区三区中文字幕| 亚洲一级二级在线| 蜜臀av国产精品久久久久| 麻豆精品国产传媒mv男同| 国产在线国偷精品免费看| 国产成人综合视频| 91麻豆精品视频| 在线成人午夜影院| 久久亚洲一区二区三区四区| 中文字幕精品三区| 一区二区国产盗摄色噜噜| 日韩电影免费在线看| 极品少妇一区二区三区精品视频 | 欧美精品一级二级| 中文成人av在线| 成人手机在线视频| 国产精品一区免费在线观看| 粉嫩aⅴ一区二区三区四区五区| av网站一区二区三区| 色偷偷一区二区三区| 91精选在线观看| 国产日本欧美一区二区| 亚洲精品免费在线播放| 蜜桃av一区二区在线观看| 国产成人av一区二区| 在线日韩国产精品| 久久久久国产精品麻豆ai换脸| 亚洲视频一二三区| 久久精品国产亚洲高清剧情介绍 | 日本午夜精品视频在线观看 | 国产精品久久毛片a| 亚洲电影中文字幕在线观看| 久久国产生活片100| 91啪亚洲精品| 欧美日韩在线观看一区二区 | 国产欧美一区二区精品仙草咪| 最好看的中文字幕久久| 免费人成精品欧美精品| 99免费精品视频| 欧美一区二区视频在线观看2022| 欧美国产精品专区| 日韩成人一级大片| 色先锋资源久久综合| 精品久久国产老人久久综合| 一区二区三区四区在线播放 | 亚洲成人在线网站| 不卡一区二区三区四区| 日韩欧美黄色影院| 亚洲国产精品麻豆| 99久久婷婷国产| 久久综合九色综合97婷婷女人 | 91精品国产综合久久久久久 | 国产三级三级三级精品8ⅰ区| 亚洲伊人色欲综合网| 暴力调教一区二区三区| 久久综合精品国产一区二区三区 | 精品少妇一区二区三区| 一区二区三区精品久久久| 国产91精品入口| 久久婷婷色综合| 免费高清在线一区| 欧美精品v国产精品v日韩精品| 亚洲视频一二区| 成人aa视频在线观看| 日本一区二区三区在线观看| 精品一区免费av| 日韩欧美亚洲一区二区| 青青草原综合久久大伊人精品优势 | 91精彩视频在线观看| 国产精品乱人伦| 成人久久18免费网站麻豆 | 中文字幕国产一区| 国产成人精品三级| 久久精品欧美一区二区三区不卡 | 欧美在线你懂的| 久久久国产午夜精品| 久久草av在线| 精品噜噜噜噜久久久久久久久试看 | 亚洲va韩国va欧美va精品| 色婷婷激情一区二区三区| 亚洲同性同志一二三专区| 99综合电影在线视频| 国产精品成人一区二区三区夜夜夜| 国产成人日日夜夜| 中文字幕不卡在线观看| 国产99一区视频免费 | 国产精品不卡视频| 99久久久精品免费观看国产蜜| 国产精品美女视频| 99精品视频在线观看| 亚洲女爱视频在线| 欧美午夜影院一区| 日本特黄久久久高潮| 日韩欧美国产综合在线一区二区三区| 久久99精品久久久| 国产欧美精品一区二区色综合| 不卡的av网站| 亚洲一区二区中文在线| 69久久夜色精品国产69蝌蚪网| 美国十次综合导航| 国产精品日日摸夜夜摸av| 91视频www| 日韩av电影免费观看高清完整版在线观看 | 国产最新精品精品你懂的| 国产色综合久久| 色偷偷久久人人79超碰人人澡| 亚洲午夜久久久久久久久电影院| 欧美精品tushy高清| 国产综合久久久久久鬼色 | 色屁屁一区二区| 奇米777欧美一区二区| 久久久久国产免费免费|