Reputation: 1055
I have compiled some test APO. Yet, I am not sure if it will even work.
When you compile an APO, you'll end up with a .DLL
which usually has these methods exposed.
EXPORTS
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
DllGetClassObject
often have a ClassFactory
and the ClassFactory:CreateInstance
method, would return that APO. Though, I am not sure what invokes ClassFactory:CreateInstance
in the first place.
DllRegisterServer
and DllUnregisterServer
are used with regsvr32.exe
But I don't understand the purpose of all this.
e.g. if you're familiar with an application called Soundpad, apparently it uses an APO that they call "UniteFX" to do exactly all of this. It's an application that can play sound files through any Microphone, aslong DRM is disabled. But not by default. I think the APO is attaching onto the chain of these devices, somehow through the WASAPI.
How does an APO run at the end? How will I be able to intercept Microphone Drivers to alter their input and output? How can I tell an APO to connect and bridge an actual running Audio Device on the Windows System?
All that I understood is that :APOProcess
is the main thing that will do the actual audio processing, as of https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/implementing-audio-processing-objects.
I don't get how regsvr32
will do all the magic.
Upvotes: 1
Views: 36