Partager via


LZOpenFileA, fonction (lzexpand.h)

Crée, ouvre, rouvert ou supprime le fichier spécifié.

Syntaxe

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

Paramètres

[in] lpFileName

Nom du fichier.

[out] lpReOpenBuf

Pointeur vers la structure OFSTRUCT qui doit recevoir des informations sur le fichier lors de la première ouverture du fichier. La structure peut être utilisée dans les appels suivants à la fonction LZOpenFile pour afficher le fichier ouvert.

Le szPathName membre de cette structure contient des caractères du jeu de caractères oem (original equipment manufacturer).

[in] wStyle

Action à entreprendre. Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
OF_CANCEL
0x0800
Ignoré. Fourni uniquement pour la compatibilité avec Windows 16 bits. Utilisez le style OF_PROMPT pour afficher une boîte de dialogue contenant un bouton Annuler .
OF_CREATE
0x1000
Dirige LZOpenFile pour créer un fichier. Si le fichier existe déjà, il est tronqué à zéro longueur.
OF_DELETE
0x0200
Supprime le fichier.
OF_EXIST
0x4000
Ouvre le fichier, puis le ferme pour tester l’existence d’un fichier.
OF_PARSE
0x0100
Remplit la structure OFSTRUCT, mais n’effectue aucune autre action.
OF_PROMPT
0x2000
Affiche une boîte de dialogue si le fichier demandé n’existe pas. La boîte de dialogue informe l’utilisateur que le système ne trouve pas le fichier et qu’il contient réessayer et bouton Annuler. En cliquant sur le bouton Annuler, LZOpenFile pour renvoyer un message d’erreur introuvable.
OF_READ
0x0000
Ouvre le fichier pour la lecture uniquement.
OF_READWRITE
0x0002
Ouvre le fichier pour la lecture et l’écriture.
OF_REOPEN
0x8000
Ouvre le fichier à l’aide d’informations dans la mémoire tampon de réouverture.
OF_SHARE_DENY_NONE
0x0040
Ouvre le fichier sans refuser d’autres processus d’accès en lecture ou en écriture au fichier. LZOpenFile échoue si le fichier a été ouvert en mode de compatibilité par tout autre processus.
OF_SHARE_DENY_READ
0x0030
Ouvre le fichier et refuse à d’autres processus l’accès en lecture au fichier. LZOpenFile échoue si le fichier a été ouvert en mode de compatibilité ou a été ouvert pour l’accès en lecture par tout autre processus.
OF_SHARE_DENY_WRITE
0x0020
Ouvre le fichier et refuse à d’autres processus l’accès en écriture au fichier. LZOpenFile échoue si le fichier a été ouvert en mode de compatibilité ou a été ouvert pour l’accès en écriture par tout autre processus.
OF_SHARE_EXCLUSIVE
0x0010
Ouvre le fichier en mode exclusif, refusant aux autres processus l’accès en lecture et en écriture au fichier. LZOpenFile échoue si le fichier a été ouvert en tout autre mode pour l’accès en lecture ou en écriture, même par le processus actuel.
OF_WRITE
0x0001
Ouvre le fichier pour l’écriture uniquement.

Valeur de retour

Si la fonction réussit et que la valeur spécifiée par le paramètre wStyle n’est pas OF_READ, la valeur de retour est un handle identifiant le fichier. Si le fichier est compressé et ouvert avec wStyle défini sur OF_READ, la valeur de retour est un handle de fichier spécial.

Si la fonction échoue, la valeur de retour est un code LZERROR_*. Ces codes ont des valeurs inférieures à zéro. Il n’existe aucune information d’erreur étendue pour cette fonction ; n’appelez pas GetLastError.

RemarqueLZOpenFile appelle ni SetLastError ni SetLastErrorEx; ainsi, son échec n’affecte pas le code de dernière erreur d’un thread.
 
Voici la liste des codes d’erreur qui LZOpenFile peuvent retourner en cas d’échec.
Retourner le code/la valeur Description
LZERROR_BADINHANDLE
-1
Handle identifiant le fichier source n’est pas valide. Impossible de lire le fichier.
LZERROR_GLOBALLOC
-5
Le nombre maximal de fichiers compressés ouverts a été dépassé ou la mémoire locale ne peut pas être allouée.

Remarques

Si le paramètre wStyle est l’indicateur OF_READ (ou OF_READ et l’un des indicateurs OF_SHARE_*) et que le fichier est compressé, LZOpenFile appelle la fonction LZInit, qui effectue l’initialisation requise pour les opérations de décompression.

Le handle de cette fonction retourne est compatible uniquement avec les fonctions dans Lz32.dll; il ne doit pas être utilisé pour d’autres opérations de fichier.

Si LZOpenFile ne parvient pas à ouvrir le fichier spécifié par lpFileName, sur certaines versions de Windows, il tente d’ouvrir un fichier avec presque le même nom de fichier, sauf que le dernier caractère est remplacé par un trait de soulignement («»). Ainsi, si une tentative d’ouverture de «MyProgram.exe» échoue, LZOpenFile tente d’ouvrir « MyProgram.ex». Les packages d’installation remplacent souvent le trait de soulignement de la dernière lettre d’une extension de nom de fichier pour indiquer que le fichier est compressé. Par exemple, «MyProgram.exe» compressé peut être nommé « MyProgram.ex_ ». Pour déterminer le nom du fichier ouvert (le cas échéant), examinez le membre szPathName de la structure OFSTRUCT dans le paramètre lpReOpenBuf.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Supporté
Protocole SMB (Server Message Block) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Oui
Cluster Shared Volume File System (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui
 

Les fichiers CSV effectuent des E/S redirigés pour les fichiers compressés.

Note

L’en-tête lzexpand.h définit LZOpenFile comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête lzexpand.h (include Windows.h)
bibliothèque Lz32.lib
DLL Lz32.dll

Voir aussi

compression et décompression de fichiers

fonctions de gestion de fichiers

LZClose

LZInit

LZRead

OFSTRUCT