MFC application fails in Debug mode when using ViaVoice

Last reviewed: 6/30/2005

PRB Article ID: P060505

The information in this article applies to:

  • SpeechKit 4

Symptoms

Running an MFC application in Debug mode fails when using ViaVoice.

Cause

MFC uses an Assert that causes failure if wParam isn't a valid window handle. SMAPI uses wParam to pass sessionID. To avoid crash include the following in your application:


// Add to header
  ULONG m_smSessionID;

  virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);

// Add to Application
// Add to initilalization code
  m_smSessionID = 0;

// Add OnCommand handler
//	This is here only for debug compiles. 
BOOL CRecognitionDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
  // TODO: Add your specialized code here and/or call the base class
  if ((m_smSessionID == 0) && (m_pChantSR != NULL))
  {
    m_smSessionID = m_pChantSR->GetNumberProperty(CNPEngineRunning);
  }
  if ((wParam > 0) && (wParam == m_smSessionID))
  {
    return TRUE;
  }
  return CDialog::OnCommand(wParam, lParam);
}

Status

Application change only.

Component Formats Impacted

ActiveX, CDLL, COM