-#define module_Need(a,b,c,d) __module_Need(VLC_OBJECT(a),b,c,d)
-VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, const char *, const char *, bool ) );
-#define module_Unneed(a,b) __module_Unneed(VLC_OBJECT(a),b)
-VLC_EXPORT( void, __module_Unneed, ( vlc_object_t *, module_t * ) );
-#define module_Exists(a,b) __module_Exists(VLC_OBJECT(a),b)
-VLC_EXPORT( bool, __module_Exists, ( vlc_object_t *, const char * ) );
+VLC_API module_t * vlc_module_load( vlc_object_t *obj, const char *cap, const char *name, bool strict, vlc_activate_t probe, ... ) VLC_USED;
+#define vlc_module_load(o,c,n,s,...) \
+ vlc_module_load(VLC_OBJECT(o),c,n,s,__VA_ARGS__)
+VLC_API void vlc_module_unload( module_t *, vlc_deactivate_t deinit, ... );