The problem is actually located in MAKEINTRESOURCE(IDC_ARROW) and is not related to the mHandle type. [Also: I agree that mHandle should not be size_t , but I think this is not your current problem.]
Since IDC_ARROW defined as MAKEINTRESOURCE(32512) , the code should really read
LoadCursor(NULL, IDC_ARROW)
but not
LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW))
The last code crashes because IDC_ARROW LPTSTR , but MAKEINTRESOURCE() expects a WORD . This explains the error message you see. In fact, IDC_ARROW already a resource type and does not need further processing.
Similarly, all other calls to LoadCursor() erroneous.
source share