After finding what functions I need for my application, i'm not really understanding how the functions work as many of them are simply returns from a DllCall command, such as this one specifically:
Code: Select all
VA_IAudioMeterInformation_GetPeakValue(this, ByRef Peak) {
return DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "float*", Peak)
as well as NumGet: https://www.autohotkey.com/docs/commands/NumGet.htm
I became somewhat confused on how exactly this expression after DllCall is telling the PC where to go for whatever address it is looking for. To me it seems like the address being called is a location inside the System32 folder of the PC, I guess. Then with that address some file or function is being ran that is giving the value that this function requires and gets the PeakValue of the audio device that was obtained previously for another "GetDevice" function.
After reading how NumGet is supposed to work though, i'm not understanding how it is being used as a parameter to go to this specific address and how it is even working to get said number.
Basically i'm saying I don't really understand how DllCall works and the documentation is not really giving me an answer that I can understand with my little experience communicating directly with files from the PCs OS files. Also I don't get how NumGet is being used in the expression and if this is something that is used often when making functions and libraries such as this. Any additional info would be appreciated, even if it's just a source that I can read about how this works in a more layman's terms and if I might be having to use DllCalls and such once I get deeper into programming and scripting beyond a beginner level, thanks.