SMadsen, the inactive window is behind the controlling application. The controlling application has the HWND_TOPMOST bit set and as such will always remain on top (similar to WinZip when you select the "Always on Top" checkbox).
The topmost window can be inactive, and regardless of which window is the active one, it will remain on top but greyed out.
What I needed was for the topmost application to automatically make the AutoCAD window the active window, since it was done outside of AutoCAD, the process was handled through API functions.
I have already implemented the function calls in my program and it works wonderfully.
Daron, API programming allows you to use ANY function defined as portable within ANY dll,exe,odl,arx,tlb, and any other format of executable binary file you can imagine.
Think of the C and C++ functions that you are aware of. All you do is declare that function with the appropriate arguments and types within VBA and then you can simply call that C or C++ function.
For example, you want to change the title of AutoCAD to reflect your addon package defined in VBA. In plain VBA the AcadApplication.Caption is 'read only', so you can't apply a new caption with AcadApplication.Caption = "New Caption" BUT you can call the SetWindowText C++ command by declaring it and set the caption there. This is powerful stuff that can get you into trouble if you are not sure what you are doing.
Check out
this post to see what I mean.