/*** 
*calctype.odl
*
*  Copyright (C) 1993, Microsoft Corporation.  All Rights Reserved.
*  Information Contained Herein Is Proprietary and Confidential.
*
*Purpose:
*  This file contains the definitions of the objects exposed for OLE Automation
*  by the dspcalc2
*  example program. MkTypLib uses this file to produce a type library and
*  a header file. The header file is then used in compiling dspcalc2.
*
*Implementation Notes:
*
*****************************************************************************/

[
  uuid(00020470-0000-0000-C000-000000000046), 
  helpstring("OLE Automation DspCalc2 1.0 Type Library"),
  lcid(0x0409),
  version(1.0)
] 
library DspCalc2
{
  
    importlib("stdole.tlb");
  
    typedef enum operators {
      OP_NONE = 0,
      OP_PLUS,
      OP_MINUS,
      OP_MULT,
      OP_DIV
    } OPERATORS;


    [
      uuid(00020441-0000-0000-C000-000000000046), 
      helpstring("DspCalc2"),
      odl
    ]  
    interface _ICalculator : IUnknown
    {
      [propput]
      void Accum([in] long l);
      [propget, helpstring("The value stored in the calculator")]
      long Accum();    

      [propput]
      void Opnd([in] long l);
      [propget]
      long Opnd();    
    
      [propput]
      void Op([in] OPERATORS op);
      [propget]
      OPERATORS Op();    
    
      boolean Eval(void);
      void Clear(void);
      void Display(void);
      void Quit(void);
      boolean Button([in] BSTR button);
    }


    [
      uuid(00020442-0000-0000-C000-000000000046), 
      helpstring("DspCalc2")
    ]  
    dispinterface _DCalculator
    {
      interface _ICalculator;
    }


    [
      uuid(00020469-0000-0000-C000-000000000046), 
      helpstring("DspCalc2"),
      appobject
    ]  
    coclass Calculator
    {
      dispinterface _DCalculator;
      interface _ICalculator;
    }
}
