ODBCWrappers v1.18

October 13, 2020 Leave a comment

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

  • Fixed an issue in CHandle::GetDiagRecords and CHandle::ValidateReturnValue where the code would not terminate a loop if SQLGetDiagRec returns a value other than SQL_NO_DATA. Thanks to Serhiy Pavlov for reporting this issue.
Categories: Web Site Updates

ODBCWrappers v1.17

October 9, 2020 Comments off

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

  • Fixed a copy and paste error around the ODBC_COLUMN_ENTRY_LENGTH_STATUS macro. Thanks to Serhiy Pavlov for reporting this issue.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.64

September 26, 2020 Comments off

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

  • Updated class to work with Scintilla v4.4.5. New messages wrapped include: SCI_GETMULTIEDGECOLUMN.
Categories: Web Site Updates

ODBCWrappers v1.16

September 20, 2020 Comments off

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

  • Fixed more Clang-Tidy static code analysis warnings in the code.
  • Added a new SET_ODBC_PARAM_FOCUS macro to the code. This allows the code framework to be used with Table Value Parameters (TVP). A TVP is where a table is passed as a parameter to a stored procedure. To support this new functionality the CAccessor::BindParameters method now takes a non const CStatement parameter. Thanks to Serhiy Pavlov for providing this nice addition.
  • Reworked a number of the macros to embed suppressing various VC++ compiler warnings at source. This change means that client code does not need to suppress these compiler warnings at their call sites if they are aiming for clean compilation when using code analysis.
Categories: Web Site Updates

CPJNSMTPConnection v3.41

September 13, 2020 Comments off

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