Parametri standard per una funzione che gestisce le notifiche windows inviate ad una windows associata ad un oggetto
EH_OBJ.
Quando si associa (tipicamente ad un oggetto ZONE) una windows, questa invia notifiche usando il messa WM_NOTIFY.
Queste notifiche possono essere gestite attraverso l'ausilio di
objSetNotify().
Vedi ListView,TreeView eccc..
Sintassi
EH_OBJ * pObj,
BOOL * pbReturn,
EN_EXT_NOTIFY enMode,
HWND hWnd,
UINT message,
LONG wParam,
LONG lParam
Parametri
- pObj
Puntatore all'oggetto associato
- bReturn
T/F se il valore di ritorno è valorizzato
- enMode
EXT_PREV: Chiamata prima della procedura standard.
EXT_AFTER: Chiamata dopo la procedura standard.
- hWnd
Windows a cui si riferisce la notifica Microsoft
- wParam
Valore wParam
- lParam
Valore lParam
Commenti
A differenza di prima, la funzione passata all'oggetto di notifica è diventata di un unico prototipo, è quindi necessario effettuare modifiche a programmi esistenti prima di questa variazione.
Functions tipo listView
Per i programmi già creati bisogna fare alcune modifiche:
- iMode è enMode
- fReturn è pbReturn
- LVSUB_PRE è EXT_PREV
WS_EXTFUNZ non esiste più, al suo posto è necessario usare
objSetNotify che controlla il prototipo della funzione associata.
Le funzioni esterne avevano questo proprototipo
_extNotifyField(SINT iMode,struct OBJ *poj,HWND hWnd, LPARAM wParam, LPARAM lParam,BOOL *fReturn)
diventano
_extNotifyField(EH_NOTIFYPARAMS)
LVSUB_PRE diventa EXT_PREV
LVSUB_POST diventa EXT_AFTER
fReturn diventa pbResult
pnmh deve essere creata:
LPNMHDR pnmh=(LPNMHDR ) lParam;Functions tipo ODBC
EH_SQLPARAMS non esiste più, bisogna sostituirlo con EH_NOTIFYPARAMS
In testata della funzione inserire la macro
_odbcScrollAdaptor_ che fornisce le variabili: rsSet,psExt e enMess.
SINT scrClassMer(EH_SQLPARAMS)
{
SINT a,iLx,iLy;
struct WS_DISPEXT *psExt=(struct WS_DISPEXT *) pVoid;
..
}
diventa
SINT scrClassMer(EH_NOTIFYPARAMS)
{
SINT a,iLx,iLy;
_odbcScrollAdaptor_
..
}
- info,dato è wParam
- cmd è enMess
- pSet è rsSet
- str è lParam