method3 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
        -> IDispatch i -> IO (a1,a2,a3)
method3 member args argout1 argout2 argout3 obj = do 
    dispid <- obj # getMemberID member
    catchMethError member (methodID3 dispid args argout1 argout2 argout3 obj)
method3 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
        -> IDispatch i -> IO (a1,a2,a3)
method3 member args argout1 argout2 argout3 obj = do 
    dispid <- obj # getMemberID member
    catchMethError member (methodID3 dispid args argout1 argout2 argout3 obj)
method3 member args argout1 argout2 argout3 obj = do 
    dispid <- obj # getMemberID member
    catchMethError member (methodID3 dispid args argout1 argout2 argout3 obj)