|
[c++] catturare eventi propri...
Sono a conoscenza delle routine degli eventi.
Un esempio:
LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool* pbNoFurtherProcessing, void* pUserContext )
{
...
return 0;
}
ancora:
void CALLBACK OnGUIEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserContext )
{
switch( nControlID )
{
case IDC_ADDACTORS:
{
...
break;
}
case IDC_REMOVEACTORS:
{
...
break;
}
case IDC_CHANGEGRAVITY:
{
... }
}
}
ancora:
LRESULT CALLBACK DXUTStaticWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
switch( uMsg )
{
case WM_PAINT:
{
...
}
case WM_SIZE:
{
...
}
}
}
ecc ecc.
Ecco tutte queste routine e anche altre di win le conosco e riesco a capacitarmi a scriverle e a farle funzionare tipico catturare il mouse il timer paint ecc.ecc
Una cosa che non riesco a capire è questa:
HRESULT WINAPI MyMessageHandler( PVOID pvUserContext,
DWORD dwMessageId,
PVOID pMsgBuffer )
{
switch( dwMessageId )
{
case RECEIVE:
{
break;
case messaggio:
{
break;
ecc.ecc.
Ecco questa sopra è una routine di eventi che nel momento in cui si logga un client il flusso del programma
entra come per magia in questa funzione... Ecco non riesco a capacitarmi come faccia il flusso a capire ed entrare in questa funzione.
E' una cosa che non riesco a capire e se dovessi rifarla da solo non so come far entrare il flusso in questa o altre routine simili
anche se fosse fatta da me.
Quindi la domanda per chi vuole aiutarmi è capire come strutturare una routine del genere di eventi.
Inoltre ho la necessità che quest'ultimo tipo di routine:
HRESULT WINAPI MyMessageHandler( PVOID pvUserContext,
DWORD dwMessageId,
PVOID pMsgBuffer )
{
ecc.ecc.
"HO INTENZIONE" di metterla in una dll/lib.
In definitiva devo far in modo di catturare l'evento, tipico dell'ultima routine, non nei cpp visibili appunto all'utente ma in una dll che dovrei implementare.
E' possibile...??...fare questo in una dll?? e continuare a processare tale routine di eventi dal main.cpp??
Ultima modifica di okay : 08-01-2007 alle 20:19.
|