どうやら私は、投票「アップ」のために詳細を提供する必要があるようです.. OK。
最初に初期化されたときの内部フラッシュ バッファは、ムービーがロードされているかどうか、またはバッファが最初の 4 バイトのバッファにプロパティを保持しているかどうかを示します。
gUfU -- ムービーがロードされていません。従うプロパティ ....
fUfU -- .. [4bytes] の整数サイズ。
次に、いわば非圧縮のムービーまたは SWF です。IStream クラスを記述します。上で埋めます。szFile として保存
TFlashStream *fStream = new TFlashStream(szFile);
// QI フラッシュ プレーヤー
IPersistStreamInit * psStreamInit = 0;
shock->QueryInterface(::IID_IPersistStreamInit,
(LPVOID*)&psStreamInit);
if(psStreamInit)
{
psStreamInit->InitNew();
psStreamInit->Load(fStream);
psStreamInit->Release();
}
delete fStream;
注意事項: psStreamInit->Load(fStream); の場合 ヘッダー 'fUfU' を探して IStream::Read を呼び出します。
返された psStreamInit が正しい場合は、バッファー サイズに対して IStream::Read を呼び出します。
これまでのところ問題がないように見える場合、psStreamInit は、読み取りがなくなるまで 1024 バイトのチャンクを読み取ります。でも。ヘッダーとファイルサイズ。
STDMETHOD(Read)(void *pv, ULONG cb, ULONG *pcbRead)
pcbRead が無効です。IsBadReadPtr のようなものを使用したい場合があります
--
マイケル