WN_DOS.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:
Windows编程
开发平台:
Visual C++
- /*************************************************************************
- **
- ** OLE 2.0 Property Set Utilities
- **
- ** wn_dos.h
- **
- ** This file contains file contains data structure defintions,
- ** function prototypes, constants, etc. for Windows 3.x form of
- ** DOS calls. This is used by the SUMINFO OLE 2.0 Property Set
- ** utilities used to manage the Summary Info property set.
- **
- ** (c) Copyright Microsoft Corp. 1990 - 1996 All Rights Reserved
- **
- *************************************************************************/
- #ifndef WN_DOS_H
- #define WN_DOS_H
- #include <dos.h>
- #define WIN 1
- #define cbMaxFile 146 //from incpath.h
- #define SEEK_FROM_BEGINNING 0
- #define SEEK_FROM_END 2
- #define chDOSPath ('\') // FUTURE: not used all places it could be
- #define chDOSWildAll '*' /* DOS File name wild card. */
- #define chDOSWildSingle '?'
- // Close, seek, delete, rename, flush, get attributes, read, write
- /* RPC TEMP
- int FCloseOsfnWin(WORD);
- #define FCloseOsfn(osfn) FCloseOsfnWin(osfn)
- long DwSeekDwWin(WORD,LONG,WORD);
- #define DwSeekDw(osfn, dwSeek, bSeekFrom) DwSeekDwWin(osfn, dwSeek, bSeekFrom)
- EC EcDeleteSzFfnameWin(char *);
- #define EcDeleteSzFfname(szFile) EcDeleteSzFfnameWin(szFile)
- EC EcRenameSzFfnameWin(char *,char *);
- #define EcRenameSzFfname(szFileCur,szFileNew) EcRenameSzFfnameWin(szFileCur,szFileNew)
- int FFlushOsfnWin(int);
- #define FFlushOsfn(osfn) FFlushOsfnWin(osfn)
- WORD DaGetFileModeSzWin(char *);
- #define DaGetFileModeSz(szFile) DaGetFileModeSzWin(szFile)
- int CbReadOsfnWin(int, void far *, UINT);
- int CbWriteOsfnWin(int, void far *, UINT);
- #define CbWriteOsfn(osfn,lpch,cbWrite) CbWriteOsfnWin(osfn,lpch,cbWrite)
- */
- #define WinOpenFile(sz,ofs,n) OpenFile(sz,ofs,n)
- #define SeekHfile(f,off,kind) _llseek(f,off,kind)
- #define CbReadOsfn(osfn,lpch,cbRead) CbReadOsfnWin(osfn,lpch,cbRead)
- #define CbReadHfile(f,buf,n) _lread(f,buf,n)
- #define CbReadOsfnWin(f,buf,n) CbReadHfile(f,buf,n)
- #define EcFindFirst4dm(a,b,c) _dos_findfirst((const char *)(b),c,(struct find_t*)a)
- #define EcFindNext4dm(a) _dos_findnext((struct find_t*)a)
- #define FHfileToSffsDate(handle,date,time) _dos_getftime(handle, (unsigned *)(date), (unsigned *)(time))
- #define SeekHfile(f, off, kind) _llseek(f,off,kind)
- /* buffer structure to be used with EcFindFirst() and EcFindNext() */
- typedef struct _SFFS
- { /* Search Find File Structure */
- uchar buff[21]; // dos search info
- uchar wAttr;
- union
- {
- unsigned short timeVariable; /*RPC47*/
- BF time:16;
- struct
- {
- BF sec : 5;
- BF mint: 6;
- BF hr : 5;
- };
- };
- union
- {
- unsigned short dateVariable;
- BF date:16;
- struct
- {
- BF dom : 5;
- BF mon : 4;
- BF yr : 7;
- };
- };
- ulong cbFile;
- uchar szFileName[13];
- } SFFS;
- // find first file/find next file
- #define PszFromPsffs(psffs) ((psffs)->szFileName)
- #define CopySzFilePsffs(psffs,sz) OemToAnsi((char HUGE *)&((psffs)->szFileName[0]),(char HUGE *)(sz))
- #define CbSzFilePsffs(psffs) CbSz((psffs)->szFileName)
- #define CbFileSizePsffs(psffs) (psffs)->cbFile
- #define AttribPsffs(psffs) (psffs)->wAttr
- #define EcFindFirstCore(psffs, sz, wAttr) EcFindFirst(psffs, sz, wAttr) /*RPC22*/
- #define FDotPsffs(psffs) ((psffs)->szFileName[0]=='.') /*RPC23*/
- #define AppendSzWild(sz) {int i=_fstrlen((char FAR *)(sz)); sz[i]='*'; sz[i+1]='.'; sz[i+2]='*'; sz[i+3]=' ';}
- // disk free space
- unsigned long LcbDiskFreeSpaceWin(int);
- #define LcbDiskFreeSpace(chDrive) LcbDiskFreeSpaceWin(chDrive)
- // date and time /*RPC39*/
- /*
- typedef struct _TIM { // Time structure returned by OsTime
- CHAR minutes, hour, hsec, sec;
- } TIM;
- typedef struct _DAT { // Date structure returned by OsDate
- int year;
- CHAR month, day, dayOfWeek;
- } DAT;
- */
- #define TIM dostime_t /*RPC39*/
- #define DAT dosdate_t
- #define OsTimeWin(TIM) _dos_gettime(TIM)
- #define OsDateWin(DAT) _dos_getdate(DAT)
- /* DOS File Attributes */
- #define DA_NORMAL 0x00
- #define DA_READONLY 0x01
- #define DA_HIDDEN 0x02
- #define DA_SYSTEM 0x04
- #define DA_VOLUME 0x08
- #define DA_SUBDIR 0x10
- #define DA_ARCHIVE 0x20
- #define DA_NIL 0xFFFF /* Error DA */
- #define dosxSharing 32 /* Extended error code for sharing viol. */
- #define nErrNoAcc 5 /* OpenFile error code for Access Denied */
- #define nErrFnf 2 /* OpenFile error code for File Not Found */
- /* Components of the Open mode for OpenSzFfname (DOS FUNC 3DH) */
- #define MASK_fINH 0x80
- #define MASK_bSHARE 0x70
- #define MASK_bACCESS 0x07
- #define bSHARE_DENYRDWR 0x10
- #define bSHARE_DENYWR 0x20
- #define bSHARE_DENYNONE 0x40
- /* Seek-from type codes passed to DOS function 42H */
- #define SF_BEGINNING 0 /* Seek from beginning of file */
- #define SF_CURRENT 1 /* Seek from current file pointer */
- #define SF_END 2 /* Seek from end of file */
- typedef struct _DOSDTTM /* DOS DaTe TiMe */
- {
- union
- {
- long lDOSDttm;
- struct
- {
- BF day: 5;
- BF month: 4;
- BF year: 7;
- BF sec: 5;
- BF mint: 6;
- BF hours: 5;
- } S1;
- } U1;
- } DOSDTTM;
- int FOsfnIsFile(int);
- void DateStamp(int, LONG *, int);
- int DosxError(void);
- int ShellExec(int, int);
- #endif //WN_DOS_H