en:docs:fapi:dossetfilemode
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Next revision
en:docs:fapi:dossetfilemode [2018/08/28 09:29] – created prokushev
Line 1: Line 1:
 +This call changes the mode (attribute) of the specified file.
 +
 +==Syntax==
 + DosSetFileMode (FileName, NewAttribute, Reserved) 
 +
 +==Parameters==
 +;FileName (PSZ) - input : Address of the file path name.
 +:[[DosQSysInfo]] is called by an application during initialization to determine the maximum path length allowed by OS/2.
 +;NewAttribute (USHORT) - input : File's new attribute. File attributes are defined as follows:
 + '''Bit        Description'''
 + 15-6        Reserved and must be zero.
 +        File archive
 +        Subdirectory
 +        Volume label
 +        System file (excluded from normal directory searches)
 +        Hidden file
 +        Read only file
 +:These bits may be set individually or in combination. For example, an attribute value of 0021H (bits 5 and 0 set to 1) indicates a read-only file that should be archived.
 +;Reserved (ULONG) - input : Reserved must be set to zero.
 +
 +==Return Code==
 + rc (USHORT) - return
 +Return code descriptions are:
 +* 0        NO_ERROR 
 +* 2        ERROR_FILE_NOT_FOUND 
 +* 3        ERROR_PATH_NOT_FOUND 
 +* 5        ERROR_ACCESS_DENIED 
 +* 26        ERROR_NOT_DOS_DISK 
 +* 32        ERROR_SHARING_VIOLATION 
 +* 36        ERROR_SHARING_BUFFER_EXCEEDED 
 +* 87        ERROR_INVALID_PARAMETER
 +* 108        ERROR_DRIVE_LOCKED 
 +* 206        ERROR_FILENAME_EXCED_RANGE
 +
 +==Remarks==
 +Attributes for Volume Label (0008H) and Subdirectory (0010H) cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_INVALID_PARAMETER is returned.
 +
 +[[DosQFileMode]] is used to query the current settings for file attributes. Calling [[DosQFSInfo]] obtains volume label information.
 +
 +Attributes of root directories cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_ACCESS_DENIED is returned. 
 +
 +==Example Code==
 +=== C Binding===
 +<PRE>
 +#define INCL_DOSFILEMGR
 +
 +USHORT  rc = DosSetFileMode(FileName, NewAttribute, Reserved);
 +
 +PSZ              FileName;      /* File path name string */
 +USHORT           NewAttribute;  /* New attribute of file */
 +ULONG            0;             /* Reserved (must be zero) */
 +
 +USHORT           rc;            /* return code */
 +</PRE>
 +
 +===MASM Binding===
 +<PRE>
 +EXTRN  DosSetFileMode:FAR
 +INCL_DOSFILEMGR     EQU 1
 +
 +PUSH@  ASCIIZ  FileName      ;File path name string
 +PUSH   WORD    NewAttribute  ;New attribute of file
 +PUSH   DWORD               ;Reserved (must be zero)
 +CALL   DosSetFileMode
 +
 +Returns WORD
 +</PRE>
 +
 +=== Note ===
 +
 +Text based on http://www.edm2.com/index.php/DosSetFileMode
 +
 +{{page>en:templates:fapi}}
 +