Como posso retornar uma seqüência de erro e um código de erro para o VB6 de um controle ATL ActiveX?

Eu estou tentando retornar um erro detalhado para VB6 usandoCComCoClass :: Erro, mas parece que só posso retornar um código de erro / ou / uma mensagem - mas não ambos.

return Error(_T("Not connected"), __uuidof(IMyInterface), HRESULT_FROM_WIN32(ERROR_CONNECTION_INVALID));

resulta em uma mensagem de erro genérica "Solicitação de método 'do objeto' IMyInterface 'falhou" em Err.Description no lado do VB6 (mas ERROR_CONNECTION_INVALID no Err.Number), enquanto

return Error(_T("Not connected"));

resulta na mensagem de erro apropriada, mas um código de erro genérico em Err.Number. Como posso obter o melhor dos dois mundos?

questionAnswers(4)

yourAnswerToTheQuestion