Use FPCSetEventListener to set handler of notifications (instead of handling WM_NOTIFY).
[ C++ ]
- FPCSetEventListener(g_hwndFlashPlayerControl, FPCListener, lParam__SomeAdditionalValue);
- ...
- void WINAPI FPCListener(HWND hwndFlashPlayerControl, LPARAM lParam, NMHDR* pNMHDR)
- {
- switch (pNMHDR->code)
- {
- case FPCN_FSCOMMAND:
- {
- SFPCFSCommandInfoStruct* pInfo = (SFPCFSCommandInfoStruct*)pNMHDR;
- ...
- break;
- }
-
- case FPCN_ONPROGRESS:
- {
- SFPCOnProgressInfoStruct* pInfo = (SFPCOnProgressInfoStruct*)pNMHDR;
- ...
- break;
- }
-
- case FPCN_ONREADYSTATECHANGE:
- {
- SFPCOnReadyStateChangeInfoStruct* pInfo = (SFPCOnReadyStateChangeInfoStruct*)pNMHDR;
- ...
- break;
- }
-
- case FPCN_LOADEXTERNALRESOURCE:
- {
- SFPCLoadExternalResource* pInfo = (SFPCLoadExternalResource*)pNMHDR;
- ...
- break;
- }
- }
- }
FPCSetEventListener(g_hwndFlashPlayerControl, FPCListener, lParam__SomeAdditionalValue);
...
void WINAPI FPCListener(HWND hwndFlashPlayerControl, LPARAM lParam, NMHDR* pNMHDR)
{
switch (pNMHDR->code)
{
case FPCN_FSCOMMAND:
{
SFPCFSCommandInfoStruct* pInfo = (SFPCFSCommandInfoStruct*)pNMHDR;
...
break;
}
case FPCN_ONPROGRESS:
{
SFPCOnProgressInfoStruct* pInfo = (SFPCOnProgressInfoStruct*)pNMHDR;
...
break;
}
case FPCN_ONREADYSTATECHANGE:
{
SFPCOnReadyStateChangeInfoStruct* pInfo = (SFPCOnReadyStateChangeInfoStruct*)pNMHDR;
...
break;
}
case FPCN_LOADEXTERNALRESOURCE:
{
SFPCLoadExternalResource* pInfo = (SFPCLoadExternalResource*)pNMHDR;
...
break;
}
}
}