mmio 系列函数用于 Wave 等多媒体文件的 I/O 操作, 相关函数有:
mmioOpen
mmioClose
mmioRead
mmioWrite
mmioFlush
mmioSeek
mmioRename
mmioGetInfo
mmioSetInfo
mmioCreateChunk
mmioAscend
mmioDescend
mmioAdvance
mmioSetBuffer
mmioStringToFOURCC
mmioSendMessage
mmioInstallIOProc
mmio 系列函数比一般的 I/O 函数更适合操作 RIFF 格式的多媒体文件, 主要是能更方便地操作 RIFF 的文件块, 官方还说它们更优化.
和其他 I/O 函数一样, 它们也是要 Open 获取句柄, 然后读写, 最后关闭; 但它们文件句柄和其他 I/O 函数的句柄并不兼容, 不过部分函数(上面前 7 个)也可以用于一般文件的操作.
就先操作个一般文件吧.
uses MMSystem;
procedure TForm1.FormCreate(Sender: TObject);
const
FilePath = 'C:\Temp\mm.txt';
var
hFile: HMMIO;
str: RawByteString;
begin
hFile := mmioOpen(PChar(FilePath), {要打开的文件}
nil, {接受 TMMIOInfo 结构信息的指针, 暂时没用到}
MMIO_CREATE or MMIO_READWRITE {打开选项; 这是建立并以读写权限打开}
);
mmioWrite(hFile, 'Delphi', 6); {写入 6 个字符}
mmioSeek(hFile, 0, SEEK_SET); {把读写指针移动到文件头}
SetLength(str, 6);
mmioRead(hFile, PAnsiChar(str), 6); {读出 6 个字符}
ShowMessage(str); {Delphi}
mmioClose(hFile, 0); {关闭文件; 第二个参数还可以是 MMIO_FHOPEN, 另有它用}
{最后再删除这个文件, 既然已删除就无需 Close 了}
mmioOpen(PChar(FilePath), nil, MMIO_DELETE);
end;