CF_EXPORT CFArrayRef CFPlugInFindFactoriesForPlugInType(CFUUIDRef typeID) { CFArrayRef array = _CFPFactoryFindForType(typeID); CFMutableArrayRef result = NULL; if (array) { SInt32 i, c = CFArrayGetCount(array); result = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); for (i = 0; i < c; i++) CFArrayAppendValue(result, _CFPFactoryGetFactoryID((_CFPFactory *)CFArrayGetValueAtIndex(array, i))); } return result; }
CF_EXPORT CFArrayRef CFPlugInFindFactoriesForPlugInTypeInPlugIn(CFUUIDRef typeID, CFPlugInRef plugIn) { CFArrayRef array = _CFPFactoryFindForType(typeID); CFMutableArrayRef result = NULL; if (array) { SInt32 i, c = CFArrayGetCount(array); _CFPFactory *factory; // Use default allocator result = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks); for (i=0; i<c; i++) { factory = (_CFPFactory *)CFArrayGetValueAtIndex(array, i); if (_CFPFactoryGetPlugIn(factory) == plugIn) { CFArrayAppendValue(result, _CFPFactoryGetFactoryID(factory)); } } } return result; }
CF_EXPORT CFStringRef CFPlugInInstanceGetFactoryName(CFPlugInInstanceRef instance) { return (CFStringRef)_CFPFactoryGetFactoryID(instance->factory); }