CFile::shareDenyNone))
return FALSE;
dwSize = File.Seek (0, CFile::end);
File.Seek (0, CFile::begin);
file://m_pMemory内存存储块指针,类型:LPVOID
m_pMemory = GlobalAlloc (GMEM_FIXED, dwSize);
if (File.ReadHuge (m_pMemory, dwSize) != dwSize){
File.Close ();
return FALSE;
}
File.Close ();
LPDWORD pdw,pdwEnd;
DWORD dwRiff,dwType, dwLength, dwLength;
if (m_pFormat) file://格式块指针,类型:LPWAVEFORMATEX
m_pFormat = NULL;
if (m_pData) file://数据块指针,类型:LPBYTE
m_pData = NULL;
if (m_dwSize) file://数据长度,类型:DWORD
m_dwSize = 0;
pdw = (DWORD *) m_pMemory;
dwRiff = *pdw++;
dwLength = *pdw++;
dwType = *pdw++;
if (dwRiff != mmioFOURCC ('R', 'I', 'F', 'F'))
return FALSE;
if (dwType != mmioFOURCC ('W', 'A', 'V', 'E'))
return FALSE;
file://寻找格式块,数据块位置及数据长度
pdwEnd = (DWORD *)((BYTE *) pdw + dwLength - 4);
while (pdw < pdwEnd){
dwType = *pdw++;
dwLength = *pdw++;
switch (dwType){
case mmioFOURCC('f', 'm', 't', ' '):
if (!m_pFormat){
if (dwLength < sizeof (WAVEFORMAT))
return FALSE;
m_pFormat = (LPWAVEFORMATEX) pdw;
if (m_pData && m_dwSize)
return TRUE;
}
break;
case mmioFOURCC('d', 'a', 't', 'a'):
if (!m_pData (北联网教程,专业提供视频软件下载)
……