BOOL CALLBACK EnumPropMovableProc(hwnd, lpsz, hData) | |||||
HWND hwnd; | /* handle of window with property | */ | |||
LPCSTR lpsz; | /* address of property string or atom | */ | |||
HANDLE hData; | /* handle of property data | */ |
The EnumPropMovableProc function is an application-defined callback function that receives a window's property data as a result of a call to the EnumProps function.
hwnd
Identifies the handle of the window that contains the property list.
lpsz
Points to the null-terminated string associated with the data identified by the hData parameter. The application specified the string and data in a previous call to the SetProp function. If the application passed an atom instead of a string to SetProp, the lpsz parameter contains the atom.
hData
Identifies the property data.
The callback function must return TRUE to continue enumeration; to stop enumeration, it must return FALSE.
This form of the property-enumeration callback function should be used in applications with movable data segments and in dynamic libraries whose movable data segments also contain a stack. This form is required since movement of the data will invalidate any long pointer to a variable on the stack, such as the lpsz parameter. The data segment typically moves if the callback function allocates more space in the local heap than is currently available.
The following restrictions apply to the callback function:
The callback function must not yield control or do anything that might yield control to other tasks.
The callback function can call the RemoveProp function. However, RemoveProp can remove only the property passed to the callback function through the callback function's parameters.
The callback function should not attempt to add properties.
The EnumPropMovableProc function is a placeholder for the application-defined function name. The actual name must be exported by including it in an EXPORTS statement in the application's module-definition (.DEF) file.