Esempio n. 1
0
pascal OSStatus MoreAESendEventReturnData(const AEIdleUPP pIdleProcUPP, const AppleEvent *pAppleEvent, DescType pDesiredType, DescType *pActualType, void *pDataPtr, Size pMaximumSize, Size *pActualSize) {
	OSStatus anError = noErr;

	// No idle function is an error, since we are expected to return a value
	if (pIdleProcUPP == NULL)
		anError = paramErr;
	else {
		AppleEvent theReply = {
			typeNull, NULL
		};
		AESendMode sendMode = kAEWaitReply;

		anError = AESend(pAppleEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, pIdleProcUPP, NULL);
		// [ Don't dispose of the event, it's not ours ]
		if (noErr == anError) {
			anError = MoreAEGetHandlerError(&theReply);

			if (!anError && theReply.descriptorType != typeNull) {
				anError = AEGetParamPtr(&theReply, keyDirectObject, pDesiredType,
				                        pActualType, pDataPtr, pMaximumSize, pActualSize);
			}
			MoreAEDisposeDesc(&theReply);
		}
	}
	return anError;
}
Esempio n. 2
0
pascal	OSErr	MoreAESendEventNoReturnValue (const AEIdleUPP pIdleProcUPP, const AppleEvent* pAppleEvent )
{
	OSErr		anErr = noErr;
	AppleEvent	theReply = {typeNull,nil};
	AESendMode	sendMode;

	if (nil == pIdleProcUPP)
		sendMode = kAENoReply;
	else
		sendMode = kAEWaitReply;

	anErr = AESend( pAppleEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, pIdleProcUPP, nil );
	if ((noErr == anErr) && (kAEWaitReply == sendMode))
		anErr = MoreAEGetHandlerError(&theReply);

	MoreAEDisposeDesc( &theReply );
	
	return anErr;
}