interface IZodiac  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE GetZodiacSign(long Day/*[in]*/, long Month/*[in]*/, 
                                                  BSTR* Sign/*[out,retval]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE GetZodiacSignAsync(long Day/*[in]*/, long Month/*[in]*/) = 0; // [2]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall GetZodiacSign(long Day/*[in]*/, long Month/*[in]*/)
  {
    BSTR Sign = 0;
    OLECHECK(this->GetZodiacSign(Day, Month, (BSTR*)&Sign));
    return Sign;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

// ...

interface IDetailedZodiac  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE GetDetailedZodiacSign(long Day/*[in]*/, long Month/*[in]*/, 
                                                          Zodiacserver_tlb::TDetailedZodiacSign* DetailedSign/*[out]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE GetDetailedZodiacSignAsync(long Day/*[in]*/, long Month/*[in]*/) = 0; // [2]
};
