private SafeNativeMethods.FOS CalculateNativeDialogOptionFlags()
        {
            // We start with only a few flags set by default,
            // then go from there based on the current state
            // of the managed dialog's property values.
            SafeNativeMethods.FOS flags =
                SafeNativeMethods.FOS.FOS_NOTESTFILECREATE
                | SafeNativeMethods.FOS.FOS_FORCEFILESYSTEM;

            // Call to derived (concrete) dialog to
            // set dialog-specific flags.
            flags = GetDerivedOptionFlags(flags);

#if WIN7
            if (!forceFileSystem)
            {
                flags &= ~SafeNativeMethods.FOS.FOS_FORCEFILESYSTEM;
            }
#endif

            // Apply other optional flags.
            if (checkFileExists)
            {
                flags |= SafeNativeMethods.FOS.FOS_FILEMUSTEXIST;
            }
            if (checkPathExists)
            {
                flags |= SafeNativeMethods.FOS.FOS_PATHMUSTEXIST;
            }
            if (!checkValidNames)
            {
                flags |= SafeNativeMethods.FOS.FOS_NOVALIDATE;
            }
            if (!CheckReadOnly)
            {
                flags |= SafeNativeMethods.FOS.FOS_NOREADONLYRETURN;
            }
            if (restoreDirectory)
            {
                flags |= SafeNativeMethods.FOS.FOS_NOCHANGEDIR;
            }
            if (!showPlacesList)
            {
                flags |= SafeNativeMethods.FOS.FOS_HIDEPINNEDPLACES;
            }
            if (!addToMruList)
            {
                flags |= SafeNativeMethods.FOS.FOS_DONTADDTORECENT;
            }
            if (showHiddenItems)
            {
                flags |= SafeNativeMethods.FOS.FOS_FORCESHOWHIDDEN;
            }
            if (!dereferenceLinks)
            {
                flags |= SafeNativeMethods.FOS.FOS_NODEREFERENCELINKS;
            }
            return(flags);
        }
Example #2
0
        internal override SafeNativeMethods.FOS GetDerivedOptionFlags(SafeNativeMethods.FOS flags)
        {
            if (multiselect)
            {
                flags |= SafeNativeMethods.FOS.FOS_ALLOWMULTISELECT;
            }
            if (foldersOnly)
            {
                flags |= SafeNativeMethods.FOS.FOS_PICKFOLDERS;
            }

            return(flags);
        }
Example #3
0
 internal override SafeNativeMethods.FOS GetDerivedOptionFlags(SafeNativeMethods.FOS flags)
 {
     if (overwritePrompt)
     {
         flags |= SafeNativeMethods.FOS.FOS_OVERWRITEPROMPT;
     }
     if (createPrompt)
     {
         flags |= SafeNativeMethods.FOS.FOS_CREATEPROMPT;
     }
     if (!enableMiniMode)
     {
         flags |= SafeNativeMethods.FOS.FOS_DEFAULTNOMINIMODE;
     }
     if (strictExtensions)
     {
         flags |= SafeNativeMethods.FOS.FOS_STRICTFILETYPES;
     }
     return(flags);
 }
Example #4
0
 internal abstract SafeNativeMethods.FOS GetDerivedOptionFlags(SafeNativeMethods.FOS flags);
Example #5
0
        internal static bool IsOptionSet(IFileDialog dialog, SafeNativeMethods.FOS flag)
        {
            SafeNativeMethods.FOS currentFlags = GetCurrentOptionFlags(dialog);

            return((currentFlags & flag) == flag);
        }