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


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


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);


Application change only.

Component Formats Impacted

ActiveX, CDLL, COM