Fungsi LZOpenFileA (lzexpand.h)

Membuat, membuka, membuka kembali, atau menghapus file yang ditentukan.

Sintaks

INT LZOpenFileA(
  [in]  LPSTR      lpFileName,
  [out] LPOFSTRUCT lpReOpenBuf,
  [in]  WORD       wStyle
);

Parameter

[in] lpFileName

Nama file.

[out] lpReOpenBuf

Penunjuk ke struktur OFSTRUCT yaitu menerima informasi tentang file ketika file pertama kali dibuka. Struktur dapat digunakan dalam panggilan berikutnya ke fungsi LZOpenFile untuk melihat file yang terbuka.

Anggota szPathName dari struktur ini berisi karakter dari set karakter produsen peralatan asli (OEM).

[in] wStyle

Tindakan yang akan diambil. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
OF_CANCEL
0x0800
Diabaikan. Disediakan hanya untuk kompatibilitas dengan Windows 16-bit. Gunakan gaya OF_PROMPT untuk menampilkan kotak dialog yang berisi tombol Batal .
OF_CREATE
0x1000
Mengarahkan LZOpenFile untuk membuat file baru. Jika file sudah ada, file dipotong menjadi panjang nol.
OF_DELETE
0x0200
Menghapus file.
OF_EXIST
0x4000
Membuka file lalu menutupnya untuk menguji keberadaan file.
OF_PARSE
0x0100
Mengisi struktur OFSTRUCT tetapi tidak melakukan tindakan lain.
OF_PROMPT
0x2000
Menampilkan kotak dialog jika file yang diminta tidak ada. Kotak dialog memberi tahu pengguna bahwa sistem tidak dapat menemukan file, dan berisi tombol Coba Lagi dan Batalkan . Mengklik tombol Batal mengarahkanLZOpenFile untuk mengembalikan pesan kesalahan file yang tidak ditemukan.
OF_READ
0x0000
Membuka file untuk dibaca saja.
OF_READWRITE
0x0002
Membuka file untuk membaca dan menulis.
OF_REOPEN
0x8000
Membuka file menggunakan informasi dalam buffer buka kembali.
OF_SHARE_DENY_NONE
0x0040
Membuka file tanpa menolak proses lain membaca atau menulis akses ke file. LZOpenFile gagal jika file telah dibuka dalam mode kompatibilitas oleh proses lain.
OF_SHARE_DENY_READ
0x0030
Membuka file dan menolak proses lain membaca akses ke file. LZOpenFile gagal jika file telah dibuka dalam mode kompatibilitas atau telah dibuka untuk akses baca oleh proses lain.
OF_SHARE_DENY_WRITE
0x0020
Membuka file dan menolak proses lain menulis akses ke file. LZOpenFile gagal jika file telah dibuka dalam mode kompatibilitas atau telah dibuka untuk akses tulis oleh proses lain.
OF_SHARE_EXCLUSIVE
0x0010
Membuka file dalam mode eksklusif, menolak proses lain baik akses baca maupun tulis ke file. LZOpenFile gagal jika file telah dibuka dalam mode lain untuk akses baca atau tulis, bahkan oleh proses saat ini.
OF_WRITE
0x0001
Membuka file hanya untuk menulis.

Mengembalikan nilai

Jika fungsi berhasil dan nilai yang ditentukan oleh parameter wStyle tidak OF_READ, nilai yang dikembalikan adalah handel yang mengidentifikasi file. Jika file dikompresi dan dibuka dengan wStyle diatur ke OF_READ, nilai yang dikembalikan adalah handel file khusus.

Jika fungsi gagal, nilai yang dikembalikan adalah kode LZERROR_* . Kode-kode ini memiliki nilai kurang dari nol. Tidak ada informasi kesalahan yang diperluas untuk fungsi ini; jangan panggil GetLastError.

CatatanLZOpenFile memanggil SetLastError atau SetLastErrorEx; dengan demikian, kegagalannya tidak memengaruhi kode kesalahan terakhir utas.
 
Berikut ini adalah daftar kode kesalahan yang dapat dikembalikan LZOpenFile setelah kegagalan.
Mengembalikan kode/nilai Deskripsi
LZERROR_BADINHANDLE
-1
Handel yang mengidentifikasi file sumber tidak valid. File tidak dapat dibaca.
LZERROR_GLOBALLOC
-5
Jumlah maksimum file terkompresi terbuka telah terlampaui atau memori lokal tidak dapat dialokasikan.

Keterangan

Jika parameter wStyle adalah bendera OF_READ (atau OF_READ dan salah satu bendera OF_SHARE_* ) dan file dikompresi, LZOpenFile memanggil fungsi LZInit , yang melakukan inisialisasi yang diperlukan untuk operasi dekompresi.

Menangani pengembalian fungsi ini hanya kompatibel dengan fungsi di Lz32.dll; tidak boleh digunakan untuk operasi file lainnya.

Jika LZOpenFile tidak dapat membuka file yang ditentukan oleh lpFileName, pada beberapa versi Windows, LZOpenFile mencoba membuka file dengan nama file yang hampir sama, kecuali karakter terakhir diganti dengan garis bawah (""). Dengan demikian, jika upaya untuk membuka "MyProgram.exe" gagal, LZOpenFile mencoba membuka "MyProgram.ex". Paket penginstalan sering mengganti garis bawah untuk huruf terakhir ekstensi nama file untuk menunjukkan bahwa file dikompresi. Misalnya, "MyProgram.exe" yang dikompresi mungkin diberi nama "MyProgram.ex_". Untuk menentukan nama file yang dibuka (jika ada), periksa anggota szPathName dari struktur OFSTRUCT dalam parameter lpReOpenBuf .

Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Ya
SMB 3.0 Transparent Failover (TFO) Ya
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) Ya
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Ya
 

CsvF akan melakukan IO yang dialihkan untuk file terkompresi.

Catatan

Header lzexpand.h mendefinisikan LZOpenFile sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header lzexpand.h (termasuk Windows.h)
Pustaka Lz32.lib
DLL Lz32.dll

Lihat juga

Kompresi dan Dekompresi File

Fungsi Manajemen File

LZClose

LZInit

LZRead

OFSTRUCT