WinQueryWindowPtr
Appearance
This function retrieves a pointer value from the memory of the reserved window word.
Syntax
WinQueryWindowPtr(hwnd, index)
Parameters
- hwnd (HWND) - Input
- Window handle which has the pointer to retrieve.
- index (LONG) - Input
- Zero-based index of the pointer value to retrieve.
- The units of index are bytes. Valid values are zero through (cbWindowData - 4), where cbWindowData is the parameter in WinRegisterClass that specifies the number of bytes available for application-defined storage.
- The value QWP_PFNWP can be used for the address of the window's window procedure.
Returns
- pRet (PVOID) - returns
- NULL Error occurred.
- Other Pointer value.
Parameters
- hwnd (HWND) - Input
- Window handle which has the pointer to retrieve.
- index (LONG) - Input
- Zero-based index of the pointer value to retrieve.
- The units of index are bytes. Valid values are zero through (cbWindowData - 4), where cbWindowData is the parameter in WinRegisterClass that specifies the number of bytes available for application-defined storage.
- The value QWP_PFNWP can be used for the address of the window's window procedure.
- pRet (PVOID) - returns
- NULL Error occurred.
- Other Pointer value.
Remarks
The index parameter is valid only if all of the bytes referenced are within the reserved memory.
Errors
Possible returns from WinGetLastError:
- PMERR_INVALID_HWND (0x1001) An invalid window handle was specified.
- PMERR_PARAMETER_OUT_OF_RANGE (0x1003) The value of a parameter was not within the defined valid range for that parameter.
Example Code
#define INCL_WINWINDOWMGR /* Or use INCL_WIN, INCL_PM, */ #include <os2.h> HWND hwnd; /* Window handle which has the pointer to retrieve. */ LONG index; /* Zero-based index of the pointer value to retrieve. */ PVOID pRet; /* Pointer value. */ pRet = WinQueryWindowPtr(hwnd, index);
This function retrieves a pointer value from the memory of the reserved window word.
MyWindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { MYINSTANCEDATA *InstanceData; /* application defined structure */ switch (msg) { case WM_CREATE: DosAllocMem(&InstanceData, sizeof(MYINSTANCEDATA), fALLOC); /* WindowProcedure initializes instance data for this window */ . . /* set pointer to instance in window words */ WinSetWindowPtr(hwnd, 0, InstanceData); break; case WM_USER + 1: /* application defined message */ /* Window procedure retrieves instance data to */ /* process this message */ InstanceData = WinQueryWindowPtr(hwnd, 0); . . break; . .