├── .gitattributes ├── .gitignore ├── BaseLibrary ├── Alert.cpp ├── Alert.h ├── AuthenticationHeader.cpp ├── AuthenticationHeader.h ├── AutoCritical.cpp ├── AutoCritical.h ├── AutoFont.cpp ├── AutoFont.h ├── Base64.cpp ├── Base64.h ├── BaseLibrary.h ├── BaseLibrary.vcxproj ├── BaseLibrary.vcxproj.filters ├── CRC32.cpp ├── CRC32.h ├── ConvertWideString.cpp ├── ConvertWideString.h ├── Cookie.cpp ├── Cookie.h ├── CrackURL.cpp ├── CrackURL.h ├── Crypto.cpp ├── Crypto.h ├── Encoding.h ├── Environment.cpp ├── Environment.h ├── EventLogRegistration.cpp ├── EventLogRegistration.h ├── ExecuteProcess.cpp ├── ExecuteProcess.h ├── ExecuteShell.cpp ├── ExecuteShell.h ├── FileBuffer.cpp ├── FileBuffer.h ├── FileDialog.cpp ├── FileDialog.h ├── GenerateGUID.cpp ├── GenerateGUID.h ├── GetExePath.cpp ├── GetExePath.h ├── GetLastErrorAsString.cpp ├── GetLastErrorAsString.h ├── GetUserAccount.cpp ├── GetUserAccount.h ├── HPFCounter.cpp ├── HPFCounter.h ├── HTTPError.cpp ├── HTTPError.h ├── HTTPMessage.cpp ├── HTTPMessage.h ├── HTTPTime.cpp ├── HTTPTime.h ├── Headers.h ├── JSONMessage.cpp ├── JSONMessage.h ├── JSONParser.cpp ├── JSONParser.h ├── JSONPath.cpp ├── JSONPath.h ├── JSONPointer.cpp ├── JSONPointer.h ├── LogAnalysis.cpp ├── LogAnalysis.h ├── MapDialog.cpp ├── MapDialog.h ├── MultiPartBuffer.cpp ├── MultiPartBuffer.h ├── Namespace.cpp ├── Namespace.h ├── PrintToken.cpp ├── PrintToken.h ├── ProcInfo.cpp ├── ProcInfo.h ├── QueryReWriter.cpp ├── QueryReWriter.h ├── Redirect.cpp ├── Redirect.h ├── Routing.h ├── RunRedirect.cpp ├── RunRedirect.h ├── SOAPMessage.cpp ├── SOAPMessage.h ├── SOAPSecurity.cpp ├── SOAPSecurity.h ├── ServiceQuality.cpp ├── ServiceQuality.h ├── ServiceReporting.cpp ├── ServiceReporting.h ├── SoapTypes.h ├── StackTrace.cpp ├── StackTrace.h ├── StdException.cpp ├── StdException.h ├── StoreMessage.cpp ├── StoreMessage.h ├── StringUtilities.cpp ├── StringUtilities.h ├── WideMessageBox.cpp ├── WideMessageBox.h ├── WinFile.cpp ├── WinFile.h ├── WinINETError.h ├── WinPing.cpp ├── WinPing.h ├── WinPingIPHeader.h ├── XMLDataType.cpp ├── XMLDataType.h ├── XMLMessage.cpp ├── XMLMessage.h ├── XMLParser.cpp ├── XMLParser.h ├── XMLParserJSON.cpp ├── XMLParserJSON.h ├── XMLRestriction.cpp ├── XMLRestriction.h ├── XMLTemporal.cpp ├── XMLTemporal.h ├── XPath.cpp ├── XPath.h ├── XSDSchema.cpp ├── XSDSchema.h ├── XString.cpp ├── XString.h ├── XStringBuilder.cpp ├── XStringBuilder.h ├── ZIP │ ├── adler32.cpp │ ├── deflate.cpp │ ├── deflate.h │ ├── gzguts.h │ ├── gzip.cpp │ ├── gzip.h │ ├── inffast.cpp │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.cpp │ ├── inflate.h │ ├── inftrees.cpp │ ├── inftrees.h │ ├── trees.cpp │ ├── trees.h │ ├── zconf.h │ ├── zipcrc32.cpp │ ├── zipcrc32.h │ ├── zlib.h │ ├── zutil.cpp │ └── zutil.h ├── bcd.cpp ├── bcd.h ├── framework.h ├── pch.cpp ├── pch.h ├── targetver.h ├── unzip.cpp ├── unzip.h ├── xmem.cpp └── xmem.h ├── CXHibernate.sln ├── CXHibernate ├── CXAttribute.cpp ├── CXAttribute.h ├── CXClass.cpp ├── CXClass.h ├── CXDataType.cpp ├── CXDataType.h ├── CXHibernate.cpp ├── CXHibernate.h ├── CXHibernate.vcxproj ├── CXHibernate.vcxproj.filters ├── CXModelWord.cpp ├── CXModelWord.h ├── CXObject.cpp ├── CXObject.h ├── CXObjectFactory.h ├── CXObjectSets.h ├── CXPrimaryHash.cpp ├── CXPrimaryHash.h ├── CXResourceFile.cpp ├── CXResourceFile.h ├── CXRole.cpp ├── CXRole.h ├── CXServer.cpp ├── CXServer.h ├── CXSession.cpp ├── CXSession.h ├── CXSessionUse.cpp ├── CXSessionUse.h ├── CXStaticInitialization.cpp ├── CXStaticInitialization.h ├── CXTable.cpp ├── CXTable.h ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── Documentation ├── Architecture1.png ├── Architecture2.png ├── Article.docx ├── C# Dot.NET Nhibernate reference guide.pdf ├── CXHibernate - Cloud.vsdx ├── CXHibernate.docx ├── CXHibernate.emf ├── CXHibernate.pdf ├── CXHibernate.vsdx ├── Hibernate-Red.jpg ├── Hibernate-Red.png ├── Hibernate.png ├── Releasenotes_1_x.txt ├── hibernate-2400px.png ├── hibernate-300px.png ├── hibernate-800px.png ├── hibernate-blue.ico ├── hibernate-icon-25_jpg.png └── testing.fbk ├── HelloWorld ├── Country.sql ├── HelloWorld.cpp ├── HelloWorld.vcxproj ├── HelloWorld.vcxproj.filters ├── country.cpp ├── country.h ├── country_cxh.cpp ├── framework.h ├── hibernate.cfg.xml ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── Marlin ├── AppConfig.cpp ├── AppConfig.h ├── CPULoad.cpp ├── CPULoad.h ├── ClientEventDriver.cpp ├── ClientEventDriver.h ├── CommandBus.cpp ├── CommandBus.h ├── CreateURLPrefix.cpp ├── CreateURLPrefix.h ├── ErrorReport.cpp ├── ErrorReport.h ├── EventSource.cpp ├── EventSource.h ├── EventStream.h ├── FindProxy.cpp ├── FindProxy.h ├── HTTPCertificate.cpp ├── HTTPCertificate.h ├── HTTPClient.cpp ├── HTTPClient.h ├── HTTPClientTracing.cpp ├── HTTPClientTracing.h ├── HTTPLoglevel.h ├── HTTPRequest.cpp ├── HTTPRequest.h ├── HTTPSYS_Websocket.h ├── HTTPServer.cpp ├── HTTPServer.h ├── HTTPServerIIS.cpp ├── HTTPServerIIS.h ├── HTTPServerMarlin.cpp ├── HTTPServerMarlin.h ├── HTTPServerSync.cpp ├── HTTPServerSync.h ├── HTTPSite.cpp ├── HTTPSite.h ├── HTTPSiteIIS.cpp ├── HTTPSiteIIS.h ├── HTTPSiteMarlin.cpp ├── HTTPSiteMarlin.h ├── HTTPURLGroup.cpp ├── HTTPURLGroup.h ├── HostedWebCore.cpp ├── HostedWebCore.h ├── IISDebug.cpp ├── IISDebug.h ├── IISSiteConfig.h ├── LongPolling.cpp ├── LongPolling.h ├── LongTermEvent.cpp ├── LongTermEvent.h ├── Marlin.cpp ├── Marlin.h ├── Marlin.vcxproj ├── Marlin.vcxproj.filters ├── MarlinConfig.cpp ├── MarlinConfig.h ├── MarlinServer.cpp ├── MarlinServer.h ├── MediaType.cpp ├── MediaType.h ├── OAuth2Cache.cpp ├── OAuth2Cache.h ├── ServerApp.cpp ├── ServerApp.h ├── ServerEvent.h ├── ServerEventChannel.cpp ├── ServerEventChannel.h ├── ServerEventDriver.cpp ├── ServerEventDriver.h ├── ServerMain.cpp ├── ServerMain.h ├── SiteFilter.cpp ├── SiteFilter.h ├── SiteFilterClientCertificate.cpp ├── SiteFilterClientCertificate.h ├── SiteFilterXSS.cpp ├── SiteFilterXSS.h ├── SiteHandler.cpp ├── SiteHandler.h ├── SiteHandlerConnect.cpp ├── SiteHandlerConnect.h ├── SiteHandlerDelete.cpp ├── SiteHandlerDelete.h ├── SiteHandlerFormData.cpp ├── SiteHandlerFormData.h ├── SiteHandlerGet.cpp ├── SiteHandlerGet.h ├── SiteHandlerHead.cpp ├── SiteHandlerHead.h ├── SiteHandlerJson.cpp ├── SiteHandlerJson.h ├── SiteHandlerJson2Soap.cpp ├── SiteHandlerJson2Soap.h ├── SiteHandlerMerge.cpp ├── SiteHandlerMerge.h ├── SiteHandlerOptions.cpp ├── SiteHandlerOptions.h ├── SiteHandlerPatch.cpp ├── SiteHandlerPatch.h ├── SiteHandlerPost.cpp ├── SiteHandlerPost.h ├── SiteHandlerPut.cpp ├── SiteHandlerPut.h ├── SiteHandlerSoap.cpp ├── SiteHandlerSoap.h ├── SiteHandlerTrace.cpp ├── SiteHandlerTrace.h ├── SiteHandlerWebDAV.cpp ├── SiteHandlerWebDAV.h ├── SiteHandlerWebSocket.cpp ├── SiteHandlerWebSocket.h ├── ThreadPool.cpp ├── ThreadPool.h ├── Version.h ├── WSDLCache.cpp ├── WSDLCache.h ├── WebConfigIIS.cpp ├── WebConfigIIS.h ├── WebServiceClient.cpp ├── WebServiceClient.h ├── WebServiceServer.cpp ├── WebServiceServer.h ├── WebSocketClient.cpp ├── WebSocketClient.h ├── WebSocketMain.cpp ├── WebSocketMain.h ├── WebSocketServer.cpp ├── WebSocketServer.h ├── WebSocketServerIIS.cpp ├── WebSocketServerIIS.h ├── WebSocketServerSync.cpp ├── WebSocketServerSync.h ├── WinINETError.h ├── WinSocket.cpp ├── WinSocket.h ├── XMLParserImport.cpp ├── XMLParserImport.h ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── MarlinModule ├── IISDebug.cpp ├── Installer_32Bits.nsi ├── Installer_64Bits.nsi ├── Jumping.bmp ├── Logfile.nsh ├── Marlin.bmp ├── MarlinModule.cpp ├── MarlinModule.h ├── MarlinModule.rc ├── MarlinModule.vcxproj ├── MarlinModule.vcxproj.filters ├── PoolApp.cpp ├── PoolApp.h ├── Stdafx.cpp ├── framework.h ├── marlin.ico ├── resource.h ├── stdafx.h └── targetver.h ├── README.md ├── Roadmap.txt ├── SQLComponents ├── BasicExcel.cpp ├── BasicExcel.h ├── BasicXmlExcel.cpp ├── BasicXmlExcel.h ├── DDLCreateTable.cpp ├── DDLCreateTable.h ├── ExcelFormat.cpp ├── ExcelFormat.h ├── Locker.h ├── SQLAssociation.cpp ├── SQLAssociation.h ├── SQLAutoDBS.h ├── SQLColumnInfo.cpp ├── SQLColumnInfo.h ├── SQLComponents.cpp ├── SQLComponents.h ├── SQLComponents.vcxproj ├── SQLComponents.vcxproj.filters ├── SQLComponentsVersion.h ├── SQLConnections.cpp ├── SQLConnections.h ├── SQLDataSet.cpp ├── SQLDataSet.h ├── SQLDataSetXLS.cpp ├── SQLDataSetXLS.h ├── SQLDataType.cpp ├── SQLDataType.h ├── SQLDatabase.cpp ├── SQLDatabase.h ├── SQLDatabasePool.cpp ├── SQLDatabasePool.h ├── SQLDate.cpp ├── SQLDate.h ├── SQLDriverManager.cpp ├── SQLDriverManager.h ├── SQLError.cpp ├── SQLError.h ├── SQLFilter.cpp ├── SQLFilter.h ├── SQLFormatErrors.h ├── SQLFunction.h ├── SQLGetExePath.cpp ├── SQLGetExePath.h ├── SQLGuid.cpp ├── SQLGuid.h ├── SQLInfo.cpp ├── SQLInfo.h ├── SQLInfoAccess.cpp ├── SQLInfoAccess.h ├── SQLInfoDB.cpp ├── SQLInfoDB.h ├── SQLInfoFirebird.cpp ├── SQLInfoFirebird.h ├── SQLInfoGenericODBC.cpp ├── SQLInfoGenericODBC.h ├── SQLInfoInformix.cpp ├── SQLInfoInformix.h ├── SQLInfoMariaDB.cpp ├── SQLInfoMariaDB.h ├── SQLInfoMySQL.cpp ├── SQLInfoMySQL.h ├── SQLInfoOracle.cpp ├── SQLInfoOracle.h ├── SQLInfoPostgreSQL.cpp ├── SQLInfoPostgreSQL.h ├── SQLInfoSQLServer.cpp ├── SQLInfoSQLServer.h ├── SQLInterval.cpp ├── SQLInterval.h ├── SQLLanguage.cpp ├── SQLLanguage.h ├── SQLMemoryDebug.h ├── SQLMessage.cpp ├── SQLMessage.h ├── SQLMetaInfo.h ├── SQLMutation.cpp ├── SQLMutation.h ├── SQLOperator.h ├── SQLParameterType.h ├── SQLPrimaryKey.cpp ├── SQLPrimaryKey.h ├── SQLQuery.cpp ├── SQLQuery.h ├── SQLRecord.cpp ├── SQLRecord.h ├── SQLStatement.cpp ├── SQLStatement.h ├── SQLTime.cpp ├── SQLTime.h ├── SQLTimestamp.cpp ├── SQLTimestamp.h ├── SQLTimestampExtract.h ├── SQLTransaction.cpp ├── SQLTransaction.h ├── SQLVariant.cpp ├── SQLVariant.h ├── SQLVariantFormat.cpp ├── SQLVariantFormat.h ├── SQLVariantOperator.cpp ├── SQLVariantOperator.h ├── SQLVariantOperatorAdd.cpp ├── SQLVariantOperatorDiv.cpp ├── SQLVariantOperatorEqual.cpp ├── SQLVariantOperatorGreatEqual.cpp ├── SQLVariantOperatorGreater.cpp ├── SQLVariantOperatorMod.cpp ├── SQLVariantOperatorMul.cpp ├── SQLVariantOperatorSmallEqual.cpp ├── SQLVariantOperatorSmaller.cpp ├── SQLVariantOperatorSub.cpp ├── SQLVariantTrim.cpp ├── SQLVariantTrim.h ├── SQLWrappers.h ├── framework.h ├── sqlncli.h ├── stdafx.cpp ├── stdafx.h ├── targetver.h ├── xmem.cpp └── xmem.h ├── TestClient ├── Detail.cpp ├── Detail.h ├── Detail_cxh.cpp ├── Master.cpp ├── Master.h ├── Master_cxh.cpp ├── TestClient.cpp ├── TestClient.vcxproj ├── TestClient.vcxproj.filters ├── TestNumber.cpp ├── TestNumber.h ├── TestNumber_cxh.cpp ├── framework.h ├── framework.u.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── TestServer ├── Detail.cpp ├── Detail.h ├── Detail_cxh.cpp ├── HttpReceiveWebSocket.cpp ├── Master.cpp ├── Master.h ├── Master_cxh.cpp ├── TestNumber.cpp ├── TestNumber.h ├── TestNumber_cxh.cpp ├── TestServer.cpp ├── TestServer.vcxproj ├── TestServer.vcxproj.filters ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── TestServerIIS ├── CXHServerApp.cpp ├── CXHServerApp.h ├── Detail.cpp ├── Detail.h ├── Detail_cxh.cpp ├── HttpReceiveWebSocket.cpp ├── Master.cpp ├── Master.h ├── Master_cxh.cpp ├── TestNumber.cpp ├── TestNumber.h ├── TestNumber_cxh.cpp ├── TestServerIIS.vcxproj ├── TestServerIIS.vcxproj.filters ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── UnitTest ├── Animal.cpp ├── Animal.h ├── Animal_cxh.cpp ├── Cat.cpp ├── Cat.h ├── Cat_cxh.cpp ├── Detail.cpp ├── Detail.h ├── Detail_cxh.cpp ├── Dog.cpp ├── Dog.h ├── Dog_cxh.cpp ├── Infant.cpp ├── Infant.h ├── Infant_cxh.cpp ├── Kitten.cpp ├── Kitten.h ├── Kitten_cxh.cpp ├── Master.cpp ├── Master.h ├── Master_cxh.cpp ├── NaturalPerson.cpp ├── NaturalPerson.h ├── NaturalPerson_cxh.cpp ├── OneTable.sql ├── SubTable.sql ├── Subject.cpp ├── Subject.h ├── Subject_cxh.cpp ├── Supplier.cpp ├── Supplier.h ├── Supplier_cxh.cpp ├── TEST_OneTable.cpp ├── TEST_Standalone.cpp ├── TEST_SubTable.cpp ├── TestNumber.cpp ├── TestNumber.h ├── TestNumber_cxh.cpp ├── UnitTest.vcxproj ├── UnitTest.vcxproj.filters ├── framework.h ├── hibernate.cfg.xml ├── onetable.cfg.xml ├── stdafx.cpp ├── stdafx.h ├── subtable.cfg.xml └── targetver.h ├── cfg2cpp ├── cfg2cpp.cpp ├── cfg2cpp.vcxproj ├── cfg2cpp.vcxproj.filters ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── cfg2ddl ├── cfg2ddl.cpp ├── cfg2ddl.vcxproj ├── cfg2ddl.vcxproj.filters ├── framework.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── framework.h ├── sourceclean.cmd ├── testEnvironments.json └── testing.fdb /BaseLibrary/Alert.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Alert.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // Registers an alert log path for a module 31 | // Returns the module's alert number 32 | int ConfigureApplicationAlerts(XString p_path); 33 | // Remove a alert modules path name 34 | bool DeregisterApplicationAlerts(int p_module); 35 | // Clean up all alert paths and modules 36 | void CleanupAlerts(); 37 | 38 | // Returns the alert log path for a module 39 | XString GetAlertlogPath(int p_module); 40 | 41 | // Create the alert. Returns the alert number (natural ordinal number) 42 | __int64 CreateAlert(LPCTSTR p_function, LPCTSTR p_oserror, LPCTSTR p_eventdata,int p_module = 0); 43 | -------------------------------------------------------------------------------- /BaseLibrary/AuthenticationHeader.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: AuthenticationHeader.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "XString.h" 30 | 31 | // These functions are meant to be used in conjunction with your own HTTP X--Authentication header 32 | 33 | XString CreateAuthentication(XString p_user,XString p_password); 34 | bool DecodeAuthentication(XString p_scramble,XString& p_user,XString& p_password); 35 | -------------------------------------------------------------------------------- /BaseLibrary/AutoCritical.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: AutoCritical.cpp 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #include "pch.h" 29 | #include "BaseLibrary.h" 30 | #include "AutoCritical.h" 31 | 32 | #ifdef _AFX 33 | #ifdef _DEBUG 34 | #define new DEBUG_NEW 35 | #undef THIS_FILE 36 | static char THIS_FILE[] = __FILE__; 37 | #endif 38 | #endif 39 | 40 | Critical::Critical() 41 | { 42 | InitializeCriticalSection(&m_critical); 43 | } 44 | 45 | Critical::~Critical() 46 | { 47 | DeleteCriticalSection(&m_critical); 48 | } 49 | 50 | void 51 | Critical::Lock() 52 | { 53 | EnterCriticalSection(&m_critical); 54 | } 55 | 56 | bool 57 | Critical::TryLock() 58 | { 59 | return TryEnterCriticalSection(&m_critical); 60 | } 61 | 62 | void 63 | Critical::Unlock() 64 | { 65 | LeaveCriticalSection(&m_critical); 66 | } 67 | 68 | -------------------------------------------------------------------------------- /BaseLibrary/CRC32.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: CRC32.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // This function is not written by me, but is copied from the Microsoft open specification 8 | // which can be found in the documentation for MS-Office file formats at: 9 | // 10 | // https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-pst/39c35207-130f-4d83-96f8-2b311a285a8f 11 | // 12 | #pragma once 13 | 14 | DWORD ComputeCRC32(DWORD dwCRC,LPCVOID pv,UINT cbLength); 15 | 16 | -------------------------------------------------------------------------------- /BaseLibrary/Environment.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Environment.h 4 | // 5 | // Copyright (c) 2014-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files(the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions : 14 | // 15 | // The above copyright notice and this permission notice shall be included in 16 | // all copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | // THE SOFTWARE. 25 | // 26 | #pragma once 27 | 28 | // Install the environment reader/changer 29 | void DoProcessEnvironment(); 30 | -------------------------------------------------------------------------------- /BaseLibrary/EventLogRegistration.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: EventlogRegistration.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // Standaard root folder for the event log folder we create 31 | // Defaulting to "Applications" 32 | extern LPTSTR g_eventLogCategory; 33 | 34 | int RegisterMessagesDllForService(XString p_serviceName,XString p_messageDLL,XString& p_error); 35 | bool UnRegisterMessagesDllForService(XString p_serviceName,XString& p_error); 36 | bool IsMessageDLLRegistered(XString p_serviceName); -------------------------------------------------------------------------------- /BaseLibrary/ExecuteShell.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: ExecuteShell.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // Maximum length of a command line in MS-Windows OS 31 | // See: https://support.microsoft.com/nl-nl/help/830473/command-prompt-cmd-exe-command-line-string-limitation 32 | #define MAX_COMMANDLINE 8191 33 | 34 | bool 35 | ExecuteShell(XString p_command 36 | ,XString p_program 37 | ,XString p_arguments 38 | ,HWND p_parent 39 | ,int p_show 40 | ,XString* p_error = nullptr); 41 | -------------------------------------------------------------------------------- /BaseLibrary/GenerateGUID.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: GenerateGUID.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | XString GenerateGUID(); -------------------------------------------------------------------------------- /BaseLibrary/GetExePath.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: GetExePath.cpp 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | XString GetExeFile(); 31 | XString GetExePath(); 32 | void TerminateWithoutCleanup(int p_exitcode); 33 | void CheckExePath(XString p_runtimer,XString p_productName); 34 | -------------------------------------------------------------------------------- /BaseLibrary/GetLastErrorAsString.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: GetLastErrorAsString.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // Get a windows registered string for the last OS error code 31 | // Uses the parameter if given, otherwise uses "GetLastError()" 32 | XString GetLastErrorAsString(DWORD p_error = 0); -------------------------------------------------------------------------------- /BaseLibrary/GetUserAccount.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: GetUserAccount.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #ifndef SECURITY_WIN32 30 | #define SECURITY_WIN32 31 | #endif 32 | #include 33 | 34 | #define MAX_USER_NAME 512 35 | 36 | XString GetUserAccount(EXTENDED_NAME_FORMAT p_format = NameUnknown,bool p_normalized = false); 37 | -------------------------------------------------------------------------------- /BaseLibrary/Headers.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Headers.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include 30 | 31 | struct headerCompare 32 | { 33 | bool operator() (const XString& p_left,const XString& p_right) const 34 | { 35 | return p_left.CompareNoCase(p_right) < 0; 36 | } 37 | }; 38 | 39 | // HeaderMap is intended for the following objects 40 | // - HTTPMessage 41 | // - SOAPMessage 42 | // - JSONMessage 43 | // - HTTPClient 44 | using HeaderMap = std::multimap; 45 | 46 | -------------------------------------------------------------------------------- /BaseLibrary/Namespace.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Namespace.h 4 | // 5 | // Copyright (c) 2014-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files(the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions : 14 | // 15 | // The above copyright notice and this permission notice shall be included in 16 | // all copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | // THE SOFTWARE. 25 | // 26 | #pragma once 27 | 28 | // Compares two namespaces 29 | // Returns strcmp values 30 | int CompareNamespaces(XString p_namespace1,XString p_namespace2); 31 | 32 | // Can be used to split SOAPAction from the HTTP protocol 33 | // or from the Soap envelope node 34 | bool SplitNamespaceAndAction(XString p_soapAction,XString& p_namespace,XString& p_action,bool p_nmsp_ends_in_slash = false); 35 | 36 | // Concatenate namespace and action to a soapaction entry 37 | // Can be used in HTTP and in SOAP messages 38 | XString CreateSoapAction(XString p_namespace,XString p_action); 39 | 40 | // Split namespace from an identifier 41 | XString SplitNamespace(XString& p_name); 42 | -------------------------------------------------------------------------------- /BaseLibrary/PrintToken.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: PrintToken.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | using uchar = unsigned char; 31 | 32 | // Print Authentication token to a string list 33 | BOOL DumpToken(XString& p_list,HANDLE p_token); 34 | bool GetTokenOwner(HANDLE p_token,XString& p_userName); 35 | -------------------------------------------------------------------------------- /BaseLibrary/Routing.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Routing.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | 29 | ////////////////////////////////////////////////////////////////////////// 30 | // 31 | // Routing 32 | // 33 | // Routing information is contained in the following objects 34 | // - HTTPMessage 35 | // - SOAPMessage 36 | // - JSONMessage 37 | // 38 | // For now it is simply a vector of strings of URL parts not in the site URL 39 | // 40 | #pragma once 41 | #include 42 | 43 | using Routing = std::vector; 44 | -------------------------------------------------------------------------------- /BaseLibrary/SoapTypes.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SOAPTypes.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // The general SOAP Version 31 | enum class SoapVersion 32 | { 33 | SOAP_POS = 1 // Plain Old Soap 34 | ,SOAP_10 = 1 // Soap version 1.0 (simple fault,no envelope + SOAPAction HTTP header) 35 | ,SOAP_11 = 2 // Soap version 1.1 (simple fault, envelope + SOAPAction HTTP header) 36 | ,SOAP_12 = 3 // Soap version 1.2 (extended fault, envelope + Action in header) 37 | }; 38 | 39 | // Encryption levels 40 | // For SOAPMessage / HTTPSite alike 41 | enum class XMLEncryption 42 | { 43 | XENC_NoInit = -1 44 | ,XENC_Plain = 0 // Plain XML text 45 | ,XENC_Signing // Sign the body in the header 46 | ,XENC_Body // Encrypt the whole body 47 | ,XENC_Message // Encrypt the whole message 48 | }; 49 | -------------------------------------------------------------------------------- /BaseLibrary/WinPing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | #define DEFAULT_TTL 128 // Max packets 5 | #define DEFAULT_SEND_COUNT 4 // number of ICMP requests to send 6 | #define DEFAULT_DATA_SIZE 32 // default data size 7 | #define ERROR_BUFFER_SIZE 512 // Maximum error message size 8 | 9 | // Pinging for an internet address 10 | double WinPing(char* p_destination 11 | ,char* p_errorbuffer 12 | ,bool p_print 13 | ,int p_sendCount = DEFAULT_SEND_COUNT 14 | ,int p_family = AF_UNSPEC 15 | ,int p_timeToLive = DEFAULT_TTL 16 | ,int p_dataSize = DEFAULT_DATA_SIZE 17 | ,bool p_recordRoute = false); 18 | 19 | -------------------------------------------------------------------------------- /BaseLibrary/XMLParser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/BaseLibrary/XMLParser.cpp -------------------------------------------------------------------------------- /BaseLibrary/XMLParserJSON.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: XMLParserJSON.h 4 | // 5 | // Copyright (c) 2014-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files(the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions : 14 | // 15 | // The above copyright notice and this permission notice shall be included in 16 | // all copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | // THE SOFTWARE. 25 | // 26 | #pragma once 27 | #include "XMLParser.h" 28 | 29 | class SOAPMessage; 30 | class JSONMessage; 31 | class JSONvalue; 32 | 33 | class XMLParserJSON : public XMLParser 34 | { 35 | public: 36 | XMLParserJSON(); 37 | explicit XMLParserJSON(XMLMessage* p_xml,const JSONMessage* p_json); 38 | ~XMLParserJSON() = default; 39 | 40 | void ParseMain(XMLElement* p_element,JSONvalue& p_value); 41 | private: 42 | void ParseMainSOAP (XMLElement* p_element,JSONvalue& p_value); 43 | void ParseLevel (XMLElement* p_element,JSONvalue& p_value,XString p_arrayName = _T("")); 44 | private: 45 | SOAPMessage* m_soap { nullptr }; 46 | bool m_rootFound { false }; 47 | }; 48 | 49 | 50 | -------------------------------------------------------------------------------- /BaseLibrary/ZIP/gzip.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: gzip.cpp 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include 30 | 31 | ////////////////////////////////////////////////////////////////////////// 32 | // 33 | // ZIPPING and UNZIPPING the buffer 34 | // 35 | ////////////////////////////////////////////////////////////////////////// 36 | 37 | bool gzip_compress_memory (void *in_data,size_t in_data_size,std::vector& buffer); 38 | bool gzip_decompress_memory(void *in_data,size_t in_data_size,std::vector& buffer); 39 | -------------------------------------------------------------------------------- /BaseLibrary/ZIP/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | #pragma once 12 | 13 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 14 | -------------------------------------------------------------------------------- /BaseLibrary/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC CString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | #include "..\Framework.h" 12 | 13 | ////////////////////////////////////////////////////////////////////////// 14 | // 15 | // Can be extended beyond this point with extra MFC requirements 16 | // 17 | ////////////////////////////////////////////////////////////////////////// 18 | -------------------------------------------------------------------------------- /BaseLibrary/pch.cpp: -------------------------------------------------------------------------------- 1 | // pch.cpp: source file corresponding to the pre-compiled header 2 | 3 | #include "pch.h" 4 | 5 | // When you are using pre-compiled headers, this source file is necessary for compilation to succeed. 6 | -------------------------------------------------------------------------------- /BaseLibrary/pch.h: -------------------------------------------------------------------------------- 1 | // pch.h: This is a precompiled header file. 2 | // Files listed below are compiled only once, improving build performance for future builds. 3 | // This also affects IntelliSense performance, including code completion and many code browsing features. 4 | // However, files listed here are ALL re-compiled if any one of them is updated between builds. 5 | // Do not add files here that you will be updating frequently as this negates the performance advantage. 6 | 7 | #pragma once 8 | 9 | // add headers that you want to pre-compile here 10 | #include "targetver.h" 11 | #include "framework.h" 12 | 13 | #include 14 | #include 15 | 16 | #ifndef VC_EXTRALEAN 17 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 18 | #endif 19 | 20 | // Do not autolink with BaseLibrary from within the library itself 21 | #define BASELIBRARY_NOAUTOLINK 22 | 23 | #include "BaseLibrary.h" 24 | -------------------------------------------------------------------------------- /BaseLibrary/targetver.h: -------------------------------------------------------------------------------- 1 | // Including SDKDDKVer.h defines the highest available Windows platform. 2 | // 3 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 4 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 5 | // 6 | #pragma once 7 | 8 | #define _WIN32_WINNT 0x0A00 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /CXHibernate/CXDataType.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXDataType.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | #include 29 | 30 | // One word shorthands for elementary datatypes of C++ 31 | using uint = unsigned int; 32 | using ushort = unsigned short; 33 | using ulong = unsigned long; 34 | using uchar = unsigned char; 35 | using bigint = __int64; 36 | using ubigint = unsigned __int64; 37 | 38 | // Definition array of all CX data types 39 | typedef struct _cxtypes 40 | { 41 | LPCTSTR m_name; 42 | const int m_type; 43 | } 44 | CXType; 45 | 46 | int CXStringToDatatType(CString p_datatype); 47 | 48 | CString CXDataTypeToString(int p_datatype); 49 | 50 | int CXConfigToDataType(CString p_datatype); 51 | 52 | CString CXDataTypeToConfig(int p_datatype); 53 | -------------------------------------------------------------------------------- /CXHibernate/CXModelWord.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXModelWord.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | 29 | typedef struct _modelWord 30 | { 31 | const TCHAR* m_name; 32 | const int m_code; 33 | } 34 | CXModelWord; 35 | 36 | int CXModelWordToCode(CString p_word); 37 | CString CXCodeToModelWord(int p_code); 38 | 39 | -------------------------------------------------------------------------------- /CXHibernate/CXPrimaryHash.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXPrimaryHash.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | 29 | #include 30 | #include 31 | 32 | using namespace SQLComponents; 33 | 34 | CString CXPrimaryHash(VariantSet& p_primary); 35 | -------------------------------------------------------------------------------- /CXHibernate/CXResourceFile.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXResourceFile.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | 29 | // Default resource definition for the general config file 30 | #define IDR_HIBERNATE_CONFIG 100 31 | 32 | // Load a compiled text file from our resources 33 | CString CXHReadResourceData(int p_resId, CString type); 34 | 35 | -------------------------------------------------------------------------------- /CXHibernate/CXRole.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXRole.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #include "stdafx.h" 28 | #include "CXRole.h" 29 | 30 | CXHRole 31 | CXStringToRole(CString p_role) 32 | { 33 | if(p_role.CompareNoCase(_T("database_role")) == 0) return CXH_Database_role; 34 | if(p_role.CompareNoCase(_T("filestore_role")) == 0) return CXH_Filestore_role; 35 | if(p_role.CompareNoCase(_T("internet_role")) == 0) return CXH_Internet_role; 36 | return (CXHRole) 0; 37 | } 38 | 39 | CString 40 | CXRoleToString(CXHRole p_role) 41 | { 42 | switch (p_role) 43 | { 44 | case CXH_Database_role: return _T("database_role"); 45 | case CXH_Filestore_role: return _T("filestore_role"); 46 | case CXH_Internet_role: return _T("internet_role"); 47 | } 48 | return _T(""); 49 | } 50 | -------------------------------------------------------------------------------- /CXHibernate/CXRole.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXRole.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | 29 | // Still more roles to come 30 | typedef enum _cxh_roles 31 | { 32 | CXH_Database_role = 1 33 | ,CXH_Filestore_role 34 | ,CXH_Internet_role 35 | } 36 | CXHRole; 37 | 38 | CXHRole CXStringToRole(CString p_role); 39 | 40 | CString CXRoleToString(CXHRole p_role); 41 | -------------------------------------------------------------------------------- /CXHibernate/CXSessionUse.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXSessionUse.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #include "stdafx.h" 28 | #include "CXSessionUse.h" 29 | 30 | CXHSessionUse 31 | CXStringToSessionUse(CString p_use) 32 | { 33 | if(p_use == _T("use")) return SESS_Use; 34 | if(p_use == _T("none")) return SESS_None; 35 | if(p_use == _T("create")) return SESS_Create; 36 | return SESS_None; 37 | } 38 | 39 | CString 40 | CXSessionUseToString(CXHSessionUse p_use) 41 | { 42 | switch(p_use) 43 | { 44 | case SESS_Use: return _T("use"); 45 | case SESS_None: return _T("none"); 46 | case SESS_Create: return _T("create"); 47 | } 48 | return _T("none"); 49 | } -------------------------------------------------------------------------------- /CXHibernate/CXSessionUse.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXSessionUse.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | 29 | typedef enum _cxh_session_use 30 | { 31 | SESS_Use // Use database connection, must conform to the config file 32 | ,SESS_None // Do not use a database connection (filestore / internet) 33 | ,SESS_Create // Create a new (test) database 34 | } 35 | CXHSessionUse; 36 | 37 | 38 | CXHSessionUse CXStringToSessionUse(CString p_use); 39 | 40 | CString CXSessionUseToString(CXHSessionUse p_useo); 41 | -------------------------------------------------------------------------------- /CXHibernate/CXStaticInitialization.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXStaticInitialization.h 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last version date: See CXHibernate.h 25 | // Version number: See CXHibernate.h 26 | // 27 | #pragma once 28 | #pragma warning(disable : 4075) 29 | 30 | // Declare a pointer to a function (PF) 31 | typedef void(__cdecl *PF)(void); 32 | 33 | // Register the destructor of an object 34 | int cxoexit(PF pf); 35 | 36 | // To be called to let all classes register themselves 37 | void CXOInitializeClasses(); 38 | 39 | // To be called to destroy the class registration 40 | void CXODestroyClasses(); 41 | 42 | 43 | -------------------------------------------------------------------------------- /CXHibernate/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // turns off MFC's hiding of some common and often safely ignored warning messages 12 | #define _AFX_ALL_WARNINGS 13 | 14 | #include "..\framework.h" 15 | 16 | #include 17 | 18 | -------------------------------------------------------------------------------- /CXHibernate/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // CXHibernate.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /CXHibernate/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include "framework.h" 10 | 11 | // Auto link to these libraries 12 | #include 13 | #include 14 | 15 | // Autolink records only generated OUTSIDE this library 16 | #define CXH_COMPONENTS_NOAUTOLINK 17 | 18 | // Automatically include the correct manifest 19 | #if defined _M_IX86 20 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 21 | #elif defined _M_IA64 22 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 23 | #elif defined _M_X64 24 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 25 | #else 26 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 27 | #endif -------------------------------------------------------------------------------- /CXHibernate/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /Documentation/Architecture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Architecture1.png -------------------------------------------------------------------------------- /Documentation/Architecture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Architecture2.png -------------------------------------------------------------------------------- /Documentation/Article.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Article.docx -------------------------------------------------------------------------------- /Documentation/C# Dot.NET Nhibernate reference guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/C# Dot.NET Nhibernate reference guide.pdf -------------------------------------------------------------------------------- /Documentation/CXHibernate - Cloud.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/CXHibernate - Cloud.vsdx -------------------------------------------------------------------------------- /Documentation/CXHibernate.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/CXHibernate.docx -------------------------------------------------------------------------------- /Documentation/CXHibernate.emf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/CXHibernate.emf -------------------------------------------------------------------------------- /Documentation/CXHibernate.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/CXHibernate.pdf -------------------------------------------------------------------------------- /Documentation/CXHibernate.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/CXHibernate.vsdx -------------------------------------------------------------------------------- /Documentation/Hibernate-Red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Hibernate-Red.jpg -------------------------------------------------------------------------------- /Documentation/Hibernate-Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Hibernate-Red.png -------------------------------------------------------------------------------- /Documentation/Hibernate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/Hibernate.png -------------------------------------------------------------------------------- /Documentation/hibernate-2400px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/hibernate-2400px.png -------------------------------------------------------------------------------- /Documentation/hibernate-300px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/hibernate-300px.png -------------------------------------------------------------------------------- /Documentation/hibernate-800px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/hibernate-800px.png -------------------------------------------------------------------------------- /Documentation/hibernate-blue.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/hibernate-blue.ico -------------------------------------------------------------------------------- /Documentation/hibernate-icon-25_jpg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/hibernate-icon-25_jpg.png -------------------------------------------------------------------------------- /Documentation/testing.fbk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/Documentation/testing.fbk -------------------------------------------------------------------------------- /HelloWorld/Country.sql: -------------------------------------------------------------------------------- 1 | -- Table that holds various countries of the world 2 | -- and their number of inhabitants 3 | 4 | CREATE TABLE country 5 | ( 6 | id INTEGER NOT NULL 7 | ,name VARCHAR(100) 8 | ,inhabitants INTEGER 9 | ,continent VARCHAR(20) 10 | 11 | ); 12 | 13 | ALTER TABLE country 14 | ADD CONSTRAINT pk_country 15 | PRIMARY KEY(id); 16 | 17 | 18 | 19 | INSERT INTO country VALUES (1,'China', 1386641728,'Asia'); 20 | INSERT INTO country VALUES (2,'India', 1349521845,'Asia'); 21 | INSERT INTO country VALUES (3,'United States', 325773000,'North America'); 22 | INSERT INTO country VALUES (4,'Indonesia', 262571000,'Asia'); 23 | INSERT INTO country VALUES (5,'Brazil', 210707000,'South America'); 24 | 25 | SELECT * FROM country; -------------------------------------------------------------------------------- /HelloWorld/HelloWorld.cpp: -------------------------------------------------------------------------------- 1 | // HelloWorld.cpp : Defines the entry point for the console application. 2 | // 3 | #include "stdafx.h" 4 | #include "country.h" 5 | #include 6 | #include 7 | 8 | int _tmain() 9 | { 10 | CXSession* session = hibernate.CreateSession(); 11 | if(session) 12 | { 13 | // Set a database session 14 | session->SetDatabaseConnection(_T("hibtest"),_T("sysdba"),_T("altijd")); 15 | 16 | country* land = (country*)session->Load(country::ClassName(),1); 17 | if(land) 18 | { 19 | _tprintf(_T("Hallo World! to all %d inhabitants of %s\n") 20 | ,land->GetInhabitants() 21 | ,land->GetName().GetString()); 22 | } 23 | else 24 | { 25 | _tprintf(_T("Cannot find a country with id = %d\n"),1); 26 | } 27 | // And close our session 28 | session->CloseSession(); 29 | } 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /HelloWorld/HelloWorld.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | 32 | 33 | Source Files 34 | 35 | 36 | Source Files 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | -------------------------------------------------------------------------------- /HelloWorld/country.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: country 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "country.h" 6 | 7 | #ifdef _DEBUG 8 | #define new DEBUG_NEW 9 | #undef THIS_FILE 10 | static char THIS_FILE[] = __FILE__; 11 | #endif 12 | 13 | // CTOR for class 14 | country::country() 15 | { 16 | // Things to do in the constructor 17 | } 18 | 19 | // DTOR for class 20 | country::~country() 21 | { 22 | // Things to do in the destructor 23 | } 24 | 25 | -------------------------------------------------------------------------------- /HelloWorld/country.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: country 2 | // Automatically generated by: CX-Hibernate 3 | // File: country.h 4 | // 5 | #pragma once 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class country : public CXObject 16 | { 17 | public: 18 | // CTOR of an CXObject derived class 19 | country(); 20 | // DTOR of an CXObject derived class 21 | virtual ~country(); 22 | 23 | // Serialization of our persistent objects 24 | DECLARE_CXO_SERIALIZATION; 25 | 26 | // GETTERS 27 | int GetId() { return m_id; }; 28 | CString GetName() { return m_name; }; 29 | int GetInhabitants() { return m_inhabitants; }; 30 | CString GetContinent() { return m_continent; }; 31 | 32 | protected: 33 | // Database persistent attributes 34 | int m_id { 0 }; 35 | CString m_name; 36 | int m_inhabitants { 0 }; 37 | CString m_continent; 38 | 39 | private: 40 | // Transient attributes go here 41 | }; 42 | -------------------------------------------------------------------------------- /HelloWorld/country_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: country 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "country.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(country,CXObject) 16 | CXO_XML_SERIALIZE(m_id ,_T("id")); 17 | CXO_XML_SERIALIZE(m_name ,_T("name")); 18 | CXO_XML_SERIALIZE(m_inhabitants ,_T("inhabitants")); 19 | CXO_XML_SERIALIZE(m_continent ,_T("continent")); 20 | END_XML_SERIALIZE 21 | 22 | BEGIN_XML_DESERIALIZE(country,CXObject) 23 | CXO_XML_DESERIALIZE(m_id ,_T("id")); 24 | CXO_XML_DESERIALIZE(m_name ,_T("name")); 25 | CXO_XML_DESERIALIZE(m_inhabitants ,_T("inhabitants")); 26 | CXO_XML_DESERIALIZE(m_continent ,_T("continent")); 27 | END_XML_DESERIALIZE 28 | 29 | BEGIN_DBS_SERIALIZE(country,CXObject) 30 | CXO_DBS_SERIALIZE(m_id ,_T("id")); 31 | CXO_DBS_SERIALIZE(m_name ,_T("name")); 32 | CXO_DBS_SERIALIZE(m_inhabitants ,_T("inhabitants")); 33 | CXO_DBS_SERIALIZE(m_continent ,_T("continent")); 34 | END_DBS_SERIALIZE 35 | 36 | BEGIN_DBS_DESERIALIZE(country,CXObject) 37 | CXO_DBS_DESERIALIZE(m_id ,_T("id")); 38 | CXO_DBS_DESERIALIZE(m_name ,_T("name")); 39 | CXO_DBS_DESERIALIZE(m_inhabitants ,_T("inhabitants")); 40 | CXO_DBS_DESERIALIZE(m_continent ,_T("continent")); 41 | END_DBS_DESERIALIZE 42 | 43 | BEGIN_DESERIALIZE_GENERATOR(country) 44 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 45 | END_DESERIALIZE_GENERATOR 46 | 47 | // Static factory to create a new object if this class 48 | DEFINE_CXO_FACTORY(country); 49 | -------------------------------------------------------------------------------- /HelloWorld/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /HelloWorld/hibernate.cfg.xml: -------------------------------------------------------------------------------- 1 | 2 | standalone 3 | C:\TMP\My_hibernate_logfile.txt 4 | 6 5 | use 6 | 7 | country 8 | data 9 | country
10 | cty 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |
23 | -------------------------------------------------------------------------------- /HelloWorld/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.obj will contain the pre-compiled type information 3 | 4 | #include "stdafx.h" 5 | 6 | -------------------------------------------------------------------------------- /HelloWorld/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include "framework.h" 10 | 11 | // Auto link to these libraries 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /HelloWorld/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /Marlin/CPULoad.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: CPULoad.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | ////////////////////////////////////////////////////////////////////////// 29 | 30 | #pragma once 31 | 32 | static float 33 | CalculateCPULoad(unsigned long long idleTicks,unsigned long long totalTicks); 34 | 35 | static unsigned long long 36 | FileTimeToInt64(const FILETIME & ft); 37 | 38 | // Returns 1.0f for "CPU fully pinned", 0.0f for "CPU idle", or somewhere in between 39 | // You'll need to call this at regular intervals, since it measures the load between 40 | // the previous call and the current one. Returns -1.0 on error. 41 | float GetCPULoad(CRITICAL_SECTION* m_lock); 42 | -------------------------------------------------------------------------------- /Marlin/IISDebug.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: IISDebug.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | class IHttpContext; 31 | class LogAnalysis; 32 | 33 | void IISDebugAllVariables(IHttpContext* p_context); 34 | 35 | -------------------------------------------------------------------------------- /Marlin/MarlinServer.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: MarlinServer.cpp 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #include "stdafx.h" 29 | #include "MarlinServer.h" 30 | #include 31 | 32 | // The one-and-only Marlin server 33 | MarlinServer* s_theServer = nullptr; 34 | 35 | MarlinServer::MarlinServer() 36 | { 37 | assert(s_theServer == nullptr); 38 | s_theServer = this; 39 | } 40 | 41 | MarlinServer::~MarlinServer() 42 | { 43 | assert(s_theServer == this); 44 | s_theServer = nullptr; 45 | } 46 | 47 | // Should not come to here! 48 | // You should derive a class from "MarlinServer" and do your thing there! 49 | // 50 | bool MarlinServer::Startup() 51 | { 52 | assert(s_theServer != nullptr); 53 | return false; 54 | } 55 | 56 | void MarlinServer::ShutDown() 57 | { 58 | } -------------------------------------------------------------------------------- /Marlin/MarlinServer.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: MarlinServer.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | class MarlinServer 31 | { 32 | public: 33 | MarlinServer(); 34 | ~MarlinServer(); 35 | 36 | virtual bool Startup(); 37 | virtual void ShutDown(); 38 | 39 | private: 40 | }; 41 | 42 | // The one and only server instance! 43 | // Can be called from within ServerMain for standalone and NT-Service 44 | // Can be called from within ServerApp for IIS factored applications 45 | extern MarlinServer* s_theServer; 46 | 47 | -------------------------------------------------------------------------------- /Marlin/ServerEvent.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: ServerEvent.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | 30 | // Server push event 31 | class ServerEvent 32 | { 33 | public: 34 | // Standard constructors 35 | ServerEvent() 36 | :m_id(0) 37 | { 38 | } 39 | 40 | explicit ServerEvent(XString p_event) 41 | :m_event(p_event) 42 | ,m_id(0) 43 | { 44 | } 45 | 46 | explicit ServerEvent(const ServerEvent* p_event) 47 | :m_id (p_event->m_id) 48 | ,m_event(p_event->m_event) 49 | ,m_data (p_event->m_data) 50 | { 51 | } 52 | 53 | // Event data 54 | UINT m_id; 55 | XString m_event; 56 | XString m_data; 57 | }; 58 | -------------------------------------------------------------------------------- /Marlin/SiteFilterXSS.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteFilterXSS.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteFilter.h" 30 | 31 | class SiteFilterXSS: public SiteFilter 32 | { 33 | public: 34 | explicit SiteFilterXSS(unsigned p_priority,XString p_name); 35 | virtual ~SiteFilterXSS(); 36 | 37 | // Handle the filter 38 | virtual bool Handle(HTTPMessage* p_message) override; 39 | 40 | private: 41 | 42 | }; 43 | -------------------------------------------------------------------------------- /Marlin/SiteHandlerConnect.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerConnect.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | #include "HTTPMessage.h" 31 | 32 | class SiteHandlerConnect : public SiteHandler 33 | { 34 | protected: 35 | // Handlers: Override and return 'true' if handling is ready 36 | virtual bool PreHandle(HTTPMessage* p_message) override; 37 | virtual bool Handle(HTTPMessage* p_message) override; 38 | virtual void PostHandle(HTTPMessage* p_message) override; 39 | }; 40 | -------------------------------------------------------------------------------- /Marlin/SiteHandlerDelete.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerDelete.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | class SiteHandlerDelete: public SiteHandler 32 | { 33 | protected: 34 | // Handlers: Override and return 'true' if handling is ready 35 | virtual bool PreHandle(HTTPMessage* p_message) override; 36 | virtual bool Handle(HTTPMessage* p_message) override; 37 | virtual void PostHandle(HTTPMessage* p_message) override; 38 | virtual void CleanUp (HTTPMessage* p_message) override; 39 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerGet.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerGet.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | #define BASE_INDEX_PAGE "index.html"; 32 | 33 | class SiteHandlerGet: public SiteHandler 34 | { 35 | protected: 36 | // Handlers: Override and return 'true' if handling is ready 37 | virtual bool PreHandle(HTTPMessage* p_message) override; 38 | virtual bool Handle(HTTPMessage* p_message) override; 39 | virtual void PostHandle(HTTPMessage* p_message) override; 40 | virtual void CleanUp (HTTPMessage* p_message) override; 41 | 42 | // Filename handlers 43 | virtual bool FileNameTransformations(XString& p_filename); 44 | virtual bool FileNameRestrictions (XString& p_filename); 45 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerHead.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerHead.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | // Most likely the ONLY trace handler you will ever want 32 | // Nothing more to be done. See RFC 2616 to confirm this. 33 | // 34 | // NO NEED TO OVERRIDE THIS CLASS!! 35 | // 36 | class SiteHandlerHead: public SiteHandler 37 | { 38 | protected: 39 | // Handlers: Override and return 'true' if handling is ready 40 | virtual bool PreHandle(HTTPMessage* p_message) override; 41 | virtual bool Handle(HTTPMessage* p_message) override; 42 | virtual void PostHandle(HTTPMessage* p_message) override; 43 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerJson.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerJSON.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | class JSONMessage; 32 | 33 | // A JSON handler is an override for the HTTP POST handler 34 | // Most likely you need to write an overload of this one 35 | // and provide a 'Handle' method yourself, 36 | 37 | class SiteHandlerJson: public SiteHandler 38 | { 39 | protected: 40 | // Handlers: Override and return 'true' if handling is ready 41 | virtual bool PreHandle(HTTPMessage* p_message) override; 42 | virtual bool Handle(HTTPMessage* p_message) override; 43 | virtual bool Handle(JSONMessage* p_message); 44 | virtual void PostHandle(HTTPMessage* p_message) override; 45 | virtual void CleanUp(HTTPMessage* p_message) override; 46 | }; 47 | 48 | -------------------------------------------------------------------------------- /Marlin/SiteHandlerJson2Soap.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerJson2Soap.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | // Intended as a GET handler, but used to 32 | // convert the URL parameters to a SOAP message 33 | 34 | class SiteHandlerJson2Soap: public SiteHandler 35 | { 36 | protected: 37 | // Handlers: Override and return 'true' if handling is ready 38 | virtual bool PreHandle(HTTPMessage* p_message) override; 39 | virtual bool Handle(HTTPMessage* p_message) override; 40 | virtual bool Handle(SOAPMessage* p_message); 41 | virtual void PostHandle(HTTPMessage* p_message) override; 42 | virtual void CleanUp (HTTPMessage* p_message) override; 43 | }; 44 | -------------------------------------------------------------------------------- /Marlin/SiteHandlerMerge.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerMerge.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | class SiteHandlerMerge: public SiteHandler 32 | { 33 | protected: 34 | // Handlers: Override and return 'true' if handling is ready 35 | virtual bool PreHandle(HTTPMessage* p_message) override; 36 | virtual bool Handle(HTTPMessage* p_message) override; 37 | virtual void PostHandle(HTTPMessage* p_message) override; 38 | virtual void CleanUp(HTTPMessage* p_message) override; 39 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerPatch.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerPatch.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | class SiteHandlerPatch: public SiteHandler 32 | { 33 | protected: 34 | // Handlers: Override and return 'true' if handling is ready 35 | virtual bool PreHandle(HTTPMessage* p_message) override; 36 | virtual bool Handle(HTTPMessage* p_message) override; 37 | virtual void PostHandle(HTTPMessage* p_message) override; 38 | virtual void CleanUp(HTTPMessage* p_message) override; 39 | }; 40 | -------------------------------------------------------------------------------- /Marlin/SiteHandlerPost.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerPost.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | #include "CrackURL.h" 31 | 32 | class SiteHandlerPost: public SiteHandler 33 | { 34 | protected: 35 | // Handlers: Override and return 'true' if handling is ready 36 | virtual bool PreHandle(HTTPMessage* p_message) override; 37 | virtual bool Handle(HTTPMessage* p_message) override; 38 | virtual void PostHandle(HTTPMessage* p_message) override; 39 | 40 | // This is the work of the posted action 41 | // Gets input like the filename, the body of the action 42 | // And the full URL carrying the parameters of the posted call 43 | virtual bool DoPostAction(XString p_filename,XString p_body,const CrackedURL& p_full); 44 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerPut.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerPut.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | class SiteHandlerPut: public SiteHandler 32 | { 33 | protected: 34 | // Handlers: Override and return 'true' if handling is ready 35 | virtual bool PreHandle(HTTPMessage* p_message) override; 36 | virtual bool Handle(HTTPMessage* p_message) override; 37 | virtual void PostHandle(HTTPMessage* p_message) override; 38 | }; -------------------------------------------------------------------------------- /Marlin/SiteHandlerTrace.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: SiteHandlerTrace.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "SiteHandler.h" 30 | 31 | // Most likely the ONLY trace handler you will ever want 32 | // Nothing more to be done. See RFC 2616 to confirm this. 33 | // 34 | // NO NEED TO OVERRIDE THIS CLASS!! 35 | // 36 | class SiteHandlerTrace: public SiteHandler 37 | { 38 | protected: 39 | // Handlers: Override and return 'true' if handling is ready 40 | virtual bool PreHandle(HTTPMessage* p_message) override; 41 | virtual bool Handle(HTTPMessage* p_message) override; 42 | virtual void PostHandle(HTTPMessage* p_message) override; 43 | }; 44 | -------------------------------------------------------------------------------- /Marlin/WinSocket.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "WinSocket.h" 3 | 4 | void _cdecl MarlinCleanupWinsocket() 5 | { 6 | WSACleanup(); 7 | } 8 | 9 | bool MarlinStartupWinsocket() 10 | { 11 | WSADATA wsaData; 12 | 13 | // Startup WinSockets 14 | // Recent versions of MS-Windows use WinSock 2.2 library 15 | WORD wVersionRequested = MAKEWORD(2,2); 16 | if(WSAStartup(wVersionRequested,&wsaData)) 17 | { 18 | // Could not start WinSockets? 19 | return false; 20 | } 21 | 22 | // Register for cleanup when closing program 23 | atexit(MarlinCleanupWinsocket); 24 | 25 | return true; 26 | } -------------------------------------------------------------------------------- /Marlin/WinSocket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Startup WSA Winsockets 4 | bool MarlinStartupWinsocket(); 5 | // Cleaning up the WinSocket library 6 | void _cdecl MarlinCleanupWinsocket(); 7 | -------------------------------------------------------------------------------- /Marlin/XMLParserImport.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: XMLParserImport.h 4 | // 5 | // Marlin Server: Internet server/client 6 | // 7 | // Copyright (c) 2014-2024 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining a copy 11 | // of this software and associated documentation files(the "Software"), to deal 12 | // in the Software without restriction, including without limitation the rights 13 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 14 | // copies of the Software, and to permit persons to whom the Software is 15 | // furnished to do so, subject to the following conditions : 16 | // 17 | // The above copyright notice and this permission notice shall be included in 18 | // all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 23 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | // THE SOFTWARE. 27 | // 28 | #pragma once 29 | #include "XMLParser.h" 30 | 31 | class XMLParserImport : public XMLParser 32 | { 33 | public: 34 | explicit XMLParserImport(XMLMessage* p_message); 35 | 36 | protected: 37 | virtual void ParseAfterElement(); 38 | 39 | private: 40 | bool ParseSchemaImport(const XString& p_location); 41 | 42 | bool ReadXSDFileFromURL(const XString& p_url); 43 | bool ReadXSDLocalFile(const XString& p_filename); 44 | bool ReadXSD(const XString& p_message); 45 | }; 46 | -------------------------------------------------------------------------------- /Marlin/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | #include "..\framework.h" 12 | #include 13 | 14 | #ifndef _ATL 15 | // 16 | #define TRACE ATLTRACE 17 | #define ASSERT ATLASSERT 18 | #define VERIFY ATLVERIFY 19 | #ifdef _DEBUG 20 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 21 | #endif 22 | #endif // _ATL 23 | 24 | //use XString in ATL 25 | // #include 26 | 27 | ////////////////////////////////////////////////////////////////////////// 28 | // 29 | // Can be extended beyond this point with extra MFC requirements 30 | // 31 | ////////////////////////////////////////////////////////////////////////// 32 | 33 | // Extras needed for MFC in this program 34 | // #include // MFC extensions 35 | -------------------------------------------------------------------------------- /Marlin/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // MarlinClient.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | -------------------------------------------------------------------------------- /Marlin/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #include "framework.h" 9 | 10 | // Do not autolink with Marlin from within the library itself 11 | #define MARLIN_NOAUTOLINK 12 | 13 | // Use the base-library for the general components and string class 14 | #include 15 | -------------------------------------------------------------------------------- /Marlin/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /MarlinModule/IISDebug.cpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Includes from the Marlin library, so we have no linkage dependency 4 | // 5 | ////////////////////////////////////////////////////////////////////////// 6 | 7 | #include "stdafx.h" 8 | #include "..\Marlin\IISDebug.cpp" 9 | -------------------------------------------------------------------------------- /MarlinModule/Jumping.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/MarlinModule/Jumping.bmp -------------------------------------------------------------------------------- /MarlinModule/Logfile.nsh: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------------- 2 | ; 3 | ; File: Logfile.nsh 4 | ; Author: Edwig Huisman 5 | ; 6 | ; Copyright (c) 2019 ir. W.E. Huisman 7 | ; 8 | ;------------------------------------------------------- 9 | var logfile 10 | var log 11 | 12 | Function OpenLogfile 13 | strcpy $logfile $R0 14 | ClearErrors 15 | FileOpen $log $logfile "w" 16 | IfErrors +1 EndOpenLogfile 17 | abort "Cannot open the logfile $logfile. Check your rights on this directory!" 18 | EndOpenLogfile: 19 | FunctionEnd 20 | 21 | Function CloseLogfile 22 | FileClose $log 23 | FunctionEnd 24 | 25 | Function Un.OpenLogfile 26 | strcpy $logfile $R0 27 | ClearErrors 28 | FileOpen $log $logfile "w" 29 | IfErrors +1 EndOpenLogfile 30 | abort "Cannot open the logfile $logfile. Check your rights on this directory!" 31 | EndOpenLogfile: 32 | FunctionEnd 33 | 34 | Function Un.CloseLogfile 35 | FileCLose $log 36 | FunctionEnd 37 | 38 | !macro Log logline 39 | FileWrite $log "${logline}$\r$\n" 40 | !macroend 41 | 42 | !macro LogLine 43 | !insertmacro Log "-----------------------------------------------------------------------" 44 | !macroend 45 | 46 | -------------------------------------------------------------------------------- /MarlinModule/Marlin.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/MarlinModule/Marlin.bmp -------------------------------------------------------------------------------- /MarlinModule/MarlinModule.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/MarlinModule/MarlinModule.rc -------------------------------------------------------------------------------- /MarlinModule/MarlinModule.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | Source Files 46 | 47 | 48 | Source Files 49 | 50 | 51 | 52 | 53 | Resource Files 54 | 55 | 56 | -------------------------------------------------------------------------------- /MarlinModule/Stdafx.cpp: -------------------------------------------------------------------------------- 1 | // pch.cpp: source file corresponding to the pre-compiled header 2 | 3 | #include "stdafx.h" 4 | 5 | // When you are using pre-compiled headers, this source file is necessary for compilation to succeed. 6 | -------------------------------------------------------------------------------- /MarlinModule/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | #include "..\framework.h" 12 | 13 | ////////////////////////////////////////////////////////////////////////// 14 | // 15 | // Can be extended beyond this point with extra MFC requirements 16 | // 17 | ////////////////////////////////////////////////////////////////////////// 18 | 19 | 20 | -------------------------------------------------------------------------------- /MarlinModule/marlin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/MarlinModule/marlin.ico -------------------------------------------------------------------------------- /MarlinModule/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MarlinModule.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /MarlinModule/stdafx.h: -------------------------------------------------------------------------------- 1 | // pch.h: This is a precompiled header file. 2 | // Files listed below are compiled only once, improving build performance for future builds. 3 | // This also affects IntelliSense performance, including code completion and many code browsing features. 4 | // However, files listed here are ALL re-compiled if any one of them is updated between builds. 5 | // Do not add files here that you will be updating frequently as this negates the performance advantage. 6 | #pragma once 7 | 8 | // add headers that you want to pre-compile here 9 | #include "targetver.h" 10 | #include "framework.h" 11 | 12 | #include 13 | #include 14 | 15 | #ifndef _ATL 16 | // 17 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some XString constructors will be explicit 18 | // 19 | #define TRACE ATLTRACE 20 | #define ASSERT ATLASSERT 21 | #define VERIFY ATLVERIFY 22 | #ifdef _DEBUG 23 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 24 | #endif 25 | #endif 26 | 27 | // Auto link with BaseLibrary 28 | #include 29 | 30 | -------------------------------------------------------------------------------- /MarlinModule/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 4 | 5 | // Including SDKDDKVer.h defines the highest available Windows platform. 6 | 7 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 8 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /Roadmap.txt: -------------------------------------------------------------------------------- 1 | Roadmap for CX-Hibernate 2 | ======================== 3 | 4 | Features that where not included in version 1.0.0 5 | But will be implemented in a later version 6 | ------------------------------------------ 7 | - Naming the discriminator attribute other than "Discriminator" 8 | - Setting the size of the discriminator other than a maximum of "5" 9 | - Other generators than a native database "SEQUENCE" 10 | - Other generator names than "_seq" 11 | - Greater cache control. Especially on the second line cache 12 | - many-to-many associations 13 | - mapping strategy not global but in each super-class of it's one 14 | (also kwown as union-classes) 15 | - Start / Commit / Rollback transactions on an internet store 16 | 17 | Features from (N)Hibernate that will NEVER be implemented: 18 | ---------------------------------------------------------- 19 | - Lazy loading: too many runtime problems at customer sites 20 | - HQL (Hibernate Query Language) : The payback is to small, 21 | and the confusion is too great. 22 | - Automatic reflection: Sadly this cannot be done in C++, 23 | but pending requests on the ISO C++ commities exist. 24 | Most likely to turn up in C++ 20 or 23 (2020 or 2023) 25 | 26 | Features under consideration 27 | ---------------------------- 28 | - typeid() reflection 29 | -------------------------------------------------------------------------------- /SQLComponents/SQLColumnInfo.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLColumnInfo.cpp 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #include "stdafx.h" 27 | #include "SQLComponents.h" 28 | #include "SQLColumnInfo.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | namespace SQLComponents 37 | { 38 | ColumnInfo::ColumnInfo() 39 | :v_columnName(_T("")) 40 | ,v_dataType (0) 41 | ,v_typeName (_T("")) 42 | ,v_precision (0) 43 | ,v_length (0) 44 | ,v_scale (0) 45 | ,v_nullable (0) 46 | ,v_remarks (_T("")) 47 | { 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /SQLComponents/SQLColumnInfo.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLColumnInfo.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | 28 | namespace SQLComponents 29 | { 30 | class ColumnInfo 31 | { 32 | public: 33 | ColumnInfo(); 34 | 35 | XString v_columnName; 36 | int v_dataType; 37 | XString v_typeName; 38 | int v_precision; 39 | int v_length; 40 | int v_scale; 41 | int v_nullable; 42 | XString v_remarks; 43 | }; 44 | } -------------------------------------------------------------------------------- /SQLComponents/SQLComponentsVersion.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLComponentsVersion.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | #pragma once 25 | 26 | // General version, date and copyright 27 | // of the SQLComponents library 28 | 29 | #define SQL_COMPONENTS_VERSION _T("2.3.2") 30 | #define SQL_COMPONENTS_BINVERSION 2,3,2,0 31 | #define SQL_COMPONENTS_DATE _T("17-02-2025") 32 | #define SQL_COMPONENTS_COPYRIGHT _T("Copyright (c) 2002-2025 ir. W.E. Huisman") 33 | -------------------------------------------------------------------------------- /SQLComponents/SQLError.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/SQLComponents/SQLError.cpp -------------------------------------------------------------------------------- /SQLComponents/SQLError.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLError.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | 28 | namespace SQLComponents 29 | { 30 | 31 | typedef struct _sql_state 32 | { 33 | XString m_code; // Standard SQLSTATE code (5 chars) 34 | XString m_error; // Short error text 35 | XString m_explanation; // Longer explanation of what went wrong 36 | } 37 | SQLState; 38 | 39 | // Array of known sqlstates 40 | extern SQLState sql_states[]; 41 | 42 | class SQLError 43 | { 44 | public: 45 | SQLError(); 46 | ~SQLError(); 47 | 48 | SQLState* GetSQLState(XString p_sqlState); 49 | XString GetSQLStateFormatted(XString p_sqlState); 50 | SQLState* GetLastSQLState(); 51 | private: 52 | SQLState* m_lastState; 53 | }; 54 | 55 | inline SQLState* 56 | SQLError::GetLastSQLState() 57 | { 58 | return m_lastState; 59 | } 60 | 61 | // End of namespace 62 | } -------------------------------------------------------------------------------- /SQLComponents/SQLGetExePath.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLGetExePath.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | 28 | namespace SQLComponents 29 | { 30 | 31 | XString SQLGetExePath(); 32 | XString SQLGetExeFile(); 33 | HMODULE SQLGetModuleHandle(); 34 | void SQLCheckExePath(XString p_runtimer); 35 | 36 | } -------------------------------------------------------------------------------- /SQLComponents/SQLInfo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/SQLComponents/SQLInfo.cpp -------------------------------------------------------------------------------- /SQLComponents/SQLInfoFirebird.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/SQLComponents/SQLInfoFirebird.cpp -------------------------------------------------------------------------------- /SQLComponents/SQLInfoInformix.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/SQLComponents/SQLInfoInformix.cpp -------------------------------------------------------------------------------- /SQLComponents/SQLLanguage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/SQLComponents/SQLLanguage.cpp -------------------------------------------------------------------------------- /SQLComponents/SQLMemoryDebug.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLMemoryDebug.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | 28 | // In DEBUGGING mode we use the reporting facilities of the Standard C++ Debugging library 29 | 30 | #ifdef _DEBUG 31 | // Memory tracking allocation 32 | #define _CRTDBG_MAP_ALLOC 33 | #include 34 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 35 | // Replace _NORMAL_BLOCK with _CLIENT_BLOCK if you want the 36 | // allocations to be of _CLIENT_BLOCK type 37 | #else 38 | #define DEBUG_NEW 39 | #endif // _DEBUG 40 | 41 | 42 | -------------------------------------------------------------------------------- /SQLComponents/SQLMessage.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLMessage.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | 28 | namespace SQLComponents 29 | { 30 | // Message in the foreground or to the WMI Event log 31 | INT_PTR SQLMessage(HWND p_wnd,XString p_message,XString p_title,int p_buttons); 32 | } -------------------------------------------------------------------------------- /SQLComponents/SQLParameterType.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLParameterType.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | #include "SQLComponents.h" 28 | 29 | // Type of parameter for queries and persistent-stored-modules 30 | typedef enum _param_type 31 | { 32 | P_SQL_PARAM_TYPE_UNKNOWN = 0 33 | ,P_SQL_PARAM_INPUT = 1 34 | ,P_SQL_PARAM_INPUT_OUTPUT = 2 35 | ,P_SQL_RESULT_COL = 3 36 | ,P_SQL_PARAM_OUTPUT = 4 37 | ,P_SQL_RETURN_VALUE = 5 38 | } 39 | SQLParamType; 40 | 41 | -------------------------------------------------------------------------------- /SQLComponents/SQLTimestampExtract.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: SQLTimestampExtract.h 4 | // 5 | // Copyright (c) 1998-2025 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Version number: See SQLComponents.h 25 | // 26 | #pragma once 27 | #include "SQLLanguage.h" 28 | 29 | namespace SQLComponents 30 | { 31 | 32 | typedef enum _extractPart 33 | { 34 | TS_EXT_NONE = 0 35 | ,TS_EXT_YEAR 36 | ,TS_EXT_MONTH 37 | ,TS_EXT_DAY 38 | ,TS_EXT_HOUR 39 | ,TS_EXT_MINUTE 40 | ,TS_EXT_SECOND 41 | } 42 | SQLExtractPart; 43 | 44 | typedef enum _calcPart 45 | { 46 | SQL_TSI_NONE = 0 47 | ,SQL_TSI_FRAC_SECOND 48 | ,SQL_TSI_SECOND 49 | ,SQL_TSI_MINUTE 50 | ,SQL_TSI_HOUR 51 | ,SQL_TSI_DAY 52 | ,SQL_TSI_WEEK 53 | ,SQL_TSI_MONTH 54 | ,SQL_TSI_QUARTER 55 | ,SQL_TSI_YEAR 56 | } 57 | SQLTimestampCalcPart; 58 | 59 | } -------------------------------------------------------------------------------- /SQLComponents/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC CString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | #include "..\Framework.h" 12 | 13 | ////////////////////////////////////////////////////////////////////////// 14 | // 15 | // Can be extended beyond this point with extra MFC requirements 16 | // 17 | ////////////////////////////////////////////////////////////////////////// 18 | 19 | // IF We want SQLInfoTree to work, we need the whole shebang from MFC 20 | // IF we want SQLDatasetXLS to work, we need CArchive for oldstyle *.XLS 21 | // so we also need to include the full set 22 | // So we include the full MFC set, otherwise: we just need CString 23 | // 24 | // #include // MFC core and standard components 25 | -------------------------------------------------------------------------------- /SQLComponents/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.obj will contain the pre-compiled type information 3 | // File is only meant here to be able to compile the pre-compiled header 4 | 5 | #include "stdafx.h" 6 | -------------------------------------------------------------------------------- /SQLComponents/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but are changed infrequently 3 | // 4 | // USED TO BUILD THE *.PCH (pre-compiled header) on 5 | // 6 | #pragma once 7 | 8 | // Exclude rarely-used stuff from Windows headers 9 | #ifndef VC_EXTRALEAN 10 | #define VC_EXTRALEAN 11 | #endif 12 | 13 | // Using current OS SDK (Windows 8/10) 14 | #include "targetver.h" 15 | #include "framework.h" 16 | 17 | // Use default IO library 18 | #include 19 | 20 | // #include // MFC extensions 21 | // #include // MFC support for Windows Common Controls 22 | 23 | // Autolink to the base library 24 | #include 25 | 26 | // Autolink records only generated OUTSIDE this library 27 | #define SQL_COMPONENTS_NOAUTOLINK 28 | #include "SQLComponents.h" 29 | 30 | // Automatically include the correct manifest 31 | #if defined _M_IX86 32 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 33 | #elif defined _M_IA64 34 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 35 | #elif defined _M_X64 36 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 37 | #else 38 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 39 | #endif 40 | -------------------------------------------------------------------------------- /SQLComponents/targetver.h: -------------------------------------------------------------------------------- 1 | // Including SDKDDKVer.h defines the highest available Windows platform. 2 | // 3 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 4 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 5 | // 6 | #pragma once 7 | 8 | #define _WIN32_WINNT 0x0A00 9 | 10 | #include 11 | -------------------------------------------------------------------------------- /TestClient/Detail.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: Detail.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Detail.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CXO_CONSTRUCTOR(Detail) 37 | Detail::Detail() 38 | { 39 | // Things to do in the constructor ... 40 | } 41 | 42 | 43 | ////////////////////////////////////////////////////////////////////////// 44 | // 45 | // Normal class methods 46 | // 47 | ////////////////////////////////////////////////////////////////////////// -------------------------------------------------------------------------------- /TestClient/Master.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXMaster.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Master.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CTOR creating a new master record 37 | Master::Master() 38 | { 39 | } 40 | 41 | // Setters 42 | 43 | void 44 | Master::SetTotal(bcd p_bcd) 45 | { 46 | m_total = p_bcd; 47 | } 48 | -------------------------------------------------------------------------------- /TestClient/TestNumber.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: TestNumber.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "TestNumber.h" 29 | #include 30 | #include 31 | #include 32 | 33 | #ifdef _DEBUG 34 | #define new DEBUG_NEW 35 | #undef THIS_FILE 36 | static char THIS_FILE[] = __FILE__; 37 | #endif 38 | 39 | // CTOR creating a new master record 40 | TestNumber::TestNumber() 41 | { 42 | } 43 | 44 | -------------------------------------------------------------------------------- /TestClient/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /TestClient/framework.u.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /TestClient/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // TestServer.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /TestClient/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #include "framework.h" 9 | 10 | #include 11 | 12 | // Include to get automatic library linking 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | // Automatically include the correct manifest 19 | #if defined _M_IX86 20 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 21 | #elif defined _M_IA64 22 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 23 | #elif defined _M_X64 24 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 25 | #else 26 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 27 | #endif -------------------------------------------------------------------------------- /TestClient/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /TestServer/Detail.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: Detail.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Detail.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CXO_CONSTRUCTOR(Detail) 37 | Detail::Detail() 38 | { 39 | // Things to do in the constructor ... 40 | } 41 | 42 | 43 | ////////////////////////////////////////////////////////////////////////// 44 | // 45 | // Normal class methods 46 | // 47 | ////////////////////////////////////////////////////////////////////////// -------------------------------------------------------------------------------- /TestServer/Master.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXMaster.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Master.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CTOR creating a new master record 37 | Master::Master() 38 | { 39 | } 40 | 41 | // Setters 42 | 43 | void 44 | Master::SetTotal(bcd p_bcd) 45 | { 46 | m_total = p_bcd; 47 | } 48 | -------------------------------------------------------------------------------- /TestServer/TestNumber.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: TestNumber.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "TestNumber.h" 29 | #include 30 | #include 31 | #include 32 | 33 | #ifdef _DEBUG 34 | #define new DEBUG_NEW 35 | #undef THIS_FILE 36 | static char THIS_FILE[] = __FILE__; 37 | #endif 38 | 39 | // CTOR creating a new master record 40 | TestNumber::TestNumber() 41 | { 42 | } 43 | 44 | -------------------------------------------------------------------------------- /TestServer/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /TestServer/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // TestServer.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /TestServer/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #include "framework.h" 9 | 10 | #include 11 | #include 12 | 13 | // Include to get automatic library linking 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | // Automatically include the correct manifest 20 | #if defined _M_IX86 21 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 22 | #elif defined _M_IA64 23 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 24 | #elif defined _M_X64 25 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 26 | #else 27 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 28 | #endif -------------------------------------------------------------------------------- /TestServer/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /TestServerIIS/Detail.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: Detail.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Detail.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CXO_CONSTRUCTOR(Detail) 37 | Detail::Detail() 38 | { 39 | // Things to do in the constructor ... 40 | } 41 | 42 | 43 | ////////////////////////////////////////////////////////////////////////// 44 | // 45 | // Normal class methods 46 | // 47 | ////////////////////////////////////////////////////////////////////////// -------------------------------------------------------------------------------- /TestServerIIS/Master.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: CXMaster.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "Master.h" 29 | 30 | #ifdef _DEBUG 31 | #define new DEBUG_NEW 32 | #undef THIS_FILE 33 | static char THIS_FILE[] = __FILE__; 34 | #endif 35 | 36 | // CTOR creating a new master record 37 | Master::Master() 38 | { 39 | } 40 | 41 | // Setters 42 | 43 | void 44 | Master::SetTotal(bcd p_bcd) 45 | { 46 | m_total = p_bcd; 47 | } 48 | -------------------------------------------------------------------------------- /TestServerIIS/TestNumber.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: TestNumber.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "TestNumber.h" 29 | #include 30 | #include 31 | #include 32 | 33 | #ifdef _DEBUG 34 | #define new DEBUG_NEW 35 | #undef THIS_FILE 36 | static char THIS_FILE[] = __FILE__; 37 | #endif 38 | 39 | // CTOR creating a new master record 40 | TestNumber::TestNumber() 41 | { 42 | } 43 | 44 | -------------------------------------------------------------------------------- /TestServerIIS/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /TestServerIIS/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // TestServer.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /TestServerIIS/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #include "framework.h" 9 | 10 | #include 11 | #include 12 | 13 | // Include to get automatic library linking 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | // Automatically include the correct manifest 20 | #if defined _M_IX86 21 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 22 | #elif defined _M_IA64 23 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 24 | #elif defined _M_X64 25 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 26 | #else 27 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 28 | #endif -------------------------------------------------------------------------------- /TestServerIIS/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /UnitTest/Animal.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Animal 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Animal.h" 6 | 7 | #ifdef _DEBUG 8 | #define new DEBUG_NEW 9 | #undef THIS_FILE 10 | static char THIS_FILE[] = __FILE__; 11 | #endif 12 | 13 | // CTOR for class 14 | Animal::Animal() 15 | { 16 | // Things to do in the constructor 17 | } 18 | 19 | // DTOR for class 20 | Animal::~Animal() 21 | { 22 | // Things to do in the destructor 23 | } 24 | 25 | -------------------------------------------------------------------------------- /UnitTest/Animal.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Animal 2 | // Automatically generated by: CX-Hibernate 3 | // File: Animal.h 4 | // 5 | #pragma once 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class Animal : public CXObject 16 | { 17 | public: 18 | // CTOR of an CXObject derived class 19 | Animal(); 20 | // DTOR of an CXObject derived class 21 | virtual ~Animal(); 22 | 23 | // Serialization of our persistent objects 24 | DECLARE_CXO_SERIALIZATION; 25 | 26 | // GETTERS 27 | int GetId() { return m_id; }; 28 | CString GetAnimalName() { return m_animalName; }; 29 | bool GetHas_claws() { return m_has_claws; }; 30 | bool GetHas_hair() { return m_has_hair; }; 31 | bool GetHas_wings() { return m_has_wings; }; 32 | int GetNumberOfLegs() { return m_numberOfLegs; }; 33 | 34 | // SETTERS 35 | void SetAnimalName(CString p_animalName) { m_animalName = p_animalName; }; 36 | void SetHas_claws(bool p_has_claws) { m_has_claws = p_has_claws; }; 37 | void SetHas_hair(bool p_has_hair) { m_has_hair = p_has_hair; }; 38 | void SetHas_wings(bool p_has_wings) { m_has_wings = p_has_wings; }; 39 | void SetNumberOfLegs(int p_numberOfLegs) { m_numberOfLegs = p_numberOfLegs; }; 40 | 41 | protected: 42 | // Database persistent attributes 43 | int m_id { 0 }; 44 | XString m_animalName; 45 | bool m_has_claws { false }; 46 | bool m_has_hair { false }; 47 | bool m_has_wings { false }; 48 | int m_numberOfLegs { 0 }; 49 | 50 | private: 51 | // Transient attributes go here 52 | }; 53 | -------------------------------------------------------------------------------- /UnitTest/Cat.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Cat 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Cat.h" 6 | #include "Animal.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | Cat::Cat() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | Cat::~Cat() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/Cat.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Cat 2 | // Automatically generated by: CX-Hibernate 3 | // File: Cat.h 4 | // 5 | #pragma once 6 | #include 7 | #include "Animal.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class Cat : public Animal 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | Cat(); 21 | // DTOR of an CXObject derived class 22 | virtual ~Cat(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetColor() { return m_color; }; 29 | bool GetCatdoor() { return m_catdoor; }; 30 | bool GetLikesWhiskas() { return m_likesWhiskas; }; 31 | 32 | // SETTERS 33 | void SetColor(CString p_color) { m_color = p_color; }; 34 | void SetCatdoor(bool p_catdoor) { m_catdoor = p_catdoor; }; 35 | void SetLikesWhiskas(bool p_likesWhiskas) { m_likesWhiskas = p_likesWhiskas; }; 36 | 37 | protected: 38 | // Database persistent attributes 39 | CString m_color ; 40 | bool m_catdoor { false }; 41 | bool m_likesWhiskas { false }; 42 | 43 | private: 44 | // Transient attributes go here 45 | }; 46 | -------------------------------------------------------------------------------- /UnitTest/Cat_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Cat 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Cat.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Cat,Animal) 16 | CXO_XML_SERIALIZE(m_color ,_T("color")); 17 | CXO_XML_SERIALIZE(m_catdoor ,_T("catdoor")); 18 | CXO_XML_SERIALIZE(m_likesWhiskas ,_T("likesWhiskas")); 19 | END_XML_SERIALIZE 20 | 21 | BEGIN_XML_DESERIALIZE(Cat,Animal) 22 | CXO_XML_DESERIALIZE(m_color ,_T("color")); 23 | CXO_XML_DESERIALIZE(m_catdoor ,_T("catdoor")); 24 | CXO_XML_DESERIALIZE(m_likesWhiskas ,_T("likesWhiskas")); 25 | END_XML_DESERIALIZE 26 | 27 | BEGIN_DBS_SERIALIZE(Cat,Animal) 28 | CXO_DBS_SERIALIZE(m_color ,_T("color")); 29 | CXO_DBS_SERIALIZE(m_catdoor ,_T("catdoor")); 30 | CXO_DBS_SERIALIZE(m_likesWhiskas ,_T("likesWhiskas")); 31 | END_DBS_SERIALIZE 32 | 33 | BEGIN_DBS_DESERIALIZE(Cat,Animal) 34 | CXO_DBS_DESERIALIZE(m_color ,_T("color")); 35 | CXO_DBS_DESERIALIZE(m_catdoor ,_T("catdoor")); 36 | CXO_DBS_DESERIALIZE(m_likesWhiskas ,_T("likesWhiskas")); 37 | END_DBS_DESERIALIZE 38 | 39 | BEGIN_DESERIALIZE_GENERATOR(Cat) 40 | CXO_DBS_DESERIALIZE(m_id,_T("id")); 41 | END_DESERIALIZE_GENERATOR 42 | 43 | // Static factory to create a new object if this class 44 | DEFINE_CXO_FACTORY(Cat); 45 | 46 | -------------------------------------------------------------------------------- /UnitTest/Dog.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Dog 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Dog.h" 6 | #include "Animal.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | Dog::Dog() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | Dog::~Dog() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/Dog.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Dog 2 | // Automatically generated by: CX-Hibernate 3 | // File: Dog.h 4 | // 5 | #pragma once 6 | #include 7 | #include "Animal.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class Dog : public Animal 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | Dog(); 21 | // DTOR of an CXObject derived class 22 | virtual ~Dog(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetSubrace() { return m_subrace; }; 29 | int GetWalksPerDay() { return m_walksPerDay; }; 30 | bool GetHunting() { return m_hunting; }; 31 | bool GetWaterdog() { return m_waterdog; }; 32 | 33 | // SETTERS 34 | void SetSubrace(CString p_subrace) { m_subrace = p_subrace; }; 35 | void SetWalksPerDay(int p_walksPerDay) { m_walksPerDay = p_walksPerDay; }; 36 | void SetHunting(bool p_hunting) { m_hunting = p_hunting; }; 37 | void SetWaterdog(bool p_waterdog) { m_waterdog = p_waterdog; }; 38 | 39 | protected: 40 | // Database persistent attributes 41 | CString m_subrace ; 42 | int m_walksPerDay { 0 }; 43 | bool m_hunting { false }; 44 | bool m_waterdog { false }; 45 | 46 | private: 47 | // Transient attributes go here 48 | }; 49 | -------------------------------------------------------------------------------- /UnitTest/Dog_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Dog 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Dog.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Dog,Animal) 16 | CXO_XML_SERIALIZE(m_subrace ,_T("subrace")); 17 | CXO_XML_SERIALIZE(m_walksPerDay,_T("walksPerDay")); 18 | CXO_XML_SERIALIZE(m_hunting ,_T("hunting")); 19 | CXO_XML_SERIALIZE(m_waterdog ,_T("waterdog")); 20 | END_XML_SERIALIZE 21 | 22 | BEGIN_XML_DESERIALIZE(Dog,Animal) 23 | CXO_XML_DESERIALIZE(m_subrace ,_T("subrace")); 24 | CXO_XML_DESERIALIZE(m_walksPerDay ,_T("walksPerDay")); 25 | CXO_XML_DESERIALIZE(m_hunting ,_T("hunting")); 26 | CXO_XML_DESERIALIZE(m_waterdog ,_T("waterdog")); 27 | END_XML_DESERIALIZE 28 | 29 | BEGIN_DBS_SERIALIZE(Dog,Animal) 30 | CXO_DBS_SERIALIZE(m_subrace ,_T("subrace")); 31 | CXO_DBS_SERIALIZE(m_walksPerDay,_T("walksPerDay")); 32 | CXO_DBS_SERIALIZE(m_hunting ,_T("hunting")); 33 | CXO_DBS_SERIALIZE(m_waterdog ,_T("waterdog")); 34 | END_DBS_SERIALIZE 35 | 36 | BEGIN_DBS_DESERIALIZE(Dog,Animal) 37 | CXO_DBS_DESERIALIZE(m_subrace ,_T("subrace")); 38 | CXO_DBS_DESERIALIZE(m_walksPerDay,_T("walksPerDay")); 39 | CXO_DBS_DESERIALIZE(m_hunting ,_T("hunting")); 40 | CXO_DBS_DESERIALIZE(m_waterdog ,_T("waterdog")); 41 | END_DBS_DESERIALIZE 42 | 43 | BEGIN_DESERIALIZE_GENERATOR(Dog) 44 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 45 | END_DESERIALIZE_GENERATOR 46 | 47 | // Static factory to create a new object if this class 48 | DEFINE_CXO_FACTORY(Dog); 49 | 50 | -------------------------------------------------------------------------------- /UnitTest/Infant.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Infant 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Infant.h" 6 | #include "NaturalPerson.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | Infant::Infant() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | Infant::~Infant() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/Infant.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Infant 2 | // Automatically generated by: CX-Hibernate 3 | // File: Infant.h 4 | // 5 | #pragma once 6 | #include 7 | #include "NaturalPerson.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class Infant : public NaturalPerson 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | Infant(); 21 | // DTOR of an CXObject derived class 22 | virtual ~Infant(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetImmunisation() { return m_immunisation; }; 29 | CString GetComplication() { return m_complication; }; 30 | CString GetHospital() { return m_hospital; }; 31 | 32 | protected: 33 | // Database persistent attributes 34 | CString m_immunisation ; 35 | CString m_complication ; 36 | CString m_hospital ; 37 | 38 | private: 39 | // Transient attributes go here 40 | }; 41 | -------------------------------------------------------------------------------- /UnitTest/Infant_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Infant 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Infant.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Infant,NaturalPerson) 16 | CXO_XML_SERIALIZE(m_immunisation,_T("immunisation")); 17 | CXO_XML_SERIALIZE(m_complication,_T("complication")); 18 | CXO_XML_SERIALIZE(m_hospital ,_T("hospital")); 19 | END_XML_SERIALIZE 20 | 21 | BEGIN_XML_DESERIALIZE(Infant,NaturalPerson) 22 | CXO_XML_DESERIALIZE(m_immunisation,_T("immunisation")); 23 | CXO_XML_DESERIALIZE(m_complication,_T("complication")); 24 | CXO_XML_DESERIALIZE(m_hospital ,_T("hospital")); 25 | END_XML_DESERIALIZE 26 | 27 | BEGIN_DBS_SERIALIZE(Infant,NaturalPerson) 28 | CXO_DBS_SERIALIZE(m_immunisation,_T("immunisation")); 29 | CXO_DBS_SERIALIZE(m_complication,_T("complication")); 30 | CXO_DBS_SERIALIZE(m_hospital ,_T("hospital")); 31 | END_DBS_SERIALIZE 32 | 33 | BEGIN_DBS_DESERIALIZE(Infant,NaturalPerson) 34 | CXO_DBS_DESERIALIZE(m_immunisation,_T("immunisation")); 35 | CXO_DBS_DESERIALIZE(m_complication,_T("complication")); 36 | CXO_DBS_DESERIALIZE(m_hospital ,_T("hospital")); 37 | END_DBS_DESERIALIZE 38 | 39 | BEGIN_DESERIALIZE_GENERATOR(Infant) 40 | CXO_DBS_DESERIALIZE(m_id,_T("id")); 41 | END_DESERIALIZE_GENERATOR 42 | 43 | // Static factory to create a new object if this class 44 | DEFINE_CXO_FACTORY(Infant); 45 | 46 | -------------------------------------------------------------------------------- /UnitTest/Kitten.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Kitten 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Kitten.h" 6 | #include "Cat.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | Kitten::Kitten() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | Kitten::~Kitten() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/Kitten.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Kitten 2 | // Automatically generated by: CX-Hibernate 3 | // File: Kitten.h 4 | // 5 | #pragma once 6 | #include 7 | #include "Cat.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class Kitten : public Cat 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | Kitten(); 21 | // DTOR of an CXObject derived class 22 | virtual ~Kitten(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetKit_color() { return m_kit_color; }; 29 | bool GetImmuun() { return m_immuun; }; 30 | bool GetInLitter() { return m_inLitter; }; 31 | 32 | // SETTERS 33 | void SetKit_color(CString p_kit_color) { m_kit_color = p_kit_color; }; 34 | void SetImmuun(bool p_immuun) { m_immuun = p_immuun; }; 35 | void SetInLitter(bool p_inLitter) { m_inLitter = p_inLitter; }; 36 | 37 | protected: 38 | // Database persistent attributes 39 | CString m_kit_color; 40 | bool m_immuun { false }; 41 | bool m_inLitter { false }; 42 | 43 | private: 44 | // Transient attributes go here 45 | }; 46 | -------------------------------------------------------------------------------- /UnitTest/Kitten_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Kitten 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Kitten.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Kitten,Cat) 16 | CXO_XML_SERIALIZE(m_kit_color ,_T("kit_color")); 17 | CXO_XML_SERIALIZE(m_immuun ,_T("immuun")); 18 | CXO_XML_SERIALIZE(m_inLitter ,_T("inLitter")); 19 | END_XML_SERIALIZE 20 | 21 | BEGIN_XML_DESERIALIZE(Kitten,Cat) 22 | CXO_XML_DESERIALIZE(m_kit_color ,_T("kit_color")); 23 | CXO_XML_DESERIALIZE(m_immuun ,_T("immuun")); 24 | CXO_XML_DESERIALIZE(m_inLitter ,_T("inLitter")); 25 | END_XML_DESERIALIZE 26 | 27 | BEGIN_DBS_SERIALIZE(Kitten,Cat) 28 | CXO_DBS_SERIALIZE(m_kit_color ,_T("kit_color")); 29 | CXO_DBS_SERIALIZE(m_immuun ,_T("immuun")); 30 | CXO_DBS_SERIALIZE(m_inLitter ,_T("inLitter")); 31 | END_DBS_SERIALIZE 32 | 33 | BEGIN_DBS_DESERIALIZE(Kitten,Cat) 34 | CXO_DBS_DESERIALIZE(m_kit_color ,_T("kit_color")); 35 | CXO_DBS_DESERIALIZE(m_immuun ,_T("immuun")); 36 | CXO_DBS_DESERIALIZE(m_inLitter ,_T("inLitter")); 37 | END_DBS_DESERIALIZE 38 | 39 | BEGIN_DESERIALIZE_GENERATOR(Kitten) 40 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 41 | END_DESERIALIZE_GENERATOR 42 | 43 | // Static factory to create a new object if this class 44 | DEFINE_CXO_FACTORY(Kitten); 45 | 46 | -------------------------------------------------------------------------------- /UnitTest/NaturalPerson.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: NaturalPerson 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "NaturalPerson.h" 6 | #include "Subject.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | NaturalPerson::NaturalPerson() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | NaturalPerson::~NaturalPerson() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/NaturalPerson.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: NaturalPerson 2 | // Automatically generated by: CX-Hibernate 3 | // File: NaturalPerson.h 4 | // 5 | #pragma once 6 | #include 7 | #include "Subject.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class NaturalPerson : public Subject 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | NaturalPerson(); 21 | // DTOR of an CXObject derived class 22 | virtual ~NaturalPerson(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetFirstname() { return m_firstname; }; 29 | SQLDate GetDate_of_birth() { return m_date_of_birth; }; 30 | bcd GetLength() { return m_length; }; 31 | 32 | // SETTERS 33 | void SetFirstname(CString p_firstname) { m_firstname = p_firstname; }; 34 | void SetDate_of_birth(SQLDate p_date_of_birth) { m_date_of_birth = p_date_of_birth; }; 35 | void SetLength(bcd p_length) { m_length = p_length; }; 36 | 37 | protected: 38 | // Database persistent attributes 39 | CString m_firstname ; 40 | SQLDate m_date_of_birth ; 41 | bcd m_length ; 42 | 43 | private: 44 | // Transient attributes go here 45 | }; 46 | -------------------------------------------------------------------------------- /UnitTest/NaturalPerson_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: NaturalPerson 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "NaturalPerson.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(NaturalPerson,Subject) 16 | CXO_XML_SERIALIZE(m_firstname ,_T("firstname")); 17 | CXO_XML_SERIALIZE(m_date_of_birth ,_T("date_of_birth")); 18 | CXO_XML_SERIALIZE(m_length ,_T("length")); 19 | END_XML_SERIALIZE 20 | 21 | BEGIN_XML_DESERIALIZE(NaturalPerson,Subject) 22 | CXO_XML_DESERIALIZE(m_firstname ,_T("firstname")); 23 | CXO_XML_DESERIALIZE(m_date_of_birth ,_T("date_of_birth")); 24 | CXO_XML_DESERIALIZE(m_length ,_T("length")); 25 | END_XML_DESERIALIZE 26 | 27 | BEGIN_DBS_SERIALIZE(NaturalPerson,Subject) 28 | CXO_DBS_SERIALIZE(m_firstname ,_T("firstname")); 29 | CXO_DBS_SERIALIZE(m_date_of_birth ,_T("date_of_birth")); 30 | CXO_DBS_SERIALIZE(m_length ,_T("length")); 31 | END_DBS_SERIALIZE 32 | 33 | BEGIN_DBS_DESERIALIZE(NaturalPerson,Subject) 34 | CXO_DBS_DESERIALIZE(m_firstname ,_T("firstname")); 35 | CXO_DBS_DESERIALIZE(m_date_of_birth ,_T("date_of_birth")); 36 | CXO_DBS_DESERIALIZE(m_length ,_T("length")); 37 | END_DBS_DESERIALIZE 38 | 39 | BEGIN_DESERIALIZE_GENERATOR(NaturalPerson) 40 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 41 | END_DESERIALIZE_GENERATOR 42 | 43 | // Static factory to create a new object if this class 44 | DEFINE_CXO_FACTORY(NaturalPerson); 45 | 46 | -------------------------------------------------------------------------------- /UnitTest/OneTable.sql: -------------------------------------------------------------------------------- 1 | -- Script for one-table strategy 2 | 3 | create table subject 4 | ( 5 | -- Subject 6 | id integer not null 7 | ,name varchar(200) 8 | ,adresline1 varchar(250) 9 | ,adresline2 varchar(250) 10 | ,account_id integer 11 | -- Natural person 12 | ,firstname varchar(200) 13 | ,date_of_birth timestamp 14 | ,length decimal 15 | -- Supplier 16 | ,deliveryAddress varchar(200) 17 | ,balance decimal 18 | ,open_orders decimal 19 | ,open_billings decimal 20 | -- Infant 21 | ,immunisation varchar(4000) 22 | ,complication varchar(4000) 23 | ,hospital varchar(100) 24 | ); 25 | 26 | alter table subject 27 | add constraint pk_subject 28 | primary key(id); 29 | 30 | 31 | create sequence subject_seq; -------------------------------------------------------------------------------- /UnitTest/SubTable.sql: -------------------------------------------------------------------------------- 1 | create table animal 2 | ( 3 | id integer not null 4 | ,discriminator varchar(5) not null 5 | ,animalName varchar(200) 6 | ,has_claws bool 7 | ,has_hair bool 8 | ,has_wings bool 9 | ,numberOfLegs integer 10 | ); 11 | 12 | alter table animal 13 | add constraint pk_animal 14 | primary key(id); 15 | 16 | create sequence animal_seq start with 1; 17 | 18 | create table cat 19 | ( 20 | id integer not null 21 | ,color varchar(50) 22 | ,catdoor boolean 23 | ,likesWhiskas boolean 24 | ); 25 | 26 | alter table cat 27 | add constraint pk_cat 28 | primary key(id); 29 | 30 | create table dog 31 | ( 32 | id integer not null 33 | ,subrace varchar(200) 34 | ,walksPerDay integer 35 | ,hunting boolean 36 | ,waterdog boolean 37 | ); 38 | 39 | alter table dog 40 | add constraint pk_dog 41 | primary key(id); 42 | 43 | create table kitten 44 | ( 45 | id integer not null 46 | ,color varchar(50) 47 | ,immuun boolean 48 | ,inLitter boolean 49 | ); 50 | 51 | alter table kitten 52 | add constraint pk_kitten 53 | primary key (id); 54 | 55 | 56 | insert into ANIMAL 57 | (id,discriminator,animalname,has_claws,has_hair,has_wings,numberoflegs) 58 | VALUES 59 | (1,'kit','Fluffy Kitten',true,true,false,4); 60 | 61 | insert into CAT 62 | (id,color,catdoor,likeswhiskas) 63 | VALUES 64 | (1,'Black',false,true); 65 | 66 | insert into KITTEN 67 | (id,color,immuun,inlitter) 68 | VALUES 69 | (1,'Black-and-White',true,true); 70 | 71 | 72 | select * from kitten; -------------------------------------------------------------------------------- /UnitTest/Subject.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Subject 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Subject.h" 6 | 7 | #ifdef _DEBUG 8 | #define new DEBUG_NEW 9 | #undef THIS_FILE 10 | static char THIS_FILE[] = __FILE__; 11 | #endif 12 | 13 | // CTOR for class 14 | Subject::Subject() 15 | { 16 | // Things to do in the constructor 17 | } 18 | 19 | // DTOR for class 20 | Subject::~Subject() 21 | { 22 | // Things to do in the destructor 23 | } 24 | 25 | -------------------------------------------------------------------------------- /UnitTest/Subject.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Subject 2 | // Automatically generated by: CX-Hibernate 3 | // File: Subject.h 4 | // 5 | #pragma once 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class Subject : public CXObject 16 | { 17 | public: 18 | // CTOR of an CXObject derived class 19 | Subject(); 20 | // DTOR of an CXObject derived class 21 | virtual ~Subject(); 22 | 23 | // Serialization of our persistent objects 24 | DECLARE_CXO_SERIALIZATION; 25 | 26 | // GETTERS 27 | int GetId() { return m_id; }; 28 | CString GetName() { return m_name; }; 29 | CString GetAdresline1() { return m_adresline1; }; 30 | CString GetAdresline2() { return m_adresline2; }; 31 | int GetAccount_id() { return m_account_id; }; 32 | 33 | // SETTERS 34 | void SetName(CString p_name) { m_name = p_name; }; 35 | void SetAdresline1(CString p_adresline1) { m_adresline1 = p_adresline1; }; 36 | void SetAdresline2(CString p_adresline2) { m_adresline2 = p_adresline2; }; 37 | void SetAccount_id(int p_account_id) { m_account_id = p_account_id; }; 38 | 39 | protected: 40 | // Database persistent attributes 41 | int m_id { 0 }; 42 | CString m_name ; 43 | CString m_adresline1 ; 44 | CString m_adresline2 ; 45 | int m_account_id { 0 }; 46 | 47 | private: 48 | // Transient attributes go here 49 | }; 50 | -------------------------------------------------------------------------------- /UnitTest/Subject_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Subject 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Subject.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Subject,CXObject) 16 | CXO_XML_SERIALIZE(m_id ,_T("id")); 17 | CXO_XML_SERIALIZE(m_name ,_T("name")); 18 | CXO_XML_SERIALIZE(m_adresline1 ,_T("adresline1")); 19 | CXO_XML_SERIALIZE(m_adresline2 ,_T("adresline2")); 20 | CXO_XML_SERIALIZE(m_account_id ,_T("account_id")); 21 | END_XML_SERIALIZE 22 | 23 | BEGIN_XML_DESERIALIZE(Subject,CXObject) 24 | CXO_XML_DESERIALIZE(m_id ,_T("id")); 25 | CXO_XML_DESERIALIZE(m_name ,_T("name")); 26 | CXO_XML_DESERIALIZE(m_adresline1 ,_T("adresline1")); 27 | CXO_XML_DESERIALIZE(m_adresline2 ,_T("adresline2")); 28 | CXO_XML_DESERIALIZE(m_account_id ,_T("account_id")); 29 | END_XML_DESERIALIZE 30 | 31 | BEGIN_DBS_SERIALIZE(Subject,CXObject) 32 | CXO_DBS_SERIALIZE(m_id ,_T("id")); 33 | CXO_DBS_SERIALIZE(m_name ,_T("name")); 34 | CXO_DBS_SERIALIZE(m_adresline1 ,_T("adresline1")); 35 | CXO_DBS_SERIALIZE(m_adresline2 ,_T("adresline2")); 36 | CXO_DBS_SERIALIZE(m_account_id ,_T("account_id")); 37 | END_DBS_SERIALIZE 38 | 39 | BEGIN_DBS_DESERIALIZE(Subject,CXObject) 40 | CXO_DBS_DESERIALIZE(m_id ,_T("id")); 41 | CXO_DBS_DESERIALIZE(m_name ,_T("name")); 42 | CXO_DBS_DESERIALIZE(m_adresline1 ,_T("adresline1")); 43 | CXO_DBS_DESERIALIZE(m_adresline2 ,_T("adresline2")); 44 | CXO_DBS_DESERIALIZE(m_account_id ,_T("account_id")); 45 | END_DBS_DESERIALIZE 46 | 47 | BEGIN_DESERIALIZE_GENERATOR(Subject) 48 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 49 | END_DESERIALIZE_GENERATOR 50 | 51 | // Static factory to create a new object if this class 52 | DEFINE_CXO_FACTORY(Subject); 53 | 54 | -------------------------------------------------------------------------------- /UnitTest/Supplier.cpp: -------------------------------------------------------------------------------- 1 | // Implementation file for class: Supplier 2 | // Automatically generated by: CX-Hibernate 3 | // 4 | #include "stdafx.h" 5 | #include "Supplier.h" 6 | #include "Subject.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | // CTOR for class 15 | Supplier::Supplier() 16 | { 17 | // Things to do in the constructor 18 | } 19 | 20 | // DTOR for class 21 | Supplier::~Supplier() 22 | { 23 | // Things to do in the destructor 24 | } 25 | 26 | -------------------------------------------------------------------------------- /UnitTest/Supplier.h: -------------------------------------------------------------------------------- 1 | // Interface definition file for class: Supplier 2 | // Automatically generated by: CX-Hibernate 3 | // File: Supplier.h 4 | // 5 | #pragma once 6 | #include 7 | #include "Subject.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class Supplier : public Subject 17 | { 18 | public: 19 | // CTOR of an CXObject derived class 20 | Supplier(); 21 | // DTOR of an CXObject derived class 22 | virtual ~Supplier(); 23 | 24 | // Serialization of our persistent objects 25 | DECLARE_CXO_SERIALIZATION; 26 | 27 | // GETTERS 28 | CString GetDeliveryAddress() { return m_deliveryAddress; }; 29 | bcd GetBalance() { return m_balance; }; 30 | bcd GetOpen_orders() { return m_open_orders; }; 31 | bcd GetOpen_billings() { return m_open_billings; }; 32 | 33 | protected: 34 | // Database persistent attributes 35 | CString m_deliveryAddress ; 36 | bcd m_balance ; 37 | bcd m_open_orders ; 38 | bcd m_open_billings ; 39 | 40 | private: 41 | // Transient attributes go here 42 | }; 43 | -------------------------------------------------------------------------------- /UnitTest/Supplier_cxh.cpp: -------------------------------------------------------------------------------- 1 | // (De-)Serializing factories for class: Supplier 2 | // Generated by CX-Hibernate cfg2cpp tool 3 | // 4 | #include "stdafx.h" 5 | #include "Supplier.h" 6 | #include 7 | #include 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #undef THIS_FILE 12 | static char THIS_FILE[] = __FILE__; 13 | #endif 14 | 15 | BEGIN_XML_SERIALIZE(Supplier,Subject) 16 | CXO_XML_SERIALIZE(m_deliveryAddress ,_T("deliveryAddress")); 17 | CXO_XML_SERIALIZE(m_balance ,_T("balance")); 18 | CXO_XML_SERIALIZE(m_open_orders ,_T("open_orders")); 19 | CXO_XML_SERIALIZE(m_open_billings ,_T("open_billings")); 20 | END_XML_SERIALIZE 21 | 22 | BEGIN_XML_DESERIALIZE(Supplier,Subject) 23 | CXO_XML_DESERIALIZE(m_deliveryAddress ,_T("deliveryAddress")); 24 | CXO_XML_DESERIALIZE(m_balance ,_T("balance")); 25 | CXO_XML_DESERIALIZE(m_open_orders ,_T("open_orders")); 26 | CXO_XML_DESERIALIZE(m_open_billings ,_T("open_billings")); 27 | END_XML_DESERIALIZE 28 | 29 | BEGIN_DBS_SERIALIZE(Supplier,Subject) 30 | CXO_DBS_SERIALIZE(m_deliveryAddress ,_T("deliveryAddress")); 31 | CXO_DBS_SERIALIZE(m_balance ,_T("balance")); 32 | CXO_DBS_SERIALIZE(m_open_orders ,_T("open_orders")); 33 | CXO_DBS_SERIALIZE(m_open_billings ,_T("open_billings")); 34 | END_DBS_SERIALIZE 35 | 36 | BEGIN_DBS_DESERIALIZE(Supplier,Subject) 37 | CXO_DBS_DESERIALIZE(m_deliveryAddress ,_T("deliveryAddress")); 38 | CXO_DBS_DESERIALIZE(m_balance ,_T("balance")); 39 | CXO_DBS_DESERIALIZE(m_open_orders ,_T("open_orders")); 40 | CXO_DBS_DESERIALIZE(m_open_billings ,_T("open_billings")); 41 | END_DBS_DESERIALIZE 42 | 43 | BEGIN_DESERIALIZE_GENERATOR(Supplier) 44 | CXO_DBS_DESERIALIZE(m_id, _T("id")); 45 | END_DESERIALIZE_GENERATOR 46 | 47 | // Static factory to create a new object if this class 48 | DEFINE_CXO_FACTORY(Supplier); 49 | 50 | -------------------------------------------------------------------------------- /UnitTest/TestNumber.cpp: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // 3 | // File: TestNumber.cpp 4 | // 5 | // Copyright (c) 2015-2022 ir. W.E. Huisman 6 | // All rights reserved 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy of 9 | // this software and associated documentation files (the "Software"), 10 | // to deal in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 12 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all copies 15 | // or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 18 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | // 24 | // Last Revision: 22-04-2018 25 | // Version number: 0.0.1 26 | // 27 | #include "stdafx.h" 28 | #include "TestNumber.h" 29 | #include 30 | #include 31 | #include 32 | 33 | #ifdef _DEBUG 34 | #define new DEBUG_NEW 35 | #undef THIS_FILE 36 | static char THIS_FILE[] = __FILE__; 37 | #endif 38 | 39 | // CTOR creating a new master record 40 | TestNumber::TestNumber() 41 | { 42 | } 43 | 44 | -------------------------------------------------------------------------------- /UnitTest/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /UnitTest/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.obj will contain the pre-compiled type information 3 | 4 | #include "stdafx.h" 5 | 6 | -------------------------------------------------------------------------------- /UnitTest/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include "framework.h" 10 | 11 | // Auto link to these libraries 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /UnitTest/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /cfg2cpp/cfg2cpp.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | 30 | Source Files 31 | 32 | 33 | Source Files 34 | 35 | 36 | -------------------------------------------------------------------------------- /cfg2cpp/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /cfg2cpp/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.obj will contain the pre-compiled type information 3 | 4 | #include "stdafx.h" 5 | 6 | -------------------------------------------------------------------------------- /cfg2cpp/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include "framework.h" 10 | 11 | // Auto link to these libraries 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /cfg2cpp/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /cfg2ddl/cfg2ddl.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | 30 | Source Files 31 | 32 | 33 | Source Files 34 | 35 | 36 | -------------------------------------------------------------------------------- /cfg2ddl/framework.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Getting the framework settings for this library/program 4 | // Uses the $(SolutionDir)Framework.h file for configuration of 5 | // the MFC XString or the std::string SMX_String 6 | // 7 | #pragma once 8 | 9 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 10 | 11 | // remove support for MFC controls in dialogs 12 | #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS 13 | // turns off MFC's hiding of some common and often safely ignored warning messages 14 | #define _AFX_ALL_WARNINGS 15 | 16 | #include "..\framework.h" 17 | 18 | 19 | #include 20 | 21 | #ifndef _ATL 22 | // 23 | #define TRACE ATLTRACE 24 | #define ASSERT ATLASSERT 25 | #define VERIFY ATLVERIFY 26 | #ifdef _DEBUG 27 | #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__) 28 | #endif 29 | //use XString in ATL 30 | #include 31 | #endif // _ATL 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | // 35 | // Can be extended beyond this point with extra MFC requirements 36 | // 37 | ////////////////////////////////////////////////////////////////////////// 38 | 39 | // Extras needed for MFC in this program 40 | #include // MFC extensions 41 | -------------------------------------------------------------------------------- /cfg2ddl/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.obj will contain the pre-compiled type information 3 | 4 | #include "stdafx.h" 5 | 6 | -------------------------------------------------------------------------------- /cfg2ddl/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include "framework.h" 10 | 11 | // Auto link to these libraries 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /cfg2ddl/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /framework.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // SourceFile: Framework.h 4 | // 5 | // BaseLibrary: Indispensable general objects and functions 6 | // 7 | // Copyright (c) 2014-2025 ir. W.E. Huisman 8 | // All rights reserved 9 | // 10 | #pragma once 11 | 12 | ///////////////////////////////////////////////////////////////////////////////// 13 | // 14 | // This file determines whether your project is using MFC XString for a string 15 | // or uses the SMX_String (derived from std::string) class. 16 | // 17 | 18 | // Included in an Microsoft Application Framework eXtension environment (MFC) 19 | 20 | // Un-comment when building the production MarlinModule ! 21 | // #include 22 | // For other purposes use the MFC AFX main header 23 | #include 24 | 25 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some XString constructors will be explicit 26 | #include 27 | 28 | ///////////////////////////////////////////////////////////////////////////////// 29 | // 30 | // Comment out the three lines above to use the SMX_String class. 31 | // 32 | ///////////////////////////////////////////////////////////////////////////////// 33 | -------------------------------------------------------------------------------- /sourceclean.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rmdir /s /q .vs 4 | rmdir /s /q x64 5 | rmdir /s /q lib 6 | rmdir /s /q BaseLibrary\Debug 7 | rmdir /s /q BaseLibrary\Release 8 | rmdir /s /q BaseLibrary\x64 9 | rmdir /s /q SQLComponents\Debug 10 | rmdir /s /q SQLComponents\Release 11 | rmdir /s /q SQLComponents\x64 12 | rmdir /s /q Marlin\Debug 13 | rmdir /s /q Marlin\Release 14 | rmdir /s /q Marlin\x64 15 | rmdir /s /q MarlinModule\x64 16 | rmdir /s /q MarlinModule\Debug 17 | rmdir /s /q MarlinModule\Release 18 | rmdir /s /q CXHibernate\x64 19 | rmdir /s /q CXHibernate\Debug 20 | rmdir /s /q CXHibernate\Release 21 | rmdir /s /q HelloWorld\x64 22 | rmdir /s /q HelloWorld\Debug 23 | rmdir /s /q HelloWorld\Release 24 | rmdir /s /q cfg2cpp\x64 25 | rmdir /s /q cfg2cpp\Debug 26 | rmdir /s /q cfg2cpp\Release 27 | rmdir /s /q cfg2ddl\x64 28 | rmdir /s /q cfg2ddl\Debug 29 | rmdir /s /q cfg2ddl\Release 30 | rmdir /s /q TestClient\x64 31 | rmdir /s /q TestClient\Debug 32 | rmdir /s /q TestClient\Release 33 | rmdir /s /q TestServer\x64 34 | rmdir /s /q TestServer\Debug 35 | rmdir /s /q TestServer\Release 36 | rmdir /s /q TestServerIIS\x64 37 | rmdir /s /q TestServerIIS\Debug 38 | rmdir /s /q TestServerIIS\Release 39 | rmdir /s /q UnitTest\x64 40 | rmdir /s /q UnitTest\Debug 41 | rmdir /s /q UnitTest\Release 42 | del /q BIN_Debug_x64\*.exe 43 | del /q BIN_Debug_x64\*.pdb 44 | del /q BIN_Debug_x64\*.ilk 45 | del /q BIN_Debug_x64\*.dll 46 | del /q BIN_Debug_x64\*.exp 47 | del /q BIN_Debug_x64\*.lib 48 | del /q BIN_Release_x64\*.exe 49 | del /q BIN_Release_x64\*.pdb 50 | del /q BIN_Release_x64\*.ilk 51 | del /q BIN_Release_x64\*.dll 52 | del /q BIN_Release_x64\*.exp 53 | del /q BIN_Release_x64\*.lib 54 | -------------------------------------------------------------------------------- /testEnvironments.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1", 3 | "environments": [ 4 | // See https://aka.ms/remotetesting for more details 5 | // about how to configure remote environments. 6 | //{ 7 | // "name": "WSL Ubuntu", 8 | // "type": "wsl", 9 | // "wslDistribution": "Ubuntu" 10 | //}, 11 | //{ 12 | // "name": "Docker dotnet/sdk", 13 | // "type": "docker", 14 | // "dockerImage": "mcr.microsoft.com/dotnet/sdk" 15 | //} 16 | ] 17 | } -------------------------------------------------------------------------------- /testing.fdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edwig/CXHibernate/92de3493ae4dc56b646d0f9c741bf257a451b918/testing.fdb --------------------------------------------------------------------------------