<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, **only found a [closed issue](https://github.com/electron/electron/issues/21159) that doesn't works**.

### Issue Details

* **Electron Version:**
  * 7.1.9
* **Operating System:**
  * Windows 10, 1809

### Expected Behavior
The `checkboxChecked` property of dialog boxes should works in the promise.

### Actual Behavior
It doens't work when the `checkboxChecked` is set to be false, it works when `checkboxChecked` is set to be true.
This problem is said to be solved, but it hasn't been...

### To Reproduce
@jrdiard gave a example in the old and closed 21159 issue,
with the fiddle code in main.js:
```
const { app, BrowserWindow, dialog } = require('electron')

let mainWindow = null

app.on('ready', () => {
  mainWindow = new BrowserWindow({ height: 600, width: 600 })

  var ret = dialog.showMessageBox(mainWindow, {
    type: "question", buttons: ["Yes", "No"],
    message: "Do you want to run the demonstration scenes?",
    cancelId: 1,
    checkboxLabel: "Save images for each scene", checkboxChecked: true, noLink: false
  });
  ret.then((val) => {
    console.log("Run Demo: " + val.response + " Save scenes: " + val.checkboxChecked);
  });

})
```

shell/browser/ui/message_box_win.cc
const base::string16& message,
                                 const base::string16& detail,
                                 const base::string16& checkbox_label,
                                 bool checkbox_checked,
                                 const gfx::ImageSkia& icon) {
  TASKDIALOG_FLAGS flags =
      TDF_SIZE_TO_CONTENT |           
      TDF_ALLOW_DIALOG_CANCELLATION;  
  TASKDIALOGCONFIG config = {0};
  config.cbSize = sizeof(config);
  config.hInstance = GetModuleHandle(NULL);
  config.dwFlags = flags;
  if (parent) {
    config.hwndParent = static_cast<electron::NativeWindowViews*>(parent)
                            ->GetAcceleratedWidget();
  }
  if (default_id > 0)
    config.nDefaultButton = kIDStart + default_id;
  
  
  base::string16 app_name = base::UTF8ToUTF16(Browser::Get()->GetName());
  if (title.empty())
    config.pszWindowTitle = app_name.c_str();
  else
    config.pszWindowTitle = title.c_str();
  base::win::ScopedHICON hicon;
  if (!icon.isNull()) {
    hicon = IconUtil::CreateHICONFromSkBitmap(*icon.bitmap());
    config.dwFlags |= TDF_USE_HICON_MAIN;
    config.hMainIcon = hicon.get();