fungsi mmioOpenW (mmiscapi.h)
Fungsi mmioOpen membuka file untuk I/O yang tidak dibuffer atau di-buffer; membuat file; menghapus file; atau memeriksa apakah ada file. File dapat berupa file standar, file memori, atau elemen sistem penyimpanan kustom. Handel yang dikembalikan oleh mmioOpen bukan handel file standar; jangan gunakan dengan fungsi I/O file apa pun selain fungsi I/O file multimedia.
Sintaksis
HMMIO mmioOpenW(
LPWSTR pszFileName,
LPMMIOINFO pmmioinfo,
DWORD fdwOpen
);
Parameter
pszFileName
Penunjuk ke buffer yang berisi nama file. Jika tidak ada prosedur I/O yang ditentukan untuk membuka file, nama file menentukan bagaimana file dibuka, sebagai berikut:
- Jika nama file tidak berisi tanda plus (+), diasumsikan sebagai nama file standar (yaitu, file yang jenisnya tidak HMMIO).
- Jika nama file adalah contoh formulir. EXT+ABC, ekstensi EXT diasumsikan untuk mengidentifikasi prosedur I/O yang diinstal yang dipanggil untuk melakukan I/O pada file. Untuk informasi selengkapnya, lihat mmioInstallIOProc.
- Jika nama file
NULL dan tidak ada prosedur I/O yang diberikan, adwInfo anggota struktur MMIOINFOdiasumsikan sebagai handel file standar (non- HMMIO ) dari file yang saat ini terbuka.
Saat membuka file memori, atur szFilename
pmmioinfo
Penunjuk ke struktur MMIOINFO
fdwOpen
Bendera untuk operasi terbuka. Bendera MMIO_READ, MMIO_WRITE, dan MMIO_READWRITE saling eksklusif - hanya satu yang harus ditentukan. Bendera MMIO_COMPAT, MMIO_EXCLUSIVE, MMIO_DENYWRITE, MMIO_DENYREAD, dan MMIO_DENYNONE adalah bendera berbagi file. Nilai berikut ditentukan.
Nilai | Arti |
---|---|
MMIO_ALLOCBUF | Membuka file untuk I/O yang di-buffer. Untuk mengalokasikan buffer yang lebih besar atau lebih kecil dari ukuran buffer default (8K, didefinisikan sebagai MMIO_DEFAULTBUFFER), atur cchBuffer anggota MMIOINFO struktur ke ukuran buffer yang diinginkan. Jika cchBuffer adalah nol, ukuran buffer default digunakan. Jika Anda menyediakan buffer I/O Anda sendiri, bendera ini tidak boleh digunakan. |
MMIO_COMPAT | Membuka file dengan mode kompatibilitas, memungkinkan proses apa pun pada komputer tertentu untuk membuka file beberapa kali. Jika file telah dibuka dengan salah satu mode berbagi lainnya, mmioBuka gagal. |
MMIO_CREATE | Membuat file baru. Jika file sudah ada, file dipotong menjadi panjang nol. Untuk file memori, bendera ini menunjukkan akhir file awalnya berada di awal buffer. |
MMIO_DELETE | Menghapus file. Jika bendera ini ditentukan, szFilename |
MMIO_DENYNONE | Membuka file tanpa menolak proses lain membaca atau menulis akses ke file. Jika file telah dibuka dalam mode kompatibilitas oleh proses lain, mmioBuka gagal. |
MMIO_DENYREAD | Membuka file dan menolak proses lain membaca akses ke file. Jika file telah dibuka dalam mode kompatibilitas atau untuk akses baca oleh proses lain, mmioBuka gagal. |
MMIO_DENYWRITE | Membuka file dan menolak proses lain menulis akses ke file. Jika file telah dibuka dalam mode kompatibilitas atau untuk akses tulis oleh proses lain, mmioBuka gagal. |
MMIO_EXCLUSIVE | Membuka file dan menolak proses lain membaca dan menulis akses ke file. Jika file telah dibuka dalam mode lain untuk akses baca atau tulis, bahkan oleh proses saat ini, mmioBuka gagal. |
MMIO_EXIST | Menentukan apakah file yang ditentukan ada dan membuat nama file yang sepenuhnya memenuhi syarat dari jalur yang ditentukan dalam szFilename. Nilai yang dikembalikan
Catatan aplikasi harus memanggil GetFileAttributes atau GetFileAttributesEx sebagai gantinya.
|
MMIO_GETTEMP |
Membuat nama file sementara, secara opsional menggunakan parameter yang diteruskan dalam szFilename. Misalnya, Anda dapat menentukan "C:F" untuk membuat file sementara yang berada di drive C, dimulai dengan huruf "F". Nama file yang dihasilkan disalin ke buffer yang ditunjukkan oleh szFilename. Buffer harus cukup besar untuk menampung setidaknya 128 karakter.
Jika nama file sementara berhasil dibuat, nilai yang dikembalikan MMSYSERR_NOERROR (ditransmisikan ke HMMIO). Jika tidak, nilai yang dikembalikan MMIOERR_FILENOTFOUND sebaliknya. File tidak dibuka, dan fungsi tidak mengembalikan handel file I/O file multimedia yang valid, jadi jangan mencoba menutup file. Bendera ini mengambil alih semua bendera lainnya. |
MMIO_PARSE |
Membuat nama file yang sepenuhnya memenuhi syarat dari jalur yang ditentukan dalam szFilename. Nama yang sepenuhnya memenuhi syarat disalin ke buffer yang ditunjukkan oleh szFilename. Buffer harus cukup besar untuk menampung setidaknya 128 karakter.
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE (ditransmisikan ke HMMIO). Jika tidak, nilai yang dikembalikan adalah FALSE. File tidak dibuka, dan fungsi tidak mengembalikan handel file I/O file multimedia yang valid, jadi jangan mencoba menutup file. Jika bendera ini ditentukan, semua bendera yang membuka file diabaikan.
Catatan Aplikasi harus memanggil GetFullPathName sebagai gantinya.
|
MMIO_READ | Membuka file untuk dibaca saja. Ini adalah default jika MMIO_WRITE dan MMIO_READWRITE tidak ditentukan. |
MMIO_READWRITE | Membuka file untuk membaca dan menulis. |
MMIO_WRITE | Membuka file hanya untuk menulis. |
Mengembalikan nilai
Tidak
Komentar
Jika
- Untuk meminta agar file dibuka dengan prosedur I/O yang diinstal, atur
fccIOProc ke kode empat karakter prosedur I/O, dan atur pIOProc keNULL . - Untuk meminta agar file dibuka dengan prosedur I/O yang dihapus instalannya, atur
IOProc untuk menunjuk ke prosedur I/O, dan atur fccIOProc ke NULL . - Untuk meminta
mmioOpen menentukan prosedur I/O mana yang akan digunakan untuk membuka file berdasarkan nama file yang terkandung dalamszFilename , atur fccIOProc danpIOProc keNULL . Ini adalah perilaku default jika tidak ada struktur MMIOINFOyang ditentukan. - Untuk membuka file memori menggunakan buffer yang dialokasikan dan dikelola secara internal, atur pchBuffer ke null, fccIOProc ke FOURCC_MEM, cchBuffer ke ukuran awal buffer, dan adwInfo ke ukuran ekspansi bertahap dari buffer. File memori ini akan secara otomatis diperluas dalam kenaikan jumlah byte yang ditentukan dalam adwInfo bila perlu. Tentukan bendera MMIO_CREATE untuk parameter
dwOpenFlags untuk awalnya mengatur akhir file menjadi awal buffer. - Untuk membuka file memori menggunakan buffer yang disediakan aplikasi, atur pchBuffer untuk menunjuk ke buffer memori, fccIOProc ke FOURCC_MEM, cchBuffer ke ukuran buffer, dan adwInfo ke ukuran ekspansi tambahan buffer. Ukuran ekspansi dalam adwInfo
harus nonzero hanya jika pchBuffer adalah pointer yang diperoleh dengan memanggil fungsiGlobalAlloc dan GlobalLock ; dalam hal ini, fungsiGlobalReAlloc akan dipanggil untuk memperluas buffer. Dengan kata lain, jika pchBuffer menunjuk ke array lokal atau global atau blok memori di tumpukan lokal, adwInfo harus nol. Tentukan bendera MMIO_CREATE untuk parameter dwOpenFlags untuk awalnya mengatur akhir file menjadi awal buffer. Jika tidak, seluruh blok memori dianggap dapat dibaca. - Untuk menggunakan handel file standar yang saat ini terbuka (yaitu, handel file yang tidak memiliki jenis HMMIO
) dengan layanan I/O file multimedia, atur fccIOProc ke FOURCC_DOS, pchBuffer ke NULL , danadwInfo ke handel file standar. Offset dalam file akan relatif terhadap awal file dan tidak terkait dengan posisi dalam file standar pada saat mmioBuka dipanggil; offset I/O file multimedia awal akan sama dengan offset dalam file standar ketika mmioOpen dipanggil. Untuk menutup handel file I/O file multimedia tanpa menutup handel file standar, teruskan bendera MMIO_FHOPEN ke mmioClose.
Nota
Header mmiscapi.h mendefinisikan mmioOpen sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
mmiscapi.h (termasuk Mmiscapi.h, Windows.h) |
Pustaka |
Winmm.lib |
DLL |
Winmm.dll |