Archive

Archive for November, 2010

CPJNSMTPConnection v2.89

November 28, 2010 Comments off

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

  • AddTextBody and AddHTMLBody now allow the root body part’s MIME type to be changed. Thanks to Thane Hubbell for prompting this update.
  • Added a CPJNSMTPBodyPart::GetBoundary method.
  • Added some sample code to the sample app’s CPJNSMTPAppDlg constructor to show how to create a message used SMTP body parts. Thanks to Thane Hubbell for prompting this update.
  • CPJNSMTPBodyPart::GetHeader now allows quoted-printable and raw attachments to be used
  • The sample app is now linked against the latest OpenSSL v1.0.0b dlls
Advertisements
Categories: Web Site Updates

AA+ v1.45

November 26, 2010 Comments off

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

  • CAARefraction::RefractionFromApparent now returns a constant refraction value for all altitudes below a certain limit. Thanks to mehrzad khoddam for prompting this update.
  • CAARefraction::RefractionFromTrue now returns a constant refraction value for all altitudes below a certain limit. Thanks to mehrzad khoddam for prompting this update.
Categories: Web Site Updates

CTrayNotifyIcon v1.65

November 26, 2010 Comments off

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

  • Minor update to use DBG_UNREFERENCED_LOCAL_VARIABLE macro. Thanks to Jukka Ojanen for prompting this update.
Categories: Web Site Updates

CScintillaCtrl, CScintillaView & CScintillaDoc v1.26

November 23, 2010 Comments off

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

  • Updated copyright details.
  • Updated sample app to clean compile on VC 2010
  • Updated class to work with Scintilla v2.22. New messages wrapped include: SCI_SETWHITESPACESIZE, SCI_GETWHITESPACESIZE, SCI_SETFONTQUALITY, SCI_GETFONTQUALITY, SCI_SETFIRSTVISIBLELINE, SCI_SETMULTIPASTE, SCI_GETMULTIPASTE, SCI_GETTAG, SCI_AUTOCGETCURRENTTEXT, SCI_SETADDITIONALCARETSVISIBLE, SCI_GETADDITIONALCARETSVISIBLE, SCI_CHANGELEXERSTATE, SCI_CONTRACTEDFOLDNEXT, SCI_VERTICALCENTRECARET, SCI_GETLEXERLANGUAGE, SCI_PRIVATELEXERCALL, SCI_PROPERTYNAMES, SCI_PROPERTYTYPE, SCI_DESCRIBEPROPERTY, SCI_DESCRIBEKEYWORDSETS. Also there were some parameter changes to existing messages.
Categories: Web Site Updates

COSMCtrl v1.13

November 20, 2010 2 comments

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

  • Added support for a simple event handler mechanism to the class
  • Reworked the sample app’s Refresh Tile, Tile Properties and Address Lookup functions to allow the user to click on the part of the map where they want the operation performed rather than using the current cursor position. This means that using these options from the main menu is now more useful. Thanks to Frits van Veen for suggesting this update.
  • Implemented a Goto Coordinates Dialog in the sample app
  • Updated the sample app to use a built in resource for the png default marker rather than a stand alone png file. Thanks to Frits van Veen for suggesting this update.
Categories: Web Site Updates

CSortedArray / CSortedArrayEx v1.43

November 7, 2010 Comments off

Just to let everyone know that v1.43 of CSortedArray / CSortedArrayEx has been released. Updates for this version include:

  • Sort method now internally uses std::sort for sorting. This leads to dramatic improvements as the size of the array increases. It also means that issues with stack sizes due to recursion are now gone. Here is some before and after figures in ms for sorting an array of integers as obtained from the sample app (Note please do not compare the absolute values from one row to another as I shrunk down the number of array loops to keep the measured times reasonable as the array element size increased):
    Elements   Before (Function pointer array) Before (Functor) After (Function Pointer array) After (Functor)
    100 34 7 x2.125 6 (x1.16)
    1000 517 176 295 (x1.75) 84 (x2.09)
    10000 7896 2398 3525 (x2.23) 1098 (x2.18)
    100000 2696 529 336 (x8.03) 97 (x5.45)
    1000000 21017 3284 378 (x55) 125 (x26)
    10000000 208768 30605 899 (x232) 458 (x66)

    I believe the reason we see a dramatic improvement in performance as the array size increases is the fact that std::sort uses an introsort algorithm (which is a quicksort which switches to a heapsort when the recursion reaches a certain depth). The more expert C++ developers out there may ask why not just use the standard STL collection classes instead of the old style MFC CArray classes. In my case, many of my classes are pure MFC classes and at the time of their initial development the MFC classes were the number one choice. Now if you are writing new code it really does make sense to use the STL classes but it is still nice to have the familiarity of the MFC collection classes with the performance of their STL brethren.

  • StableSort method now internally uses std::stable_sort. Again this has lead to pretty substantial performance improvements as the size of the array increases (Again note please do not compare the absolute values from one row to another as I shrunk down the number of array loops to keep the measured times reasonable as the array element size increased):
    Elements   Before (Function pointer array) Before (Functor) After (Function Pointer array) After (Functor)
    100 249 80 246 (x1.01) 109 (x0.773)
    1000 1005 274 275 (x3.65) 120 (x2.28)
    10000 913 229 45 (x20.29) 13 (x17.61)
    50000 22587 5655 172 (x131) 74 (x76)
    100000 90484 22683 379 (x238) 154 (x147)
    300000 81606 20420 111 (x735) 48 (x425)
  • Categories: Web Site Updates

    CTrayNotifyIcon v1.64

    November 6, 2010 Comments off

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

    • Minor update to code in SetTooltipText to code which handles unreferenced variable compiler warning
    • Implemented a GetTooltipMaxSize method which reports the maximum size which the tooltip can be for a tray icon. Thanks to Geert van Horrik for this nice addition
    • All places which copy text to the underlying NOTIFYICONDATA now use the _TRUNCATE parameter in their call to the Safe CRT runtime. This change in behaviour means that client apps will no longer crash if they supply data larger than this Windows structure can accommodate. Thanks to Geert van Horrik for prompting this update.
    • All calls to sizeof(struct)/sizeof(first element) have been replaced with _countof
    • Fixed a linker error when compiling the WTL sample app in release mode.
    Categories: Web Site Updates