private static IFilter LoadFilterFromDll(string dllName, string filterPersistClass) { //Get a classFactory for our classID IClassFactory classFactory = ComHelper.GetClassFactory(dllName, filterPersistClass); if (classFactory == null) { return(null); } //And create an IFilter instance using that class factory Guid IFilterGUID = new Guid("89BCB740-6119-101A-BCB7-00DD010655AF"); Object obj; classFactory.CreateInstance(null, ref IFilterGUID, out obj); return(obj as IFilter); }
private static IFilter LoadFilterFromDll(string dllName, string filterPersistClass) { //Get a classFactory for our classID IClassFactory classFactory = ComHelper.GetClassFactory(dllName, filterPersistClass); if (classFactory == null) { return(null); } //And create an IFilter instance using that class factory // http://msdn2.microsoft.com/en-us/library/aa965717.aspx // The first identifies all filters' persistent handler, IID_IFilter, which is {89BCB740-6119-101A-BCB7-00DD010655AF}. This CLSID is constant for all filters that implement IFilter. Guid IFilterGUID = new Guid("89BCB740-6119-101A-BCB7-00DD010655AF"); Object obj; classFactory.CreateInstance(null, ref IFilterGUID, out obj); return(obj as IFilter); }
private static FilterWrapper LoadFilterFromDll(string dllName, string filterPersistClass) { //Get a classFactory for our classID ClassFactoryWrapper classFactory = ComHelper.GetClassFactory(dllName, filterPersistClass); if (classFactory == null) { return(null); } object obj; //And create an IFilter instance using that class factory Guid filterGuid = new Guid("89BCB740-6119-101A-BCB7-00DD010655AF"); classFactory.ClassFactory.CreateInstance(null, ref filterGuid, out obj); if (obj as IFilter == null) { using (classFactory) return(null); } return(new FilterWrapper(classFactory, obj as IFilter)); }
public void Dispose() { ComHelper.FreeLibrary(m_Handle); }