2009-07-07 8 views
2

C(Win32)で書かれたカスタマイズされたメディアプレーヤーの一部として、私はプレイヤーウィンドウ内で私のアプリのフラッシュムービー(.swfファイル)を有効にする必要があります。誰かが私に最高のコントロールを与える、これを達成するために最もCの互換性のある低レベルの方法を示してくださいできますか?ディスプレイウィンドウとネットワークアクセスを特別に制御します。純粋なCでフラッシュファイルを再生するにはどうすればよいですか?

私はflash_player.dllのようなWindows DLLへの参照を探しています。または少なくともCOM/ActiveXコントロール。 ActiveXは、CではVBよりも使用するのが難しいことに注意してください。

答えて

4

使用されるコード: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++ではないC. Cには、クラスやメソッドを持っていません。 – MSalters

+0

とにかく、C++で動作すれば、おそらくC言語に変換できます。 – CDR

+2

ああ、COM in pure C。 。 。よくない。可能ですが、ポインタはどこにでも飛びます。 – dreamlax

関連する問題