Sto cercando di usare la funzione
EnumWindowStations della libreria
WinUser.h ma non riesco a passargli il puntatore alla funzione callback che ho creato. Cioè non mi è chiaro come debba farlo e non riesco a chiarirmi le idee su questo punto nonostante mi sono studiato un po' i riferimenti a tale funzione (
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-enumwindowstationsw )
Segue il codice così forse è più comprensibile ciò che non capisco:
codice:
BOOL CALLBACK CWinLogon::EnumWindowStationProc(__in LPWSTR lpszWindowStation,__in LPARAM lParam)
{
...
return true;
}
void MyFunction()
{
if ( EnumWindowStations(&EnumWindowStationProc, NULL) )
home_window_station = 0;
}
Il compilatore mi dice
l'argomento di tipo "BOOL (__stdcall *)(LPWSTR lpszWindowStation, LPARAM lParam)" è incompatibile con il parametro di tipo "WINSTAENUMPROCW"
ora andando a vedere le definizioni sul file WinUser.h
codice:
typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM);
typedef NAMEENUMPROCW WINSTAENUMPROCW;
typedef WINSTAENUMPROCW WINSTAENUMPROC;
A questo punto mi areno, non riesco a capire come passare la funzione EnumWindowStationProc a EnumWindowStations.
Qualcuno può chiarirmi le idee?
Grazie mille