From 45edf54f6aaf54adb7b42f786b60cd3f23d9be2f Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 1 Jun 2006 12:28:44 +0000 Subject: Initial work on pjsua ActiveX component git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@487 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip-apps/src/activex-pjsua/activex-pjsua.cpp | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 pjsip-apps/src/activex-pjsua/activex-pjsua.cpp (limited to 'pjsip-apps/src/activex-pjsua/activex-pjsua.cpp') diff --git a/pjsip-apps/src/activex-pjsua/activex-pjsua.cpp b/pjsip-apps/src/activex-pjsua/activex-pjsua.cpp new file mode 100644 index 00000000..2736affd --- /dev/null +++ b/pjsip-apps/src/activex-pjsua/activex-pjsua.cpp @@ -0,0 +1,72 @@ +// ActivePJSUA.cpp : Implementation of DLL Exports. + + +// Note: Proxy/Stub Information +// To build a separate proxy/stub DLL, +// run nmake -f ActivePJSUAps.mk in the project directory. + +#include "stdafx.h" +#include "resource.h" +#include +#include "activex-pjsua.h" + +#include "activex-pjsua_i.c" +#include "app.h" + + +CComModule _Module; + +BEGIN_OBJECT_MAP(ObjectMap) +OBJECT_ENTRY(CLSID_App, CApp) +END_OBJECT_MAP() + +///////////////////////////////////////////////////////////////////////////// +// DLL Entry Point + +extern "C" +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) +{ + if (dwReason == DLL_PROCESS_ATTACH) + { + _Module.Init(ObjectMap, hInstance, &LIBID_ACTIVEPJSUALib); + DisableThreadLibraryCalls(hInstance); + } + else if (dwReason == DLL_PROCESS_DETACH) + _Module.Term(); + return TRUE; // ok +} + +///////////////////////////////////////////////////////////////////////////// +// Used to determine whether the DLL can be unloaded by OLE + +STDAPI DllCanUnloadNow(void) +{ + return (_Module.GetLockCount()==0) ? S_OK : S_FALSE; +} + +///////////////////////////////////////////////////////////////////////////// +// Returns a class factory to create an object of the requested type + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + return _Module.GetClassObject(rclsid, riid, ppv); +} + +///////////////////////////////////////////////////////////////////////////// +// DllRegisterServer - Adds entries to the system registry + +STDAPI DllRegisterServer(void) +{ + // registers object, typelib and all interfaces in typelib + return _Module.RegisterServer(TRUE); +} + +///////////////////////////////////////////////////////////////////////////// +// DllUnregisterServer - Removes entries from the system registry + +STDAPI DllUnregisterServer(void) +{ + return _Module.UnregisterServer(TRUE); +} + + -- cgit v1.2.3