public UploadOrganizer()
        {
            uploadProgress = new frmProgress();
            uploadProgress.Show();
            uploadProgress.Hide();

            uploader = new Uploader();

            uploader.UploadStarted += uploader_UploadStarted;
            uploader.UploadFinished += uploader_UploadFinished;
            uploader.UploadProgress += uploader_UploadProgress;

            isRunning = true;

            pipeReaderThread = new Thread(new ThreadStart(PipeReaderThread));
            pipeReaderThread.Start();
        }
 void uploader_UploadProgress(Uploader.UploadInfo uploadInfo, double progress)
 {
     uploadProgress.SetProgress((float)progress);
 }
 void uploader_UploadStarted(Uploader.UploadInfo uploadInfo)
 {
     uploadProgress.RemoveLastLabel();
     uploadProgress.SetStatus(uploadInfo.filename);
     uploadProgress.SetProgress(0);
     uploadProgress.SetBackColor(Color.Yellow);
     uploadProgress.DoShow();
 }
        void uploader_UploadFinished(Uploader.UploadInfo uploadInfo, bool success, string error_or_link)
        {
            uploadProgress.SetProgress(1);

            if (success)
            {
                Main.mainFrm.Invoke(new MethodInvoker(delegate()
                {
                    Clipboard.SetText(error_or_link);
                }));

                uploadProgress.SetBackColor(Color.Green);
            }
            else
            {
                MessageBox.Show(error_or_link, "foxScreen", MessageBoxButtons.OK, MessageBoxIcon.Error);

                uploadProgress.SetBackColor(Color.Red);
            }

            uploadProgress.DoHide();
        }