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

📄 win.inc

📁 C-编译器的设计文档与源代码下载,1. 具有比较友好的GUI界面(仿照了我自己正在用的emacs); 2. 语法支持比较全面(毕竟是C-
💻 INC
📖 第 1 页 / 共 5 页
字号:
;----------------------------------------------------------------------------;
;                               WINDOWS.INC                                  ;
;----------------------------------------------------------------------------;
;           Using H2INC to Convert the WINDOWS.H include file.               ;
;----------------------------------------------------------------------------;
;                                                                            ;
; THE EXPLANATION BEHIND THESE CHANGES CAN BE FOUND IN THE 'USER-DEFINED AND ;
; PREDEFINED CONSTANTS' SECTION OF THE ENVIRONMENT & TOOLS CHAPTER ON H2INC. ;
;                                                                            ;
; To use the windows.h file in MASM, some changes have to be made before     ;
; running the file through H2INC:                                            ;
;                                                                            ;
;       1. Since MASM keywords should not be redefined, an underscore was    ;
;          added to the following Windows keywords: SIZE, cx, dx, length,    ;
;          offset. You should remember appending the underscore in your MASM ;
;          programs, for example _SIZE, _cx, _dx, ...                        ;
;                                                                            ;
;       2. Parenthesis around negative numbers were removed: (-4) is now -4  ;
;                                                                            ;
;       3. The MAKEINTRESOURCE and MAKEINTATOM macros were eliminated:       ;
;              They were changed to                                          ;
;                                       #define MAKEINTRESOURCE(i) i         ;
;                                       #define MAKEINTATOM(i) i             ;
;          If any of the resources were negative numbers, #2 above would     ;
;          apply as well.                                                    ;
;                                                                            ;
;       4. Definitions that included a type cast conversion were altered     ;
;            i.e.,            '#define HFILE_ERROR ((HFILE) -1)'             ;
;            is now           '#define HFILE_ERROR -1'                       ;
;          This was done for: HINSTANCE_ERROR, HFILE_ERROR, HWND_BROADCAST,  ;
;               HWND_DESKTOP, CW_USEDEFAULT, HWND_TOP, HWND_BOTTOM,          ;
;               HWND_TOPMOST and HWND_NOTOPMOST.                             ;
;                                                                            ;
;----------------------------------------------------------------------------;
;                                                                            ;
; After running windows.h through H2INC, some change were made to the file   ;
;                                                                            ;
;	THESE CHANGES ARE OPTIONAL. THEY ONLY ENHANCE WINDOWS.INC.           ;
;                                                                            ;
;	1. If ?WINPROLOGUE is defined, then PROLOGUE.INC is included with    ;
;	   the INCBP and LOADDS options.                                     ;
;                                                                            ;
;	2. The DOS3Call prototype was added. This function isn't defined in  ;
;	   WINDOWS.H, but assembly programmers find it useful.               ;
;                                                                            ;
;	3. IFDEFs corresponding to WINDOWS.H ifdefs were included. To reduce ;
;	   assembly time, these variables can be set to avoid inclusion of   ;
;	   some areas. The meaning of the variables follows, by way of the   ;
;	   comment included in WINDOWS.H.			 	     ;
;                                                                            ;
;----------------------------------------------------------------------------;

ifdef	?WINPROLOGUE

ECHO
ECHO Loading prologue.inc.
ECHO
                                                  ;------ PROLOGUE.INC ------;
?WP_INCBP       = 1                               ; INC  BP on all far procs ;
?WP_LOADDS      = 1                               ; LOAD DS on all far procs ;
                include prologue.inc              ;--------------------------;

endif

; Not in WINDOWS.H, but useful for assembly programming 

DOS3Call	PROTO FAR PASCAL		 ; INT 21h CALLING ROUTINE

comment ^

/*****************************************************************************\
*                                                                             *
* windows.h -   Windows functions, types, and definitions                     *
*                                                                             *
*               Version 3.10                                                  *
*                                                                             *
*               Copyright (c) 1985-1992, Microsoft Corp. All rights reserved. *
*                                                                             *
*******************************************************************************
*
* The following symbols control inclusion of various parts of this file:
*
* WINVER            Windows version number (0x030a).  To exclude
*                   definitions introduced in version 3.1 (or above)
*                   #define WINVER 0x0300 before #including <windows.h>
*
* #define:          To prevent inclusion of:
*
* NOKERNEL          KERNEL APIs and definitions
* NOGDI             GDI APIs and definitions
* NOUSER            USER APIs and definitions
* NOSOUND           Sound APIs and definitions
* NOCOMM            Comm driver APIs and definitions
* NODRIVERS         Installable driver APIs and definitions
*
* NOHELP            Help support
* NOCLIPBOARD       Clipboard APIs and definitions
* NOMENUS           Menu APIs
* NOSCROLL          Scrolling APIs and scroll bar control
*
\****************************************************************************/

^

option expr32
option casemap:none

; Begin of file win31.h

ifndef _INC_WINDOWS_INC		; if WINDOWS.INC hasn't been included
_INC_WINDOWS_INC = 1

WINVER		EQU		00000030ah	; assume WINDOWS 3.1

BOOL		TYPEDEF		SWORD

FALSE		EQU		0t
TRUE		EQU		1t
UINT		TYPEDEF		WORD

WPARAM		TYPEDEF		UINT

LPARAM		TYPEDEF		SDWORD

LRESULT		TYPEDEF		SDWORD

NULL		EQU		0t
PSTR		TYPEDEF		NEAR PTR SBYTE

NPSTR		TYPEDEF		NEAR PTR SBYTE

LPSTR		TYPEDEF		FAR PTR SBYTE

LPCSTR		TYPEDEF		FAR PTR SBYTE

PBYTE		TYPEDEF		NEAR PTR BYTE

LPBYTE		TYPEDEF		FAR PTR BYTE

PINT		TYPEDEF		NEAR PTR SWORD

LPINT		TYPEDEF		FAR PTR SWORD

PWORD		TYPEDEF		NEAR PTR WORD

LPWORD		TYPEDEF		FAR PTR WORD

PLONG		TYPEDEF		NEAR PTR SDWORD

LPLONG		TYPEDEF		FAR PTR SDWORD

PDWORD		TYPEDEF		NEAR PTR DWORD

LPDWORD		TYPEDEF		FAR PTR DWORD

LPVOID		TYPEDEF		FAR PTR 

HANDLE		TYPEDEF		UINT

PHANDLE		TYPEDEF		PTR HANDLE

SPHANDLE		TYPEDEF		NEAR PTR HANDLE

LPHANDLE		TYPEDEF		FAR PTR HANDLE

HGLOBAL		TYPEDEF		HANDLE

HLOCAL		TYPEDEF		HANDLE

GLOBALHANDLE		TYPEDEF		HANDLE

LOCALHANDLE		TYPEDEF		HANDLE

ATOM		TYPEDEF		UINT

FARPROC		TYPEDEF		FAR PTR 

NEARPROC		TYPEDEF		NEAR PTR 

HSTR		TYPEDEF		UINT

HINSTANCE		TYPEDEF		UINT

HMODULE		TYPEDEF		HINSTANCE

ifndef NOKERNEL	; KERNEL FUNCTIONS

@proto_0		TYPEDEF		PROTO FAR PASCAL 
GetVersion		PROTO		@proto_0

@proto_1		TYPEDEF		PROTO FAR PASCAL :UINT
GetFreeSpace		PROTO		@proto_1

@proto_2		TYPEDEF		PROTO FAR PASCAL 
GetCurrentPDB		PROTO		@proto_2

@proto_3		TYPEDEF		PROTO FAR PASCAL :LPSTR, :UINT
GetWindowsDirectory		PROTO		@proto_3

@proto_4		TYPEDEF		PROTO FAR PASCAL :LPSTR, :UINT
GetSystemDirectory		PROTO		@proto_4

@proto_5		TYPEDEF		PROTO FAR PASCAL :UINT
GetFreeSystemResources		PROTO		@proto_5

GFSR_SYSTEMRESOURCES		EQU		000000000h
GFSR_GDIRESOURCES		EQU		000000001h
GFSR_USERRESOURCES		EQU		000000002h

@proto_6		TYPEDEF		PROTO FAR PASCAL 
GetWinFlags		PROTO		@proto_6

WF_PMODE		EQU		000000001h
WF_CPU286		EQU		000000002h
WF_CPU386		EQU		000000004h
WF_CPU486		EQU		000000008h
WF_STANDARD		EQU		000000010h
WF_WIN286		EQU		000000010h
WF_ENHANCED		EQU		000000020h
WF_WIN386		EQU		000000020h
WF_CPU086		EQU		000000040h
WF_CPU186		EQU		000000080h
WF_LARGEFRAME		EQU		000000100h
WF_SMALLFRAME		EQU		000000200h
WF_80x87		EQU		000000400h
WF_PAGING		EQU		000000800h
WF_WLO		EQU		000008000h
@proto_7		TYPEDEF		PROTO FAR PASCAL 
GetDOSEnvironment		PROTO		@proto_7

@proto_8		TYPEDEF		PROTO FAR PASCAL 
GetCurrentTime		PROTO		@proto_8

@proto_9		TYPEDEF		PROTO FAR PASCAL 
GetTickCount		PROTO		@proto_9

@proto_10		TYPEDEF		PROTO FAR PASCAL 
GetTimerResolution		PROTO		@proto_10

@proto_11		TYPEDEF		PROTO FAR PASCAL :UINT, :FAR PTR 
LogError		PROTO		@proto_11

@proto_12		TYPEDEF		PROTO FAR PASCAL :UINT, :FARPROC, :FAR PTR 
LogParamError		PROTO		@proto_12

ERR_WARNING		EQU		000008000h
ERR_PARAM		EQU		000004000h
ERR_SIZE_MASK		EQU		000003000h
ERR_BYTE		EQU		000001000h
ERR_WORD		EQU		000002000h
ERR_DWORD		EQU		000003000h
ERR_BAD_VALUE		EQU		000006001h
ERR_BAD_FLAGS		EQU		000006002h
ERR_BAD_INDEX		EQU		000006003h
ERR_BAD_DVALUE		EQU		000007004h
ERR_BAD_DFLAGS		EQU		000007005h
ERR_BAD_DINDEX		EQU		000007006h
ERR_BAD_PTR		EQU		000007007h
ERR_BAD_FUNC_PTR		EQU		000007008h
ERR_BAD_SELECTOR		EQU		000006009h
ERR_BAD_STRING_PTR		EQU		00000700ah
ERR_BAD_HANDLE		EQU		00000600bh
ERR_BAD_HINSTANCE		EQU		000006020h
ERR_BAD_HMODULE		EQU		000006021h
ERR_BAD_GLOBAL_HANDLE		EQU		000006022h
ERR_BAD_LOCAL_HANDLE		EQU		000006023h
ERR_BAD_ATOM		EQU		000006024h
ERR_BAD_HFILE		EQU		000006025h
ERR_BAD_HWND		EQU		000006040h
ERR_BAD_HMENU		EQU		000006041h
ERR_BAD_HCURSOR		EQU		000006042h
ERR_BAD_HICON		EQU		000006043h
ERR_BAD_HDWP		EQU		000006044h
ERR_BAD_CID		EQU		000006045h
ERR_BAD_HDRVR		EQU		000006046h
ERR_BAD_COORDS		EQU		000007060h
ERR_BAD_GDI_OBJECT		EQU		000006061h
ERR_BAD_HDC		EQU		000006062h
ERR_BAD_HPEN		EQU		000006063h
ERR_BAD_HFONT		EQU		000006064h
ERR_BAD_HBRUSH		EQU		000006065h
ERR_BAD_HBITMAP		EQU		000006066h
ERR_BAD_HRGN		EQU		000006067h
ERR_BAD_HPALETTE		EQU		000006068h
ERR_BAD_HMETAFILE		EQU		000006069h
ERR_GALLOC		EQU		000000001h
ERR_GREALLOC		EQU		000000002h
ERR_GLOCK		EQU		000000003h
ERR_LALLOC		EQU		000000004h
ERR_LREALLOC		EQU		000000005h
ERR_LLOCK		EQU		000000006h
ERR_ALLOCRES		EQU		000000007h
ERR_LOCKRES		EQU		000000008h
ERR_LOADMODULE		EQU		000000009h
ERR_CREATEDLG		EQU		000000040h
ERR_CREATEDLG2		EQU		000000041h
ERR_REGISTERCLASS		EQU		000000042h
ERR_DCBUSY		EQU		000000043h
ERR_CREATEWND		EQU		000000044h
ERR_STRUCEXTRA		EQU		000000045h
ERR_LOADSTR		EQU		000000046h
ERR_LOADMENU		EQU		000000047h
ERR_NESTEDBEGINPAINT		EQU		000000048h
ERR_BADINDEX		EQU		000000049h
ERR_CREATEMENU		EQU		00000004ah
ERR_CREATEDC		EQU		000000080h
ERR_CREATEMETA		EQU		000000081h
ERR_DELOBJSELECTED		EQU		000000082h
ERR_SELBITMAP		EQU		000000083h
tagWINDEBUGINFO		STRUCT 1t
flags		UINT		?
dwOptions		DWORD		?
dwFilter		DWORD		?
achAllocModule		SBYTE		8t DUP (?)
dwAllocBreak		DWORD		?
dwAllocCount		DWORD		?
tagWINDEBUGINFO		ENDS

WINDEBUGINFO		TYPEDEF		tagWINDEBUGINFO

@proto_13		TYPEDEF		PROTO FAR PASCAL :FAR PTR WINDEBUGINFO, :UINT
GetWinDebugInfo		PROTO		@proto_13

@proto_14		TYPEDEF		PROTO FAR PASCAL :FAR PTR tagWINDEBUGINFO
SetWinDebugInfo		PROTO		@proto_14

@proto_15		TYPEDEF		PROTO FAR C :UINT, :LPCSTR, :VARARG
DebugOutput		PROTO		@proto_15

WDI_OPTIONS		EQU		000000001h
WDI_FILTER		EQU		000000002h
WDI_ALLOCBREAK		EQU		000000004h
DBO_CHECKHEAP		EQU		000000001h
DBO_BUFFERFILL		EQU		000000004h
DBO_DISABLEGPTRAPPING		EQU		000000010h
DBO_CHECKFREE		EQU		000000020h
DBO_SILENT		EQU		000008000h
DBO_TRACEBREAK		EQU		000002000h
DBO_WARNINGBREAK		EQU		000001000h
DBO_NOERRORBREAK		EQU		000000800h
DBO_NOFATALBREAK		EQU		000000400h
DBO_INT3BREAK		EQU		000000100h
DBF_TRACE		EQU		000000000h
DBF_WARNING		EQU		000004000h
DBF_ERROR		EQU		000008000h
DBF_FATAL		EQU		00000c000h
DBF_KERNEL		EQU		000001000h
DBF_KRN_MEMMAN		EQU		000000001h
DBF_KRN_LOADMODULE		EQU		000000002h
DBF_KRN_SEGMENTLOAD		EQU		000000004h
DBF_USER		EQU		000000800h
DBF_GDI		EQU		000000400h
DBF_MMSYSTEM		EQU		000000040h
DBF_PENWIN		EQU		000000020h
DBF_APPLICATION		EQU		000000008h
DBF_DRIVER		EQU		000000010h
@proto_16		TYPEDEF		PROTO FAR PASCAL :SWORD
FatalExit		PROTO		@proto_16

@proto_17		TYPEDEF		PROTO FAR PASCAL :UINT, :LPCSTR
FatalAppExit		PROTO		@proto_17

@proto_18		TYPEDEF		PROTO FAR PASCAL :DWORD, :UINT
ExitWindows		PROTO		@proto_18

EW_RESTARTWINDOWS		EQU		000000042h
EW_REBOOTSYSTEM		EQU		000000043h
@proto_19		TYPEDEF		PROTO FAR PASCAL :LPCSTR, :LPCSTR
ExitWindowsExec		PROTO		@proto_19

@proto_20		TYPEDEF		PROTO FAR PASCAL 
DebugBreak		PROTO		@proto_20

@proto_21		TYPEDEF		PROTO FAR PASCAL :LPCSTR
OutputDebugString		PROTO		@proto_21

SEM_FAILCRITICALERRORS		EQU		000000001h
SEM_NOGPFAULTERRORBOX		EQU		000000002h
SEM_NOOPENFILEERRORBOX		EQU		000008000h
@proto_22		TYPEDEF		PROTO FAR PASCAL :UINT
SetErrorMode		PROTO		@proto_22

@proto_23		TYPEDEF		PROTO FAR PASCAL :FAR PTR , :UINT
IsBadReadPtr		PROTO		@proto_23

@proto_24		TYPEDEF		PROTO FAR PASCAL :FAR PTR , :UINT
IsBadWritePtr		PROTO		@proto_24

@proto_25		TYPEDEF		PROTO FAR PASCAL :FAR PTR , :DWORD
IsBadHugeReadPtr		PROTO		@proto_25

@proto_26		TYPEDEF		PROTO FAR PASCAL :FAR PTR , :DWORD
IsBadHugeWritePtr		PROTO		@proto_26

@proto_27		TYPEDEF		PROTO FAR PASCAL :FARPROC
IsBadCodePtr		PROTO		@proto_27

@proto_28		TYPEDEF		PROTO FAR PASCAL :FAR PTR , :UINT
IsBadStringPtr		PROTO		@proto_28

@proto_29		TYPEDEF		PROTO FAR PASCAL 
ProfInsChk		PROTO		@proto_29

@proto_30		TYPEDEF		PROTO FAR PASCAL :SWORD, :SWORD
ProfSetup		PROTO		@proto_30

@proto_31		TYPEDEF		PROTO FAR PASCAL :SWORD, :SWORD
ProfSampRate		PROTO		@proto_31

@proto_32		TYPEDEF		PROTO FAR PASCAL 
ProfStart		PROTO		@proto_32

@proto_33		TYPEDEF		PROTO FAR PASCAL 
ProfStop		PROTO		@proto_33

@proto_34		TYPEDEF		PROTO FAR PASCAL 
ProfClear		PROTO		@proto_34

@proto_35		TYPEDEF		PROTO FAR PASCAL 
ProfFlush		PROTO		@proto_35

@proto_36		TYPEDEF		PROTO FAR PASCAL 
ProfFinish		PROTO		@proto_36

CATCHBUF		TYPEDEF		SWORD

LPCATCHBUF		TYPEDEF		FAR PTR SWORD

@proto_37		TYPEDEF		PROTO FAR PASCAL :FAR PTR SWORD
Catch		PROTO		@proto_37

@proto_38		TYPEDEF		PROTO FAR PASCAL :FAR PTR SWORD, :SWORD
Throw		PROTO		@proto_38

@proto_39		TYPEDEF		PROTO FAR PASCAL 
SwitchStackBack		PROTO		@proto_39

@proto_40		TYPEDEF		PROTO FAR PASCAL :UINT, :UINT, :UINT
SwitchStackTo		PROTO		@proto_40

@proto_41		TYPEDEF		PROTO FAR PASCAL :LPCSTR, :LPVOID
LoadModule		PROTO		@proto_41

@proto_42		TYPEDEF		PROTO FAR PASCAL :HINSTANCE
FreeModule		PROTO		@proto_42

@proto_43		TYPEDEF		PROTO FAR PASCAL :LPCSTR
LoadLibrary		PROTO		@proto_43

@proto_44		TYPEDEF		PROTO FAR PASCAL :HINSTANCE
FreeLibrary		PROTO		@proto_44

@proto_45		TYPEDEF		PROTO FAR PASCAL :LPCSTR, :UINT
WinExec		PROTO		@proto_45

@proto_46		TYPEDEF		PROTO FAR PASCAL :LPCSTR
GetModuleHandle		PROTO		@proto_46

@proto_47		TYPEDEF		PROTO FAR PASCAL :HINSTANCE
GetModuleUsage		PROTO		@proto_47

⌨️ 快捷键说明

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