아래에 표시된 VBA 코드 스 니펫은 Win32를 통해 열려있는 모든 창을 열거하는 데 효과적입니다 (Google 덕분에). 간결함을 위해 EnumCallBack() 함수를 생략했습니다.Win32에 전달할 때 VBA 및 함수 연산자
내가 가진 질문은 & 연산자가 EnumWindows 호출에서 숫자 상수 뒤에 나타납니다. EnumWindows가 포인터를 두 번째 인수로 기대한다는 것을 알고 있으므로 상수 다음에 & 연산자가 상수의 주소를 Win32로 전달한다고 추측합니다. 웹을 조금 샅샅이 뒤졌고 이에 대한 문서를 찾을 수 없었습니다. 그냥 내 직감을 확인하고 싶었어. &은 VBA 사용자 정의 Type..End Type의 주소도 전달할 것으로 예상됩니까?
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Private ProcWinHandle As Long
Private ProcessHandle As Long
Public Function GetProcessWindowHandle(ProcID As Long) As Long
ProcessHandle = ProcID
ProcWinHandle = 0
Dim retval As Long
retval = EnumWindows(AddressOf EnumCallBack, 0&)
GetProcessWindowHandle = ProcWinHandle
End Function
이 읽기 : https://msdn.microsoft.com/en-us/library/ee478101(v=vs.84).aspx 변수의 문자 접미사가이 읽기 : HTTPS : //msdn.microsoft.com/en-us/library/s9cz43ek.aspx – cyboashu