STDMETHODIMP TZodiacImpl::GetZodiacSignAsync(long Day, long Month)
{
  try
  {
    TCOMCriticalSection::Lock Lock(CS);

    BSTR Sign = NULL;
    ::GetZodiacSign(Day, Month, Sign);
    Fire_OnZodiacSignReady(Sign);
    SysFreeString(Sign);
  }
  catch(Exception &e)
  {
    return Error(e.Message.c_str(), IID_IZodiac, E_FAIL);
  }
  return S_OK;
};