/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int CreateNew(int flag, string membername, Holder<Dispatch2> result , Variant[] param, Dispatch2 objthis) { // CreateNew Dispatch2 dsp = CreateBaseTJSObject(); // instance initialization //int hr = funcCall( 0, null, null, null, dsp); // add member to dsp // 生成を高速化するためにメンバコピーを特别处理する形で实装 dsp.AddClassInstanveInfo(mClassName); NativeInstance nativeptr = CreateNativeInstance(); dsp.SetNativeInstance(mClassIDInternal, nativeptr); int hr = CopyAllMembers((CustomObject)dsp); if (hr < 0) { return hr; } hr = base.FuncCall(0, mClassName, null, param, dsp); // call constructor // call the constructor if (hr == Error.E_MEMBERNOTFOUND) { hr = Error.S_OK; } // missing constructor is OK ( is this ugly ? ) if (hr >= 0) { result.Set(dsp); } return hr; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public virtual void AssignStructure(Dispatch2 dsp, AList<Dispatch2> stack) { // assign structured data from dsp //ArrayNI dicni = null; if (dsp.GetNativeInstance(DictionaryClass.ClassID) != null) { // copy from dictionary stack.AddItem(dsp); try { CustomObject owner = mOwner.Get(); owner.Clear(); DictionaryNI.AssignStructCallback callback = new DictionaryNI.AssignStructCallback (stack, owner); dsp.EnumMembers(Interface.IGNOREPROP, callback, dsp); } finally { stack.Remove(stack.Count - 1); } } else { throw new TJSException(Error.SpecifyDicOrArray); } }
/// <exception cref="Kirikiri.Tjs2.TJSException"></exception> /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public virtual int DeleteMemberByNum(int flag, int num, Dispatch2 objThis) { if (mObject == null) { throw new TJSException(Error.NullAccess); } return mObject.DeleteMemberByNum(flag, num, mObjThis != null ? mObjThis : (objThis != null ? objThis : mObject)); }
/// <exception cref="Kirikiri.Tjs2.TJSException"></exception> /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public virtual int DeleteMember(int flag, string memberName, Dispatch2 objThis) { if (mObject == null) { throw new TJSException(Error.NullAccess); } return mObject.DeleteMember(flag, memberName, mObjThis != null ? mObjThis : (objThis != null ? objThis : mObject)); }
// create new object /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int CreateNew(int flag, string memberName, Holder<Dispatch2> result , Variant[] param, Dispatch2 objThis) { if (IsNumber(memberName, Result)) { return CreateNewByNum(flag, Result[0], result, param, objThis); } return base.CreateNew(flag, memberName, result, param, objThis); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int FuncCall(int flag, string membername, Variant result, Variant [] param, Dispatch2 objthis) { if (membername != null) { return base.FuncCall(flag, membername, result, param, objthis); } return Process(result, param, objthis); }
public override int PropSet(int flag, string membername, Variant param, Dispatch2 objThis) { if (membername != null) { return Error.E_MEMBERNOTFOUND; } mValue.Set(param); return Error.S_OK; }
/// <exception cref="Kirikiri.Tjs2.TJSException"></exception> /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public virtual int CreateNewByNum(int flag, int num, Holder<Dispatch2> result, Variant [] param, Dispatch2 objThis) { if (mObject == null) { throw new TJSException(Error.NullAccess); } return mObject.CreateNewByNum(flag, num, result, param, mObjThis != null ? mObjThis : (objThis != null ? objThis : mObject)); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public static void SaveStructuredDataForObject(Dispatch2 dsp, AList<Dispatch2> stack , TextWriteStreamInterface stream, string indentstr) { // check object recursion int count = stack.Count; for (int i = 0; i < count; i++) { Dispatch2 d = stack[i]; if (d == dsp) { // object recursion detected stream.Write("null /* object recursion detected */"); return; } } // determin dsp's object type DictionaryNI dicni; ArrayNI arrayni; if (dsp != null) { dicni = (DictionaryNI)dsp.GetNativeInstance(DictionaryClass.ClassID); if (dicni != null) { // dictionary stack.AddItem(dsp); dicni.SaveStructuredData(stack, stream, indentstr); stack.Remove(stack.Count - 1); return; } else { arrayni = (ArrayNI)dsp.GetNativeInstance(ArrayClass.ClassID); if (arrayni != null) { // array stack.AddItem(dsp); arrayni.SaveStructuredData(stack, stream, indentstr); stack.Remove(stack.Count - 1); return; } else { // other objects stream.Write("null /* (object) \""); // stored as a null Variant val = new Variant(dsp, dsp); stream.Write(LexBase.EscapeC(val.AsString())); stream.Write("\" */"); return; } } } stream.Write("null"); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public virtual int DeleteMember(int flag, string membername, Dispatch2 objthis) { Dispatch2 OBJ1 = ((objthis != null) ? (objthis) : (mDispatch1)); int hr = mDispatch1.DeleteMember(flag, membername, OBJ1); if (hr == Error.E_MEMBERNOTFOUND && mDispatch1 != mDispatch2) { Dispatch2 OBJ2 = ((objthis != null) ? (objthis) : (mDispatch2)); return mDispatch2.DeleteMember(flag, membername, OBJ2); } return hr; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int CreateNew(int flag, string membername, Holder<Dispatch2> result , Variant[] param, Dispatch2 objthis) { int hr = base.CreateNew(flag, membername, result, param, objthis); if (hr == Error.E_MEMBERNOTFOUND && (flag & Interface.MEMBERMUSTEXIST) == 0) { return Error.E_INVALIDTYPE; } // call operation for void return hr; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int IsInstanceOf(int flag, string membername, string classname, Dispatch2 objthis) { if (membername == null) { if ("Function".Equals(classname)) { return Error.S_TRUE; } } return base.IsInstanceOf(flag, membername, classname, objthis); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public virtual int CreateNewByNum(int flag, int num, Holder<Dispatch2> result, Variant [] param, Dispatch2 objthis) { Dispatch2 OBJ1 = ((objthis != null) ? (objthis) : (mDispatch1)); int hr = mDispatch1.CreateNewByNum(flag, num, result, param, OBJ1); if (hr == Error.E_MEMBERNOTFOUND && mDispatch1 != mDispatch2) { Dispatch2 OBJ2 = ((objthis != null) ? (objthis) : (mDispatch2)); return mDispatch2.CreateNewByNum(flag, num, result, param, OBJ2); } return hr; }
public override int PropGet(int flag, string membername, Variant result, Dispatch2 objthis) { if (membername != null) { return Error.E_MEMBERNOTFOUND; } if (result != null) { result.Set(mValue); } return Error.S_OK; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int PropGet(int flag, string membername, Variant result, Dispatch2 objthis) { int hr = base.PropGet(flag, membername, result, objthis); if (hr == Error.E_MEMBERNOTFOUND && (flag & Interface.MEMBERMUSTEXIST) == 0) { if (result != null) { result.Clear(); } // returns void return Error.S_OK; } return hr; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int Operation(int flag, string membername, Variant result, Variant param, Dispatch2 objthis) { int hr = base.Operation(flag, membername, result, param, objthis); if (hr == Error.E_MEMBERNOTFOUND && (flag & Interface.MEMBERMUSTEXIST) == 0) { // value not found -> create a value, do the operation once more hr = base.PropSet(Interface.MEMBERENSURE, membername, VoidVal, objthis); if (hr < 0) { return hr; } hr = base.Operation(flag, membername, result, param, objthis); } return hr; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int PropGet(int flag, string membername, Variant result, Dispatch2 objthis) { if (membername != null) { return base.PropGet(flag, membername, result, objthis); } if (objthis == null) { return Error.E_NATIVECLASSCRASH; } if (result == null) { return Error.E_FAIL; } return Get(result, objthis); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int PropSet(int flag, string membername, Variant param, Dispatch2 objthis) { if (membername != null) { return base.PropSet(flag, membername, param, objthis); } if (objthis == null) { return Error.E_NATIVECLASSCRASH; } if (param == null) { return Error.E_FAIL; } return Set(param, objthis); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int FuncCall(int flag, string membername, Variant result, Variant [] param, Dispatch2 objthis) { if (membername != null) { return base.FuncCall(flag, membername, result, param, objthis); } if (objthis == null) { return Error.E_NATIVECLASSCRASH; } if (result != null) { result.Clear(); } return Process(result, param, objthis); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public override int FuncCall(int flag, string membername, Variant result, Variant [] param, Dispatch2 objthis) { if (!GetValidity()) { return Error.E_INVALIDOBJECT; } if (membername != null) { return base.FuncCall(flag, membername, result, param, objthis); } // 生成を高速化するためにメンバコピーを特别处理する形で实装 objthis.AddClassInstanveInfo(mClassName); NativeInstance nativeptr = CreateNativeInstance(); objthis.SetNativeInstance(mClassIDInternal, nativeptr); int hr = CopyAllMembers((CustomObject)objthis); if (hr < 0) { return hr; } return Error.S_OK; }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public virtual void Assign(Dispatch2 dsp, bool clear) { // copy members from "dsp" to "Owner" // determin dsp's object type ArrayNI arrayni = null; CustomObject owner = mOwner.Get(); if (dsp != null && (arrayni = (ArrayNI)dsp.GetNativeInstance(ArrayClass.ClassID)) != null) { // convert from array if (clear) { owner.Clear(); } int count = arrayni.mItems.Count; for (int i = 0; i < count; i++) { Variant v = arrayni.mItems[i]; string name = v.AsString(); i++; if (i >= count) { break; } Variant v2 = arrayni.mItems[i]; owner.PropSet(Interface.MEMBERENSURE | Interface.IGNOREPROP, name, v2, owner); } } else { // otherwise if (clear) { owner.Clear(); } DictionaryNI.AssignCallback callback = new DictionaryNI.AssignCallback(owner); dsp.EnumMembers(Interface.IGNOREPROP, callback, dsp); } }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { Variant val = new Variant(string.Empty); if ((param.Length > 0) ? param[0].IsVoid() != true : false) { val.CopyRef(param[0]); } string message_name = "message"; objthis.PropSet(Interface.MEMBERENSURE, message_name, val, objthis); if ((param.Length > 1) ? param[1].IsVoid() != true : false) { val.CopyRef(param[1]); } else { val.Set(string.Empty); } string trace_name = "trace"; objthis.PropSet(Interface.MEMBERENSURE, trace_name, val, objthis); return Error.S_OK; }
/// <exception cref="TjsException"></exception> /// <exception cref="VariantException"></exception> public virtual int IsInstanceOf(int flag, string memberName, string className, Dispatch2 objThis) { if (mObject == null) { throw new TjsException(Error.NullAccess); } return(mObject.IsInstanceOf(flag, memberName, className, mObjThis != null ? mObjThis : (objThis != null ? objThis : mObject))); }
public virtual void Set(Dispatch2 obj, Dispatch2 objthis) { mObject = obj; mObjThis = objthis; }
public virtual void Set(VariantClosure clo) { mObject = clo.mObject; mObjThis = clo.mObjThis; }
//public static int getDictionaryClassID() { return DictionaryClass.ClassID; } //public static int getArrayClassID() { return ArrayClass.ClassID; } /// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> /// <exception cref="CompileException"></exception> public virtual void ExecScript(string script, Variant result, Dispatch2 context, string name, int lineofs) { mCache?.ExecScript(script, result, context, name, lineofs); }
/// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> public virtual bool Callback(string name, int flags, Variant value) { if ((flags & Interface.HIDDENMEMBER) != 0) { return(true); } if (value.IsObject()) { // object Dispatch2 dsp = value.AsObject(); // determin dsp's object type Variant val; if (dsp != null) { if (dsp.GetNativeInstance(DictionaryClass.ClassID) != null) { // dictionary bool objrec = false; int count = mStack.Count; for (int i = 0; i < count; i++) { Dispatch2 v = mStack[i]; if (v == dsp) { // object recursion detected objrec = true; break; } } val = new Variant(); if (objrec) { val.SetObject(null); } else { // becomes null Dispatch2 newobj = Tjs.CreateDictionaryObject(); val.SetObject(newobj, newobj); DictionaryNI newni; if ((newni = (DictionaryNI)newobj.GetNativeInstance(DictionaryClass.ClassID)) != null) { newni.AssignStructure(dsp, mStack); } } } else { if (dsp.GetNativeInstance(ArrayClass.ClassID) != null) { // array bool objrec = false; int count = mStack.Count; for (int i = 0; i < count; i++) { Dispatch2 v = mStack[i]; if (v == dsp) { // object recursion detected objrec = true; break; } } val = new Variant(); if (objrec) { val.SetObject(null); } else { // becomes null Dispatch2 newobj = Tjs.CreateArrayObject(); val.SetObject(newobj, newobj); ArrayNI newni; if ((newni = (ArrayNI)newobj.GetNativeInstance(ArrayClass.ClassID)) != null) { newni.AssignStructure(dsp, mStack); } } } else { val = value; } } } else { // other object types val = value; } mDest.PropSet(Interface.MEMBERENSURE | Interface.IGNOREPROP, name, val, mDest); } else { // other types mDest.PropSet(Interface.MEMBERENSURE | Interface.IGNOREPROP, name, value, mDest); } return(true); }
protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { return Error.S_OK; }
public byte GetType(Variant v) { object o = v.ToJavaObject(); if (o == null) { return(TYPE_VOID); } else { if (o is string) { return(TYPE_STRING); } else { if (o is int) { int val = ((int)o); if (val >= byte.MinValue && val <= byte.MaxValue) { return(TYPE_BYTE); } else { if (val >= short.MinValue && val <= short.MaxValue) { return(TYPE_SHORT); } else { return(TYPE_INTEGER); } } } else { if (o is double) { return(TYPE_REAL); } else { if (o is VariantClosure) { VariantClosure clo = (VariantClosure)o; Dispatch2 dsp = clo.mObject; if (dsp is InterCodeObject) { return(TYPE_INTER_OBJECT); } else { return(TYPE_OBJECT); } } else { if (o is InterCodeGenerator) { return(TYPE_INTER_GENERATOR); } else { if (o is ByteBuffer) { return(TYPE_OCTET); } else { if (o is long) { long val = ((long)o); if (val >= byte.MinValue && val <= byte.MaxValue) { return(TYPE_BYTE); } else { if (val >= short.MinValue && val <= short.MaxValue) { return(TYPE_SHORT); } else { if (val >= int.MinValue && val <= int.MaxValue) { return(TYPE_INTEGER); } else { return(TYPE_LONG); } } } } } } } } } } } return(TYPE_UNKNOWN); }
// TJS constructor /// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> public virtual int Construct(Variant[] param, Dispatch2 tjsObj) { return(Error.S_OK); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { DateNI _this = (DateNI)objthis.GetNativeInstance(Kirikiri.Tjs2.DateClass.mClassID ); if (_this == null) { return Error.E_NATIVECLASSCRASH; } if (result != null) { result.Set((int)_this.mDateTime.Get(Calendar.YEAR)); } return Error.S_OK; }
/// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> public override int IsInstanceOf(int flag, string membername, string classname, Dispatch2 objthis) { if (membername == null) { if ("Class".Equals(classname)) { return(Error.S_TRUE); } if (ClassName != null && ClassName.Equals(classname)) { return(Error.S_TRUE); } } return(base.IsInstanceOf(flag, membername, classname, objthis)); }
//mCallback = new Callback(); //mCallbackClosure = new VariantClosure(mCallback,null); /// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> public virtual void RegisterNCM(string name, Dispatch2 dsp, string className, int type) { RegisterNCM(name, dsp, className, type, 0); }
public VariantClosure(Dispatch2 obj, Dispatch2 objthis) { //mObjThis = null; mObject = obj; mObjThis = objthis; }
public virtual void Set(Dispatch2 obj) { Set(obj, null); }
/// <exception cref="Kirikiri.Tjs2.TJSException"></exception> /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public virtual void AssignStructure(Dispatch2 dsp, AList<Dispatch2> stack) { // assign structured data from dsp ArrayNI arrayni = (ArrayNI)dsp.GetNativeInstance(ArrayClass.ClassID); if (arrayni != null) { // copy from array stack.AddItem(dsp); try { mItems.Clear(); int count = arrayni.mItems.Count; for (int i = 0; i < count; i++) { Variant v = arrayni.mItems[i]; if (v.IsObject()) { // object Dispatch2 dsp1 = v.AsObject(); // determin dsp's object type //DictionaryNI dicni = null; //ArrayNI arrayni1 = null; if (dsp1 != null && dsp1.GetNativeInstance(DictionaryClass.ClassID) != null) { //dicni = (DictionaryNI)ni.mValue; // dictionary bool objrec = false; int scount = stack.Count; for (int j = 0; j < scount; j++) { Dispatch2 d = stack[j]; if (d == dsp1) { // object recursion detected objrec = true; break; } } if (objrec) { mItems.AddItem(new Variant()); } else { // becomes null Dispatch2 newobj = TJS.CreateDictionaryObject(); mItems.AddItem(new Variant(newobj, newobj)); DictionaryNI newni; if ((newni = (DictionaryNI)newobj.GetNativeInstance(DictionaryClass.ClassID)) != null) { newni.AssignStructure(dsp1, stack); } } } else { if (dsp1 != null && dsp1.GetNativeInstance(ArrayClass.ClassID) != null) { // array bool objrec = false; int scount = stack.Count; for (int j = 0; j < scount; j++) { Dispatch2 d = stack[j]; if (d == dsp1) { // object recursion detected objrec = true; break; } } if (objrec) { mItems.AddItem(new Variant()); } else { // becomes null Dispatch2 newobj = TJS.CreateArrayObject(); mItems.AddItem(new Variant(newobj, newobj)); ArrayNI newni; if ((newni = (ArrayNI)newobj.GetNativeInstance(ArrayClass.ClassID)) != null) { newni.AssignStructure(dsp1, stack); } } } else { // other object types mItems.AddItem(v); } } } else { // others mItems.AddItem(v); } } } finally { stack.Remove(stack.Count - 1); } } else { throw new TJSException(Error.SpecifyDicOrArray); } }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { if (result != null) { result.Set(System.TimeZoneInfo.Local.GetRawOffset() / (60 * 1000)); } return Error.S_OK; }
public int PutVariant(Variant v, Compiler block) { object o = v.ToJavaObject(); int type = GetType(v); switch (type) { case TYPE_VOID: { return(0); } case TYPE_OBJECT: { // 常に0 VariantClosure clo = (VariantClosure)o; if (clo.mObject == null && clo.mObjThis == null) { return(0); } else { // null の VariantClosure は受け入れる return(-1); } } case TYPE_INTER_OBJECT: { // その他は入れない。Dictionary と Array は保存できるようにした方がいいが…… VariantClosure clo = (VariantClosure)o; Dispatch2 dsp = clo.mObject; return(block.GetObjectIndex((InterCodeObject)dsp)); } case TYPE_STRING: { return(PutString(((string)o))); } case TYPE_OCTET: { return(PutByteBuffer((ByteBuffer)o)); } case TYPE_REAL: { return(PutDouble(((Number)o))); } case TYPE_BYTE: { return(PutByte(((Number)o))); } case TYPE_SHORT: { return(PutShort(((Number)o))); } case TYPE_INTEGER: { return(PutInteger(((Number)o))); } case TYPE_LONG: { return(PutLong(((Number)o))); } case TYPE_INTER_GENERATOR: { return(block.GetCodeIndex((InterCodeGenerator)o)); } case TYPE_UNKNOWN: { return(-1); } } return(-1); }
/// <exception cref="Kirikiri.Tjs2.TJSException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { DateNI _this = (DateNI)objthis.GetNativeInstance(Kirikiri.Tjs2.DateClass.mClassID ); // インスタンス所得 if (_this == null) { return Error.E_NATIVECLASSCRASH; } _this.mDateTime = Kirikiri.Tjs2.DateClass.ParseDateString(param[0].GetString()); return Error.S_OK; }
/// <exception cref="VariantException"></exception> /// <exception cref="TJSException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { DateNI _this = (DateNI)objthis.GetNativeInstance(DateClass.mClassID ); if (_this == null) { return(Error.E_NATIVECLASSCRASH); } int hr = _this.Construct(param, objthis); if (hr < 0) { return(hr); } if (param.Length == 0) { _this.mDateTime = Calendar.GetInstance(); } else { if (param.Length >= 1) { if (param[0].IsString()) { _this.mDateTime = DateClass.ParseDateString(param[0].GetString()); } else { int y; int mon = 0; int day = 1; int h = 0; int m = 0; int s = 0; y = param[0].AsInteger(); if (param.Length > 1 && param[1].IsVoid() != true) { mon = param[1].AsInteger(); } if (param.Length > 2 && param[2].IsVoid() != true) { day = param[2].AsInteger(); } if (param.Length > 3 && param[3].IsVoid() != true) { h = param[3].AsInteger(); } if (param.Length > 4 && param[4].IsVoid() != true) { m = param[4].AsInteger(); } if (param.Length > 5 && param[5].IsVoid() != true) { s = param[5].AsInteger(); } Calendar cal = Calendar.GetInstance(); cal.Set(y, mon, day, h, m, s); _this.mDateTime = cal; } } } return(Error.S_OK); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { DateNI _this = (DateNI)objthis.GetNativeInstance(Kirikiri.Tjs2.DateClass.mClassID ); if (_this == null) { return Error.E_NATIVECLASSCRASH; } if (param.Length < 1) { return Error.E_BADPARAMCOUNT; } _this.mDateTime.Set(Calendar.DAY_OF_MONTH, param[0].AsInteger()); return Error.S_OK; }
/// <exception cref="VariantException"></exception> /// <exception cref="TjsException"></exception> /// <exception cref="CompileException"></exception> public virtual void EvalExpression(string expression, Variant result, Dispatch2 context , string name, int lineofs) { mCache?.EvalExpression(expression, result, context, name, lineofs); }
public override int Construct(Variant[] param, Dispatch2 tjsObj) { // called by TJS constructor if (param != null && param.Length != 0) { return Error.E_BADPARAMCOUNT; } return Error.S_OK; }
/// <exception cref="TjsException"></exception> protected internal override int Process(Variant result, Variant[] param, Dispatch2 objthis) { return(Error.S_OK); }
/// <exception cref="Kirikiri.Tjs2.VariantException"></exception> /// <exception cref="Kirikiri.Tjs2.TJSException"></exception> public virtual void Assign(Dispatch2 dsp) { // copy members from "dsp" to "Owner" // determin dsp's object type //Holder<ArrayNI> arrayni = new Holder<ArrayNI>(null); ArrayNI array = (ArrayNI)dsp.GetNativeInstance(ArrayClass.ClassID); if (array != null) { // copy from array mItems.Clear(); int count = array.mItems.Count; for (int i = 0; i < count; i++) { mItems.AddItem(new Variant(array.mItems[i])); } } else { //mItems.addAll( array.mItems ); // convert from dictionary or others mItems.Clear(); ArrayNI.DictionaryEnumCallback callback = new ArrayNI.DictionaryEnumCallback(mItems ); dsp.EnumMembers(Interface.IGNOREPROP, callback, dsp); } }
public VariantClosure(Dispatch2 obj) { mObject = obj; }