diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2005-10-19 03:18:15 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2005-10-19 03:18:15 +0000 |
| commit | 65dc2802ca18f4ddba2bca00997eaf6084eb7cc1 (patch) | |
| tree | 3330b759ac3678a7a9987a9e96e0568d55551d53 /com/COMTest1.cpp | |
| parent | 7b6b0968e40f03f2a701d54da09494757f640614 (diff) | |
| download | PROJ-65dc2802ca18f4ddba2bca00997eaf6084eb7cc1.tar.gz PROJ-65dc2802ca18f4ddba2bca00997eaf6084eb7cc1.zip | |
New
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1308 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'com/COMTest1.cpp')
| -rwxr-xr-x | com/COMTest1.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/com/COMTest1.cpp b/com/COMTest1.cpp new file mode 100755 index 00000000..4939b8b4 --- /dev/null +++ b/com/COMTest1.cpp @@ -0,0 +1,72 @@ +// COMTest1.cpp : Implementation of DLL Exports. + + +// Note: Proxy/Stub Information +// To build a separate proxy/stub DLL, +// run nmake -f COMTest1ps.mk in the project directory. + +#include "stdafx.h" +#include "resource.h" +#include <initguid.h> +#include "COMTest1.h" + +#include "COMTest1_i.c" +#include "ProjDef.h" + + +CComModule _Module; + +BEGIN_OBJECT_MAP(ObjectMap) +OBJECT_ENTRY(CLSID_ProjDef, CProjDef) +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_PROJ4Lib); + 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); +} + + |
