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(); }
public static void Run(DeferredInvokeHandler initialLoadComplete) { Application.Run(initialLoadComplete); if (TaskbarPlayer.Instance.ToolbarVisible) { return; } Registry.SetValue(ZuneUI.Shell.SettingsRegistryPath, "WindowPosition", Application.Window.GetSavedPosition(true)); }
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); } }
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(); }
public static void Show(string title, DeferredInvokeHandler callback) => Show(title, callback, false);