コード例 #1
0
        public static void Show(string title, DeferredInvokeHandler callback, bool validate)
        {
            IntPtr winHandle = Application.Window.Handle;
            Thread thread    = new Thread(args =>
            {
                BROWSEINFO bi     = new BROWSEINFO();
                bi.hwndOwner      = winHandle;
                bi.pidlRoot       = IntPtr.Zero;
                bi.pszDisplayName = new string(' ', 261);
                if (!string.IsNullOrEmpty(title))
                {
                    bi.pszTitle = title;
                }
                bi.ulFlags = 112U;
                bi.lpfn    = new BFFCALLBACK(Validate);
                bi.lParam  = validate ? ValidateWritable : NoValidation;
                bi.iImage  = 0;
                IntPtr num = SHBrowseForFolder(ref bi);
                string str = null;
                if (num != IntPtr.Zero)
                {
                    StringBuilder Path = new StringBuilder(261);
                    if (SHGetPathFromIDList(num, Path) != 0)
                    {
                        str = Path.ToString();
                    }
                }
                Marshal.FreeCoTaskMem(num);
                Application.DeferredInvoke(callback, str);
            });

            thread.TrySetApartmentState(ApartmentState.STA);
            thread.Start();
        }
コード例 #2
0
ファイル: StandAlone.cs プロジェクト: ahmed605/ZuneShell.dll
 public static void Run(DeferredInvokeHandler initialLoadComplete)
 {
     Application.Run(initialLoadComplete);
     if (TaskbarPlayer.Instance.ToolbarVisible)
     {
         return;
     }
     Registry.SetValue(ZuneUI.Shell.SettingsRegistryPath, "WindowPosition", Application.Window.GetSavedPosition(true));
 }
コード例 #3
0
 public void Initialize(DeferredInvokeHandler onCompleteHandler)
 {
     if (this._complete)
     {
         Application.DeferredInvoke(onCompleteHandler, DeferredInvokePriority.Low);
     }
     else
     {
         int dueTime = 30000;
         this._onCompleteHandler = onCompleteHandler;
         this._failsafeTimer     = new System.Threading.Timer(new TimerCallback(this.FailsafeCallback), null, dueTime, -1);
     }
 }
コード例 #4
0
        public static void Show(
            string text,
            string caption,
            Win32MessageBoxType type,
            DeferredInvokeHandler callback)
        {
            IntPtr winHandle = Application.Window.Handle;

            new Thread(args =>
            {
                int num = MessageBox(winHandle, text, caption, type);
                if (callback == null)
                {
                    return;
                }
                Application.DeferredInvoke(callback, num);
            }).Start();
        }
コード例 #5
0
 public static void Show(string title, DeferredInvokeHandler callback) => Show(title, callback, false);