 dialog.showMessageBoxSync(getCurrentWindow(), {
        type: "question",
        title: "test title",
        message: "test message",
        buttons: ["OK", "Cancel"],
        defaultId: 0,
        cancelId: 1,
        noLink: true
    })
shell/browser/ui/message_box_win.cc
std::map<int, int> id_map;
  std::vector<TASKDIALOG_BUTTON> dialog_buttons;
  if (options & MESSAGE_BOX_NO_LINK) {
    for (size_t i = 0; i < buttons.size(); ++i)
      dialog_buttons.push_back(
          {static_cast<int>(i + kIDStart), buttons[i].c_str()});
  } else {
    MapToCommonID(buttons, &id_map, &config.dwCommonButtons, &dialog_buttons);
  }
  if (dialog_buttons.size() > 0) {
    config.pButtons = &dialog_buttons.front();
    config.cButtons = dialog_buttons.size();
    if (!(options & MESSAGE_BOX_NO_LINK))
      config.dwFlags |= TDF_USE_COMMAND_LINKS;  
  }
  int button_id;
  int id = 0;
  BOOL verificationFlagChecked = FALSE;
  TaskDialogIndirect(&config, &id, nullptr, &verificationFlagChecked);
  if (id_map.find(id) != id_map.end())  
    button_id = id_map[id];
  else if (id >= kIDStart)  
    button_id = id - kIDStart;
  else
    button_id = cancel_id;
  return std::make_pair(button_id,
                        checkbox_checked ? verificationFlagChecked : false);
}
DialogResult ShowTaskDialogUTF8(const MessageBoxSettings& settings) {