CF_EXPORT void CFPlugInAddInstanceForFactory(CFUUIDRef factoryID) { _CFPFactory *factory = _CFPFactoryFind(factoryID, true); if (!factory) { /* MF:!!! Error. Could not find factory. */ } else { _CFPFactoryAddInstance(factory); } }
CF_EXPORT CFPlugInInstanceRef CFPlugInInstanceCreateWithInstanceDataSize(CFAllocatorRef allocator, CFIndex instanceDataSize, CFPlugInInstanceDeallocateInstanceDataFunction deallocateInstanceFunction, CFStringRef factoryName, CFPlugInInstanceGetInterfaceFunction getInterfaceFunction) { CFPlugInInstanceRef instance; UInt32 size; size = sizeof(struct __CFPlugInInstance) + instanceDataSize - sizeof(CFRuntimeBase); instance = (CFPlugInInstanceRef)_CFRuntimeCreateInstance(allocator, __kCFPlugInInstanceTypeID, size, NULL); if (!instance) return NULL; instance->factory = _CFPFactoryFind((CFUUIDRef)factoryName, true); if (instance->factory) _CFPFactoryAddInstance(instance->factory); instance->getInterfaceFunction = getInterfaceFunction; instance->deallocateInstanceDataFunction = deallocateInstanceFunction; return instance; }