


So you don't want that † you want to call LoadImage, which as the documentation indicates is the modern replacement function. The obvious way to load a cursor is by calling the LoadCursor API function, but that is a very old function, introduced with 16-bit Windows and it is limited to loading cursors of size SM_CXCURSOR× SM_CYCURSOR. This is a handle-to-cursor, in Windows API speak. As you probably already know, you need an HCURSOR object to pass to SetSystemCursor. The key lies in how you load the cursor resource. I know for a fact that this works as far back as Windows XP I'm pretty sure it works further back than that. GetSystemMetrics function)-those just tell you the system's default cursor size, which is typically 32×32 (or 48×48 on high-DPI systems). You are not limited to the SM_CXCURSOR/ SM_CYCURSOR metrics (cf. You can set any size cursor you want using the SetSystemCursor API.
