#include "nsISupports.idl"

[scriptable, uuid(AAC1FB90-E099-11d2-984E-006008962422)]
interface InvokeTestTargetInterface : nsISupports 
{
  PRInt32 AddTwoInts(in PRInt32 p1, in PRInt32 p2);
  PRInt32 MultTwoInts(in PRInt32 p1, in PRInt32 p2);
  PRInt64 AddTwoLLs(in PRInt64 p1,  in PRInt64 p2);
  PRInt64 MultTwoLLs(in PRInt64 p1, in PRInt64 p2);
  
  PRInt32 AddManyInts(in PRInt32 p1, in PRInt32 p2, in PRInt32 p3, in PRInt32 p4,
                   in PRInt32 p5, in PRInt32 p6, in PRInt32 p7, in PRInt32 p8,
                   in PRInt32 p9, in PRInt32 p10);
  
  float AddTwoFloats(in float p1, in float p2);
  
  double AddManyDoubles(in double p1, in double p2, in double p3, in double p4,
                      in double p5, in double p6, in double p7, in double p8,
                      in double p9, in double p10);
  
  float AddManyFloats(in float p1, in float p2, in float p3, in float p4,
                     in float p5, in float p6, in float p7, in float p8,
                     in float p9, in float p10);
  
  float AddManyManyFloats(in float p1, in float p2, in float p3, in float p4,
                         in float p5, in float p6, in float p7, in float p8,
                         in float p9, in float p10, in float p11, in float p12, 
                                 in float p13, in float p14, in float p15, in float p16, 
                         in float p17, in float p18, in float p19, in float p20);
  
  PRInt64 AddMixedInts(in PRInt64 p1, in PRInt32 p2, in PRInt64 p3, in PRInt32 p4,
                    in PRInt32 p5, in PRInt64 p6, in PRInt32 p7, in PRInt32 p8,
                    in PRInt64 p9, in PRInt32 p10);
  
  PRInt64 AddMixedInts2(in PRInt32 p1, in PRInt64 p2, in PRInt32 p3, in PRInt64 p4,
                     in PRInt64 p5, in PRInt32 p6, in PRInt64 p7, in PRInt64 p8,
                             in PRInt32 p9, in PRInt64 p10);
  
  double AddMixedFloats(in float p1, in float p2, in double p3, in double p4,
                      in float p5, in float p6, in double p7, in double p8,
                      in float p9, in double p10, in float p11);
  
  void PassTwoStrings(in string ignore, in string s1, in string s2, out string retval);
};
