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

📄 dllexport.cpp

📁 mysee网络直播源代码Mysee Lite是Mysee独立研发的网络视频流媒体播放系统。在应有了P2P技术和一系列先进流媒体技术之后
💻 CPP
字号:
/*
 *  Openmysee
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
// DLLExport.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "GraphCenter.h"
//CGraphCenter loGraphCenter
BOOL WINAPI DllMain( HANDLE hModule, 
					  DWORD  ul_reason_for_call, 
					  LPVOID lpReserved
					  )
{
	//DbgSetModuleLevel(LOG_TRACE, 5);
	return TRUE;
}

//创建
extern "C" __declspec(dllexport) HANDLE CreateGetZZL()
{
	HRESULT hr;
	CGraphCenter *lpGraphCenter = NULL;	
	lpGraphCenter = new CGraphCenter;
	if (lpGraphCenter == NULL)
	{
		return NULL;
	}
	hr = lpGraphCenter->Initialize();
	if (FAILED(hr))
	{
		return NULL;
	}
	return lpGraphCenter;
}


//设置源avi文件
//ahInstance ——实例句柄,astrFileName——源avi文件名,astrZZLDirectory ——ZZL文件夹,astrZZLFile——ZZL文件名 
extern "C" __declspec(dllexport) BOOL SetFileName(HANDLE ahInstance, LPCTSTR astrFileName, LPCTSTR astrZZLDirectory, LPCTSTR astrZZLFile)
{
	assert(ahInstance);
	if (NULL == ahInstance)
	{
		MessageBox(NULL, "动态连接库的句柄不对,请重新创建。", "错误", MB_OK|MB_ICONSTOP);
		return FALSE;
	}
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	HRESULT hr;

	char lszZZLFile[MAXLENGTH];
	strcpy(lszZZLFile, astrZZLFile);
	
	char* lpByte;
	lpByte = strrchr(lszZZLFile, '.');
	if (NULL != lpByte)
	{
		*lpByte = '\0';
	}

	do
	{
		-- lpByte;
	}
	while (*lpByte == ' ');
	*(++ lpByte) = '\0';

	hr = lpGraphCenter->BuildGraph(astrFileName, astrZZLDirectory, lszZZLFile);
	if (FAILED(hr))
	{
		//MessageBox(NULL,"转化过程意外中断,可能是用户取消操作,也可能是源文件只有视频", "注意", MB_OK|MB_ICONINFORMATION);
		TraceLog1("%s转化过程意外中断,可能是用户取消操作,也可能是源文件只有视频\n", lszZZLFile);
		return FALSE;
	}
	return TRUE; 
}

//开始转化AVI
extern "C" __declspec(dllexport) BOOL Run(HANDLE ahInstance)
{
	HRESULT hr;
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	hr = lpGraphCenter->Run();
	if (FAILED(hr))
	{
		return FALSE;
	}
	return TRUE;	
}

extern "C" __declspec(dllexport) BOOL Stop(HANDLE ahInstance)
{
	HRESULT hr;
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	hr = lpGraphCenter->Stop();
	if (FAILED(hr))
	{
		return FALSE;
	}
	return TRUE;
}

//0为运行,1为停止。-1为发生意外错误停止
extern "C" __declspec(dllexport) int GetState(HANDLE ahInstance)
{
	assert(ahInstance);
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	return lpGraphCenter->GetState();
}

extern "C" __declspec(dllexport) float GetCompressedSpeed(HANDLE ahInstance)
{
	assert(ahInstance);
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	if (0 != lpGraphCenter->GetState())
	{
		return 0;
	}	
	return lpGraphCenter->GetCompressedSpeed();
}

extern "C" __declspec(dllexport) void SetStateProc(HANDLE ahInstance, GetZZLState* apStateproc, void* apUserPara)
{
	assert(ahInstance);
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;
	lpGraphCenter->SetStateProc(apStateproc, apUserPara);
	
}

extern "C" __declspec(dllexport) void CloseGetZZL(HANDLE ahInstance)
{
	assert(ahInstance);
	CGraphCenter* lpGraphCenter = (CGraphCenter*)ahInstance;

	delete lpGraphCenter;
	lpGraphCenter = NULL;	
}








⌨️ 快捷键说明

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