[Guid("148BD528-A2AB-11CE-B11F-00AA00530503"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumWorkItems
{
int Next(uint celt, out IntPtr names,out uint namecount);
int Skip(uint celt);
int Reset() ;
int Clone([MarshalAs(UnmanagedType.IUnknown)] out object EnumWorkItems);
};
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
static public List<string> TaskList(ITaskScheduler taskscheduler)
{
object obj;
taskscheduler.Enum(out obj);
IEnumWorkItems enumerator = obj as IEnumWorkItems;
uint nameCount;
IntPtr namePtr;
List<string> list = new List<string>();
while (enumerator.Next(1, out namePtr, out nameCount) == 0 && nameCount == 1)
{
IntPtr name = Marshal.ReadIntPtr(namePtr);
list.Add(Marshal.PtrToStringUni(name));
CoTaskMemFree(namePtr);
CoTaskMemFree(name);
}
return list;
}
[DllImport("ole32.Dll")]
static extern void CoTaskMemFree(IntPtr pv);
<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface IEnumWorkItems
TODO
End Interface
None.
None.