The application-defined function DirectXSetupCallbackFunction can override some of the default behaviors of the DirectXSetup function through its return value. As an example, the default behavior for DirectXSetup is to not install a component if the UpgradeType member of the pInfo parameter of the function DirectXSetupCallbackFunction is set to DSETUP_CB_UPGRADE_SAFE | DSETUP_CB_UPGRADE_HAS_WARNINGS (where the | symbol indicates a bitwise OR operation). In this case, the MsgType parameter of the callback function is set to MB_YESNO | MB_DEFBUTTON2. If the callback function accepts the default, it will return IDNO. If it wants to override the default, the callback function should return IDYES. If it does override the default, the user will be notified by the DirectXSetup function.