en:docs:fapi:doschgfileptr

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:docs:fapi:doschgfileptr [2018/08/26 13:41] prokusheven:docs:fapi:doschgfileptr [2018/09/02 14:52] prokushev
Line 5: Line 5:
  
 ==Syntax== ==Syntax==
- DosChgFilePtr (FileHandle, Distance, MoveType, NewPointer)+ 
 +  DosChgFilePtr (FileHandle, Distance, MoveType, NewPointer)
  
 ==Parameters== ==Parameters==
-;FileHandle (HFILE) - input : Handle returned by a previous DosOpen call. + 
-Distance (LONG) - input : The offset to move, in bytes. +  * FileHandle (HFILE) - input : Handle returned by a previous DosOpen call. 
-MoveType (USHORT) - input : Method of moving. Specifies a location in the file from where Distance to move the read/write pointer starts. Values and their meanings are: +  Distance (LONG) - input : The offset to move, in bytes. 
- '''Value        Definition''' +  MoveType (USHORT) - input : Method of moving. Specifies a location in the file from where Distance to move the read/write pointer starts. Values and their meanings are: 
-        Beginning of the file. + 
-        Current location of the read/write pointer. +Value Definition ^ 
-        End of the file. Use this method to determine a file's size. +Beginning of the file. | 
-NewPointer (PULONG) - output : Address of the new pointer location.+Current location of the read/write pointer. | 
 +End of the file. Use this method to determine a file's size. 
 + 
 +  NewPointer (PULONG) - output : Address of the new pointer location.
  
 ==Return Code== ==Return Code==
- rc (USHORT) - return+ 
 +  rc (USHORT) - return 
 +  
 Return code descriptions are: Return code descriptions are:
-* 0 NO_ERROR + 
-* 1 ERROR_INVALID_FUNCTION +  * 0 NO_ERROR 
-* 6 ERROR_INVALID_HANDLE  +  * 1 ERROR_INVALID_FUNCTION 
 +  * 6 ERROR_INVALID_HANDLE  
  
 ==Remarks== ==Remarks==
Line 31: Line 38:
 ==Example Code== ==Example Code==
 ===C Binding=== ===C Binding===
-<PRE> 
-#define INCL_DOSFILEMGR 
  
-USHORT  rc = DosChgFilePtr(FileHandle, Distance, MoveType, NewPointer);+  #define INCL_DOSFILEMGR 
 +   
 +  USHORT  rc = DosChgFilePtr(FileHandle, Distance, MoveType, NewPointer); 
 +   
 +  HFILE            FileHandle;    /* File handle */ 
 +  LONG             Distance;      /* Distance to move in bytes */ 
 +  USHORT           MoveType;      /* Method of moving (0, 1, 2) */ 
 +  PULONG           NewPointer;    /* New Pointer Location */ 
 +   
 +  USHORT           rc;            /* return code */
  
-HFILE            FileHandle;    /* File handle */ 
-LONG             Distance;      /* Distance to move in bytes */ 
-USHORT           MoveType;      /* Method of moving (0, 1, 2) */ 
-PULONG           NewPointer;    /* New Pointer Location */ 
- 
-USHORT           rc;            /* return code */ 
-</PRE> 
 This example opens file test.dat, writes some data, and resets the file pointer to the beginning of the file. This example opens file test.dat, writes some data, and resets the file pointer to the beginning of the file.
-<PRE> 
-#define INCL_DOSFILEMGR 
- 
-#define OPEN_FILE 0x01 
-#define CREATE_FILE 0x10 
-#define FILE_ARCHIVE 0x20 
-#define FILE_EXISTS OPEN_FILE 
-#define FILE_NOEXISTS CREATE_FILE 
-#define DASD_FLAG 0 
-#define INHERIT 0x80 
-#define WRITE_THRU 0 
-#define FAIL_FLAG 0 
-#define SHARE_FLAG 0x10 
-#define ACCESS_FLAG 0x02 
- 
-#define FILE_NAME "test.dat" 
-#define FILE_SIZE 800L 
-#define FILE_ATTRIBUTE FILE_ARCHIVE 
-#define RESERVED 0L 
- 
-HFILE   FileHandle; 
-USHORT  Wrote; 
-USHORT  Action; 
-PUSHORT Local 
-PSZ     FileData[100]; 
-USHORT  rc; 
  
 +  #define INCL_DOSFILEMGR
 +  
 +  #define OPEN_FILE 0x01
 +  #define CREATE_FILE 0x10
 +  #define FILE_ARCHIVE 0x20
 +  #define FILE_EXISTS OPEN_FILE
 +  #define FILE_NOEXISTS CREATE_FILE
 +  #define DASD_FLAG 0
 +  #define INHERIT 0x80
 +  #define WRITE_THRU 0
 +  #define FAIL_FLAG 0
 +  #define SHARE_FLAG 0x10
 +  #define ACCESS_FLAG 0x02
 +  
 +  #define FILE_NAME "test.dat"
 +  #define FILE_SIZE 800L
 +  #define FILE_ATTRIBUTE FILE_ARCHIVE
 +  #define RESERVED 0L
 +  
 +  HFILE   FileHandle;
 +  USHORT  Wrote;
 +  USHORT  Action;
 +  PUSHORT Local
 +  PSZ     FileData[100];
 +  USHORT  rc;
 +  
    Action = 2;    Action = 2;
    strcpy(FileData, "Data...");    strcpy(FileData, "Data...");
Line 91: Line 98:
                             FILE_BEG,    /* Method of moving */                             FILE_BEG,    /* Method of moving */
                             &Local);     /* New pointer location */                             &Local);     /* New pointer location */
-</PRE>+
  
 ===MASM Binding=== ===MASM Binding===
-<PRE> 
-EXTRN  DosChgFilePtr:FAR 
-INCL_DOSFILEMGR     EQU 1 
  
-PUSH   WORD    FileHandle    ;File handle +  EXTRN  DosChgFilePtr:FAR 
-PUSH   DWORD   Distance      ;Distance to move in bytes +  INCL_DOSFILEMGR     EQU 1 
-PUSH   WORD    MoveType      ;Method of moving (0, 1, 2) +   
-PUSH@  DWORD   NewPointer    ;New Pointer Location (returned) +  PUSH   WORD    FileHandle    ;File handle 
-CALL   DosChgFilePtr+  PUSH   DWORD   Distance      ;Distance to move in bytes 
 +  PUSH   WORD    MoveType      ;Method of moving (0, 1, 2) 
 +  PUSH@  DWORD   NewPointer    ;New Pointer Location (returned) 
 +  CALL   DosChgFilePtr
  
 Returns WORD Returns WORD
-</PRE>+
  
 == Note === == Note ===