www.gusucode.com > 用ActiveX重新包装了一个点对点通讯的DLL文件源码程序 > 用ActiveX重新包装了一个点对点通讯的DLL文件源码程序/P2P语音通信/VP2P.cpp

    
// VP2P.cpp : CVP2PApp 和 DLL 注册的实现。
/*****************************************************
作者:你家的玻璃不是我砸的@vckbase.com

联系方法:xiny120@hotmail.com

BLOG:http://blog.vckbase.com/zaboli     http://www.hotlove.cn

程序简介:
    用ActiveX重新包装了一个点对点通讯的DLL文件(该DLL文件是VCKBASE上的一位前辈写的)
偶只是把它改成了一个MFC的ActiveX,这样可以方便的在VB,vbs,js等脚本语言,特别是用在IE
里面特别方便了。

    此程序主要向你说明,其实ActiveX没有多么的神秘。你遵守的它的规则,什么功能都能添加到
ActiveX中,并且和写其它的普通的程序没有什么区别!

缺点:因为同时只能有一个程序打开音频设备,所以不能开两个实例进行聊天。本来打算改改好,只
发布成品ActiveX,不发布原代码的。可最近鸟事很多,没时间。。所以连源代码都贡献了~~~
大家可以自己完善一下。如果您做了什么好的改进,请您给作者我发一份,我会十分感谢!!!


********************************************************/
#include "stdafx.h"
#include "VP2P.h"
#include "interface.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


CVP2PApp NEAR theApp;

const GUID CDECL BASED_CODE _tlid =
		{ 0x5D007EA1, 0xD20F, 0x4125, { 0x90, 0xC4, 0x23, 0xE5, 0xE, 0x8E, 0x21, 0x36 } };
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;

//#include "AudioCode.h"


// CVP2PApp : 有关实现的信息,请参阅 VP2P.cpp。
//CAudioCode g_ACode;



// CVP2PApp::InitInstance - DLL 初始化

BOOL CVP2PApp::InitInstance()
{
	BOOL bInit = COleControlModule::InitInstance();
	if (!AfxSocketInit ())
	{
		AfxMessageBox("Ini the socket error in talk base model.\n");
	};


	if (bInit)
	{
		// TODO: 在此添加您自己的模块初始化代码。



	}

	return bInit;
}



// CVP2PApp::ExitInstance - DLL 终止

int CVP2PApp::ExitInstance()
{
	// TODO: 在此添加您自己的模块终止代码。

	return COleControlModule::ExitInstance();
}



// DllRegisterServer - 将项添加到系统注册表

STDAPI DllRegisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
		return ResultFromScode(SELFREG_E_CLASS);

	return NOERROR;
}



// DllUnregisterServer - 将项从系统注册表中移除

STDAPI DllUnregisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
		return ResultFromScode(SELFREG_E_CLASS);

	return NOERROR;
}