public static void InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress)
{
if (returnValueAddress == IntPtr.Zero)
{
throw new ArgumentException("Return value address cannot be 0.", "returnValueAddress");
}
returnValueAddress[0] = (IntPtr) enumerator.MoveNext();
}