//------------------------------------------------------------------------------- // // PIUActionsPlayByName // // Play an action given the name of the set and the name of the action. // Returns any errors immediately. //------------------------------------------------------------------------------- SPErr PIUActionsPlayByName(char* setName, char* actionName) { SPErr error = kSPNoError; PIActionDescriptor result = NULL; PIActionDescriptor descriptor = NULL; PIActionReference reference = NULL; error = sPSActionReference->Make(&reference); if (error) goto returnError; error = sPSActionReference->PutName(reference, classAction, actionName); if (error) goto returnError; error = sPSActionReference->PutName(reference, classActionSet, setName); if (error) goto returnError; error = sPSActionDescriptor->Make(&descriptor); if (error) goto returnError; error = sPSActionDescriptor->PutReference(descriptor, keyNull, reference); if (error) goto returnError; error = sPSActionControl->Play(&result, eventPlay, descriptor, plugInDialogSilent); if (error) goto returnError; error = PIUCheckPlayResult(result); if (error) goto returnError; returnError: if (reference != NULL) sPSActionReference->Free(reference); if (descriptor != NULL) sPSActionDescriptor->Free(descriptor); if (result != NULL) sPSActionDescriptor->Free(result); return error; }
//------------------------------------------------------------------------------- // // PIUSelectByIndex // // Given a class and an index. This routine will force focus on that Object. // //------------------------------------------------------------------------------- SPErr PIUSelectByIndex(DescriptorClassID desiredClass, uint32 value) { SPErr error = kSPNoError; PIActionReference reference = NULL; PIActionDescriptor descriptor = NULL; PIActionDescriptor result = NULL; error = sPSActionReference->Make(&reference); if (error) goto returnError; error = sPSActionReference->PutIndex(reference, desiredClass, value); if (error) goto returnError; error = sPSActionDescriptor->Make(&descriptor); if (error) goto returnError; error = sPSActionDescriptor->PutReference(descriptor, keyNull, reference); if (error) goto returnError; error = sPSActionControl->Play(&result, eventSelect, descriptor, plugInDialogSilent); if (error) goto returnError; error = PIUCheckPlayResult(result); returnError: if (reference != NULL) sPSActionReference->Free(reference); if (descriptor != NULL) sPSActionDescriptor->Free(descriptor); if (result != NULL) sPSActionDescriptor->Free(result); return error; }