⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows.h

📁 这是DOS系统的源代码,汇编写的,值得看看,对开发操作系统的人员有价值
💻 H
📖 第 1 页 / 共 5 页
字号:
#define CP_GETBORDER	5
#define CP_SETBORDER	6
#define CP_TIMEOUTS	7
#define CP_KANJIMENU	8
#define CP_GETKSPEED 	10
#define CP_SETKSPEED 	11
void FAR PASCAL ControlPanelInfo(WORD, WORD, LONG);

#ifndef NOHDC
HDC   FAR PASCAL CreateDC(LPSTR, LPSTR, LPSTR, LPSTR);
HDC   FAR PASCAL CreateIC(LPSTR, LPSTR, LPSTR, LPSTR);
HDC   FAR PASCAL CreateCompatibleDC ( HDC );
BOOL  FAR PASCAL DeleteDC(HDC);
short FAR PASCAL SaveDC(HDC);
BOOL  FAR PASCAL RestoreDC(HDC, short);
DWORD FAR PASCAL MoveTo(HDC, short, short);
DWORD FAR PASCAL GetCurrentPosition(HDC);
BOOL  FAR PASCAL LineTo(HDC, short, short);
DWORD FAR PASCAL GetDCOrg(HDC);

#ifndef NORECT
BOOL  FAR PASCAL ExtTextOut(HDC, short, short, WORD, LPRECT, LPSTR, WORD, LPINT);
BOOL  FAR PASCAL FastWindowFrame( HDC, LPRECT, WORD, WORD, DWORD);
#endif

#ifndef NOPOINT
BOOL FAR PASCAL Polyline(HDC, LPPOINT, short);
BOOL FAR PASCAL Polygon( HDC, LPPOINT, short);
#endif

BOOL  FAR PASCAL Rectangle(HDC, short, short, short, short);
BOOL  FAR PASCAL RoundRect(HDC, short, short, short, short, short, short);
BOOL  FAR PASCAL Ellipse(HDC, short, short, short, short);
BOOL  FAR PASCAL Arc(HDC, short, short, short, short, short, short, short, short);
BOOL  FAR PASCAL Chord(HDC, short, short, short, short, short, short, short, short);
BOOL  FAR PASCAL Pie(HDC, short, short, short, short, short, short, short, short);
BOOL  FAR PASCAL PatBlt(HDC, short, short, short, short, DWORD);
BOOL  FAR PASCAL BitBlt(HDC, short, short, short, short, HDC, short, short, DWORD);
BOOL  FAR PASCAL StretchBlt(HDC, short, short, short, short, HDC, short, short, short, short, DWORD);
BOOL  FAR PASCAL TextOut(HDC, short, short, LPSTR, short);
BOOL  FAR PASCAL GetCharWidth(HDC, WORD, WORD, LPINT);
DWORD FAR PASCAL SetPixel( HDC, short, short, DWORD);
DWORD FAR PASCAL GetPixel( HDC, short, short);
BOOL  FAR PASCAL FloodFill( HDC, short, short, DWORD);
#endif

void  FAR PASCAL LineDDA(short, short, short, short, FARPROC, LPSTR);

#ifndef NORECT
#ifndef NOHDC
#ifndef NOBRUSH
int FAR PASCAL FillRect(HDC, LPRECT, HBRUSH);
int FAR PASCAL FrameRect(HDC, LPRECT, HBRUSH);
#endif
int FAR PASCAL InvertRect(HDC, LPRECT);
#endif
#endif


#ifndef NOREGION
#ifndef NOHDC
#ifndef NOBRUSH
BOOL FAR PASCAL FillRgn(HDC, HRGN, HBRUSH);
BOOL FAR PASCAL FrameRgn(HDC, HRGN, HBRUSH, short, short);
#endif
BOOL FAR PASCAL InvertRgn(HDC, HRGN);
BOOL FAR PASCAL PaintRgn(HDC, HRGN);
BOOL FAR PASCAL PtInRegion(HRGN, short, short);
#endif
#endif

HANDLE FAR PASCAL GetStockObject(short);

#ifndef NOPEN
HPEN FAR PASCAL CreatePen(short, short, DWORD);
HPEN FAR PASCAL CreatePenIndirect(LOGPEN FAR *);
#endif

#ifndef NOBRUSH
HBRUSH FAR PASCAL CreateSolidBrush(DWORD);
HBRUSH FAR PASCAL CreateHatchBrush(short,DWORD);
DWORD  FAR PASCAL SetBrushOrg(HDC, int, int);
DWORD  FAR PASCAL GetBrushOrg(HDC);
BOOL   FAR PASCAL UnrealizeObject(HBRUSH);
#endif

#ifndef NOBRUSH
#ifndef NOBITMAP
HBRUSH FAR PASCAL CreatePatternBrush(HBITMAP);
#endif
#ifndef NOGDI
HBRUSH FAR PASCAL CreateBrushIndirect(LOGBRUSH FAR *);
#endif
#endif


#ifndef NOBITMAP
HBITMAP FAR PASCAL CreateBitmap(short, short, BYTE, BYTE, LPSTR);
HBITMAP FAR PASCAL CreateBitmapIndirect(BITMAP FAR *);
#ifndef NOHDC
HBITMAP FAR PASCAL CreateCompatibleBitmap(HDC, short, short);
HBITMAP FAR PASCAL CreateDiscardableBitmap(HDC, short, short);
#endif
long  FAR PASCAL SetBitmapBits(HBITMAP, DWORD, LPSTR);
long  FAR PASCAL GetBitmapBits(HBITMAP, long, LPSTR);
DWORD FAR PASCAL SetBitmapDimension(HBITMAP, short, short);
DWORD FAR PASCAL GetBitmapDimension(HBITMAP);
#endif

#ifndef NOFONT
HFONT FAR PASCAL CreateFont(short, short, short, short, short, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, LPSTR);
#ifndef NOGDI
HFONT FAR PASCAL CreateFontIndirect(LOGFONT FAR *);
#endif
#endif

#ifndef NOREGION
HRGN FAR PASCAL CreateRectRgn(short, short, short, short);
void FAR PASCAL SetRectRgn(HRGN, short, short, short, short);

#ifndef NORECT
HRGN FAR PASCAL CreateRectRgnIndirect(LPRECT);
HRGN FAR PASCAL CreateEllipticRgnIndirect(LPRECT);
#endif

HRGN FAR PASCAL CreateEllipticRgn(short, short, short, short);
#ifndef NOPOINT
HRGN FAR PASCAL CreatePolygonRgn(LPPOINT, short, short);
#endif
#endif

BOOL FAR PASCAL DeleteObject(HANDLE);
#ifndef NOHDC
HANDLE FAR PASCAL SelectObject(HDC, HANDLE);
#endif

#ifndef NOREGION
#ifndef NOHDC
short FAR PASCAL SelectClipRgn(HDC, HRGN);
#endif
#endif

short FAR PASCAL GetObject(HANDLE, short, LPSTR);

#ifndef NOHDC
short FAR PASCAL SetRelAbs(HDC, short);
short FAR PASCAL GetRelAbs(HDC);
DWORD FAR PASCAL SetBkColor(HDC, DWORD);
DWORD FAR PASCAL GetBkColor(HDC);
short FAR PASCAL SetBkMode(HDC, short);
short FAR PASCAL GetBkMode(HDC);
DWORD FAR PASCAL SetTextColor(HDC, DWORD);
DWORD FAR PASCAL GetTextColor(HDC);
WORD  FAR PASCAL SetTextAlign(HDC, WORD);
WORD  FAR PASCAL GetTextAlign(HDC);
DWORD FAR PASCAL SetMapperFlags(HDC, DWORD);
DWORD FAR PASCAL GetAspectRatioFilter(HDC);
DWORD FAR PASCAL GetNearestColor(HDC, DWORD);
short FAR PASCAL SetROP2(HDC, short);
short FAR PASCAL GetROP2(HDC);
short FAR PASCAL SetStretchBltMode( HDC, short);
short FAR PASCAL GetStretchBltMode( HDC );
short FAR PASCAL SetPolyFillMode( HDC, short);
short FAR PASCAL GetPolyFillMode( HDC );
short FAR PASCAL SetMapMode(HDC, short);
short FAR PASCAL GetMapMode(HDC);
DWORD FAR PASCAL SetWindowOrg(HDC, short, short);
DWORD FAR PASCAL GetWindowOrg(HDC);
DWORD FAR PASCAL SetWindowExt(HDC, short, short);
DWORD FAR PASCAL GetWindowExt(HDC);
DWORD FAR PASCAL SetViewportOrg(HDC, short, short);
DWORD FAR PASCAL GetViewportOrg(HDC);
DWORD FAR PASCAL SetViewportExt(HDC, short, short);
DWORD FAR PASCAL GetViewportExt(HDC);

DWORD FAR PASCAL OffsetViewportOrg(HDC, short, short);
DWORD FAR PASCAL ScaleViewportExt(HDC, short, short, short, short);
DWORD FAR PASCAL OffsetWindowOrg(HDC, short, short);
DWORD FAR PASCAL ScaleWindowExt(HDC, short, short, short, short);

#ifndef NORECT
short FAR PASCAL GetClipBox(HDC, LPRECT);
#endif

short FAR PASCAL IntersectClipRect(HDC, short, short, short, short);
short FAR PASCAL OffsetClipRgn(HDC, short, short);
short FAR PASCAL ExcludeClipRect(HDC, short, short, short, short);
BOOL  FAR PASCAL PtVisible(HDC, short, short);
#endif

#ifndef NORECT
int  FAR PASCAL SetRect(LPRECT, int, int, int, int);
int  FAR PASCAL SetRectEmpty(LPRECT);
int  FAR PASCAL CopyRect(LPRECT, LPRECT);
int  FAR PASCAL InflateRect(LPRECT, int, int);
int  FAR PASCAL IntersectRect(LPRECT, LPRECT, LPRECT);
int  FAR PASCAL UnionRect(LPRECT, LPRECT, LPRECT);
int  FAR PASCAL OffsetRect(LPRECT, int, int);
BOOL FAR PASCAL IsRectEmpty(LPRECT);
BOOL FAR PASCAL EqualRect(LPRECT, LPRECT);

#ifndef NOPOINT
BOOL FAR PASCAL PtInRect(LPRECT, POINT);
#endif

#ifndef NOHDC
BOOL FAR PASCAL RectVisible(HDC, LPRECT);
#endif
#endif

#ifndef NOREGION
short FAR PASCAL CombineRgn(HRGN, HRGN, HRGN, short);
BOOL  FAR PASCAL EqualRgn(HRGN, HRGN);
short FAR PASCAL OffsetRgn(HRGN, short, short);
#endif

#ifndef NOHDC
short FAR PASCAL SetTextJustification(HDC, short, short);
DWORD FAR PASCAL GetTextExtent(HDC, LPSTR, short);
short FAR PASCAL SetTextCharacterExtra(HDC, short);
short FAR PASCAL GetTextCharacterExtra(HDC);
#endif

HANDLE FAR PASCAL  GetMetaFile(LPSTR);
BOOL   FAR PASCAL  DeleteMetaFile(HANDLE);
HANDLE FAR PASCAL  CopyMetaFile(HANDLE, LPSTR);

#ifndef NOHDC

#ifndef NOMETAFILE
void FAR PASCAL PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, WORD);
BOOL FAR PASCAL EnumMetaFile(HDC, LOCALHANDLE, FARPROC, BYTE FAR *);
#endif

BOOL  FAR PASCAL  PlayMetaFile(HDC, HANDLE);
short FAR PASCAL Escape(HDC, short, short, LPSTR, LPSTR);
short FAR PASCAL EnumFonts(HDC, LPSTR, FARPROC, LPSTR);
short FAR PASCAL EnumObjects(HDC, short, FARPROC, LPSTR);
short FAR PASCAL GetTextFace(HDC, short, LPSTR);
#ifndef NOTEXTMETRIC
BOOL  FAR PASCAL GetTextMetrics(HDC, LPTEXTMETRIC );
#endif
short FAR PASCAL GetDeviceCaps(HDC, short);
#endif

LPSTR FAR PASCAL DeviceModes(HWND, HANDLE, LPSTR, LPSTR);
short FAR PASCAL SetEnvironment(LPSTR, LPSTR, WORD);
short FAR PASCAL GetEnvironment(LPSTR, LPSTR, WORD);

#ifndef NOHDC
#ifndef NOPOINT
BOOL FAR PASCAL DPtoLP(HDC, LPPOINT, short);
BOOL FAR PASCAL LPtoDP(HDC, LPPOINT, short);
#endif
#endif

/* Interface to the dynamic loader/linker */

WORD	FAR PASCAL GetVersion( void );
WORD	FAR PASCAL GetNumTasks( void );
HANDLE	FAR PASCAL GetCodeHandle( FARPROC );
HANDLE	FAR PASCAL GetModuleHandle( LPSTR );
int	FAR PASCAL GetModuleUsage( HANDLE );
int	FAR PASCAL GetModuleFileName( HANDLE, LPSTR, int );
int	FAR PASCAL GetInstanceData( HANDLE, NPSTR, int );
FARPROC FAR PASCAL GetProcAddress(  HANDLE, LPSTR );
FARPROC FAR PASCAL MakeProcInstance( FARPROC, HANDLE );
void	FAR PASCAL FreeProcInstance( FARPROC );
HANDLE	FAR PASCAL LoadLibrary( LPSTR );
HANDLE	FAR PASCAL FreeLibrary( HANDLE );

BOOL  FAR PASCAL AnsiToOem( LPSTR, LPSTR );
BOOL  FAR PASCAL OemToAnsi( LPSTR, LPSTR );
LPSTR FAR PASCAL AnsiUpper( LPSTR );
LPSTR FAR PASCAL AnsiLower( LPSTR );
LPSTR FAR PASCAL AnsiNext( LPSTR );
LPSTR FAR PASCAL AnsiPrev( LPSTR, LPSTR );

#ifndef NOOPENFILE

typedef struct tagOFSTRUCT {
    BYTE    cBytes;		    /* length of structure */
    BYTE    fFixedDisk;		    /* non-zero if file located on non- */
				    /* removeable media */
    WORD    nErrCode;		    /* DOS error code if OpenFile fails */
    BYTE    reserved[4];
    BYTE    szPathName[128];
} OFSTRUCT;
typedef OFSTRUCT      *POFSTRUCT;
typedef OFSTRUCT NEAR *NPOFSTRUCT;
typedef OFSTRUCT FAR  *LPOFSTRUCT;

BYTE FAR PASCAL GetTempDrive( BYTE );

int  FAR PASCAL GetTempFileName( BYTE, LPSTR, WORD, LPSTR );
int  FAR PASCAL OpenFile( LPSTR, LPOFSTRUCT, WORD );

/* Flags for GetTempFileName */

#define TF_FORCEDRIVE	(BYTE)0x80  /* Forces use of current dir of passed */
				    /* drive */
/* Flags for OpenFile */

#define OF_REOPEN 0x8000
#define OF_EXIST  0x4000
#define OF_PROMPT 0x2000
#define OF_CREATE 0x1000
#define OF_CANCEL 0x0800
#define OF_VERIFY 0x0400
#define OF_DELETE 0x0200
#define OF_PARSE  0x0100

#define OF_READ	     0
#define OF_WRITE     1
#define OF_READWRITE 2
#endif

#ifndef NOMEMMGR
/* Interface to global memory manager */
#define GMEM_FIXED	    0x0000
#define GMEM_MOVEABLE	    0x0002
#define GMEM_NOCOMPACT	    0x0010
#define GMEM_NODISCARD	    0x0020
#define GMEM_ZEROINIT	    0x0040
#define GMEM_MODIFY	    0x0080
#define GMEM_DISCARDABLE    0x0F00
#define GHND	(GMEM_MOVEABLE | GMEM_ZEROINIT)
#define GPTR	(GMEM_FIXED    | GMEM_ZEROINIT)
#define GMEM_SHARE	    0x2000
#define GMEM_DDESHARE	    0x2000
#define GMEM_NOT_BANKED     0x1000
#define GMEM_NOTIFY	    0x4000
#define GMEM_LOWER	    GMEM_NOT_BANKED


HANDLE FAR PASCAL GlobalAlloc( WORD, DWORD );
DWORD  FAR PASCAL GlobalCompact( DWORD );
#define GlobalDiscard( h ) GlobalReAlloc( h, 0L, GMEM_MOVEABLE )
HANDLE FAR PASCAL GlobalFree( HANDLE );
DWORD  FAR PASCAL GlobalHandle( WORD );
LPSTR  FAR PASCAL GlobalLock( HANDLE );
HANDLE FAR PASCAL GlobalReAlloc( HANDLE, DWORD, WORD );
DWORD  FAR PASCAL GlobalSize( HANDLE );
BOOL   FAR PASCAL GlobalUnlock( HANDLE );
WORD   FAR PASCAL GlobalFlags( HANDLE );
LPSTR  FAR PASCAL GlobalWire( HANDLE );
BOOL   FAR PASCAL GlobalUnWire( HANDLE );
BOOL   FAR PASCAL GlobalUnlock( HANDLE );
HANDLE FAR PASCAL GlobalLRUNewest( HANDLE );
HANDLE FAR PASCAL GlobalLRUOldest( HANDLE );
VOID   FAR PASCAL GlobalNotify( LPSTR );

/* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
#define GMEM_DISCARDED	    0x4000
#define GMEM_LOCKCOUNT	    0x00FF

#define LockData( dummy )   LockSegment( 0xFFFF )
#define UnlockData( dummy ) UnlockSegment( 0xFFFF )
HANDLE FAR PASCAL LockSegment( WORD );
HANDLE FAR PASCAL UnlockSegment( WORD );

/* Interface to local memory manager */

#define LMEM_FIXED	    0x0000
#define LMEM_MOVEABLE	    0x0002
#define LMEM_NOCOMPACT	    0x0010
#define LMEM_NODISCARD	    0x0020
#define LMEM_ZEROINIT	    0x0040
#define LMEM_MODIFY	    0x0080
#define LMEM_DISCARDABLE    0x0F00
#define LHND		(LMEM_MOVEABLE | LMEM_ZEROINIT)
#define LPTR		(LMEM_FIXED    | LMEM_ZEROINIT)
#define NONZEROLHND	(LMEM_MOVEABLE)
#define NONZEROLPTR	(LMEM_FIXED)

#define LNOTIFY_OUTOFMEM 0
#define LNOTIFY_MOVE	 1
#define LNOTIFY_DISCARD	 2

HANDLE	FAR PASCAL LocalAlloc( WORD, WORD );
WORD	FAR PASCAL LocalCompact( WORD );
#define LocalDiscard( h ) LocalReAlloc( h, 0, LMEM_MOVEABLE )
HANDLE	FAR PASCAL LocalFree( HANDLE );
HANDLE	FAR PASCAL LocalHandle( WORD );
WORD	NEAR * PASCAL pLocalHeap;
#define LocalFreeze( dummy ) ( *(pLocalHeap+1) += 1 )
#define LocalHandleDelta( delta ) ( (delta) ? (*(pLocalHeap+9) = (delta)) : *(pLocalHeap+9))
BOOL	FAR PASCAL LocalInit( WORD, char NEAR *, char NEAR * );
char NEAR * FAR PASCAL LocalLock( HANDLE );
#define LocalMelt( dummy )   ( *(pLocalHeap+1) -= 1 )
FARPROC FAR PASCAL LocalNotify( FARPROC );
HANDLE	FAR PASCAL LocalReAlloc( HANDLE, WORD, WORD );
WORD	FAR PASCAL LocalSize( HANDLE );
BOOL	FAR PASCAL LocalUnlock( HANDLE );
WORD	FAR PASCAL LocalFlags( HANDLE );
WORD	FAR PASCAL LocalShrink( HANDLE, WORD );

/* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
#define LMEM_DISCARDED	    0x4000
#define LMEM_LOCKCOUNT	    0x00FF
#endif

/* SetSwapAreaSize really returns 2 words - 
    lo word is Size actually set (or current size if you passed in 0)
    hi word is Max size you can get
*/
LONG   FAR PASCAL SetSwapAreaSize ( WORD );
LPSTR  FAR PASCAL ValidateFreeSpaces ( void );

VOID   FAR PASCAL LimitEmsPages ( DWORD );

BOOL   FAR PASCAL SetErrorMode ( WORD );

/* Interface to the resource manager */

HANDLE FAR PASCAL FindResource( HANDLE, LPSTR, LPSTR );
HANDLE FAR PASCAL LoadResource( HANDLE, HANDLE );
BOOL   FAR PASCAL FreeResource( HANDLE );

LPSTR  FAR PASCAL LockResource( HANDLE );
#define UnlockResource( h ) GlobalUnlock( h )

FARPROC FAR PASCAL SetResourceHandler( HANDLE, LPSTR, FARPROC );
HANDLE	FAR PASCAL AllocResource( HANDLE, HANDLE, DWORD );
WORD	FAR PASCAL SizeofResource( HANDLE, HANDLE );
int	FAR PASCAL AccessResource( HANDLE, HANDLE );


#define MAKEINTRESOURCE(i)  (LPSTR)((DWORD)((WORD)(i)))

#ifndef NORESOURCE
/* Predefined resource types */
#define RT_CURSOR	MAKEINTRESOURCE( 1 )
#define RT_BITMAP	MAKEINTRESOURCE( 2 )
#define RT_ICON		MAKEINTRESOURCE( 3 )
#define RT_MENU		MAKEINTRESOURCE( 4 )
#define RT_DIALOG	MAKEINTRESOURCE( 5 )
#define RT_STRING	MAKEINTRESOURCE( 6 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -