Actually, its much more than that.
For any added buttons, general watchdogging, menu control of other sorts, you use variation on applicationa and acadapp objects.
within a single drawing, and somewhat to the outside, you communicate to the workingdatabase of the app, (centered on current file) you access all and any block and hidden items within and also has methods to reach other files to grab any of the same information.
Not sure if it is general practice, but i use the implemented interface of the app to add custom buttons, placed where i like.
in non .net environments things are very different tho, such as vba that comes with autocad, you have access to the current app by default, and fairly easily just make a button that gets added like any lisp button. cui and all that.