-#define module_Find(a,b) __module_Find(VLC_OBJECT(a),b)
-VLC_EXPORT( module_t *, __module_Find, ( vlc_object_t *, const char * ) );
-VLC_EXPORT( void, module_Put, ( module_t *module ) );
+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, ... );
+
+VLC_API module_t * module_need( vlc_object_t *, const char *, const char *, bool ) VLC_USED;
+#define module_need(a,b,c,d) module_need(VLC_OBJECT(a),b,c,d)
+VLC_API void module_unneed( vlc_object_t *, module_t * );
+#define module_unneed(a,b) module_unneed(VLC_OBJECT(a),b)
+VLC_API bool module_exists(const char *) VLC_USED;
+VLC_API module_t * module_find(const char *) VLC_USED;