Ejemplo n.º 1
0
 /// <include file='doc\AxHost.uex' path='docs/doc[@for="AxHost.AxContainer.EnumObjects"]/*' />
 /// <devdoc>
 ///    <para>[To be supplied.]</para>
 /// </devdoc>
 int UnsafeNativeMethods.IOleContainer.EnumObjects(int grfFlags, out UnsafeNativeMethods.IEnumUnknown ppenum) {
     Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "in EnumObjects");
     ppenum = null;
     if ((grfFlags & 1) != 0) { // 1 == OLECONTF_EMBEDDINGS
         Debug.Assert(parent != null, "gotta have it...");
         ArrayList list = new ArrayList();
         ListAxControls(list, true);
         if (list.Count > 0) {
             Object[] temp = new Object[list.Count];
             list.CopyTo(temp, 0);
             ppenum = new EnumUnknown(temp);
             return NativeMethods.S_OK;
         }
     }
     ppenum = new EnumUnknown(null);
     return NativeMethods.S_OK;
 }
Ejemplo n.º 2
0
        ///<summary>
        /// IOPCServer::CreateGroupEnumerator - Creates various enumerators for the groups provided by the Server.
        ///</summary>
		public void CreateGroupEnumerator(OpcRcw.Da.OPCENUMSCOPE dwScope, ref Guid riid, out object ppUnk)
		{
			lock (m_lock)
			{
				try
				{
					switch (dwScope)
					{
						case OPCENUMSCOPE.OPC_ENUM_PUBLIC:
						case OPCENUMSCOPE.OPC_ENUM_PUBLIC_CONNECTIONS:
						{
							if (riid == typeof(OpcRcw.Comn.IEnumString).GUID)
							{
								ppUnk = new EnumString(null);
                                return;
							}

							if (riid == typeof(OpcRcw.Comn.IEnumUnknown).GUID)
							{
								ppUnk = new EnumUnknown(null);
                                return;
							}

							throw ComUtils.CreateComException("E_NOINTERFACE", ResultIds.E_NOINTERFACE);
						}
					}

					if (riid == typeof(IEnumUnknown).GUID)
					{
						ppUnk = new EnumUnknown(m_groups);
                        return;
					}

					if (riid == typeof(OpcRcw.Comn.IEnumString).GUID)
					{
						ArrayList names = new ArrayList(m_groups.Count);

						foreach (string name in m_groups.Keys)
						{
							names.Add(name);
						}

						ppUnk = new EnumString(names);
                        return;
					}

					throw ComUtils.CreateComException("E_NOINTERFACE", ResultIds.E_NOINTERFACE);
				}
				catch (Exception e)
				{
					throw ComUtils.CreateComException(e);
				}
			}
		}
Ejemplo n.º 3
0
 void UnsafeNativeMethods.IEnumUnknown.Clone(out UnsafeNativeMethods.IEnumUnknown ppenum) {
     ppenum = new EnumUnknown(arr, loc);
 }
Ejemplo n.º 4
0
 HRESULT Ole32.IEnumUnknown.Clone(out Ole32.IEnumUnknown ppenum)
 {
     ppenum = new EnumUnknown(arr, loc);
     return(HRESULT.S_OK);
 }