/// <exception cref="VariantException"></exception>
 /// <exception cref="TjsException"></exception>
 public virtual int EnumMembers(int flags, EnumMembersCallback callback, Dispatch2
                                objthis)
 {
     if (mObject == null)
     {
         throw new TjsException(Error.NullAccess);
     }
     return(mObject.EnumMembers(flags, callback, mObjThis != null ? mObjThis : (objthis
                                                                                != null ? objthis : mObject)));
 }
Example #2
0
 // enumerate members
 /// <exception cref="VariantException"></exception>
 /// <exception cref="TjsException"></exception>
 public virtual int EnumMembers(int flags, EnumMembersCallback callback, Dispatch2
                                objthis)
 {
     return(Error.E_NOTIMPL);
 }
Example #3
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 /// <exception cref="Kirikiri.Tjs2.TJSException"></exception>
 public virtual int EnumMembers(int flags, EnumMembersCallback callback, Dispatch2
     objthis)
 {
     return Error.E_NOTIMPL;
 }
Example #4
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 /// <exception cref="Kirikiri.Tjs2.TJSException"></exception>
 public virtual int EnumMembers(int flags, EnumMembersCallback callback, Dispatch2
     objthis)
 {
     if (mObject == null)
     {
         throw new TJSException(Error.NullAccess);
     }
     return mObject.EnumMembers(flags, callback, mObjThis != null ? mObjThis : (objthis
          != null ? objthis : mObject));
 }
Example #5
0
 /// <exception cref="Kirikiri.Tjs2.VariantException"></exception>
 /// <exception cref="Kirikiri.Tjs2.TJSException"></exception>
 public override int EnumMembers(int flags, EnumMembersCallback callback, Dispatch2
     objthis)
 {
     if (!GetValidity())
     {
         return Error.E_INVALIDOBJECT;
     }
     if (callback == null)
     {
         return Error.S_OK;
     }
     Variant value = new Variant();
     for (int i = 0; i < mHashSize; i++)
     {
         SymbolData lv1 = mSymbols[i];
         SymbolData d = lv1.mNext;
         while (d != null)
         {
             SymbolData nextd = d.mNext;
             if ((d.mSymFlags & SYMBOL_USING) != 0)
             {
                 if (EnumCallback(flags, callback, value, objthis, d) == false)
                 {
                     return Error.S_OK;
                 }
             }
             d = nextd;
         }
         if ((lv1.mSymFlags & SYMBOL_USING) != 0)
         {
             if (EnumCallback(flags, callback, value, objthis, lv1) == false)
             {
                 return Error.S_OK;
             }
         }
     }
     return Error.S_OK;
 }
Example #6
0
 /// <exception cref="Kirikiri.Tjs2.TJSException"></exception>
 private static bool EnumCallback(int flags, EnumMembersCallback callback, Variant
     value, Dispatch2 objthis, SymbolData data)
 {
     int newflags = 0;
     if ((data.mSymFlags & SYMBOL_HIDDEN) != 0)
     {
         newflags |= Interface.HIDDENMEMBER;
     }
     if ((data.mSymFlags & SYMBOL_STATIC) != 0)
     {
         newflags |= Interface.STATICMEMBER;
     }
     value.Clear();
     if ((flags & Interface.ENUM_NO_VALUE) == 0)
     {
         bool getvalues = false;
         if ((flags & Interface.IGNOREPROP) == 0)
         {
             Variant targ = data.mValue;
             if (targ.IsObject())
             {
                 VariantClosure tvclosure = targ.AsObjectClosure();
                 int hr = Error.E_NOTIMPL;
                 if (tvclosure.mObject != null)
                 {
                     Dispatch2 disp = tvclosure.mObjThis != null ? tvclosure.mObjThis : objthis;
                     hr = tvclosure.mObject.PropGet(0, null, value, disp);
                 }
                 if (hr >= 0)
                 {
                     getvalues = true;
                 }
                 else
                 {
                     if (hr != Error.E_NOTIMPL && hr != Error.E_INVALIDTYPE && hr != Error.E_INVALIDOBJECT)
                     {
                         return false;
                     }
                 }
             }
         }
         if (getvalues == false)
         {
             value.CopyRef(data.mValue);
         }
     }
     return callback.Callback(data.mName, newflags, value);
 }