Winapi 调用API时所需的子项、函数或属性

Winapi 调用API时所需的子项、函数或属性,winapi,vb6,Winapi,Vb6,我想使用EnumWindows API函数存储所有活动窗口标题。但是我想使用调用EnumWindows的函数作为回调函数。我想通过更改lParam变量来实现这一点,以便函数知道何时必须调用EnumWindows以及何时是回调函数。问题是它给了我一个错误:“期望的子项、函数或属性。”。这是我的密码: Private Sub Command1_Click() ReceiveHwnd 0, 1 End Sub 这部分代码位于模块中: Public Declare Function GetW

我想使用EnumWindows API函数存储所有活动窗口标题。但是我想使用调用EnumWindows的函数作为回调函数。我想通过更改lParam变量来实现这一点,以便函数知道何时必须调用EnumWindows以及何时是回调函数。问题是它给了我一个错误:“期望的子项、函数或属性。”。这是我的密码:

Private Sub Command1_Click()
     ReceiveHwnd 0, 1
End Sub
这部分代码位于模块中:

Public Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal Hwnd As Long) As Long 
Public Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Public HwndCount As Double, HwndArray() As Long

Public Function GetTitle(Hwnd As Long) As String
     Dim Lenght As Long
     Dim TempValue As String

     Lenght = GetWindowTextLength(Hwnd) + 1
     TempValue = Space$(Lenght)
     GetWindowText Hwnd, TempValue, Lenght

     GetTitle = Mid(TempValue, 1, Lenght - 1)
End Function


Public Function ReceiveHwnd(ByVal Hwnd As Long, ByVal lParam As Long) As Long
      Static Count As Double


      If lParam = 1 Then
           EnumWindows AddressOf ReceiveHwnd, 0
           Count = 0
      Else
           Count = Count + 1

           ReDim Preserve HwndArray(1 To Count)
           HwndArray(Count) = Hwnd
           ReceiveHwnd = 1

     End If
End Function
错误出现在这一行
ReceiveHwnd的EnumWindows地址,0
来自
ReceiveHwnd
函数。
您能告诉我问题出在哪里吗?

我可能错了,但我认为您需要在公共类模块中使用回调函数。我认为问题可能是你在常规模块中有它。我建议你对这个.Hmmm做一点研究,从它的回调函数调用
EnumWindows
。。在我看来,这个设计很糟糕。