import "objidl.idl";  // Standardowe definicje COM

[
  uuid(4992BB40-FCA6-11D3-ADDB-BCAF427C7F50), 
  version(1.0), 
  helpstring("ZodiacServer Library")
    
]
  typedef struct tagTDetailedZodiacSign
  {
    BSTR Sign;
    long House;
    BSTR Element;
    BSTR Planet;
    BSTR Details;
    BSTR Advice;
  } TDetailedZodiacSign;

  [
    uuid(4992BB45-FCA6-11D3-ADDB-BCAF427C7F50), 
    version(1.0), 
  ]

   interface IDetailedZodiac: IUnknown
  {
    [
    id(0x00000001)
    ]
    HRESULT _stdcall GetDetailedZodiacSign([in] long Day, [in] long Month, [out] TDetailedZodiacSign * DetailedSign );
    [
    id(0x00000002)
    ]
    HRESULT _stdcall GetDetailedZodiacSignAsync([in] long Day, [in] long Month );
  };

  [
    uuid(4992BB4F-FCA6-11D3-ADDB-BCAF427C7F50), 
    version(1.0)
  ]
   interface IDetailedZodiacEvents: IUnknown
  {
    [
    id(0x00000002)
    ]
    HRESULT _stdcall OnDetailedZodiacSignReady([in] TDetailedZodiacSign * DetailedSign );
  };

};