Archive for September, 2020

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