/// <exception cref="TjsException"></exception>
 /// <exception cref="VariantException"></exception>
 public virtual int FuncCallByNum(int flag, int num, Variant result, Variant[] param
                                  , Dispatch2 objThis)
 {
     if (mObject == null)
     {
         throw new TjsException(Error.NullAccess);
     }
     return(mObject.FuncCallByNum(flag, num, result, param, mObjThis != null ? mObjThis
                          : (objThis != null ? objThis : mObject)));
 }
        /// <exception cref="VariantException"></exception>
        /// <exception cref="TjsException"></exception>
        public virtual int FuncCallByNum(int flag, int num, Variant result, Variant[] param
                                         , Dispatch2 objthis)
        {
            Dispatch2 OBJ1 = ((objthis != null) ? (objthis) : (mDispatch1));
            int       hr   = mDispatch1.FuncCallByNum(flag, num, result, param, OBJ1);

            if (hr == Error.E_MEMBERNOTFOUND && mDispatch1 != mDispatch2)
            {
                Dispatch2 OBJ2 = ((objthis != null) ? (objthis) : (mDispatch2));
                return(mDispatch2.FuncCallByNum(flag, num, result, param, OBJ2));
            }
            return(hr);
        }