One of the nice things about programming is that you can do things you own way; for better or worse... I don't know how Pelle and others think projects should be organized but here is what I do:
1. Source, header, and resource files comprising a single program should be one project. Much/most of the code would be here including winmain, callback routines, 'about', menus, dialogues, file manipulation, and initialization code.
2. Other programs called, or linked to, should be in another project. Routines to access/manipulate a database, for example, would be a separate project. Static libraries would be a separate project.
3. All projects captured under a separate workspace. During early work the projects are worked on individually; later the projects are tied together through dependencies set in the workspace.
So I wind up with all the code in a single workspace with projects separated out for clarity and ease of work.
Is this typical??? Thanks.