⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amr_reg.cpp

📁 MONOGRAM AMR Splitter v0.9.0.1
💻 CPP
字号:
//-----------------------------------------------------------------------------
//
//	AMR Demuxer
//
//	Author : Igor Janos
//
//-----------------------------------------------------------------------------
#include "stdafx.h"

#pragma warning(disable: 4996)

//-----------------------------------------------------------------------------
//
//	Registry Information
//
//-----------------------------------------------------------------------------


const AMOVIESETUP_MEDIATYPE sudPinTypes[] =   
		{ 
			{
				&MEDIATYPE_Stream,
				&MEDIASUBTYPE_None
			},
			{
				&MEDIATYPE_Stream,
				&MEDIASUBTYPE_AMR
			},
			{
				&MEDIATYPE_Audio,
				&MEDIASUBTYPE_AMR
			}
		};

const AMOVIESETUP_PIN psudPins[] = 
		{ 
			{ 
				L"Input",
				FALSE,              // bRendered
                FALSE,              // bOutput
                FALSE,              // bZero
                FALSE,              // bMany
                &CLSID_NULL,        // clsConnectsToFilter
                NULL,               // strConnectsToPin
                2,                  // nTypes
                &sudPinTypes[0]		// lpTypes
			}      
             , 
			{ 
				L"Output",          // strName
                FALSE,              // bRendered
                TRUE,               // bOutput
                FALSE,              // bZero
                TRUE,	            // bMany
                &CLSID_NULL,        // clsConnectsToFilter
                NULL,	            // strConnectsToPin
                1,                  // nTypes
                &sudPinTypes[2]		// lpTypes
			} 
		};   


const AMOVIESETUP_FILTER sudAMRDemuxer = 
		{ 
			&CLSID_MonogramAMRDemux,			// clsID
            L"MONOGRAM AMR Splitter",	// strName
            MERIT_NORMAL,					// dwMerit
            2,								// nPins
            psudPins						// lpPin 
		};                     

CFactoryTemplate g_Templates[]=
		{
			{
				L"MONOGRAM AMR Splitter",
				&CLSID_MonogramAMRDemux,
				CAMRDemux::CreateInstance, 
				NULL,
				&sudAMRDemuxer 
			},
			{
				L"MONOGRAM AMR Splitter",
				&CLSID_MonogramAMRDemuxPage,
				CAMRPropertyPage::CreateInstance
			}
		};

int g_cTemplates = sizeof(g_Templates)/sizeof(g_Templates[0]);


//-----------------------------------------------------------------------------
//
//	DLL Entry Points
//
//-----------------------------------------------------------------------------


HRESULT Register_AMR_Types()
{
	CRegKey	r;
	if (r.Create(HKEY_CLASSES_ROOT, _T("Media Type\\{E436EB83-524F-11CE-9F53-0020AF0BA770}\\{726D6173-0000-0010-8000-00AA00389B71}")) != ERROR_SUCCESS) {
		return E_FAIL;
	}

	// write the string
	r.SetStringValue(_T("0"), _T("0,6,,2321414D520A"));
	r.SetStringValue(_T("Source Filter"), _T("{E436EBB5-524F-11CE-9F53-0020AF0BA770}"));	// file source async
	r.Close();

	return NOERROR;
}

HRESULT Unregister_AMR_Types()
{
	CRegKey	r;
	if (r.Create(HKEY_CLASSES_ROOT, _T("Media Type\\{E436EB83-524F-11CE-9F53-0020AF0BA770}")) == ERROR_SUCCESS) {
		r.DeleteSubKey(_T("{726D6173-0000-0010-8000-00AA00389B71}"));
		r.Close();
	}

	return NOERROR;
}

STDAPI DllRegisterServer() 
{
	HRESULT hr = Register_AMR_Types();
	if (FAILED(hr)) return hr;

	return AMovieDllRegisterServer2(TRUE);
}

STDAPI DllUnregisterServer()
{
	Unregister_AMR_Types();
	return AMovieDllRegisterServer2(FALSE);
}

extern "C" BOOL WINAPI _DllMainCRTStartup(HINSTANCE, ULONG, LPVOID);
extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);

BOOL APIENTRY AMRFilterDllMain(HANDLE hModule, DWORD  dwReason, LPVOID lpReserved)
{
	_DllMainCRTStartup((HINSTANCE)hModule, dwReason, lpReserved);
	return DllEntryPoint((HINSTANCE)(hModule), dwReason, lpReserved);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -