Archive

Archive for March, 2018

DtWinVer v2.17

March 31, 2018 Comments off

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

  • Renamed IsWindows10Redstone4 method to IsWindows10Version1803.
Categories: Web Site Updates

DtWinVer v2.16

March 28, 2018 Comments off

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

  • Provided new IsWindowsServer2019, IsWebWindowsServer2019, IsStandardWindowsServer2019, IsEnterpriseWindowsServer2019, IsDatacenterWindowsServer2019 & IsDomainControllerWindowsServer2019 methods
  • Updated IsWindows10OrWindowsServer2016 method to account for Windows Server 2019
Categories: Web Site Updates

SQLiteWrappers v1.10

March 18, 2018 Comments off

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

  • Updated copyright details
  • Updated the code to compile against SQlite 3.22.0. Added support for sqlite3_value_nochange.
  • Verified the code compiled cleanly against winsqlite3.h header file in versions of the Windows SDK v10.0.17069, v10.0.17083, v10.0.17095 & v10.0.17111.
  • Throughly reviewed all classes to ensure they had move constructors and move operator= as necessary
  • All asserts in the code are now only active in debug builds
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.48

March 18, 2018 Comments off

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

  • Updated class to work with Scintilla v4.0.3. New parameters to SCI_CREATEDOCUMENT & SCI_CREATELOADER messages. New messages wrapped include: SCI_GETMOVEEXTENDSSELECTION message, SCI_GETBIDIRECTIONAL & SCI_SETBIDIRECTIONAL
  • SCI_ADDREFDOCUMENT and SCI_RELEASEDOCUMENT wrappers now use void* for the document parameter.
Categories: Web Site Updates

March Dublin C++ User Group Presentation

March 6, 2018 1 comment

On Monday this week I did a presentation on using OpenStreetMap and various Microsoft technologies to the Dublin C++ User Group in Dublin. It provided an introduction to OpenStreetMap the project and then went through my OSMCtrl application which demoed a number of Microsoft Technologies such as Direct2D, Windows Animations, Windows Sensors, MFC and using WinHTTP to make web services calls. A big thanks to Mihai Todor and the fellow organisers who faciliated the meetup. The PowerPoint deck of my presentation is available here for those interested. A recording of the meetup should be available on the groups meetup page shortly.

ThreadPoolWrappers v1.0

March 4, 2018 Comments off

Included in my W3MFC download is a custom thread pool implementation which I wrote many years ago, but since Windows Vista, Microsoft have implemented a new Thread Pool API which I have always wanted to take a look at. This download provides a complete C++ wrapper for the various components of the Thread Pool API. It is based in part on the Kenny Kerr articles on the MSDN magazine about the thread pool from August to December 2011 (https://msdn.microsoft.com/en-ca/magazine/hh335066.aspx, https://msdn.microsoft.com/en-us/magazine/hh394144.aspx, https://msdn.microsoft.com/en-us/magazine/hh456398.aspx, https://msdn.microsoft.com/magazine/hh547107.aspx & https://msdn.microsoft.com/magazine/hh580731.aspx). These wrapper classes also provide an implementation of the Thread Pool sample as provided on the blog post article at http://www.dorodnic.com/blog/2015/10/17/windows-threadpool.

The classes provided are: ThreadPoolWrappers::CCleanupGroup, ThreadPoolWrappers::CEnvironment, ThreadPoolWrappers::CIO, ThreadPoolWrappers::CPool, ThreadPoolWrappers::CThreadPool, ThreadPoolWrappers::CTimer, ThreadPoolWrappers::CWait & ThreadPoolWrappers::CWork.

CCleanupGroup provides a class based encapsulation of a Thread Pool cleanup group as represented by a PTP_CLEANUP_GROUP.

CEnvironment provides a class based encapsulation of a Thread Pool TP_CALLBACK_ENVIRON structure.

CIO provides a class based encapsulation of a Thread Pool IO callback as represented by a PTP_IO.

CPool provides a class based encapsulation of a Thread Pool pool as represented by a PTP_POOL.

CThreadPool provides a implementation of a thread pool based on the blog post article at http://www.dorodnic.com/blog/2015/10/17/windows-threadpool. It works with the default process thread pool or an explicit thread pool and provides cleanup via CEnvironment and CCleanupGroup member variables.

CTimer provides a class based encapsulation of a Thread Pool timer callback as represented by a PTP_TIMER.

CWait provides a class based encapsulation of a Thread Pool wait callback as represented by a PTP_WAIT.

CWork provides a class based encapsulation of a Thread Pool work callback as represented by a PTP_WORK.

Features

  • Provides a complete RAII wrapper for the Windows Thread Pool.
  • All the code is provided in a single C++ Header only module of "ThreadPoolWrappers.h" .
  • All the code clean compiles at warning level 4, is /analyze and /permissive- clean and includes ASCII, Unicode, x86 and x64 built configurations.
  • The classes have been tested only on VC 2017 but should be compilable on earlier versions of Visual C++.
  • The CIO, CTimer, CWait & CWork classes provide optional RAII cleanup via an bAutoRelease parameter. This is modeled on the MFC COleDispatchDriver class and means that the classes can be used in conjunction with the default process thread pool and thread pools created using a cleanup group e.g. ThreadPoolWrappers::CThreadPool
Categories: Web Site Updates

AA+ v1.94

March 3, 2018 Comments off

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

  • Fixed some compiler warnings on LLVM 9 on XCode on Mac OS in AATest.cpp when calling PrintSunAndMoonInfo2. Thanks to Michael McLaughlin for reporting this issue.
Categories: Web Site Updates

AA+ v1.93

March 2, 2018 Comments off

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

  • Fixed a transcription bug in the CAAPrecession::PrecessEquatorial method. The "0.017998*tcubed" term was incorrectly using "0.017988*tcubed" when calculating "sigma". Thanks to Michael McLaughlin for reporting this bug. The errors were so small that the values from the worked example of 21.b from the book ended up giving the same results. If a longer timespan was used for the example instead of the 28 years then the errors would have been easier to spot from the incorrect terms. Hopefully this is the same transcription error in this method!
Categories: Web Site Updates