|
▼L.Entisさん:
>あぅ。
うぐぅ
>>1."descript" レコードを探す
>>以下ちょっと手抜きコード。
>>struct { __int64 recid ; __int64 reclen ; } rechdr ;
>>SetFilePointer( hFile, 0x50, NULL, FILE_BEGIN ) ;
>>do
>>{
>> ReadFile( hFile, &rechdr, sizeof(rechdr), &dwReadBytes, NULL ) ;
>> if ( dwReadBytes < sizeof(rechdr) )
>> return ; // エラー
>>while ( rechdr.recid != *((__int64*)"descript") ) ;
>>pszDesc = (char*) GlobalAlloc( GPTR, (DWORD) rechdr.reclen ) ;
>>ReadFile( hFile, pszDesc, (DWORD) rechdr.reclen, &amp;dwReadBytes, NULL ) ;
>
>次のレコードへ移行するときのシークが抜けてますね。(^^;)
>あと、補足としましては、0x40 からヘッダレコードのトータルサイズを取得してそれを超えないようにするチェックを入れると完璧です。
UNICODE のチェックもしないとまずいですね。
|
|