registrieren eines DirectShow-Filters
-
Hi!
Bis jetzt hab ich einfach immer das Programm regsvr32.exe mit entsprechenden Parametern aufgerufen.
Geht das irgendwie eleganter? Wie z.B. mir ner Funktion wie register_a_DirectShow_Filter(char* name_of_the_Filter); oder so?
Gibt's da was in der Richtung?
Wenn nicht ist auch nicht so schlimm...MFG
Eddi
-
a_user schrieb:
Gibt's da was in der Richtung?
Nein, gibt es nicht. Eine solche Funktion kannst Du Dir aber leicht selbst bauen. Allerdings geht das nicht mit dem Namen des Filters; Du benötigst schon den Namen des Moduls.
Ungefähr so:
typedef HRESULT (WINAPI * DLLREGISTERSERVER)(); void register_a_DirectShow_Filter(char* name_of_the_Filter) { HRESULT hrInit = CoInitialize(NULL); HINSTANCE hDll = LoadLibrary(name_of_the_Filter); if(hDll) { DLLREGISTERSERVER pfn; pfn = (DLLREGISTERSERVER)GetProcAddress(hDll, "DllRegisterServer"); pfn(); FreeLibrary(hDll); } if(SUCCEEDED(hrInit)) CoUninitialize(); return; }
So sehr viel mehr macht regsvr32 auch nicht. Allerdings werden dort wohl die Rückgabewerte der Funktionsaufrufe geprüft werden. Das habe ich mir hier einfach mal gespart.
-
Vielen Dank!