public HResult OnFolderChanging(IFileDialog pfd, IShellItem psiFolder)
            {
                CommonFileDialogFolderChangeEventArgs args = new CommonFileDialogFolderChangeEventArgs(
                    CommonFileDialog.GetFileNameFromShellItem(psiFolder));

                if (!firstFolderChanged) { parent.OnFolderChanging(args); }

                return (args.Cancel ? HResult.False : HResult.Ok);
            }
 /// <summary>
 /// Raises the <see cref="FolderChanging"/> to stop navigation to a particular location.
 /// </summary>
 /// <param name="e">Cancelable event arguments.</param>
 protected virtual void OnFolderChanging(CommonFileDialogFolderChangeEventArgs e)
 {
     EventHandler<CommonFileDialogFolderChangeEventArgs> handler = FolderChanging;
     if (handler != null)
     {
         handler(this, e);
     }
 }