Quick links:
F-IN-BOX DLL Edition Home Page
| Buy license
| Welcome to our forum!
| Ask your question
| Help on the Web
F-IN-BOX DLL Edition Help >> Extensions >> Functions FPCSetGlobalOnLoadExternalResourceHandler [deprecated]
Syntax
[ C++ ]
typedef HRESULT (WINAPI *PLOADEXTERNALRESOURCEHANDLER)(LPCSTR lpszURL, IStream** ppStream); void WINAPI FPCSetGlobalOnLoadExternalResourceHandler(PLOADEXTERNALRESOURCEHANDLER pHandler); Description
You can intercept and provide content of external resource a flash movie are loading. For instance, Flash Video.
To play Flash Video from memory you should create flash movie that loads Flash Video from "private" URL (e.g., "http://FLV/FlashVideo.flv"). Flash Movie uses the following code to load Flash Video (put this in under a button in your Swf Flash Movie):
[ ActionScript ]
var netConn:NetConnection = new NetConnection(); netConn.connect(null); var netStream:NetStream = new NetStream(netConn); my_video.attachVideo(netStream); netStream.setBufferTime(0); netStream.play("http://FLV/FlashVideo.flv"); When Flash tries to load Flash Video from http://FLV/FlashVideo.flv, FlashPlayerControl provides content of FLV. Use function FPCSetGlobalOnLoadExternalResourceHandler to set handle the external resources and provide them to Flash. See the code: [ C++ ]
HRESULT WINAPI GlobalOnLoadExternalResourceHandler(LPCSTR lpszURL, IStream** ppStream); ... FPCSetGlobalOnLoadExternalResourceHandler(&GlobalOnLoadExternalResourceHandler); ... HRESULT WINAPI GlobalOnLoadExternalResourceHandler(LPCSTR lpszURL, IStream** ppStream) { HRESULT hr = E_FAIL; if (0 == lstrcmpiA(lpszURL, "http://FLV/FlashVideo.flv")) { // Create stream IStream* pMemStream = NULL; CreateStreamOnHGlobal(NULL, TRUE, &pMemStream); // Save flash video to the stream from the resource HMODULE hModule = GetModuleHandle(NULL); HRSRC hResInfo = FindResource(hModule, _T("EMBEDDED_FLV"), _T("FLV")); HGLOBAL hResData = LoadResource(hModule, hResInfo); LPCVOID lpData = LockResource(hResData); DWORD dwSize = SizeofResource(hModule, hResInfo); ULONG nWritten; pMemStream->Write(lpData, dwSize, &nWritten); // Seek stream position to the begin LARGE_INTEGER liZero = { 0 }; ULARGE_INTEGER ulNewPosition; pMemStream->Seek(liZero, STREAM_SEEK_SET, &ulNewPosition); *ppStream = pMemStream; hr = S_OK; } return hr; } Copyright © Softanics. All rights reserved. F-IN-BOX is a trademark of Softanics. Macromedia and Shockwave Flash are trademarks of Adobe
Quick links:
F-IN-BOX DLL Edition Home Page
| Buy license
| Welcome to our forum!
| Ask your question
| Help on the Web
|