关于windows.h的函数声明,我看不懂?

最近我学习windows.h头文件制作管理系统的界面,但是有关函数的声明我看不懂

比如 百度百科里的,这个看得懂,返回值类型为句柄,参数类型为DWORD

HANDLE GetStdHandle( DWORD nStdHandle );

但msdn里的为

HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle);

问题

1.里面的WINAPI和 In的作用不清楚

2.我查了下 In是宏,查了下资料按照我的理解是表示该参数是用于输入值用于函数执行,而Out的参数是用于接收函数执行完后的数据。不知道这样子理解对不对?

3.上述第二种声明在我学到的C语言内不是正规的函数声明,为什么会这样?

你的理解基本正确。没有什么正规不正规的,你学的只是皮毛,macro定义并没有超过语法范畴