2009-07-07 18 views
2

Als Teil eines benutzerdefinierten Media-Player geschrieben in C (Win32), muss ich meine App Flash-Filme (. SWF-Dateien) im Player-Fenster abspielen. Kann jemand bitte die C-kompatible Low-Level-Methode angeben, um dies zu erreichen, was mir die höchste Kontrolle gibt? Besondere Kontrolle über das Anzeigefenster und den Netzwerkzugriff.Wie spiele ich Flash-Dateien in reinem C?

Ich bin auf der Suche nach einem Verweis auf eine Windows DLL wie flash_player.dll (wenn es so etwas gibt) mit Dokumentation. Oder zumindest ein COM/ActiveX-Steuerelement. Beachten Sie, dass ActiveX in C schwieriger zu verwenden ist als in VB.

Antwort

4

Gebrauchte Code aus: http://support.microsoft.com/kb/218442/EN-US/

//*Place at the top of your CAxDialogImpl class 
#import "flash.ocx" rename_namespace("FLASH") 
FLASH::IShockwaveFlashPtr m_spFlash; 


//This code gets added to your OnInitDialog function of the window 
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
CAxWindow wnd; 
CLSID clsid; 
LPUNKNOWN pUnkCtrl, pUnkCont; 
HRESULT hr = CLSIDFromString(OLESTR("{D27CDB6E-AE6D-11CF-96B8-444553540000}"), &clsid); 
hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, 
(void**)&pUnkCtrl); 
CComQIPtr <IPersistStreamInit> spPerStm(pUnkCtrl); 
spPerStm->InitNew(); 

m_spFlash = pUnkCtrl; 
wnd.Attach(m_hWnd); 
wnd.AttachControl(pUnkCtrl, &pUnkCont); 

m_spFlash->PutMovie(_bstr_t(_T("C:\\Documents and Settings\\murk\\Desktop\\Chlorine\\ccc_main.swf"))); 
} 
+0

-1, C++ nicht C. C hat keine Klassen noch Methoden. – MSalters

+0

Wie auch immer gute Informationen, wenn es in C++ funktioniert, kann ich es wahrscheinlich in C konvertieren. – CDR

+2

Oh Mann, COM in reinem C. . . nicht nett. Möglich, aber Zeiger fliegen überall hin. – dreamlax