Unfortunately, it seems that this solution was horrible to implement in retrospect.
How so? Seems to me that there should only be two or three steps to it:
1. Create the struct type like Wyz outlines, wrapping all the API methods you need.
2. If you have any AudioChannel* globalvars, change them to regular variables exported by a script and imported in the header.
3. Change every AudioChannel* declaration to a SafeAudioChannel declaration.
The only possible problem I can see is if you've been passing AudioChannel* variables as arguments to functions, or had them as members of other structs.