大家能帮帮我写个注释吗


#define _WIN32_WINNT 0x601
#include <windows.h>
POINT p;
HDC hdc;
BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LPARAM lParam){
    if(lpszType == RT_GROUP_ICON){
        GetCursorPos(&p);
        HICON hIcon = LoadIcon(hModule, lpszName);
        int ix = GetSystemMetrics(SM_CXICON) / 2, iy = GetSystemMetrics(SM_CYICON) / 2;
        DrawIcon(hdc, p.x-ix, p.y-iy, LoadIcon(hModule, lpszName));
    }
    Sleep(20);
    return TRUE;
}

int main(){
    hdc = GetDC(NULL);
    HMODULE hShell32 = LoadLibrary("shell32.dll");
    int w = GetSystemMetrics(SM_CXSCREEN), h = GetSystemMetrics(SM_CYSCREEN);
    for(;;){
        EnumResourceNamesA(hShell32, RT_GROUP_ICON, EnumResNameProc, 0);
        Sleep(20);
    }
}

有没有人能帮忙加个注释,
我实在是看不懂啊

LoadLibrary是动态引入动态库,可以不需要lib文件,前提是要知道动态库中要使用的API函数的输入参数和返回值类型
GetSystemMetrics是获取系统的一些度量值,如系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度等,SM_CXSCREEN和SM_CYSCREEN是以像素为单位计算的屏幕尺寸,不过main函数中白写了,w,h没使用。
EnumResourceNames是枚举资源中指定类型的模块,代码中是枚举图标文件(ICON),EnumResNameProc是回调函数,在这个函数中定义枚举过程的具体行为,代码中是将图标绘制在屏幕中央