I am writing a Project Builder application with a CFRunLoop() called
from inside a "C" function called by the application controller. When
in the run loop, mouse events are not being serviced. Is there
something I need to do to allow mouse events while in a run loop or in
a routine called from outside the controller?

The routine is as shown below:

druBurn(DRBurnRef burn, CFTypeRef layout)
{
DRNotificationCenterRef notificationCenter = NULL;
CFRunLoopSourceRef source = NULL;
druBurnStatus status = {0, NULL, NULL, NULL, {0}, 0};

/* Create a progress bar. */
status.progressBar = druProgressBarCreate();

/* Sign up for notifications from the burn object. */
notificationCenter = DRNotificationCenterCreate();
source = DRNotificationCenterCreateRunLoopSource(notificati onCenter);
//tried this too >> CFRunLoopAddSource(CFRunLoopGetCurrent(),
source, kCFRunLoopDefaultMode);
CFRunLoopAddSource(CFRunLoopGetCurrent(), source,
kCFRunLoopCommonModes);

DRNotificationCenterAddObserver(notificationCenter ,&status,druProgressCa
llback, kDRBurnStatusChangedNotification, burn);

/* Okay, kick off the burn. */
DRBurnWriteLayout(burn, layout);

/* Enter a runloop until the burn finishes. */
CFRunLoopRun(); // mouse events not getting thru here!!

/* Clean up memory and exit. */
CFRunLoopSourceInvalidate(source);
if (notificationCenter != NULL) CFRelease(notificationCenter);
if (source != NULL) CFRelease(source);
if (status.progressBar != NULL)
druProgressBarDispose(status.progressBar,status.su ccess);
if (status.success)
printf("NetBurn Burn completed successfully.\n");
else
druPrintFailureMessage("Burn", status.completionStatus);
if (status.completionStatus != NULL)
CFRelease(status.completionStatus);

return status.success;
}

Any help would be appreciated.

Bill Patterson