Hey guys. Just a few quick questions about application functionality. (Please move to appropriate board if necessary.) My first question is about the windows command prompt. I found myself wondering why console programs that are run from within the command prompt do not open in a new console window. I just performed a quick test of running a console application from within another console (via ShellExecuteEx()) and, sure enough, a new window was opened for the child application. I was just wondering how cmd.exe achieves the 'same-window' effect.

My main question though, is about APIs. I think that's the correct term for what I'm refering to. If not, I apologise. A lot of professional programs (Firefox and IDA Pro spring to mind,) have extension capabilities. By this I mean that users can effectively write their own add-ons and they are incorporated into the main program. After much googling of APIs on the internet, I am still pretty stumped. I'm not after any code or anything, and I am certainly willing to do my own research, but I don't really know where to start. I was hoping that perhaps you guys could give me some key words to lookup to help me better understand the concept of extendable applications.

Thanks for your time