-#ifndef __PLUGIN__
-void module_InitBank ( void );
-void module_LoadMain ( void );
-void module_LoadBuiltins ( void );
-void module_LoadPlugins ( void );
-void module_EndBank ( void );
-void module_ResetBank ( void );
-void module_ManageBank ( void );
-module_t * module_Need ( int, char *, void * );
-void module_Unneed ( module_t * );
+#define module_InitBank(a) __module_InitBank(CAST_TO_VLC_OBJECT(a))
+void __module_InitBank ( vlc_object_t * );
+#define module_LoadMain(a) __module_LoadMain(CAST_TO_VLC_OBJECT(a))
+void __module_LoadMain ( vlc_object_t * );
+#define module_LoadBuiltins(a) __module_LoadBuiltins(CAST_TO_VLC_OBJECT(a))
+void __module_LoadBuiltins ( vlc_object_t * );
+#define module_LoadPlugins(a) __module_LoadPlugins(CAST_TO_VLC_OBJECT(a))
+void __module_LoadPlugins ( vlc_object_t * );
+#define module_EndBank(a) __module_EndBank(CAST_TO_VLC_OBJECT(a))
+void __module_EndBank ( vlc_object_t * );
+#define module_ResetBank(a) __module_ResetBank(CAST_TO_VLC_OBJECT(a))
+void __module_ResetBank ( vlc_object_t * );
+#define module_ManageBank(a) __module_ManageBank(CAST_TO_VLC_OBJECT(a))
+void __module_ManageBank ( vlc_object_t * );
+
+#define module_Need(a,b,c,d) __module_Need(CAST_TO_VLC_OBJECT(a),b,c,d)
+VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, int, char *, void * ) );
+VLC_EXPORT( void, module_Unneed, ( module_t * ) );