Just to let everyone know that v1.01 of WinHttpWrappers has been released. Updates for this version include:
- All tracing in CWinHttpHandle::OnCallback has been moved into a new TraceCallback method which client code is free to call. Also all tracing in CWinHttpHandle:: OnCallbackComplete has been moved into a new TraceCallbackComplete method. Also all tracing in CDownloadFileWinHttpRequest::OnCallbackComplete has been moved into a new TraceCallbackComplete method.
- Moved cleanup of resources from CDownloadFileWinHttpRequest::OnCallbackComplete to a new public method called ReleaseResources()
Just to let everyone know that v1.0 of WinHttpWrappers, a set of MFC classes to encapsulate WinHttp and especially its asynchronous support. The classes are based on the MSDN Magazine article about WinHttp by Kenny Kerr at http://msdn.microsoft.com/en-gb/magazine/cc716528.aspx. You should read this article to get a better understanding on how to properly use WinHttp (especially when in asynchronous mode). Coming back to my classes then should make more sense<gg>.
The classes provided are: CWinHttpHandle, CWinHttpSession, CWinHttpConnection, CWinHttpRequest & CDownloadFileWinHttpRequest.
CWinHttpHandle provides a class based encapsulation of a HINTERNET handle and various WinHttp methods which work on any HINTERNET type handle. It also provides a prebuilt virtual callback method called "OnCallback" which derived classes can customize.
CWinHttpSession provides encapsulation of a WinHttp session HINTERNET handle. It provides an "Initialize" method which encapsulates the WinHttpOpen API.
CWinHttpConnection provides encapsulation of a WinHttp connection HINTERNET handle. It provides an "Initialize" method which encapsulates the WinHttpConnect API.
CWinHttpRequest provides encapsulation of a WinHttp request HINTERNET handle. It provides an "Initialize" method which encapsulates the WinHttpOpenRequest API. It also encapsulates all the WinHttp API calls which take a request handle such as WinHttpAddRequestHeaders, WinHttpQueryHeaders, WinHttpReadData, WinHttpQueryAuthSchemes etc etc.
The last class is CDownloadFileWinHttpRequest which derives from CWinHttpRequest which provides for asynchronous downloading of a URL to a local file. Internally this class looks after a memory buffer and file for downloading the request into. It also implements proper thread protection of these values to ensure correct operation when WinHttp is used in asynchronous mode. It also provides three virtual methods, namely OnReadData, OnWriteData and OnCallbackComplete to provide various notifications during the lifetime of a WinHttp download request.
Just to let everyone know that v1.09 of CSyncCollection has been released. Updates for this version include:
- Updated copyright details
- Removed usage of CSingleLock m_sl member variable as "CSingleLock" class is not designed to be used across multiple threads. Thanks to Serhiy Pavlov for reporting this issue.
Just to let everyone know that v1.15 of CShellLink & CUrlShellLink has been released. Updates for this version include:
- Major refactor of the code into new helper classes of CPropertyStoreForShellLink, CShellLinkDataList & CShellLinkHelper. The two main classes of CShellLink and CUrlShellLink now provide various Get methods to pull out these helper classes
- Updated the classes to support the following Windows 7 properties: PKEY_AppUserModel_ExcludeFromShowInNewInstall, PKEY_AppUserModel_PreventPinning & PKEY_AppUserModel_ID
Just to let everyone know that v1.14 of CShellLink & CUrlShellLink has been released. Updates for this version include:
- Updated copyright details.
- Updated code to compile cleanly using VC 2005 and later
- The code has now been updated to support VC 2005 or later only.
- Moved all the code inline into shelllink.h and did a major refactoring of the code to provide a cleaner wrapping for the IShellLink and IUniformResourceLocator interfaces.
- Added comprehensive support for IShellLinkDataList and all its supported structures including EXP_DARWIN_LINK, EXP_SPECIAL_FOLDER, EXP_SZ_LINK, NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS and EXP_PROPERTYSTORAGE
Just to let everyone know that v1.46 of AA+ has been released. Updates for this version include:
- Updated copyright details.
- Fixed a compilation issue on GCC where size_t was undefined in various methods. Thanks to Carsten A. Arnholm and Andrew Hammond for reporting this bug.
- Updated CAARiseTransitSet::Rise method to return information for circumpolar object rather than returning bValid = false for this type of object. In the case of a circumpolar object, the object does not rise or set on the day in question but will of course transit at a specific time. This change means that you do not need to recall the method with a declination value to get the transit time. In addition if an object never rises or sets, the method will still return the transit time even though it occurs below the horizon by setting the bTransitAboveHorizon value to false. Note that this means that the "Transit" value will now always include a valid value. Also the method has been renamed to Calculate. Thanks to Andrew Hood for prompting this update
- Fixed a bug in CAAGalileanMoons::CalculateHelper where the periodic terms in longitude for the four satellites (Sigma1 to Sigma4) were not being converted to radians prior to some trigonometric calculations. Thanks to Thomas Meyer for reporting this bug.