View Single Post
Old 08-01-2007, 20:16   #1
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
[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.
okay è offline   Rispondi citando il messaggio o parte di esso