diff options
| -rwxr-xr-x | com/COMTest1.aps | bin | 0 -> 3720 bytes | |||
| -rwxr-xr-x | com/COMTest1.cpp | 72 | ||||
| -rwxr-xr-x | com/COMTest1.def | 9 | ||||
| -rwxr-xr-x | com/COMTest1.dsp | 350 | ||||
| -rwxr-xr-x | com/COMTest1.dsw | 29 | ||||
| -rwxr-xr-x | com/COMTest1.idl | 44 | ||||
| -rwxr-xr-x | com/COMTest1.ncb | bin | 0 -> 66559 bytes | |||
| -rwxr-xr-x | com/COMTest1.opt | bin | 0 -> 51711 bytes | |||
| -rwxr-xr-x | com/COMTest1.plg | 89 | ||||
| -rwxr-xr-x | com/COMTest1.rc | 128 | ||||
| -rwxr-xr-x | com/COMTest1_p.c | 571 | ||||
| -rwxr-xr-x | com/COMTest1ps.def | 11 | ||||
| -rwxr-xr-x | com/COMTest1ps.mk | 16 | ||||
| -rwxr-xr-x | com/ProjDef.cpp | 115 | ||||
| -rwxr-xr-x | com/ProjDef.h | 49 | ||||
| -rwxr-xr-x | com/ProjDef.rgs | 26 | ||||
| -rwxr-xr-x | com/StdAfx.cpp | 12 | ||||
| -rwxr-xr-x | com/StdAfx.h | 27 | ||||
| -rwxr-xr-x | com/VB6Test.frm | 50 | ||||
| -rwxr-xr-x | com/dlldata.c | 38 | ||||
| -rwxr-xr-x | com/resource.h | 17 |
21 files changed, 1653 insertions, 0 deletions
diff --git a/com/COMTest1.aps b/com/COMTest1.aps Binary files differnew file mode 100755 index 00000000..e93148fa --- /dev/null +++ b/com/COMTest1.aps 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); +} + + diff --git a/com/COMTest1.def b/com/COMTest1.def new file mode 100755 index 00000000..a14e3f8b --- /dev/null +++ b/com/COMTest1.def @@ -0,0 +1,9 @@ +; COMTest1.def : Declares the module parameters. + +LIBRARY "PROJ4COM.DLL" + +EXPORTS + DllCanUnloadNow @1 PRIVATE + DllGetClassObject @2 PRIVATE + DllRegisterServer @3 PRIVATE + DllUnregisterServer @4 PRIVATE diff --git a/com/COMTest1.dsp b/com/COMTest1.dsp new file mode 100755 index 00000000..5a2115db --- /dev/null +++ b/com/COMTest1.dsp @@ -0,0 +1,350 @@ +# Microsoft Developer Studio Project File - Name="COMTest1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=COMTest1 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "COMTest1.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "COMTest1.mak" CFG="COMTest1 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "COMTest1 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "COMTest1 - Win32 Unicode Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "COMTest1 - Win32 Release MinSize" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "COMTest1 - Win32 Release MinDependency" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "COMTest1 - Win32 Unicode Release MinSize" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "COMTest1 - Win32 Unicode Release MinDependency" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "COMTest1 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "C:\warmerda\proj\src" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib C:\warmerda\proj\src\proj_i.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/PROJ4COM.dll" /pdbtype:sept +# Begin Custom Build - Performing registration +OutDir=.\Debug +TargetPath=.\Debug\PROJ4COM.dll +InputPath=.\Debug\PROJ4COM.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "DebugU" +# PROP BASE Intermediate_Dir "DebugU" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# Begin Custom Build - Performing registration +OutDir=.\DebugU +TargetPath=.\DebugU\COMTest1.dll +InputPath=.\DebugU\COMTest1.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + if "%OS%"=="" goto NOTNT + if not "%OS%"=="Windows_NT" goto NOTNT + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + goto end + :NOTNT + echo Warning : Cannot register Unicode DLL on Windows 95 + :end + +# End Custom Build + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Release MinSize" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseMinSize" +# PROP BASE Intermediate_Dir "ReleaseMinSize" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseMinSize" +# PROP Intermediate_Dir "ReleaseMinSize" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Performing registration +OutDir=.\ReleaseMinSize +TargetPath=.\ReleaseMinSize\COMTest1.dll +InputPath=.\ReleaseMinSize\COMTest1.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Release MinDependency" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseMinDependency" +# PROP BASE Intermediate_Dir "ReleaseMinDependency" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseMinDependency" +# PROP Intermediate_Dir "ReleaseMinDependency" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Performing registration +OutDir=.\ReleaseMinDependency +TargetPath=.\ReleaseMinDependency\COMTest1.dll +InputPath=.\ReleaseMinDependency\COMTest1.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Release MinSize" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseUMinSize" +# PROP BASE Intermediate_Dir "ReleaseUMinSize" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseUMinSize" +# PROP Intermediate_Dir "ReleaseUMinSize" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Performing registration +OutDir=.\ReleaseUMinSize +TargetPath=.\ReleaseUMinSize\COMTest1.dll +InputPath=.\ReleaseUMinSize\COMTest1.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + if "%OS%"=="" goto NOTNT + if not "%OS%"=="Windows_NT" goto NOTNT + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + goto end + :NOTNT + echo Warning : Cannot register Unicode DLL on Windows 95 + :end + +# End Custom Build + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Release MinDependency" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseUMinDependency" +# PROP BASE Intermediate_Dir "ReleaseUMinDependency" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseUMinDependency" +# PROP Intermediate_Dir "ReleaseUMinDependency" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Performing registration +OutDir=.\ReleaseUMinDependency +TargetPath=.\ReleaseUMinDependency\COMTest1.dll +InputPath=.\ReleaseUMinDependency\COMTest1.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + if "%OS%"=="" goto NOTNT + if not "%OS%"=="Windows_NT" goto NOTNT + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + goto end + :NOTNT + echo Warning : Cannot register Unicode DLL on Windows 95 + :end + +# End Custom Build + +!ENDIF + +# Begin Target + +# Name "COMTest1 - Win32 Debug" +# Name "COMTest1 - Win32 Unicode Debug" +# Name "COMTest1 - Win32 Release MinSize" +# Name "COMTest1 - Win32 Release MinDependency" +# Name "COMTest1 - Win32 Unicode Release MinSize" +# Name "COMTest1 - Win32 Unicode Release MinDependency" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\COMTest1.cpp +# End Source File +# Begin Source File + +SOURCE=.\COMTest1.def +# End Source File +# Begin Source File + +SOURCE=.\COMTest1.idl + +!IF "$(CFG)" == "COMTest1 - Win32 Debug" + +# ADD MTL /tlb ".\PROJ4COM.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Debug" + +# ADD MTL /tlb ".\COMTest1.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Release MinSize" + +# ADD MTL /tlb ".\COMTest1.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Release MinDependency" + +# ADD MTL /tlb ".\COMTest1.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Release MinSize" + +# ADD MTL /tlb ".\COMTest1.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ELSEIF "$(CFG)" == "COMTest1 - Win32 Unicode Release MinDependency" + +# ADD MTL /tlb ".\COMTest1.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\COMTest1.rc +# End Source File +# Begin Source File + +SOURCE=.\ProjDef.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ProjDef.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\ProjDef.rgs +# End Source File +# End Group +# End Target +# End Project diff --git a/com/COMTest1.dsw b/com/COMTest1.dsw new file mode 100755 index 00000000..9a011802 --- /dev/null +++ b/com/COMTest1.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "COMTest1"=.\COMTest1.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/com/COMTest1.idl b/com/COMTest1.idl new file mode 100755 index 00000000..ed5bc023 --- /dev/null +++ b/com/COMTest1.idl @@ -0,0 +1,44 @@ +// COMTest1.idl : IDL source for COMTest1.dll +// + +// This file will be processed by the MIDL tool to +// produce the type library (COMTest1.tlb) and marshalling code. + +import "oaidl.idl"; +import "ocidl.idl"; + [ + object, + uuid(28849AA6-E8FB-4077-8D7A-D83CDFC2DC44), + dual, + helpstring("IProjDef Interface"), + pointer_default(unique) + ] + interface IProjDef : IDispatch + { + [id(1), helpstring("method Initialize")] HRESULT Initialize([in] BSTR proj_string, [out, retval] int *success ); + [id(2), helpstring("method TransformPoint3D")] HRESULT TransformPoint3D([in] IUnknown *srcProj, + [in,out] double *x, [in, out] double *y, [in, out] double *z, [out, retval] int *success ); + [id(3), helpstring("method GetHandle")] HRESULT GetHandle([out, retval] long *pHandle ); + [id(4), helpstring("method IsLatLong")] HRESULT IsLatLong([out, retval] int *result); + [id(5), helpstring("method GetLastError")] HRESULT GetLastError([out, retval] BSTR *error ); + }; + +[ + uuid(A0ADE3D8-9A85-4BD3-AD56-BFEF42495130), + version(1.0), + helpstring("PROJ.4") +] +library PROJ4Lib +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + [ + uuid(B9B8F0A3-D9F8-4537-9A03-329DC9AE144C), + helpstring("ProjDef Class") + ] + coclass ProjDef + { + [default] interface IProjDef; + }; +}; diff --git a/com/COMTest1.ncb b/com/COMTest1.ncb Binary files differnew file mode 100755 index 00000000..650e1462 --- /dev/null +++ b/com/COMTest1.ncb diff --git a/com/COMTest1.opt b/com/COMTest1.opt Binary files differnew file mode 100755 index 00000000..ec93c1e3 --- /dev/null +++ b/com/COMTest1.opt diff --git a/com/COMTest1.plg b/com/COMTest1.plg new file mode 100755 index 00000000..0b219460 --- /dev/null +++ b/com/COMTest1.plg @@ -0,0 +1,89 @@ +<html> +<body> +<pre> +<h1>Build Log</h1> +<h3> +--------------------Configuration: COMTest1 - Win32 Debug-------------------- +</h3> +<h3>Command Lines</h3> +Creating command line "midl.exe /tlb ".\PROJ4COM.tlb" /h "COMTest1.h" /iid "COMTest1_i.c" /Oicf "C:\warmerda\COMTest1\COMTest1.idl"" +Creating command line "rc.exe /l 0x409 /fo"Debug/COMTest1.res" /d "_DEBUG" "C:\warmerda\COMTest1\COMTest1.rc"" +Creating temporary file "C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C2.tmp" with contents +[ +/nologo /MTd /W3 /Gm /ZI /Od /I "C:\warmerda\proj\src" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"Debug/COMTest1.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\warmerda\COMTest1\COMTest1.cpp" +"C:\warmerda\COMTest1\ProjDef.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C2.tmp" +Creating temporary file "C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C3.tmp" with contents +[ +/nologo /MTd /W3 /Gm /ZI /Od /I "C:\warmerda\proj\src" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"Debug/COMTest1.pch" /Yc"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"C:\warmerda\COMTest1\StdAfx.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C3.tmp" +Creating temporary file "C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C4.tmp" with contents +[ +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib C:\warmerda\proj\src\proj_i.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"Debug/PROJ4COM.pdb" /debug /machine:I386 /def:".\COMTest1.def" /out:"Debug/PROJ4COM.dll" /implib:"Debug/PROJ4COM.lib" /pdbtype:sept +.\Debug\COMTest1.obj +.\Debug\ProjDef.obj +.\Debug\StdAfx.obj +.\Debug\COMTest1.res +] +Creating command line "link.exe @C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C4.tmp" +Creating temporary file "C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C5.bat" with contents +[ +@echo off +regsvr32 /s /c ".\Debug\PROJ4COM.dll" +echo regsvr32 exec. time > ".\Debug\regsvr32.trg" +] +Creating command line "C:\DOCUME~1\warmerda\LOCALS~1\Temp\RSP2C5.bat" +Creating Type Library... +Microsoft (R) MIDL Compiler Version 5.01.0164 +Copyright (c) Microsoft Corp 1991-1997. All rights reserved. +Processing C:\warmerda\COMTest1\COMTest1.idl +COMTest1.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\oaidl.idl +oaidl.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\objidl.idl +objidl.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\unknwn.idl +unknwn.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\wtypes.idl +wtypes.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\basetsd.h +basetsd.h +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\guiddef.h +guiddef.h +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\ocidl.idl +ocidl.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\oleidl.idl +oleidl.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\servprov.idl +servprov.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\urlmon.idl +urlmon.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\msxml.idl +msxml.idl +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\oaidl.acf +oaidl.acf +Processing C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE\ocidl.acf +ocidl.acf +Compiling resources... +Compiling... +StdAfx.cpp +Compiling... +COMTest1.cpp +ProjDef.cpp +Generating Code... +Linking... + Creating library Debug/PROJ4COM.lib and object Debug/PROJ4COM.exp +<h3>Output Window</h3> +Performing registration + + + +<h3>Results</h3> +PROJ4COM.dll - 0 error(s), 0 warning(s) +</pre> +</body> +</html> diff --git a/com/COMTest1.rc b/com/COMTest1.rc new file mode 100755 index 00000000..6b16d02a --- /dev/null +++ b/com/COMTest1.rc @@ -0,0 +1,128 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "1 TYPELIB ""COMTest1.tlb""\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "PROJ.4 COM Module\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "PROJ4\0" + VALUE "LegalCopyright", "Copyright 2005\0" + VALUE "LegalTrademarks", "\0" + VALUE "OLESelfRegister", "\0" + VALUE "OriginalFilename", "PROJ4COM.DLL\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "PROJ.4 COM\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// REGISTRY +// + +IDR_PROJDEF REGISTRY DISCARDABLE "ProjDef.rgs" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_PROJNAME "PROJ4COM" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +1 TYPELIB "COMTest1.tlb" + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/com/COMTest1_p.c b/com/COMTest1_p.c new file mode 100755 index 00000000..787f56ab --- /dev/null +++ b/com/COMTest1_p.c @@ -0,0 +1,571 @@ +/* this ALWAYS GENERATED file contains the proxy stub code */ + + +/* File created by MIDL compiler version 5.01.0164 */ +/* at Tue Oct 18 23:10:12 2005 + */ +/* Compiler settings for C:\warmerda\COMTest1\COMTest1.idl: + Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext + error checks: allocation ref bounds_check enum stub_data +*/ +//@@MIDL_FILE_HEADING( ) + +#define USE_STUBLESS_PROXY + + +/* verify that the <rpcproxy.h> version is high enough to compile this file*/ +#ifndef __REDQ_RPCPROXY_H_VERSION__ +#define __REQUIRED_RPCPROXY_H_VERSION__ 440 +#endif + + +#include "rpcproxy.h" +#ifndef __RPCPROXY_H_VERSION__ +#error this stub requires an updated version of <rpcproxy.h> +#endif // __RPCPROXY_H_VERSION__ + + +#include "COMTest1.h" + +#define TYPE_FORMAT_STRING_SIZE 81 +#define PROC_FORMAT_STRING_SIZE 171 + +typedef struct _MIDL_TYPE_FORMAT_STRING + { + short Pad; + unsigned char Format[ TYPE_FORMAT_STRING_SIZE ]; + } MIDL_TYPE_FORMAT_STRING; + +typedef struct _MIDL_PROC_FORMAT_STRING + { + short Pad; + unsigned char Format[ PROC_FORMAT_STRING_SIZE ]; + } MIDL_PROC_FORMAT_STRING; + + +extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString; +extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString; + + +/* Object interface: IUnknown, ver. 0.0, + GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */ + + +/* Object interface: IDispatch, ver. 0.0, + GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */ + + +/* Object interface: IProjDef, ver. 0.0, + GUID={0x28849AA6,0xE8FB,0x4077,{0x8D,0x7A,0xD8,0x3C,0xDF,0xC2,0xDC,0x44}} */ + + +extern const MIDL_STUB_DESC Object_StubDesc; + + +extern const MIDL_SERVER_INFO IProjDef_ServerInfo; + +#pragma code_seg(".orpc") +extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[1]; + +static const MIDL_STUB_DESC Object_StubDesc = + { + 0, + NdrOleAllocate, + NdrOleFree, + 0, + 0, + 0, + 0, + 0, + __MIDL_TypeFormatString.Format, + 1, /* -error bounds_check flag */ + 0x20000, /* Ndr library version */ + 0, + 0x50100a4, /* MIDL Version 5.1.164 */ + 0, + UserMarshalRoutines, + 0, /* notify & notify_flag routine table */ + 1, /* Flags */ + 0, /* Reserved3 */ + 0, /* Reserved4 */ + 0 /* Reserved5 */ + }; + +static const unsigned short IProjDef_FormatStringOffsetTable[] = + { + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + (unsigned short) -1, + 0, + 34, + 86, + 114, + 142 + }; + +static const MIDL_SERVER_INFO IProjDef_ServerInfo = + { + &Object_StubDesc, + 0, + __MIDL_ProcFormatString.Format, + &IProjDef_FormatStringOffsetTable[-3], + 0, + 0, + 0, + 0 + }; + +static const MIDL_STUBLESS_PROXY_INFO IProjDef_ProxyInfo = + { + &Object_StubDesc, + __MIDL_ProcFormatString.Format, + &IProjDef_FormatStringOffsetTable[-3], + 0, + 0, + 0 + }; + +CINTERFACE_PROXY_VTABLE(12) _IProjDefProxyVtbl = +{ + &IProjDef_ProxyInfo, + &IID_IProjDef, + IUnknown_QueryInterface_Proxy, + IUnknown_AddRef_Proxy, + IUnknown_Release_Proxy , + 0 /* (void *)-1 /* IDispatch::GetTypeInfoCount */ , + 0 /* (void *)-1 /* IDispatch::GetTypeInfo */ , + 0 /* (void *)-1 /* IDispatch::GetIDsOfNames */ , + 0 /* IDispatch_Invoke_Proxy */ , + (void *)-1 /* IProjDef::Initialize */ , + (void *)-1 /* IProjDef::TransformPoint3D */ , + (void *)-1 /* IProjDef::GetHandle */ , + (void *)-1 /* IProjDef::IsLatLong */ , + (void *)-1 /* IProjDef::GetLastError */ +}; + + +static const PRPC_STUB_FUNCTION IProjDef_table[] = +{ + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + STUB_FORWARDING_FUNCTION, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2, + NdrStubCall2 +}; + +CInterfaceStubVtbl _IProjDefStubVtbl = +{ + &IID_IProjDef, + &IProjDef_ServerInfo, + 12, + &IProjDef_table[-3], + CStdStubBuffer_DELEGATING_METHODS +}; + +#pragma data_seg(".rdata") + +static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[1] = + { + + { + BSTR_UserSize + ,BSTR_UserMarshal + ,BSTR_UserUnmarshal + ,BSTR_UserFree + } + + }; + + +#if !defined(__RPC_WIN32__) +#error Invalid build platform for this stub. +#endif + +#if !(TARGET_IS_NT40_OR_LATER) +#error You need a Windows NT 4.0 or later to run this stub because it uses these features: +#error -Oif or -Oicf, [wire_marshal] or [user_marshal] attribute, more than 32 methods in the interface. +#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems. +#error This app will die there with the RPC_X_WRONG_STUB_VERSION error. +#endif + + +static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString = + { + 0, + { + + /* Procedure Initialize */ + + 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 2 */ NdrFcLong( 0x0 ), /* 0 */ +/* 6 */ NdrFcShort( 0x7 ), /* 7 */ +#ifndef _ALPHA_ +/* 8 */ NdrFcShort( 0x10 ), /* x86, MIPS, PPC Stack size/offset = 16 */ +#else + NdrFcShort( 0x20 ), /* Alpha Stack size/offset = 32 */ +#endif +/* 10 */ NdrFcShort( 0x0 ), /* 0 */ +/* 12 */ NdrFcShort( 0x10 ), /* 16 */ +/* 14 */ 0x6, /* Oi2 Flags: clt must size, has return, */ + 0x3, /* 3 */ + + /* Parameter proj_string */ + +/* 16 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */ +#ifndef _ALPHA_ +/* 18 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */ +#else + NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */ +#endif +/* 20 */ NdrFcShort( 0x1a ), /* Type Offset=26 */ + + /* Parameter success */ + +/* 22 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +#ifndef _ALPHA_ +/* 24 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */ +#else + NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */ +#endif +/* 26 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 28 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +#ifndef _ALPHA_ +/* 30 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */ +#else + NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */ +#endif +/* 32 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure TransformPoint3D */ + +/* 34 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 36 */ NdrFcLong( 0x0 ), /* 0 */ +/* 40 */ NdrFcShort( 0x8 ), /* 8 */ +#ifndef _ALPHA_ +/* 42 */ NdrFcShort( 0x1c ), /* x86, MIPS, PPC Stack size/offset = 28 */ +#else + NdrFcShort( 0x38 ), /* Alpha Stack size/offset = 56 */ +#endif +/* 44 */ NdrFcShort( 0x30 ), /* 48 */ +/* 46 */ NdrFcShort( 0x40 ), /* 64 */ +/* 48 */ 0x6, /* Oi2 Flags: clt must size, has return, */ + 0x6, /* 6 */ + + /* Parameter srcProj */ + +/* 50 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */ +#ifndef _ALPHA_ +/* 52 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */ +#else + NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */ +#endif +/* 54 */ NdrFcShort( 0x28 ), /* Type Offset=40 */ + + /* Parameter x */ + +/* 56 */ NdrFcShort( 0x158 ), /* Flags: in, out, base type, simple ref, */ +#ifndef _ALPHA_ +/* 58 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */ +#else + NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */ +#endif +/* 60 */ 0xc, /* FC_DOUBLE */ + 0x0, /* 0 */ + + /* Parameter y */ + +/* 62 */ NdrFcShort( 0x158 ), /* Flags: in, out, base type, simple ref, */ +#ifndef _ALPHA_ +/* 64 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */ +#else + NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */ +#endif +/* 66 */ 0xc, /* FC_DOUBLE */ + 0x0, /* 0 */ + + /* Parameter z */ + +/* 68 */ NdrFcShort( 0x158 ), /* Flags: in, out, base type, simple ref, */ +#ifndef _ALPHA_ +/* 70 */ NdrFcShort( 0x10 ), /* x86, MIPS, PPC Stack size/offset = 16 */ +#else + NdrFcShort( 0x20 ), /* Alpha Stack size/offset = 32 */ +#endif +/* 72 */ 0xc, /* FC_DOUBLE */ + 0x0, /* 0 */ + + /* Parameter success */ + +/* 74 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +#ifndef _ALPHA_ +/* 76 */ NdrFcShort( 0x14 ), /* x86, MIPS, PPC Stack size/offset = 20 */ +#else + NdrFcShort( 0x28 ), /* Alpha Stack size/offset = 40 */ +#endif +/* 78 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 80 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +#ifndef _ALPHA_ +/* 82 */ NdrFcShort( 0x18 ), /* x86, MIPS, PPC Stack size/offset = 24 */ +#else + NdrFcShort( 0x30 ), /* Alpha Stack size/offset = 48 */ +#endif +/* 84 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure GetHandle */ + +/* 86 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 88 */ NdrFcLong( 0x0 ), /* 0 */ +/* 92 */ NdrFcShort( 0x9 ), /* 9 */ +#ifndef _ALPHA_ +/* 94 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */ +#else + NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */ +#endif +/* 96 */ NdrFcShort( 0x0 ), /* 0 */ +/* 98 */ NdrFcShort( 0x10 ), /* 16 */ +/* 100 */ 0x4, /* Oi2 Flags: has return, */ + 0x2, /* 2 */ + + /* Parameter pHandle */ + +/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +#ifndef _ALPHA_ +/* 104 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */ +#else + NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */ +#endif +/* 106 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +#ifndef _ALPHA_ +/* 110 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */ +#else + NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */ +#endif +/* 112 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure IsLatLong */ + +/* 114 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 116 */ NdrFcLong( 0x0 ), /* 0 */ +/* 120 */ NdrFcShort( 0xa ), /* 10 */ +#ifndef _ALPHA_ +/* 122 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */ +#else + NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */ +#endif +/* 124 */ NdrFcShort( 0x0 ), /* 0 */ +/* 126 */ NdrFcShort( 0x10 ), /* 16 */ +/* 128 */ 0x4, /* Oi2 Flags: has return, */ + 0x2, /* 2 */ + + /* Parameter result */ + +/* 130 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */ +#ifndef _ALPHA_ +/* 132 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */ +#else + NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */ +#endif +/* 134 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Return value */ + +/* 136 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +#ifndef _ALPHA_ +/* 138 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */ +#else + NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */ +#endif +/* 140 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + /* Procedure GetLastError */ + +/* 142 */ 0x33, /* FC_AUTO_HANDLE */ + 0x6c, /* Old Flags: object, Oi2 */ +/* 144 */ NdrFcLong( 0x0 ), /* 0 */ +/* 148 */ NdrFcShort( 0xb ), /* 11 */ +#ifndef _ALPHA_ +/* 150 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */ +#else + NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */ +#endif +/* 152 */ NdrFcShort( 0x0 ), /* 0 */ +/* 154 */ NdrFcShort( 0x8 ), /* 8 */ +/* 156 */ 0x5, /* Oi2 Flags: srv must size, has return, */ + 0x2, /* 2 */ + + /* Parameter error */ + +/* 158 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */ +#ifndef _ALPHA_ +/* 160 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */ +#else + NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */ +#endif +/* 162 */ NdrFcShort( 0x46 ), /* Type Offset=70 */ + + /* Return value */ + +/* 164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */ +#ifndef _ALPHA_ +/* 166 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */ +#else + NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */ +#endif +/* 168 */ 0x8, /* FC_LONG */ + 0x0, /* 0 */ + + 0x0 + } + }; + +static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString = + { + 0, + { + NdrFcShort( 0x0 ), /* 0 */ +/* 2 */ + 0x12, 0x0, /* FC_UP */ +/* 4 */ NdrFcShort( 0xc ), /* Offset= 12 (16) */ +/* 6 */ + 0x1b, /* FC_CARRAY */ + 0x1, /* 1 */ +/* 8 */ NdrFcShort( 0x2 ), /* 2 */ +/* 10 */ 0x9, /* Corr desc: FC_ULONG */ + 0x0, /* */ +/* 12 */ NdrFcShort( 0xfffc ), /* -4 */ +/* 14 */ 0x6, /* FC_SHORT */ + 0x5b, /* FC_END */ +/* 16 */ + 0x17, /* FC_CSTRUCT */ + 0x3, /* 3 */ +/* 18 */ NdrFcShort( 0x8 ), /* 8 */ +/* 20 */ NdrFcShort( 0xfffffff2 ), /* Offset= -14 (6) */ +/* 22 */ 0x8, /* FC_LONG */ + 0x8, /* FC_LONG */ +/* 24 */ 0x5c, /* FC_PAD */ + 0x5b, /* FC_END */ +/* 26 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 28 */ NdrFcShort( 0x0 ), /* 0 */ +/* 30 */ NdrFcShort( 0x4 ), /* 4 */ +/* 32 */ NdrFcShort( 0x0 ), /* 0 */ +/* 34 */ NdrFcShort( 0xffffffe0 ), /* Offset= -32 (2) */ +/* 36 */ + 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */ +/* 38 */ 0x8, /* FC_LONG */ + 0x5c, /* FC_PAD */ +/* 40 */ + 0x2f, /* FC_IP */ + 0x5a, /* FC_CONSTANT_IID */ +/* 42 */ NdrFcLong( 0x0 ), /* 0 */ +/* 46 */ NdrFcShort( 0x0 ), /* 0 */ +/* 48 */ NdrFcShort( 0x0 ), /* 0 */ +/* 50 */ 0xc0, /* 192 */ + 0x0, /* 0 */ +/* 52 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 54 */ 0x0, /* 0 */ + 0x0, /* 0 */ +/* 56 */ 0x0, /* 0 */ + 0x46, /* 70 */ +/* 58 */ + 0x11, 0x8, /* FC_RP [simple_pointer] */ +/* 60 */ 0xc, /* FC_DOUBLE */ + 0x5c, /* FC_PAD */ +/* 62 */ + 0x11, 0x4, /* FC_RP [alloced_on_stack] */ +/* 64 */ NdrFcShort( 0x6 ), /* Offset= 6 (70) */ +/* 66 */ + 0x13, 0x0, /* FC_OP */ +/* 68 */ NdrFcShort( 0xffffffcc ), /* Offset= -52 (16) */ +/* 70 */ 0xb4, /* FC_USER_MARSHAL */ + 0x83, /* 131 */ +/* 72 */ NdrFcShort( 0x0 ), /* 0 */ +/* 74 */ NdrFcShort( 0x4 ), /* 4 */ +/* 76 */ NdrFcShort( 0x0 ), /* 0 */ +/* 78 */ NdrFcShort( 0xfffffff4 ), /* Offset= -12 (66) */ + + 0x0 + } + }; + +const CInterfaceProxyVtbl * _COMTest1_ProxyVtblList[] = +{ + ( CInterfaceProxyVtbl *) &_IProjDefProxyVtbl, + 0 +}; + +const CInterfaceStubVtbl * _COMTest1_StubVtblList[] = +{ + ( CInterfaceStubVtbl *) &_IProjDefStubVtbl, + 0 +}; + +PCInterfaceName const _COMTest1_InterfaceNamesList[] = +{ + "IProjDef", + 0 +}; + +const IID * _COMTest1_BaseIIDList[] = +{ + &IID_IDispatch, + 0 +}; + + +#define _COMTest1_CHECK_IID(n) IID_GENERIC_CHECK_IID( _COMTest1, pIID, n) + +int __stdcall _COMTest1_IID_Lookup( const IID * pIID, int * pIndex ) +{ + + if(!_COMTest1_CHECK_IID(0)) + { + *pIndex = 0; + return 1; + } + + return 0; +} + +const ExtendedProxyFileInfo COMTest1_ProxyFileInfo = +{ + (PCInterfaceProxyVtblList *) & _COMTest1_ProxyVtblList, + (PCInterfaceStubVtblList *) & _COMTest1_StubVtblList, + (const PCInterfaceName * ) & _COMTest1_InterfaceNamesList, + (const IID ** ) & _COMTest1_BaseIIDList, + & _COMTest1_IID_Lookup, + 1, + 2, + 0, /* table of [async_uuid] interfaces */ + 0, /* Filler1 */ + 0, /* Filler2 */ + 0 /* Filler3 */ +}; diff --git a/com/COMTest1ps.def b/com/COMTest1ps.def new file mode 100755 index 00000000..1eb26051 --- /dev/null +++ b/com/COMTest1ps.def @@ -0,0 +1,11 @@ + +LIBRARY "COMTest1PS" + +DESCRIPTION 'Proxy/Stub DLL' + +EXPORTS + DllGetClassObject @1 PRIVATE + DllCanUnloadNow @2 PRIVATE + GetProxyDllInfo @3 PRIVATE + DllRegisterServer @4 PRIVATE + DllUnregisterServer @5 PRIVATE diff --git a/com/COMTest1ps.mk b/com/COMTest1ps.mk new file mode 100755 index 00000000..c55034d1 --- /dev/null +++ b/com/COMTest1ps.mk @@ -0,0 +1,16 @@ + +COMTest1ps.dll: dlldata.obj COMTest1_p.obj COMTest1_i.obj + link /dll /out:COMTest1ps.dll /def:COMTest1ps.def /entry:DllMain dlldata.obj COMTest1_p.obj COMTest1_i.obj \ + kernel32.lib rpcndr.lib rpcns4.lib rpcrt4.lib oleaut32.lib uuid.lib \ + +.c.obj: + cl /c /Ox /DWIN32 /D_WIN32_WINNT=0x0400 /DREGISTER_PROXY_DLL \ + $< + +clean: + @del COMTest1ps.dll + @del COMTest1ps.lib + @del COMTest1ps.exp + @del dlldata.obj + @del COMTest1_p.obj + @del COMTest1_i.obj diff --git a/com/ProjDef.cpp b/com/ProjDef.cpp new file mode 100755 index 00000000..c64a6e19 --- /dev/null +++ b/com/ProjDef.cpp @@ -0,0 +1,115 @@ +// ProjDef.cpp : Implementation of CProjDef +#include "stdafx.h" +#include "COMTest1.h" +#include "ProjDef.h" +#include "proj_api.h" + +///////////////////////////////////////////////////////////////////////////// +// CProjDef + + +STDMETHODIMP CProjDef::Initialize(BSTR proj_string, int *success) +{ + USES_CONVERSION; + psProj = pj_init_plus( W2A(proj_string) ); + + if( psProj != NULL ) + *success = 1; + else + { + SetProjError( "pj_init_plus failed." ); + //SetError( (const char *) W2A(proj_string) ); + *success = 0; + } + + return S_OK; +} + +STDMETHODIMP CProjDef::TransformPoint3D(IUnknown *srcProj, double *x, double *y, double *z, int *success) +{ + void *psProjOther; + IProjDef *srcProjReal; + + srcProj->QueryInterface( IID_IProjDef, (void **) &srcProjReal ); + srcProjReal->GetHandle( (long *) &psProjOther ); + + if( psProjOther == NULL || psProj == NULL ) + { + SetError( "One of projections not set." ); + *success = 0; + return E_FAIL; + } + + if( pj_is_latlong( psProjOther ) ) + { + *x *= DEG_TO_RAD; + *y *= DEG_TO_RAD; + } + + *success = pj_transform( psProjOther, psProj, 1, 0, x, y, z ) == 0; + if( ! *success ) + SetProjError( "pj_transform failed." ); + + else if( pj_is_latlong( psProj ) ) + { + *x *= RAD_TO_DEG; + *y *= RAD_TO_DEG; + } + + return S_OK; +} + +STDMETHODIMP CProjDef::GetHandle(long *pHandle) +{ + *pHandle = (long) psProj; + + return S_OK; +} + +STDMETHODIMP CProjDef::IsLatLong(int *result) +{ + if( psProj != NULL ) + { + *result = pj_is_latlong( (projPJ) psProj ); + return S_OK; + } + else + { + SetError( "Projection is null" ); + return E_FAIL; + } +} + +STDMETHODIMP CProjDef::GetLastError( BSTR *error ) +{ + *error = SysAllocString( sLastError ); + + return S_OK; +} + +void CProjDef::SetError( const char *pszMessage ) + +{ + USES_CONVERSION; + + if( sLastError != NULL ) + { + SysFreeString( sLastError ); + sLastError = NULL; + } + + sLastError = SysAllocString( A2BSTR( pszMessage ) ); +} + +void CProjDef::SetProjError( const char *pszMessage ) + +{ + int *pj_errno = pj_get_errno_ref(); + + if( *pj_errno > 0 ) + SetError( strerror( *pj_errno ) ); + else if( *pj_errno < 0 ) + SetError( pj_strerrno( *pj_errno ) ); + else + SetError( pszMessage ); +} diff --git a/com/ProjDef.h b/com/ProjDef.h new file mode 100755 index 00000000..017bf48f --- /dev/null +++ b/com/ProjDef.h @@ -0,0 +1,49 @@ +// ProjDef.h : Declaration of the CProjDef + +#ifndef __PROJDEF_H_ +#define __PROJDEF_H_ + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CProjDef +class ATL_NO_VTABLE CProjDef : + public CComObjectRootEx<CComMultiThreadModel>, + public CComCoClass<CProjDef, &CLSID_ProjDef>, + public IDispatchImpl<IProjDef, &IID_IProjDef, &LIBID_PROJ4Lib> +{ +public: + CProjDef() + { + psProj = NULL; + sLastError = NULL; + SetError(""); + } + +DECLARE_REGISTRY_RESOURCEID(IDR_PROJDEF) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CProjDef) + COM_INTERFACE_ENTRY(IProjDef) + COM_INTERFACE_ENTRY(IDispatch) +END_COM_MAP() + +// IProjDef +public: + STDMETHOD(GetLastError)( BSTR *error ); + STDMETHOD(IsLatLong)(/*[out]*/ int *result); + STDMETHOD(GetHandle)(long *pHandle); + STDMETHOD(TransformPoint3D)(IUnknown *srcProj, double *x, double *y, double *z, int *success); + STDMETHOD(Initialize)(BSTR proj_string, int *success); + +private: + void SetError( const char *pszMessage ); + void SetProjError( const char *pszMessage ); + + BSTR sLastError; + void *psProj; + +}; + +#endif //__PROJDEF_H_ diff --git a/com/ProjDef.rgs b/com/ProjDef.rgs new file mode 100755 index 00000000..76d519e3 --- /dev/null +++ b/com/ProjDef.rgs @@ -0,0 +1,26 @@ +HKCR +{ + COMTest1.ProjDef.1 = s 'ProjDef Class' + { + CLSID = s '{B9B8F0A3-D9F8-4537-9A03-329DC9AE144C}' + } + COMTest1.ProjDef = s 'ProjDef Class' + { + CLSID = s '{B9B8F0A3-D9F8-4537-9A03-329DC9AE144C}' + CurVer = s 'PROJ4.ProjDef.1' + } + NoRemove CLSID + { + ForceRemove {B9B8F0A3-D9F8-4537-9A03-329DC9AE144C} = s 'ProjDef Class' + { + ProgID = s 'PROJ4.ProjDef.1' + VersionIndependentProgID = s 'PROJ4.ProjDef' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Both' + } + 'TypeLib' = s '{A0ADE3D8-9A85-4BD3-AD56-BFEF42495130}' + } + } +} diff --git a/com/StdAfx.cpp b/com/StdAfx.cpp new file mode 100755 index 00000000..a5eea178 --- /dev/null +++ b/com/StdAfx.cpp @@ -0,0 +1,12 @@ +// stdafx.cpp : source file that includes just the standard includes +// stdafx.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +#ifdef _ATL_STATIC_REGISTRY +#include <statreg.h> +#include <statreg.cpp> +#endif + +#include <atlimpl.cpp> diff --git a/com/StdAfx.h b/com/StdAfx.h new file mode 100755 index 00000000..6661a145 --- /dev/null +++ b/com/StdAfx.h @@ -0,0 +1,27 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, +// but are changed infrequently + +#if !defined(AFX_STDAFX_H__760250DA_0BD5_40FD_AC2A_6DDA09FFA21E__INCLUDED_) +#define AFX_STDAFX_H__760250DA_0BD5_40FD_AC2A_6DDA09FFA21E__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define STRICT +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0400 +#endif +#define _ATL_APARTMENT_THREADED + +#include <atlbase.h> +//You may derive a class from CComModule and use it if you want to override +//something, but do not change the name of _Module +extern CComModule _Module; +#include <atlcom.h> + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__760250DA_0BD5_40FD_AC2A_6DDA09FFA21E__INCLUDED) diff --git a/com/VB6Test.frm b/com/VB6Test.frm new file mode 100755 index 00000000..9fd7ce07 --- /dev/null +++ b/com/VB6Test.frm @@ -0,0 +1,50 @@ +VERSION 5.00 +Begin VB.Form Form1 + Caption = "Form1" + ClientHeight = 3090 + ClientLeft = 60 + ClientTop = 450 + ClientWidth = 4680 + LinkTopic = "Form1" + ScaleHeight = 3090 + ScaleWidth = 4680 + StartUpPosition = 3 'Windows Default + Begin VB.CommandButton Command1 + Caption = "Command1" + Height = 615 + Left = 1680 + TabIndex = 0 + Top = 2160 + Width = 975 + End +End +Attribute VB_Name = "Form1" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +Private Sub Command1_Click() + Dim pUTM As PROJ4Lib.IProjDef + Dim pLL As PROJ4Lib.IProjDef + + Set pUTM = New PROJ4Lib.ProjDef + Set pLL = New PROJ4Lib.ProjDef + + pUTM.Initialize ("+proj=utm +zone=11 +datum=WGS84") + pLL.Initialize ("+proj=latlong +datum=WGS84") + + Dim X As Double, Y As Double, Z As Double + + X = 25000 + Y = 3000000 + Z = 0 + + MsgBox X & " " & Y + + If pLL.TransformPoint3D(pUTM, X, Y, Z) = 0 Then + MsgBox "TransformPoint3D " & pLL.GetLastError() + End If + + MsgBox X & " " & Y + +End Sub diff --git a/com/dlldata.c b/com/dlldata.c new file mode 100755 index 00000000..94bcbfc0 --- /dev/null +++ b/com/dlldata.c @@ -0,0 +1,38 @@ +/********************************************************* + DllData file -- generated by MIDL compiler + + DO NOT ALTER THIS FILE + + This file is regenerated by MIDL on every IDL file compile. + + To completely reconstruct this file, delete it and rerun MIDL + on all the IDL files in this DLL, specifying this file for the + /dlldata command line option + +*********************************************************/ + +#define PROXY_DELEGATION + +#include <rpcproxy.h> + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_PROXY_FILE( COMTest1 ) + + +PROXYFILE_LIST_START +/* Start of list */ + REFERENCE_PROXY_FILE( COMTest1 ), +/* End of list */ +PROXYFILE_LIST_END + + +DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) + +#ifdef __cplusplus +} /*extern "C" */ +#endif + +/* end of generated dlldata file */ diff --git a/com/resource.h b/com/resource.h new file mode 100755 index 00000000..2c9c2c5e --- /dev/null +++ b/com/resource.h @@ -0,0 +1,17 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by COMTest1.rc +// +#define IDS_PROJNAME 100 +#define IDR_PROJDEF 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 201 +#define _APS_NEXT_COMMAND_VALUE 32768 +#define _APS_NEXT_CONTROL_VALUE 201 +#define _APS_NEXT_SYMED_VALUE 102 +#endif +#endif |
