{{page>en:templates:fapiint}}
====== DosQFileMode ======
This call queries the mode (attribute) of the specified file.
===== Syntax =====
DosQFileMode (FilePathName, CurrentAttribute, Reserved)
===== Parameters =====
* FilePathName ([[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.
* CurrentAttribute ([[PUSHORT]]) - output : Address of the file's current attribute.
^ Bit ^ Description ^
| 15-6 | Reserved |
| 5 | File archive |
| 4 | Subdirectory |
| 3 | Reserved |
| 2 | System file |
| 1 | Hidden file |
| 0 | Read only file |
These bits can 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 is 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
* 26 ERROR_NOT_DOS_DISK
* 87 ERROR_INVALID_PARAMETER
* 108 ERROR_DRIVE_LOCKED
* 206 ERROR_FILENAME_EXCED_RANGE
===== Remarks =====
The "Volume Label" type attribute is not returned by DosQFileMode. [[DosQFSInfo]] may be used for this purpose.
===== Example Code =====
==== C Binding ====
#define INCL_DOSFILEMGR
USHORT rc = DosQFileMode(FilePathName, CurrentAttribute, Reserved);
PSZ FilePathName; /* File path name */
PUSHORT CurrentAttribute; /* Data area (returned) */
ULONG 0; /* Reserved (must be zero) */
USHORT rc; /* return code */
==== MASM Binding ====
EXTRN DosQFileMode:FAR
INCL_DOSFILEMGR EQU 1
PUSH@ ASCIIZ FilePathName ;File path name
PUSH@ WORD CurrentAttribute ;Data area (returned)
PUSH DWORD 0 ;Reserved (must be zero)
CALL DosQFileMode
Returns WORD
===== Note =====
Text based on http://www.edm2.com/index.php/DosQFileMode
{{page>en:templates:fapi}}