F-IN-BOX DLL Edition Help >> Extensions >> Notifications

FPCN_LOADEXTERNALRESOURCE

Message

[ C++ ]
  1. FPCN_LOADEXTERNALRESOURCE  

Structure

[ C++ ]
  1. struct SFPCLoadExternalResource  
  2. {      
  3.     NMHDR hdr;  
  4.       
  5.     LPCTSTR lpszRelativePath;  
  6.     LPSTREAM lpStream;  
  7. };  

Description

The FPCN_LOADEXTERNALRESOURCE is sent when a movie tries to load an external resource (xml, jpeg, etc.) using a relative path. The message is sent only if the movie is loaded from memory.

For instance, a movie loads an image using the following code:

[ ActionScript ]
  1. loadMovie("images/external_image.jpg""square");  

You can provide the content of this image by handling the notification message FPCN_LOADEXTERNALRESOURCE:

[ C++ ]
  1. LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)  
  2. {  
  3.     switch (uMsg)   
  4.     {  
  5. ...  
  6.             case WM_NOTIFY:  
  7.             {  
  8.                 NMHDR* pNMHDR = (NMHDR*)lParam;  
  9.   
  10.                 if (pNMHDR->hwndFrom == g_hwndFlashPlayerControl)  
  11.                 {  
  12.                     switch (pNMHDR->code)  
  13.                     {  
  14.                         case FPCN_LOADEXTERNALRESOURCE:  
  15.                         {  
  16.                             SFPCLoadExternalResource* pInfo = (SFPCLoadExternalResource*)lParam;  
  17.   
  18.                             if (0 == lstrcmpi(pInfo->lpszRelativePath, _T("images/external_image.jpg")))  
  19.                             {  
  20.                                 HMODULE hModule = GetModuleHandle(NULL);  
  21.                                 HRSRC hResInfo = FindResource(hModule, _T("IMAGE1"), _T("JPEG"));  
  22.                                 HGLOBAL hResData = LoadResource(hModule, hResInfo);  
  23.                                 LPVOID lpResourceData = LockResource(hResData);  
  24.                                 DWORD dwResourceSize = SizeofResource(hModule, hResInfo);  
  25.                           
  26.                                 ULONG ulWritten;  
  27.                                 pInfo->lpStream->Write(lpResourceData, dwResourceSize, &ulWritten);  
  28.                             }  
  29.   
  30.                             break;  
  31.                         }  
  32.                     }  
  33.                 }  
  34.   
  35.                 break;  
  36.             }  
  37.        }  
  38. ...  
  39. }  


Copyright © Softanics. All rights reserved.
F-IN-BOX is a trademark of Softanics.
Macromedia and Shockwave Flash are trademarks of Adobe