PASCAL_RTN ComponentResult ADD_BASENAME(CanDo)( COMPONENT_GLOBALS(), short ftnNumber ) { ComponentResult result; #if C_DISPATCH_WITH_GLOBALS ProcInfoType ignore; result = (ComponentResult) COMPONENTSELECTORLOOKUP(ftnNumber, &ignore); #else result = (ComponentResult) COMPONENTSELECTORLOOKUP(ftnNumber); #endif /* check for a ComponentError */ if ( result == (ComponentResult) kCOMPONENT_ERROR ) result = false; else if ( result == (ComponentResult) kCOMPONENT_DELEGATE ) result = false; else result = true; #ifdef GET_DELEGATE_COMPONENT /* if we're delegated, then keep looking */ if (!result) { if (GET_DELEGATE_COMPONENT()) result = CallComponentCanDo( GET_DELEGATE_COMPONENT(), ftnNumber ); } #endif #ifdef OVERRIDE_CANDO result = OVERRIDE_CANDO( storage, ftnNumber, result); #else TOUCH_UNUSED_ARG(storage); #endif return result; }
PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY(ComponentParameters *params,COMPONENT_GLOBALS()) { ComponentFunctionUPP theProc; ComponentResult result = badComponentSelector; ProcInfoType theProcInfo; #ifdef GET_OVERRIDE_COMPONENT if ((params->what != kComponentOpenSelect) && (params->what != kComponentCloseSelect)) { if (GET_OVERRIDE_COMPONENT() != NULL) { return DelegateComponentCall(params, GET_OVERRIDE_COMPONENT()); } } #endif // GET_OVERRIDE_COMPONENT theProc = COMPONENTSELECTORLOOKUP(params->what, &theProcInfo); if (theProc) { if ( (theProc != kCOMPONENT_ERROR) && (theProc != kCOMPONENT_NOERROR) ) { if (theProcInfo != 0) { result = CallComponentFunctionWithStorageProcInfo((Handle) storage, params, (ProcPtr)theProc, theProcInfo); } } else if ( theProc == kCOMPONENT_NOERROR ) { result = noErr; } } #ifdef GET_DELEGATE_COMPONENT else return DelegateComponentCall(params, GET_DELEGATE_COMPONENT()); #endif return result; }
PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY( ComponentParameters *params, COMPONENT_GLOBALS() ) { ComponentFunctionUPP theProc; ComponentResult result = badComponentSelector; theProc = COMPONENTSELECTORLOOKUP(params->what); if (theProc) { if ( (theProc != kCOMPONENT_ERROR) && (theProc != kCOMPONENT_NOERROR) ) { result = CallComponentFunctionWithStorage((Handle) storage, params, theProc); } else if ( theProc == kCOMPONENT_NOERROR ) { result = noErr; } } #ifdef GET_DELEGATE_COMPONENT else result = DelegateComponentCall(params, GET_DELEGATE_COMPONENT()); #endif return result; }