internal static unsafe void Invoke(IntPtr obj, CapturedPixels PixelData, Name StreamName, FrameMetrics FrameMetrics, bool bCopyImageData)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((CapturedPixels *)(b + 0)) = PixelData;
                *((Name *)(b + 16))          = StreamName;
                *((FrameMetrics *)(b + 28))  = FrameMetrics;
                *((bool *)(b + 44))          = bCopyImageData;
                Main.GetProcessEvent(obj, WriteImageToDisk_ptr, new IntPtr(p));;
            }
        }
 ///<summary>
 ///* Generate a filename for the current frame using this protocol's file name formatter
 ///*
 ///* @
 ///</summary>
 ///<remarks>return A fully qualified file name for the current frame number</remarks>
 public void WriteImageToDisk(CapturedPixels PixelData, Name StreamName, FrameMetrics FrameMetrics, bool bCopyImageData) =>
 UserDefinedImageCaptureProtocol_methods.WriteImageToDisk_method.Invoke(ObjPointer, PixelData, StreamName, FrameMetrics, bCopyImageData);