How can I learn about the Win32 API?

26,554

Solution 1

From MSDN you can find the WinAPI list: The following is a list of the reference content for the Windows application programming interface (API). http://msdn.microsoft.com/en-us/library/ff818516(v=vs.85).aspx

You can learn some stuff via Visual Basic Win API functions. Examples are very easy to follow and understand. Then you can translate the code to C#.

There Are 598 Visual Basic Windows API Functions in 55 Category http://www.ex-designz.net/api.asp

Solution 2

First, Win32 is a set of subsystems. You possibly can't learn them all easily. You just have to prioritize.

But then, to be able to say what you'd like to learn, you probably need a big picture. I believe the best way to approach Win32 is through "Programming Windows" by Charles Petzold. It's very clear to read and easy to understand. There are a lot of examples you can pick up and experiment on your own.

After you learn the basic stuff, I recommend "Microsoft Windows Internals" by Mark Russinovich. It's rather advanced but lets you understand what's inside Windows core.

Solution 3

I personally feel you should start with Calling Win32 DLLs in C# with P/Invoke

This will provide you with most of the basic knowledge you need to know about the WINAPI using pinvoke in c#. I also had the offline version of the WINAPI functions provided by MSDN but I can't remember where I downloaded it from.

Lastly, get your hands on some basic easy to understand WINAPI code, there's http://mwinapi.sourceforge.net/ for this.

EDIT: You can download the offline version of the documentation from phatocde.

Solution 4

Win32 API - help documents and samples should be in Windows SDK download. http://www.microsoft.com/download/en/details.aspx?id=8279

Solution 5

Take a look at theForger's Win32 API Programming Tutorial as well, which:

attempts to get you started developing with the Win32 API as quickly and clearly as possible`.

Share:
26,554

Related videos on Youtube

MasterMastic
Author by

MasterMastic

If apple pies were people, people would be lemons. Have a tasty afternoon! :3 (I honestly don't know)

Updated on January 26, 2022

Comments

  • MasterMastic
    MasterMastic over 2 years

    I want to learn how to be able to use the Win32 API, since recently I've got a lot of tasks I need to do which requires functions from user32.dll, so I'm trying to learn and I Googled but the thing is: every tutorial there is about it, just tells you how to do a certain thing. like show a MessageBox through the Win32 API, but you can't actually learn Win32 framework.

    So how do you actually learn it? How do you know all the functions? with managed libraries it's quite easy, especially with Visual Studio which provides IntelliSense, the Object Browser etc. but the Win32 API is so messy (at least from a C# developer standpoint).

    The way I've been using it until now is just searching on Google for a task and seeing that it can be done with the Win32 API (I had no idea) and just copy the function and use it (and it's horrible for me, I feel I'm missing a lot of "power").

    So, how can I learn it?

    To be clear: I'm not interested in a book. as bad as it sounds I need this knowledge for a project and I just don't have the time to invest in a book. I did get my answer although.
    Thank you all.

    • silbana
      silbana about 12 years
      possible duplicate of win32 api programming book
    • Tung
      Tung about 12 years
      I often feel that pinvoke is better than msdn.
    • user1703401
      user1703401 about 12 years
      To really understand the core of pinvoke, you have to learn the C language first. Pinvoke declarations often intentionally alter the declaration from the stock SDK definition to make the function easier to use. Particularly functions that take PVOID or LPARAM, like the ubiquitous SendMessage(), can be declared better by altering the argument types. The best place to find help is, well, here.