The typelib is only created if something requests it, so it may be NULL at PROCESS_DETACH.
WMPControls_play doesn't release and NULL out the filter_graph it creates on failure. So if a call to play() fails after making filter_graph but before making media_controls, calling play() again on the same instance will crash.