Archive

Archive for June, 2015

CRelativePaths v1.02

June 28, 2015 Comments off

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

  • Updated copyright details.
  • Updated the code to clean compile on VC 2008 & later
  • Updated the code to require VC 2005 or later
  • Updated the code to be a header only implementation
  • Reworked the RelativeToAbsolute method to return the string return value as an output parameter instead of a return value.
  • Updated the code to include SAL annotations.
  • Reworked the code to optionally compile without MFC. By default the code now use STL classes and idioms but if you define RELATIVEPATHS_MFC_EXTENSIONS the code will revert back to the MFC behaviour.
  • Removed the static critical section member variable of the CRelativePaths class. Please note that while the RelativeToAbsolute method is executing it is possible that code in some other thread of your app could also be modifying the current working directory. To avoid such race conditions you should serialize that code with the execution of RelativeToAbsolute with something like a critical section.
Advertisements
Categories: Web Site Updates

ShellLinks::CLink & ShellLinks::CUrlLink v1.16

June 21, 2015 Comments off

Just to let everyone know that v1.16 of ShellLinks::CLink & ShellLinks::CUrlLink has been released. Updates for this version include:

  • Updated copyright details.
  • Updated the code to require VC 2008 or later. This means that the code can drop the requirement to use __if_exists to conditionally compile out certain functionality
  • Added SAL annotations to all the code
  • All the classes have now been put in a "ShellLinks" namespace
  • Reworked the classes to optionally compile without MFC. By default the classes now use STL classes and idioms but if you define CSHELLLINK_MFC_EXTENSIONS the classes will revert back to the MFC behaviour.
  • Renamed the CPropertyStoreForShellLink class to CPropertyStore.
  • Renamed the CShellLinkDataList class to CDataList
  • Renamed the CShellLinkHelper class to CHelper
  • Renamed the CShellLink class to CLink
  • Renamed the CUrlShellLink class to CUrlLink
  • Added SetStartPinOption, GetStartPinOption, GetDualMode & SetDualMode methods to the CPropertyStore class
  • Update the CPropertyStore::GetBooleanProperty to use PropVariantToBoolean
  • Updated CPropertyStore::GetStringProperty to handle VT_BSTR values in addition to VT_LPWSTR
  • All the methods in CHelper have been made non-const
  • CUrlLink::Invoke now takes a HWND parameter
  • Remove the CShellLink::Resolve method as it did not provide any real useful C++ encapsulation.
Categories: Web Site Updates

WinHTTPWrappers v1.08

June 14, 2015 Comments off

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

  • Addition of a CAsyncDownloader::GetLastStatusCode method.
  • CAsyncDownloader::OnHeadersAvailableCallback and CSyncDownloader::SendRequestSync now preserves the HTTP status code when the value received is not 200, 206, 401 or 407 and the return value ATL::AtlHresultFromWin32(ERROR_WINHTTP_INVALID_HEADER) is about to be returned.
  • CSyncDownloader::SendRequestSync method has been made virtual.
  • Update the sample app to report the last status code if available when a download request fails.
Categories: Web Site Updates

CPJNSMTPConnection v3.16

June 1, 2015 Comments off

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

  • Removed unused CPJNSMTPMessage::ConvertHTMLToPlainText method.
  • Removed the linkage in the test app’s configuration dialog between sending a message with a HTML body and requiring that the message is MIME encoded.
  • Removed the code from the test app which added a plain text attachment to the message in debug builds.
  • Updated CPJNSMTPMessage::AddHTMLBody to handle the case where the message is not MIME encoded. In this case the root body part of the message is simply set to HTML. Thanks to Thane Hubbell for reporting this issue.
Categories: Web Site Updates

CNamedPipe v1.11

June 1, 2015 Comments off

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

  • Updated copyright details.
  • Updated the sample app project settings to more modern default values.
  • Reworked the class to make it a header only implementation.
  • Added SAL annotations to all the code
  • Removed the static Call method as it did not provide any C++ encapsulation of the underlying API call
  • Reworked the class to not be exception based. Now the class merely wraps the underlying API calls in a RAII fashion.
  • Removed the static ServerAvailable method as it did not provide any C++ encapsulation of the underlying API call.
  • Updated the code to compile without taking a dependency on MFC.
  • The methods which call WriteFileEx have been renamed to WriteEx.
  • The methods which call ReadFileEx have been renamed to ReadEx.
  • The ConnectClient method has been renamed to Connect.
  • The DisconnectClient method has been renamed to Disconnect.
  • Added support for GetNamedPipeComputerName, GetNamedPipeClientProcessId, GetNamedPipeClientSessionId, GetNamedPipeServerProcessId, GetNamedPipeServerSessionId & ImpersonateNamedPipeClient APIs.
Categories: Web Site Updates