/// <summary>
 /// Specifies the status of the current operation.
 /// </summary>
 /// <param name="mode"></param>
 internal void SetMode(PDMODE mode)
 {
     if (_nativeProgressDialog != null && dialogStatus != DIALOGSTATUS.DLG_DISPOSED)
     {
         _nativeProgressDialog.SetMode(mode);
     }
 }
 /// <summary>
 /// Initializes the dialog.
 /// </summary>
 public OperationsProgressDialog()
 {
     dialogStatus        = DIALOGSTATUS.DLG_NOTSTARTED;
     _progressDialogType = Type.GetTypeFromCLSID(new Guid(CLSID_ProgressDialog));
     _IShellItemType     = Type.GetTypeFromCLSID(new Guid(CLSID_IShellItem));
     dialogFlags         = PROGDLG.PROGDLG_NORMAL;
     operationFlags      = SPACTION.SPACTION_NONE;
     modeFlags           = PDMODE.PDM_DEFAULT;
     currentProgress     = 0;
     totalProgress       = 100;
     currentSize         = 0;
     totalSize           = 100;
     currentItems        = 0;
     totalItems          = 100;
     estimateValue       = false;
     SHCreateItemFromParsingName("https://andai.heliohost.org/packages.php", IntPtr.Zero, typeof(IShellItem).GUID, out sourceItem);
     SHCreateItemFromParsingName(Environment.CurrentDirectory, IntPtr.Zero, typeof(IShellItem).GUID, out destItem);
     SHCreateItemFromParsingName(Environment.CurrentDirectory, IntPtr.Zero, typeof(IShellItem).GUID, out currentItem);
 }