Archive

Archive for April, 2010

CPdh v1.12

April 10, 2010 Comments off

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

  • Updated copyright details
  • Updated the project settings to more modern default values.
  • Reworked all the internal heap allocation code to use ATL::CHeapPtr
  • Refactored all the multi-sz parsing code into one method of CPdh
  • Reviewed some reported issues with CPdh::ParseInstanceName. The sample app now uses a string which should parse. Thanks to David Chaplin for reporting this issue.
  • Some of the methods in CPdhCounter and CPdhDataSource can allocate memory. These details are now encapsulated in AllocateMemory and DeallocateMemory methods, rather than exposing raw CRT pointers in the client API.
  • Verified there has been no further additions to PDH from the Windows 7 SDK
  • The code now only supports VC 2005 or later.
Categories: Web Site Updates

COSMCtrl v1.05

April 10, 2010 Comments off

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

  • The control now only attempts to keep the position under the cursor when you do a mouse zoom if the position is in the client area, otherwise the control simple zooms in or out at the current center position
Categories: Web Site Updates

MfcCDDB v1.33

April 10, 2010 Comments off

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

  • Updated copyright details.
  • CCDDB::ParseQueryBody now does not consider receiving a 202 response as an error
Categories: Web Site Updates

CTrayNotifyIcon v1.62

April 10, 2010 Comments off

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

  • Updated copyright details.
  • Updated the project settings to more modern default values.
  • Updated the WTL version of LoadIcon to use the more modern ModuleHelper class from WTL to get the resource instance. Thanks to "Yarp" for reporting this issue.
  • The class now has support for the Windows 7 "NIIF_RESPECT_QUIET_TIME" flag. This value can be set via the new "bQuietTime" parameter to the Create method.
  • Updated the code which does version detection of the Shell version
Categories: Web Site Updates

COSMCtrl v1.04

April 9, 2010 Comments off

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

  • Reworked the OnPaint code to use classic double buffering via a GDI memory device context rather than using the GDI+ equivalent code. This restructuring of the code gives up a typical improvement of 125 ms down to 52 ms for a redraw over terminal services on my main dev machine (a 240% increase in performance) and a speed up of 140 ms down to 100 ms for a redraw on my primary graphics card on my main dev machine (a 40% increase in performance). My theory on why this new code is faster is probably due to the fact that we the code is now probably avoiding a code path in GDI+ which needs to convert from the internal GDI+ ARGB bitmap format to a format compatible with the display device context. Thanks to Frits van Veen for suggesting this update.
  • Following on from the previous performance optimization, the control now maintains an internal cache of Gdiplus::CachedBitmap* tiles in memory. The conversion process which GDI+ itself must perform to convert from its’ internal format to the format compatible with the display device context proved to be a significant percentage of the time involved in drawing the control, hence the need for this caching optimization. The default size of this in memory cache array is 100 elements which based on average type tiles in Ireland corresponds to a total application memory usage for the unicode release build of demo app of about 30 MB. You can change this limit by using the new SetMaxInMemoryCachedTiles method. If you want you can turn of this caching by calling SetMaxInMemoryCachedTiles(0) (not advised as it will adversely impact performance of the control). To give you further background on how you would pick a good value for this: at a resolution of 2560 * 1600, a maximized window will display approximately 60 OSM standard sized 256 * 256 tiles. This metric is where I arrived at 100 for the default value. With this optimization now in place and taking the previous optimization example, the drawing time for a full screen window on my primary graphics card on my main dev machine has speeded up of 140 ms to 100 ms to 15 ms. This corresponds to a 930% increase in performance! when compared to v1.03 of the control. You can really now see the difference in performance in the control when you drag the control and notice how really responsive it its. Again many thanks to Frits van Veen for doing all the low level performance testing and suggestions for this update.
  • If you hold down the control key while using the arrow keys to navigate around the map, the map now scrolls by a tile rather than a small pixel amount. This is consistent with how most other Map controls behave. Thanks to Frits van Veen for providing this update.
  • The amount which the ScrollToNorth/East/South/West() methods scroll by can now be controlled via a new SetScrollPixels() method. The default value for this has been increased from 4 to 20 pixels. Thanks to Frits van Veen for providing this update.
Categories: Web Site Updates

MVP Award

April 1, 2010 Comments off

Just to let you know that I have been re-awarded as an MVP for Visual C++. I’ve been working on some nice Open Source classes on my web site in the last year. In particular I am quite proud of my COSMCtrl which I have been doing a lot of work on in the last few months. Stay tuned to the web site as I will be delivering more updates to it over the next few months.

Categories: Programming