DosQueryHType enables an application to determine whether a handle is to a file, a pipe, or a device. This function can be used when a file-oriented application needs to modify its behavior, depending on the source of its input. For example, CMD.EXE suppresses writing prompts when its input is from a disk file.
The following code fragment determines whether a given file handle refers to a file or a device. Assume that the desired file handle has been placed into FileHandle already.
#define INCL_DOSFILEMGR /* File system values */ #include <os2.h> #include <stdio.h> HFILE hfFileHandle; /* File handle */ ULONG ulHandType; /* Handle type (returned) */ ULONG ulFlagWord; /* Device driver attribute (returned) */ APIRET ulrc; /* Return code */ ulrc = DosQueryHType(hfFileHandle, &ulHandType, &ulFlagWord); if (ulrc != 0) { printf("DosQueryHType error: return code = %ld", ulrc); return; }
In the preceding example, DosQueryHType returns a value that characterizes the type of file handle, and the associated device driver attribute word, if the handle type indicates that the file handle is associated with a local character device.