Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Default Components



Hi,

I've written a Movie Export Component. Is there a way to tell QuickTime
NOT to use it as the Default Component returned by
OpenDefaultComponent?

You can influence the search order the Component Manager uses during an
OpenDefaultComponent call by using SetDefaultComponent. See if that does the
trick for you.


http://developer.apple.com/documentation/QuickTime/APIREF/ setdefaultcomponent.htm

Note that SetDefaultComponent changes the search order for all apps.
Does it for all apps? Then I didn't get something.

To explain a little more of the problem:
My Movie Export Component exports QuickTime Movies as does the Apple QuickTime Movie Exporter.
The reason I wrote an own Movie Exporter for QuickTime Movies was because I didn't find a way to handle B-Frames in a Codec Component.
So I extended the Interface of my Codec with some more routines which obviously the Apple Movie Exporter doesn't know
=> I wrote a Movie Exporter which knew about the extended interface of my Image Codec.


Now back to real problem. My Movie Exporter seems to be before the One from Apple in search order. Now the Export/Share Command of iMovie does no more work because iMovie seems to call OpenADefaultComponent which returns my one instead of the one from Apple.

If I did understand the answer above correctly, executing a program as follows would change the search order of the Component Manager.
i.e. iMovie should no more open my component? But this is not the case. Did I something wrong?


#include <CoreServices/CoreServices.h>
#include <QuickTime/QuickTime.h>

int main(int argc, char *argv [])
{
        OSStatus status;
        ComponentDescription desc;
        Component appleMovieExporter;

        // Suche die default komponente von Apple
        desc.componentType = MovieExportType;
        desc.componentSubType = kQTFileTypeMovie;
        desc.componentManufacturer = 'appl';
        desc.componentFlags = 0;
        desc.componentFlagsMask = 0;

appleMovieExporter = FindNextComponent(NULL, &desc);
if(appleMovieExporter) {
printf("Found Apple Movie Exporter\n");
status = SetDefaultComponent(appleMovieExporter, defaultComponentAnyManufacturer | defaultComponentAnyFlags);
if(status != noErr)
fprintf(stderr, "Error setting default Component\n");
}


        return 0;
}


And assumed it would work, where should the code be executed: in the component register function?


--
Thanks in Advance
Christoph

_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/email@hidden

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.