methodID5 :: DISPID
          -> [VarIn]
          -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
          -> ArgOut a4 -> ArgOut a5
          -> IDispatch i 
          -> IO (a1,a2,a3,a4,a5)
methodID5 dispid args (varin1,argres1) (varin2,argres2)
                      (varin3,argres3) (varin4,argres4)
                      (varin5,argres5) obj = do
   p <- obj # invokeMethod dispid args [varin1,varin2,varin3,varin4,varin5]
   unmarshallVariants5 argres1 argres2 argres3 argres4 argres5 p
methodID5 :: DISPID
          -> [VarIn]
          -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
          -> ArgOut a4 -> ArgOut a5
          -> IDispatch i 
          -> IO (a1,a2,a3,a4,a5)
methodID5 dispid args (varin1,argres1) (varin2,argres2)
                      (varin3,argres3) (varin4,argres4)
                      (varin5,argres5) obj = do
   p <- obj # invokeMethod dispid args [varin1,varin2,varin3,varin4,varin5]
   unmarshallVariants5 argres1 argres2 argres3 argres4 argres5 p
methodID5 dispid args (varin1,argres1) (varin2,argres2)
                      (varin3,argres3) (varin4,argres4)
                      (varin5,argres5) obj = do
   p <- obj # invokeMethod dispid args [varin1,varin2,varin3,varin4,varin5]
   unmarshallVariants5 argres1 argres2 argres3 argres4 argres5 p