Я пытаюсь написать функцию, которая возвращает HWND из идентификатора процесса, но есть одна небольшая проблема. Я получаю сообщение об ошибке «Ожидается идентификатор». Он будет скомпилирован, только если я удалю & in window_data &data
, но тогда функция не будет работать. Почему & нужна в первую очередь? Код компилируется в C ++, но не в C.
typedef struct
{
DWORD dwProcessID;
HWND hWnd;
} window_data;
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
window_data &data = *(window_data*)lParam;
DWORD dwProcessID = 0;
GetWindowThreadProcessId(hwnd, &dwProcessID);
if (dwProcessID != data.dwProcessID)
return TRUE;
data.hWnd = hwnd;
return FALSE;
}