title: ShellExecute using an URL is resulting in unassociated error message. Which file association is missing?
body: <p>I am using "ShellExec" in c++ and windows to open an url in the default browser.</p>
  
  <p>For very few customers it is failing with the following message:"This file does not have a program associated with it for performing this action". I understand that this means that the "http" file type association is missing  or invalid  in the registry for this customer.  </p>
  
  <p>Questions:</p>
  
  <p>Can I detect this issue programatically and fix or avoid it?
  - I was thinking of using AssocQueryKey and RegQueryValueEx, but not sure this is possible.</p>
  
  <p>I appreciate any advice on fixing this. I do not have a system that shows the problem, so I am hoping that someone here has already solved the problem.</p>
  
  <p>This is the code to open the browser. urlToNavigateTo would be something like "http://www.website.com/function?key=9271"</p>
  
  <pre><code>    ErrorClass error;
      SHELLEXECUTEINFO execInfo;
      ZeroMemory (&amp;execInfo, sizeof(SHELLEXECUTEINFO));
      execInfo.cbSize     = sizeof(SHELLEXECUTEINFO);
      execInfo.lpFile     = urlToNavigateTo.c_str();
      execInfo.nShow      = SW_SHOWNORMAL;
      execInfo.hwnd       = m_hWnd;   // parent window for error messages 
      BOOL bOK            = ShellExecuteEx (&amp;execInfo);
      if (bOK!=TRUE) {
          STRING errMessage = _T("Could not navigate to url Reason:" )+ FACTORY-&gt;GetUtils()-&gt;GetPlatformErrorMessage(GetLastError());
          LOG_ERROR(errMessage);
          error.Assign(errMessage);
      }
  </code></pre>