BOOL CSecondPage::OnSetActive() { CPrinterSetupWizardSheet * psheet; Printer * printer; OSStatus err = kNoErr; psheet = reinterpret_cast<CPrinterSetupWizardSheet*>(GetParent()); require_action( psheet, exit, err = kUnknownErr ); if ( ( printer = psheet->GetSelectedPrinter() ) != NULL ) { psheet->SetSelectedPrinter( NULL ); delete printer; } // // initialize the browse list...this will remove everything currently // in it, and add the no rendezvous printers item // InitBrowseList(); // // start browing // err = StartBrowse(); require_noerr( err, exit ); exit: if ( err != kNoErr ) { if ( err == kDNSServiceErr_Firewall ) { CString text, caption; text.LoadString( IDS_FIREWALL ); caption.LoadString( IDS_FIREWALL_CAPTION ); MessageBox(text, caption, MB_OK|MB_ICONEXCLAMATION); } else { CPrinterSetupWizardSheet::WizardException exc; exc.text.LoadString( IDS_NO_MDNSRESPONDER_SERVICE_TEXT ); exc.caption.LoadString( IDS_ERROR_CAPTION ); throw(exc); } } return CPropertyPage::OnSetActive(); }
// ------------------------------------------------------ // OnInitDialog // // Initializes this Dialog object. // BOOL CPrinterSetupWizardSheet::OnInitDialog() { OSStatus err; CPropertySheet::OnInitDialog(); err = StartBrowse(); require_noerr( err, exit ); exit: if ( err ) { StopBrowse(); if ( err == kDNSServiceErr_Firewall ) { CString text, caption; text.LoadString( IDS_FIREWALL ); caption.LoadString( IDS_FIREWALL_CAPTION ); MessageBox(text, caption, MB_OK|MB_ICONEXCLAMATION); } else { CPrinterSetupWizardSheet::WizardException exc; exc.text.LoadString( IDS_NO_MDNSRESPONDER_SERVICE_TEXT ); exc.caption.LoadString( IDS_ERROR_CAPTION ); throw(exc); } } return TRUE; }