They are both API's (Application Program Interfaces). They are the stubs that a developer uses to create an interface with the operating system when the application is run to do things like bring up windows, read files, etc.
The win16 API was written way back when it seemed natural to use 16-bit integers to do a lot of things. Later on, as computers became bigger, the 16-bit limitation seemed restrictive, and so win32 was created. (The old notepad's limitation of characters was a result of win16 thinking.)
Most MS operating systems will run applications written with either. XP, it is claimed, will not run applications written with win16. I am not sure about Windows 2000.
I don't know of any way to tell, easily and automatically from a finished program whether it was written with win16 or win32, except to say that applications written in the past few years are probably win32, and very old applications are definitiely win16. The developer, of course, knows the difference because they are different libraries and header files.
If you're asking for technical help, please be sure to include all your system info, including operating system, model number, and any other specifics related to the problem. Also please exercise your best judgment when posting in the forums--revealing personal information such as your e-mail address, telephone number, and address is not recommended.
what is win32 & win16