Bagikan melalui


fungsi mmioAdvance (mmiscapi.h)

Fungsi mmioAdvance memajukan buffer I/O dari file yang disiapkan untuk akses buffer I/O langsung dengan fungsi mmioGetInfo .

Sintaks

MMRESULT mmioAdvance(
  HMMIO      hmmio,
  LPMMIOINFO pmmioinfo,
  UINT       fuAdvance
);

Parameter

hmmio

Handel file dari file yang dibuka dengan menggunakan fungsi mmioOpen .

pmmioinfo

Penunjuk ke struktur MMIOINFO yang diperoleh dengan menggunakan fungsi mmioGetInfo . Struktur ini digunakan untuk mengatur informasi file saat ini, dan kemudian diperbarui setelah buffer ditingkatkan. Parameter ini bersifat opsional.

fuAdvance

Bendera untuk operasi. Ini bisa menjadi salah satu dari berikut ini.

Nilai Makna
MMIO_READ Buffer diisi dari file .
MMIO_WRITE Buffer ditulis ke file.

Menampilkan nilai

Mengembalikan MMSYSERR_NOERROR jika berhasil atau kesalahan sebaliknya. Kemungkinan nilai kesalahan termasuk yang berikut ini.

Menampilkan kode Deskripsi
MMIOERR_CANNOTEXPAND
File memori yang ditentukan tidak dapat diperluas, mungkin karena anggota adwInfo dari struktur MMIOINFO diatur ke nol dalam panggilan awal ke fungsi mmioOpen .
MMIOERR_CANNOTREAD
Terjadi kesalahan saat mengisi ulang buffer.
MMIOERR_CANNOTWRITE
Isi buffer tidak dapat ditulis ke disk.
MMIOERR_OUTOFMEMORY
Memori tidak cukup untuk memperluas file memori untuk penulisan lebih lanjut.
MMIOERR_UNBUFFERED
File yang ditentukan tidak dibuka untuk I/O yang di-buffer.

Keterangan

Jika file dibuka untuk dibaca, buffer I/O diisi dari disk. Jika file dibuka untuk ditulis dan bendera MMIO_DIRTY diatur dalam anggota dwFlags dari struktur MMIOINFO , buffer ditulis ke disk. Anggota pchNext,pchEndRead, dan pchEndWrite dari struktur MMIOINFO diperbarui untuk mencerminkan status baru buffer I/O.

Jika file yang ditentukan dibuka untuk ditulis atau untuk pembacaan dan penulisan, buffer I/O dibersihkan ke disk sebelum buffer berikutnya dibaca. Jika buffer I/O tidak dapat ditulis ke disk karena disk penuh, mmioAdvance mengembalikan MMIOERR_CANNOTWRITE.

Jika file yang ditentukan terbuka hanya untuk ditulis, bendera MMIO_WRITE harus ditentukan.

Jika Anda telah menulis ke buffer I/O, Anda harus mengatur bendera MMIO_DIRTY di anggota dwFlags struktur MMIOINFO sebelum memanggil mmioAdvance. Jika tidak, buffer tidak akan ditulis ke disk.

Jika akhir file tercapai, mmioAdvance masih berhasil dikembalikan meskipun tidak ada lagi data yang dapat dibaca. Untuk memeriksa akhir file, periksa apakah anggota pchNext dan pchEndRead dari struktur MMIOINFO sama setelah memanggil mmioAdvance.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header mmiscapi.h (termasuk Mmiscapi.h, Windows.h)
Pustaka Winmm.lib
DLL Winmm.dll