Archive

Author Archive

CPJNSMTPConnection v3.41

September 13, 2020 Leave a comment

Just to let everyone know that v3.41 of CPJNSMTPConnection has been released. Updates for this version include:

  • CPJNSMTPConnection is now derived publically from SSLWrappers::CSocket. This allows all the public methods of SSLWrappers::CSocket to be accessible from client code. Thanks to Martin Richter for prompting this update.
  • Provided a new virtual CPJNSMTPConnection::TraceCommunication method. This method allows you to see all the data sent and received by the class for diagnostic purposes. For example you could provide an option in your app to log the data for customer support issues. Thanks to Martin Richter for providing this update.
  • Improved the error handling in CPJNSMTPAddress::PunyCode to handle errors reported by the underlying Win32 API of IdnToAscii which the code uses to do PunyCode encoding of email addresses to support International email and internationalized email addresses. The issue is that the code uses an "IDN_EMAIL_ADDRESS" flag to this IdnToAscii API and this flag is only supported on versions of Windows starting with Windows 8. On earlier versions of Windows such as Windows 7 and Windows 2008 R2, this API fails when you use the IDN_EMAIL_ADDRESS flag. The code now handles this error by throwing an exception rather than ignoring the return value from the API. Previously when the code ignored the return value, it would then crash when it tried to dereference a zero length string. If you must run this code on now unsupported versions of Windows, then please make sure you disable Punycode encoding using the new functions described in the next release note below. Thanks to Darron Redman and Martin Richter for reporting this issue.
  • Added a new boolean configuration value to the CPJNSMTPConnection class to determine if punycode encoding should be used. These new methods are SetUsePunyCode and GetUsePunyCode. As described in the previous release note this is necessary to support the code running without errors on versions of Windows earlier than Windows 8. I have added a checkbox to the sample application to demonstrate using this. By using SetUsePunyCode(false), the code will not of course be able to support internationalized email addresses on these downlevel versions of Windows.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.63

August 15, 2020 Comments off

Just to let everyone know that v1.63 of CScintillaCtrl, CScintillaView & CScintillaDoc has been released. Updates for this version include:

  • Updated class to work with Scintilla v4.4.4. New messages wrapped include: SCI_BRACEMATCHNEXT, SCI_EOLANNOTATIONSETTEXT, SCI_EOLANNOTATIONGETTEXT, SCI_EOLANNOTATIONSETSTYLE, SCI_EOLANNOTATIONGETSTYLE, SCI_EOLANNOTATIONCLEARALL, SCI_EOLANNOTATIONSETVISIBLE, SCI_EOLANNOTATIONGETVISIBLE, SCI_EOLANNOTATIONSETSTYLEOFFSET & SCI_EOLANNOTATIONGETSTYLEOFFSET.
Categories: Web Site Updates

DtWinVer v2.45

August 12, 2020 Comments off

Just to let everyone know that v2.45 of DtWinVer has been released. Updates for this version include:

  • Added support for the following product types: PRODUCT_DATACENTER_SERVER_AZURE_EDITION and PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION
Categories: Web Site Updates

CNTService v2.03

July 26, 2020 Comments off

Just to let everyone know that v2.03 of CNTService has been released. Updates for this version include:

  • Fixed more Clang-Tidy static code analysis warnings in the code.
  • Fixed a compile problem in ntservEventLogRecord.cpp in VC 2019 related to missing iterator header file.
  • Updated the codebase to support GetSharedServiceRegistryStateKey and GetSharedServiceDirectory APIs.
  • Fixed up the logic and return values for the CNTService::GetRegistryStateKey and CNTService::GetServiceDirectory methods now that there is proper documentation available for these APIs.
Categories: Web Site Updates

DtWinVer v2.44

July 26, 2020 Comments off

Just to let everyone know that v2.44 of DtWinVer has been released. Updates for this version include:

  • Added support for the following product types: PRODUCT_TURBINE_SERVER
Categories: Web Site Updates

ShellCtrls2 v1.0

July 25, 2020 Comments off

One of the many GUI classes I have developed and published on my web site is CFileTreeCtrl. This is a implementation from first principles of a tree control similar to the left hand side of Windows Explorer. Because it was implemented with custom code, it has diverged from the tree control shown in Windows Explorer in recent versions of Windows. In addition, some features in CFileTreeCtrl such as network enumeration no longer work in recent versions of Windows. In addition it would be nice to have a list control implementation similar to the right hand side of Windows Explorer. As of Visual Studio 2008 Service Pack 1, two classes became available which implemented this functionality using MFC. They are called CMFCShellTreeCtrl and CMFCShellListCtrl. I’ve recently taken a look at these two classes, but I wanted to bring forward the functionality of CFileTreeCtrl in an implementation which provides better integration with the shell. I also took inspiration and ideas from the following codeproject articles: https://www.codeproject.com/Articles/1073213/Extending-MFC-shell-controls-functionality and https://www.codeproject.com/Articles/2271/ShellFolderTree. The result of all this work is ShellCtrls2.

The classes provided are:

CPIDL which provides a RAII class wrapper for a LPITEMIDLIST aka PIDLs. PIDLs are identifiers which the Windows shell uses to identify all objects which make up the Shell namespace. This class is based on the PIDL class provided by Oz Solomon with WndTabs extension for Visual C++ 6.0 but reimplemented using modern C++ 11 idioms.
CShellItemInfo2 This class is what is stored in the item data for each item in the tree control or list control
CShellTreeCtrl2 This class is an improved version of the built-in MFC class CMFCShellTreeCtrl
CShellListCtrl2 This class is an improved version of the built-in MFC class CMFCShellListCtrl

The demo application included in the download exercises all the functionality of each of the classes. A screen capture of the sample app running is as follows:

 

Categories: Web Site Updates

W3Mfc v2.19 / CWSocket v1.47

July 21, 2020 Comments off

Just to let everyone know that v2.19 of W3Mfc & v1.47 of CWSocket has been released. Updates for this version include:

  • Fixed an issue in CWSocket::ThrowWSocketException where exceptions were thrown as const CWSocketException* when CWSOCKET_MFC_EXTENSIONS was defined. This causes an unhandled exception bug in W3MFC when compiled with VS 2019 and CWSOCKET_MFC_EXTENSIONS was defined, where catch(CWSocketException*) call sites throughout the codebase would not handle an exception thrown of this type. It looks like the logic used to setup exception handling has been changed in VS 2019 quite a bit (see https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/ for the details). The code in CWSocket::ThrowWSocketException has been updated to now throw a CWSocketException* exception when CWSOCKET_MFC_EXTENSIONS was defined.
Categories: Web Site Updates

COSMCtrl v1.35

June 19, 2020 Comments off

Just to let everyone know that v1.35 of COSMCtrl has been released. Updates for this version include:

  • Extended the CGPX::Save method to allow the GPX "creator" value to be customized
  • Added support to the demo application to exporting to a GPX file. Thanks to Ralf Wirtz for providing this nice addition.
  • Fixed a bug in CGPX::Save which was creating invalid GPX files. Thanks to Ralf Wirtz for reporting this issue.
  • Optimized the code to not attempt to restart downloading tiles while dragging the map or dragging on the zoombar.
Categories: Web Site Updates

PyDebug++ v1.17

June 18, 2020 Comments off

Just to let everyone know that v1.17 of PyDebug++ has been released. Updates for this version include:

  • Added code to the CPyDebugFrameWnd::DebugCode method to disable the close button in the allocated console window. This prevents the main app from closing when you click the close button in the console window. Thanks to Changyun Kim for reporting this issue.
Categories: Web Site Updates

DtWinVer v2.43

June 16, 2020 Comments off

Just to let everyone know that v2.43 of DtWinVer has been released. Updates for this version include:

  • Provided a new IsWindows10Codename20H2 method.
Categories: Web Site Updates