Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, _ ByVal lParam As Long) As Long
EnumPropsEx перечисляет все свойства окна. Информация о свойствах передается по очереди заданной функции обратного вызова до тех пор, пока не будут перечислены все свойства или пока функция обратного вызова не вернет False.
Если функция не нашла свойств окна для перечисления, то возвращает -1. В других случаях возвращает последнее значение, возвращенное функцией обратного вызова.
' Перечислим все свойства окна Form1 ' *** Расположите код в модуле *** ' Данная функция просто выводит имена свойств окна Public Function PropEnumProcEx(ByVal hwnd As Long, _ ByVal lpszString As Long, _ ByVal hData As Long, _ ByVal dwData As Long) As Long Dim propname As String ' получает имя свойства Dim retval As Long ' возвращаемое значение ' Копируем строку из lpString в настоящую строку propname = Space(lstrlen(lpszString)) retval = lstrcpy(propname, lpszString) ' Выводим имя свойства Debug.Print "- "; propname ' Сообщаем функции EnumPropsEx продолжать перечисление PropEnumProcEx = 1 End Function ' *** Основной код для перечисления в любом месте Dim retval As Long ' результат перечисления Debug.Print "Начинаем перечисление свойств Form1" retval = EnumPropsEx(Form1.hWnd, AddressOf PropEnumProcEx, 0) If retval = -1 Then Debug.Print "Больше нет свойств" End If