Replaced deprecated win32-compatibility function with undeprecated one.
authorРуслан Ижбулатов <lrn1986@gmail.com>
Tue, 16 Jun 2009 20:29:40 +0000 (00:29 +0400)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Wed, 17 Jun 2009 08:52:33 +0000 (09:52 +0100)
Fixes #560442.

gst/gst.c

index 942bc67..5dfe64c 100644 (file)
--- a/gst/gst.c
+++ b/gst/gst.c
 static gboolean gst_initialized = FALSE;
 static gboolean gst_deinitialized = FALSE;
 
+#ifdef G_OS_WIN32
+static HMODULE gst_dll_handle = NULL;
+#endif
+
 #ifndef GST_DISABLE_REGISTRY
 static GList *plugin_paths = NULL;      /* for delayed processing in post_init */
 #endif
@@ -284,6 +288,16 @@ parse_debug_list (const gchar * list)
 }
 #endif
 
+#ifdef G_OS_WIN32
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+  if (fdwReason == DLL_PROCESS_ATTACH)
+    gst_dll_handle = (HMODULE) hinstDLL;
+  return TRUE;
+}
+
+#endif
+
 /**
  * gst_init_get_option_group:
  *
@@ -728,8 +742,8 @@ scan_and_update_registry (GstRegistry * default_registry,
       char *base_dir;
       char *dir;
 
-      base_dir = g_win32_get_package_installation_directory (NULL,
-          "libgstreamer-0.10-0.dll");
+      base_dir = g_win32_get_package_installation_directory_of_module (
+         gst_dll_handle);
 
       dir = g_build_filename (base_dir, "lib", "gstreamer-0.10", NULL);
       GST_DEBUG ("scanning DLL dir %s", dir);