Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1198 lines
48 KiB

; ---------------------------------------------------------------------------
;
; OBSOLETE.INC
;
; Old message thunking macros, no longer used.
;
; ---------------------------------------------------------------------------
; -------------
; FROM DISP.INC
; -------------
;-----------------------------------------------------------------------;
; DefMsgTable
;
; list
; The list of table code-names to create table entries from.
;
; table_suffix
; The suffix which distinguishes this table name from others.
;
; table_size
; The size of entries in the tables that this table refers to.
;
; direction
; The direction of thunking the table refers to.
;
; Define tables of offsets to tables indexed by message number.
; The tables self-check the accuracy of ordering of entries.
;-----------------------------------------------------------------------;
DefMsgTable macro list:req,table_suffix:req,table_size:req,direction:req
local tbl, tbl_entry, table_index
; Create and execute a statement of the form:
;
; tbl equ <awSLIndexTable>
cat <tbl equ >,!<,aw,&direction,&table_suffix,<Table>,!>
; Define the array of tables and declare its name.
% externDef tbl:word
% tbl label word
table_index = 0
for x,<list>
if table_index NE CLASS_&x
.err
endif
; Create and execute a statement of the form:
;
; tbl_entry equ <abWMSLIndex>, or
; tbl_entry equ <awWMSLIndex>
ifidni <&table_size>,<byte>
cat <tbl_entry equ >,!<,ab,x,&direction,&table_suffix,!>
else
ifidni <&table_size>,<word>
cat <tbl_entry equ >,!<,aw,x,&direction,&table_suffix,!>
else
;unrecognized table size
.err
endif
endif
; Create a table entry and declare its name.
% externDef tbl_entry:&table_size
% dw offset tbl_entry
table_index = table_index + 1
endm
endm
;-----------------------------------------------------------------------;
; DefAllExternMsgTables
;
; list
; The list of table code-names from which to create tables.
;
; direction
; The direction of the thunks (i.e. LS or SL).
;
; Create all the necessary tables for dispatching message thunks in
; the given direction.
;-----------------------------------------------------------------------;
DefAllExternMsgTables macro list:req, direction:req
local symbol_name
for x,<list>
; Create and execute a statement of the form:
;
; symbol_name equ <awWMSLOffset>
cat <symbol_name equ >,!<,aw,x,&direction,Offset,!>
% externDef symbol_name:word
; Create and execute a statement of the form:
;
; symbol_name equ <abWMSLIndex>
cat <symbol_name equ >,!<,ab,x,&direction,Index,!>
% externDef symbol_name:byte
; Create and execute a statement of the form:
;
; symbol_name equ <abWMSLRet>
cat <symbol_name equ >,!<,ab,x,&direction,Ret,!>
% externDef symbol_name:byte
endm
endm
; ---------------
; FROM MSGTBL.INC
; ---------------
;-----------------------------------------------------------------------;
; thk
;
; name
; A message name.
;
; number
; A message number.
;
; afSpecial
; A list (in angle brackets) of the various directions of special
; thunks needed for this message. The valid codes are:
;
; SL ==> special thunk required going short to long (16->32)
; LS ==> special thunk required going long to short (32->16)
;
; A message may only require a thunk in one direction, in which
; case only the one appropriate code should be given.
;
; ret_type
; A code specifying the return type of the message.
;
; fDefNoStruc
; Indicates whether or not the default thunk applies when
; the TF_NOSTRUC flag is set. If so, the only action in the
; SL direction is to combine wParamLo & wParamHi; in the LS
; direction, to split up wParam into wParamLo and wParamHi.
;
; Example:
;
; thk WM_CREATE,1,<SL,LS>,RC_BOOL
;
; Dependencies:
; This macro depends on the definition of the two constants:
;
; "dir" the direction of the thunks being defined
; "tbl" the code name of the thunk table
;
; The thk macro creates the symbols used to check for special thunks.
; It also generates the thunk entries by invoking the add_thunk macro.
; No code is generated, but the symbols created are used to produce
; code later on by make_index_entries, make_thunk_entries, and
; make_ret_entries.
;
; This macro allows all the thunk dispatch information needed about a
; message to be defined in one place, to make maintaining the big list
; of messages easier. The list itself is in a separate include file
; (msg.inc).
;-----------------------------------------------------------------------;
thk macro name:req,number:req,afSpecial,ret_type:=<RC_DEFAULT>,fDefNoStruc:=<0>
local has_thunk, msg, low_msg, high_msg
;; Update highest message number processed. Messages must be sorted,
;; so if number does not increase it's an error. If there is a gap
;; of one or more messages between the previously highest number andu
;; the new one, fill in the index_xxyy_## values with the value
;; UNIMPLEMENTED_THUNK. In the debug build, if one of these messages
;; is used, a warning will be displayed on the debug terminal.
if max_msg LT number
if max_msg LT (number + 1)
low_msg = max_msg + 1
high_msg = number - 1
msg = low_msg
repeat (high_msg - low_msg + 1)
add_null_thunk %tbl, %msg, UNIMPLEMENTED_THUNK
msg = msg + 1
endm
endif
max_msg = number
else
.err
endif
;;If the message has a special thunk, define the symbols necessary to
;;build the proper dispatch tables.
ifnb <afSpecial>
has_thunk = 0
for x,<afSpecial>
has_thunk = has_thunk or check_thunk(x)
endm
if has_thunk
add_thunk %tbl, name, %max_msg, ret_type, fDefNoStruc
else
add_null_thunk %tbl, %max_msg, COMMON_THUNK, ret_type
endif
else
add_null_thunk %tbl, %max_msg, COMMON_THUNK, ret_type
endif
endm
;-----------------------------------------------------------------------;
; begin_thunk_table
;
; This macro initializes the variables used by thk.
;
; tbl_base lowest message number in table
; tbl_limit highest message number in table
; max_msg highest message number processed so far
; max_index next index into table of thunk procedure offsets
;-----------------------------------------------------------------------;
begin_thunk_table macro table_name:req
tbl equ <&table_name>
DefTableLimits table_name
max_msg = tbl_base - 1
max_index = 1
endm
;-----------------------------------------------------------------------;
; end_thunk_table
;
; This macro defines all message indices from max_msg+1 to tbl_limit as
; UNIMPLEMENTED_THUNK. This saves the message thunk dispatcher from
; having to do an extra test for the last defined message.
;-----------------------------------------------------------------------;
end_thunk_table macro
local high_msg, low_msg, msg
;;Check that our table isn't too big.
% if max_msg GT tbl_limit
.err
endif
% if max_msg LT tbl_limit
low_msg = max_msg + 1
high_msg = tbl_limit
msg = low_msg
% rept (high_msg - low_msg + 1)
add_null_thunk %tbl,%msg,UNIMPLEMENTED_THUNK
msg = msg + 1
endm
max_msg = tbl_limit
endif
endm
;-----------------------------------------------------------------------;
; check_thunk
;
; flag
; An item from the list of special flags given to the thk macros
; in msg.inc. These flags indicate whether a message has a special
; thunk in each direction. "flag" is one of the flags.
;
; Macro function which returns 1 (TRUE) if "flag" has the same value as
; "dir", 0 (FALSE) otherwise.
;
; This macro is invoked by the thk macro in order to know whether to
; invoke add_thunk or add_null_thunk.
;-----------------------------------------------------------------------;
check_thunk macro flag:req
local has_thunk
has_thunk = 0
% ifidni <flag>,<dir>
has_thunk = 1
endif
exitm %has_thunk
endm
;-----------------------------------------------------------------------;
; add_thunk
;
; tbl
; Code for table (i.e. WM, etc.).
;
; name
; The name of a message for which a thunk dispatch table entry
; should be created.
;
; number
; The corresponding message number.
;
; ret_type
; A code specifying the return type of the message.
;
; fDefNoStruc
; Indicates whether or not the default thunk applies when
; the TF_NOSTRUC flag is set. If so, the only action in the
; SL direction is to zero-extend wParam; in the LS direction,
; to truncate wParam.
;
;
; This macro is invoked by the thk macro. It creates the symbols that
; will be used by the table creation macros invoked at the end of this
; file.
;
; The labels take the form of pfn_xxyy_## and index_xxyy_## where
; xx is the table code, yy is the direction, and ## is a message number
; in decimal.
;
; pfn_WMSL_1 equ WMSL_WM_CREATE
; index_WMSL_1 equ 2
; ret_WMSL_1 equ RC_BOOL
;
; The pfn_xxyy_## symbol records the thunk procedure address for
; message number ## in table xx in the yy direction, and the index_xxyy_##
; records its position in the compacted table of thunk procedure offsets. All
; messages have a corresponding index_xxyy_## symbol. If the symbol value is
; COMMON_THUNK or UNIMPLEMENTED_THUNK, then there is no special thunk for the
; message and there is no corresponding pfn_xxyy_## symbol. If the symbol
; value is nonzero, pfn_xxyy_## is defined.
;
; The pfn_xxyy_## values are 16-bit addresses. The address of the
; first thunk procedure is subtracted to create a 16-bit offset before
; storing in the thunk offset table.
;
; The ret_xxyy_## symbol holds the return type of the message, used for
; building a table the dispatcher will use to correctly thunk the message
; return code.
;
; The variable max_index keeps track of what the next nonzero index
; should be. The first entry in the thunk offset table is the default thunk,
; so special thunks start at index 1. Only one table is processed at a
; time, so max_index is re-used by all.
;-----------------------------------------------------------------------;
add_thunk macro tbl:req,name:req,number:req,ret_type:=<RC_DEFAULT>,fDefNoStruc:=<0>
;; Create and execute statement such as:
;;
;; pfn_WMSL_1 equ WMSL_WM_CREATE
cat pfn_,&tbl,%dir,_,number,< equ >,&tbl,%dir,_,&name
;; Create and execute statement such as:
;;
;; index_WMSL_1 equ max_index
cat index_,&tbl,%dir,_,number,< equ max_index>
;; Create and execute statement such as:
;;
;; ret_WMSL_1 equ RC_BOOL
cat ret_,&tbl,%dir,_,number,< equ >,&ret_type
;; Create and execute statement such as:
;;
;; no_struc_1 equ 0
cat no_struc_,number,< equ >,&fDefNoStruc
;; Increment by 2 because it is an index into a table of words.
max_index = max_index + 1
;; Index 0FFh is used to indicate unimplemented thunks.
.erre max_index - 0FFh
endm
;-----------------------------------------------------------------------;
; add_null_thunk
;
; tbl
; Code for table (i.e. WM, BM, etc.).
;
; number
; The corresponding message number.
;
; value
; The index value to give the message number. This can be either
; COMMON_THUNK or UNIMPLEMENTED_THUNK.
;
; ret_type
; A code specifying the return type of the message.
;
; Same as add_thunk, except only index_xxyy_## is defined.
;-----------------------------------------------------------------------;
add_null_thunk macro tbl:req,number:req,value:=<COMMON_THUNK>,ret_type:=<RC_DEFAULT>
ifdef DEBUG
;; Create and execute statement such as:
;;
;; index_WMSL_1 equ COMMON_THUNK
cat index_,&tbl,%dir,_,number,< equ >,&value
else
;if RETAIL, no message will have index UNIMPLEMENTED_THUNK since dispatcher
;won't make special case for it
;; Create and execute statement such as:
;;
;; index_WMSL_1 equ COMMON_THUNK
cat index_,&tbl,%dir,_,number,< equ >,COMMON_THUNK
endif
;; Create and execute statement such as:
;;
;; ret_WMSL_1 equ RC_BOOL
cat ret_,&tbl,%dir,_,number,< equ >,&ret_type
;; Create and execute statement such as:
;;
;; no_struc_1 equ 0
cat no_struc_,number,< equ 0>
endm
;-----------------------------------------------------------------------;
; make_thunk_entries
;
; tbl
; Code name of table being created.
;
; This macro uses the symbols created by thk to define the thunk
; entry tables in memory. It enumerates all the index_xxyy_## symbols
; and makes an entry in the thunk procedure offset table for each
; nonzero value.
;-----------------------------------------------------------------------;
make_thunk_entries macro tbl:req
local symbol_index, symbol_pfn, msgnum
DefTableLimits tbl
;;Create and execute a statement such as:
;;
;; dw offset WMLS_COMMON
cat <dw offset >,&tbl,%dir,_COMMON
msgnum = tbl_base
% rept tbl_limit - tbl_base + 1
;; Create and execute a statement such as:
;;
;; symbol_index equ <index_WMLS_1>
cat <symbol_index equ >,!<,index_,&tbl,%dir,_,%msgnum,!>
% if symbol_index NE COMMON_THUNK
% if symbol_index NE UNIMPLEMENTED_THUNK
;; Create and execute a statement such as:
;;
;; symbol_pfn equ <pfn_WMLS_1>
cat <symbol_pfn equ >,!<,pfn_,&tbl,%dir,_,%msgnum,!>
% dw offset symbol_pfn
endif
endif
msgnum = msgnum + 1
endm
endm
;-----------------------------------------------------------------------;
; make_index_entries
;
; tbl
; Code name of table being created.
;
; This macro uses the symbols created by thk to define the index
; array in memory. The index array is checked by the thunk dispatcher
; to determine if a message has a special thunk. Messages without
; special thunks (most of them) go through a standard thunk. If the
; index is nonzero, then it is used to look up the offset of the thunk
; procedure in another table.
;
; This table will have the index_xxyy_## value for each message for
; the given thunk class.
;-----------------------------------------------------------------------;
make_index_entries macro tbl:req
local msgnum
DefTableLimits tbl
msgnum = tbl_base
% rept tbl_limit - tbl_base + 1
;; Create and execute statement such as:
;;
;; db index_WMLS_1
cat <db index_>,tbl,%dir,_,%msgnum
msgnum = msgnum + 1
endm
endm
;-----------------------------------------------------------------------;
; make_ret_entries
;
; tbl
; Code name of table being created.
;
; This macro uses the symbols created by thk to define the return-type
; array in memory. The return-type array is checked by the thunk dispatcher
; to determine if a message return code requires thunking.
;
; This table will have the ret_xxyy_## value for each message for
; the given thunk class.
;-----------------------------------------------------------------------;
make_ret_entries macro tbl:req
local msgnum
DefTableLimits tbl
msgnum = tbl_base
% rept tbl_limit - tbl_base + 1
;; Create and execute statement such as:
;;
;; db ret_WMLS_1
cat <db ret_>,tbl,%dir,_,%msgnum
msgnum = msgnum + 1
endm
endm
;-----------------------------------------------------------------------;
; make_no_struc_entries
;
; This macro uses the symbols created by thk to define the TF_NOSTRUC
; array in memory. The TF_NOSTRUC array is checked by the api thunk
; to determine if a message requires special thunking.
;
; This table will have the no_struc_xxyy_## value for each message
; in the WM class.
;-----------------------------------------------------------------------;
make_no_struc_entries macro
local msgnum
DefTableLimits WM
msgnum = tbl_base
% rept tbl_limit - tbl_base + 1
;; Create and execute statement such as:
;;
;; db no_struc_1
cat <db no_struc_>,%msgnum
msgnum = msgnum + 1
endm
endm
;-----------------------------------------------------------------------;
; DefIndexTable
;
; direction
; The direction of thunking the table refers to.
;
; Creates a table containing indices into the corresponding table
; of thunk procedure offsets.
;-----------------------------------------------------------------------;
DefIndexTable macro
local symbol_name
;; Create and execute a statement of the form:
;;
;; symbol_name equ <abWMIndex>
cat <symbol_name equ >,!<,ab,WM,Index,!>
;; Define the array of tables and declare its name.
% externDef symbol_name:byte
% symbol_name label byte
;; Define the table's contents and verify that it has the right size.
make_index_entries WM
% .errnz ($ - symbol_name) - C_WM
endm
;-----------------------------------------------------------------------;
; DefOffsetTable
;
; direction
; The direction of thunking the table refers to.
;
; Creates a table containing the offsets to special thunk procedures.
; The table is packed, and many messages do not have special thunks,
; so there is another table used to map a message number to the proper
; element of this table. The dispatcher will not look in this array
; unless the message has a special thunk.
;-----------------------------------------------------------------------;
DefOffsetTable macro direction:req
local symbol_name
;; Create and execute a statement of the form:
;;
;; symbol_name equ <awWMSLOffset>
cat <symbol_name equ >,!<,aw,WM,&direction,Offset,!>
;; Define the array of tables and declare its name.
% externDef symbol_name:word
% symbol_name label word
;; Define the table's contents and verify that it has the right size.
make_thunk_entries WM
endm
;-----------------------------------------------------------------------;
; DefRetTable
;
; direction
; The direction of thunking the table refers to.
;
; Creates a table containing indices into the table of addresses of
; return-code thunks.
;-----------------------------------------------------------------------;
DefRetTable macro direction:req
local symbol_name
;; Create and execute a statement of the form:
;;
;; symbol_name equ <abWMSLRet>
cat <symbol_name equ >,!<,ab,WM&direction,Ret,!>
;; Define the array of return-code types and declare its name.
% externDef symbol_name:byte
% symbol_name label byte
make_ret_entries WM
% .errnz ($ - symbol_name) - C_WM
endm
;-----------------------------------------------------------------------;
; DefNoStrucTable
;
; Creates a table containing flags indicating whether or not a message
; requires a special thunk when the TF_NOSTRUC flag is set.
;-----------------------------------------------------------------------;
DefNoStrucTable macro
abNoStruc label byte
;; Define the table's contents and verify that it has the right size.
make_no_struc_entries
% .errnz ($ - abNoStruc) - C_WM
endm
;-----------------------------------------------------------------------;
; DefAllMsgTables
;
; direction
; The direction of the thunks (i.e. LS or SL).
;
; Create all the necessary tables for dispatching message thunks in
; the given direction.
;-----------------------------------------------------------------------;
DefAllMsgTables macro direction:req
DefOffsetTable direction
DefIndexTable
DefRetTable direction
endm
; ----------------
; FROM NEWMISC.INC
; ----------------
;-----------------------------------------------------------------------;
; Values for non-special message thunk indices. These indicate that
; the message goes through the common thunk, and whether or not to
; display the message "UNIMPLEMENTED MESSAGE THUNK" to the debug
; terminal.
;-----------------------------------------------------------------------;
COMMON_THUNK equ 0
UNIMPLEMENTED_THUNK equ 0FFh
; ---------------
; FROM NEWMSG.INC
; ---------------
;-----------------------------------------------------------------------;
; WM thunk class. This is the main message table, comprising all
; known messages with number less than 400h.
;-----------------------------------------------------------------------;
begin_thunk_table WM
thk WM_CREATE ,001h ,<SL,LS> ,RC_DEFAULT
thk WM_DESTROY ,002h , ,RC_DEFAULT
thk WM_MOVE ,003h , ,RC_DEFAULT
thk WM_SIZEWAIT ,004h , ,RC_DEFAULT
thk WM_SIZE ,005h , ,RC_DEFAULT
thk WM_ACTIVATE ,006h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_SETFOCUS ,007h , ,RC_DEFAULT
thk WM_KILLFOCUS ,008h , ,RC_DEFAULT
thk WM_SETVISIBLE ,009h , ,RC_DEFAULT
thk WM_ENABLE ,00Ah , ,RC_DEFAULT
thk WM_SETREDRAW ,00Bh , ,RC_DEFAULT
thk WM_SETTEXT ,00Ch ,<SL,LS> ,RC_DEFAULT ,1
thk WM_GETTEXT ,00Dh ,<SL,LS> ,RC_DEFAULT ,1
thk WM_GETTEXTLENGTH ,00Eh , ,RC_DEFAULT
thk WM_PAINT ,00Fh , ,RC_DEFAULT
thk WM_CLOSE ,010h , ,RC_DEFAULT
thk WM_QUERYENDSESSION ,011h , ,RC_DEFAULT
thk WM_QUIT ,012h , ,RC_DEFAULT
thk WM_QUERYOPEN ,013h , ,RC_DEFAULT
thk WM_ERASEBKGND ,014h , ,RC_DEFAULT
thk WM_SYSCOLORCHANGE ,015h , ,RC_DEFAULT
thk WM_ENDSESSION ,016h , ,RC_DEFAULT
thk WM_SYSTEMERROR ,017h , ,RC_DEFAULT
thk WM_SHOWWINDOW ,018h , ,RC_DEFAULT
thk WM_CTLCOLOR ,019h ,<SL> ,RC_DEFAULT ,1
thk WM_WININICHANGE ,01Ah ,<SL,LS> ,RC_DEFAULT ,1
thk WM_DEVMODECHANGE ,01Bh ,<SL,LS> ,RC_DEFAULT ,1
thk WM_ACTIVATEAPP ,01Ch , ,RC_DEFAULT ,1
thk WM_FONTCHANGE ,01Dh , ,RC_DEFAULT
thk WM_TIMECHANGE ,01Eh , ,RC_DEFAULT
thk WM_CANCELMODE ,01Fh , ,RC_DEFAULT
thk WM_SETCURSOR ,020h , ,RC_DEFAULT
thk WM_MOUSEACTIVATE ,021h , ,RC_DEFAULT
thk WM_CHILDACTIVATE ,022h , ,RC_DEFAULT
thk WM_QUEUESYNC ,023h , ,RC_DEFAULT
thk WM_GETMINMAXINFO ,024h ,<SL,LS> ,RC_DEFAULT
;UNIMP: thk WM_LOGOFF, ,025h
thk WM_PAINTICON ,026h , ,RC_DEFAULT
thk WM_ICONERASEBKGND ,027h , ,RC_DEFAULT
thk WM_NEXTDLGCTL ,028h , ,RC_DEFAULT
thk WM_ALTTABACTIVE ,029h , ,RC_DEFAULT
thk WM_SPOOLERSTATUS ,02Ah , ,RC_DEFAULT
thk WM_DRAWITEM ,02Bh ,<SL,LS> ,RC_DEFAULT
thk WM_MEASUREITEM ,02Ch ,<SL,LS> ,RC_DEFAULT
thk WM_DELETEITEM ,02Dh ,<SL,LS> ,RC_DEFAULT
thk WM_VKEYTOITEM ,02Eh ,<SL,LS> ,RC_DEFAULT
thk WM_CHARTOITEM ,02Fh ,<SL,LS> ,RC_DEFAULT
thk WM_SETFONT ,030h , ,RC_DEFAULT
thk WM_GETFONT ,031h , ,RC_DEFAULT
thk WM_SETHOTKEY ,032h , ,RC_DEFAULT
thk WM_GETHOTKEY ,033h , ,RC_DEFAULT
thk WM_FILESYSCHANGE ,034h , ,RC_DEFAULT
thk WM_ISACTIVEICON ,035h , ,RC_DEFAULT
;UNIMP: thk WM_QUERYPARKICON ,036h , ,RC_DEFAULT
thk WM_QUERYDRAGICON ,037h , ,RC_DEFAULT
thk WM_WINHELP ,038h ,<SL,LS> ,RC_DEFAULT
thk WM_COMPAREITEM ,039h ,<SL,LS> ,RC_DEFAULT
;UNIMP: thk WM_FULLSCREEN ,03Ah
;UNIMP: thk WM_CLIENTSHUTDOWN ,03Bh
;UNIMP: thk WM_DDEMLEVENT ,03Ch
thk MM_CALCSCROLL ,03Fh , ,RC_DEFAULT
;UNIMP: thk WM_TESTING ,040h , ,RC_DEFAULT
thk WM_COMPACTING ,041h , ,RC_DEFAULT
thk WM_OTHERWINDOWCREATED ,042h , ,RC_DEFAULT
thk WM_OTHERWINDOWDESTROYED ,043h , ,RC_DEFAULT
thk WM_COMMNOTIFY ,044h , ,RC_DEFAULT
;UNIMP: thk WM_HOTKEYEVENT ,045h , ,RC_DEFAULT
thk WM_WINDOWPOSCHANGING ,046h ,<SL,LS> ,RC_DEFAULT
thk WM_WINDOWPOSCHANGED ,047h ,<SL,LS> ,RC_DEFAULT
thk WM_POWER ,048h , ,RC_DEFAULT
;UNIMP: thk WM_COPYGLOBALDATA ,049h
thk WM_COPYDATA ,04Ah ,<SL,LS> ,RC_DEFAULT
thk WM_CANCELJOURNAL ,04Bh
;UNIMP: thk WM_LOGONNOTIFY ,04Ch
thk WM_KEYF1 ,04Dh , ,RC_DEFAULT
thk WM_NOTIFY ,04Eh ,<SL,LS> ,RC_DEFAULT ,1
;UNIMP: thk WM_ACCESS_WINDOW ,04Fh
;UNIMP: thk WM_KBDCHANGEREQUEST ,050h
;UNIMP: thk WM_KBDLAYOUTCHANGE ,051h
thk WM_TCARD ,052h , ,RC_DEFAULT
thk WM_HELP ,053h ,<SL,LS> ,RC_DEFAULT
;UNIMP: thk WM_FINALDESTROY ,070h
;UNIMP: thk WM_MEASUREITEM_CLIENTDATA ,071h
thk WM_CONTEXTMENU ,07Bh , ,RC_DEFAULT
thk WM_STYLECHANGING ,07Ch ,<SL,LS> ,RC_DEFAULT ,1
thk WM_STYLECHANGED ,07Dh ,<SL,LS> ,RC_DEFAULT ,1
thk WM_DISPLAYCHANGE ,07Eh , ,RC_DEFAULT
thk WM_GETICON ,07Fh , ,RC_DEFAULT
thk WM_SETICON ,080h , ,RC_DEFAULT
thk WM_NCCREATE ,081h ,<SL,LS> ,RC_DEFAULT
thk WM_NCDESTROY ,082h , ,RC_DEFAULT
thk WM_NCCALCSIZE ,083h ,<SL,LS> ,RC_DEFAULT
thk WM_NCHITTEST ,084h , ,RC_DEFAULT
thk WM_NCPAINT ,085h , ,RC_DEFAULT
thk WM_NCACTIVATE ,086h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_GETDLGCODE ,087h , ,RC_DEFAULT
thk WM_SYNCPAINT ,088h , ,RC_DEFAULT
;UNIMP: thk WM_SYNCTASK ,089h , ,RC_DEFAULT
thk WM_NCMOUSEMOVE ,0A0h , ,RC_DEFAULT
thk WM_NCLBUTTONDOWN ,0A1h , ,RC_DEFAULT
thk WM_NCLBUTTONUP ,0A2h , ,RC_DEFAULT
thk WM_NCLBUTTONDBLCLK ,0A3h , ,RC_DEFAULT
thk WM_NCRBUTTONDOWN ,0A4h , ,RC_DEFAULT
thk WM_NCRBUTTONUP ,0A5h , ,RC_DEFAULT
thk WM_NCRBUTTONDBLCLK ,0A6h , ,RC_DEFAULT
thk WM_NCMBUTTONDOWN ,0A7h , ,RC_DEFAULT
thk WM_NCMBUTTONUP ,0A8h , ,RC_DEFAULT
thk WM_NCMBUTTONDBLCLK ,0A9h , ,RC_DEFAULT
;Edit control messages.
;All have to be thunked because the message number changes.
thk EM_GETSEL ,0B0h ,<SL,LS> ,RC_DEFAULT
thk EM_SETSEL ,0B1h ,<SL,LS> ,RC_DEFAULT
thk EM_GETRECT ,0B2h ,<SL,LS> ,RC_DEFAULT ,1
thk EM_SETRECT ,0B3h ,<SL,LS> ,RC_DEFAULT ,1
thk EM_SETRECTNP ,0B4h ,<SL,LS> ,RC_DEFAULT ,1
thk EM_SCROLL ,0B5h , ,RC_DEFAULT
thk EM_LINESCROLL ,0B6h ,<SL,LS> ,RC_DEFAULT
thk EM_SCROLLCARET ,0B7h ,<SL> ,RC_DEFAULT
thk EM_GETMODIFY ,0B8h , ,RC_DEFAULT
thk EM_SETMODIFY ,0B9h , ,RC_DEFAULT
thk EM_GETLINECOUNT ,0BAh , ,RC_DEFAULT
thk EM_LINEINDEX ,0BBh ,<SL> ,RC_DEFAULT
;UNIMP: thk EM_SETHANDLE ,0BCh ,<SL,LS> ,RC_DEFAULT
;UNIMP: thk EM_GETHANDLE ,0BDh ,<SL,LS> ,RC_DEFAULT
thk EM_GETTHUMB ,0BEh , ,RC_DEFAULT
;UNIMP: *************************** ,0BFh
;UNIMP: *************************** ,0C0h
thk EM_LINELENGTH ,0C1h ,<SL> ,RC_DEFAULT ,1
thk EM_REPLACESEL ,0C2h ,<SL,LS> ,RC_DEFAULT ,1
;UNIMP: thk EM_SETFONT ,0C3h ,<LS> ,RC_DEFAULT
thk EM_GETLINE ,0C4h ,<SL,LS> ,RC_DEFAULT ,1
thk EM_LIMITTEXT ,0C5h ,<SL> ,RC_DEFAULT
thk EM_CANUNDO ,0C6h , ,RC_DEFAULT
thk EM_UNDO ,0C7h , ,RC_DEFAULT
thk EM_FMTLINES ,0C8h , ,RC_DEFAULT
thk EM_LINEFROMCHAR ,0C9h ,<SL> ,RC_DEFAULT
;UNIMP: thk EM_SETWORDBREAK ,0CAh ,<LS> ,RC_DEFAULT ,1
thk EM_SETTABSTOPS ,0CBh ,<SL,LS> ,RC_DEFAULT ,1
thk EM_SETPASSWORDCHAR ,0CCh , ,RC_DEFAULT
thk EM_EMPTYUNDOBUFFER ,0CDh , ,RC_DEFAULT
thk EM_GETFIRSTVISIBLELINE ,0CEh , ,RC_DEFAULT ,1
thk EM_SETREADONLY ,0CFh , ,RC_DEFAULT
thk EM_SETWORDBREAKPROC ,0D0h ,<SL,LS> ,RC_DEFAULT ,1
thk EM_GETWORDBREAKPROC ,0D1h , ,RC_GETWORDBREAKPROC,1
thk EM_GETPASSWORDCHAR ,0D2h , ,RC_DEFAULT
thk EM_SETMARGINS ,0D3h , ,RC_DEFAULT
thk EM_GETMARGINS ,0D4h , ,RC_DEFAULT
thk EM_GETLIMITTEXT ,0D5h , ,RC_DEFAULT
thk EM_POSFROMCHAR ,0D6h , ,RC_DEFAULT
thk EM_CHARFROMPOS ,0D7h , ,RC_DEFAULT
;Scroll bar messages.
thk SBM_SETPOS ,0E0h ,<SL> ,RC_DEFAULT
thk SBM_GETPOS ,0E1h , ,RC_DEFAULT
thk SBM_SETRANGE ,0E2h ,<SL,LS> ,RC_DEFAULT
thk SBM_GETRANGE ,0E3h ,<SL,LS> ,RC_DEFAULT
thk SBM_ENABLE_ARROWS ,0E4h , ,RC_DEFAULT
thk SBM_SETRANGEREDRAW ,0E6h ,<SL,LS> ,RC_DEFAULT
thk SBM_SETPAGE ,0E7h ,<SL> ,RC_DEFAULT
thk SBM_GETPAGE ,0E8h , ,RC_DEFAULT
thk SBM_SETSCROLLINFO ,0E9h ,<SL,LS> ,RC_DEFAULT ,1
thk SBM_GETSCROLLINFO ,0EAh ,<SL,LS> ,RC_DEFAULT ,1
;Button control messages.
;All have to be thunked because the message number changes.
thk BM_GETCHECK ,0F0h , ,RC_DEFAULT
thk BM_SETCHECK ,0F1h , ,RC_DEFAULT
thk BM_GETSTATE ,0F2h , ,RC_DEFAULT
thk BM_SETSTATE ,0F3h , ,RC_DEFAULT
thk BM_SETSTYLE ,0F4h , ,RC_DEFAULT
thk BM_CLICK ,0F5h , ,RC_DEFAULT
thk BM_GETICON ,0F6h , ,RC_DEFAULT
thk BM_SETICON ,0F7h , ,RC_DEFAULT
thk BM_GETBITMAP ,0F8h , ,RC_DEFAULT
thk BM_SETBITMAP ,0F9h , ,RC_DEFAULT
thk WM_KEYDOWN ,100h , ,RC_DEFAULT
thk WM_KEYUP ,101h , ,RC_DEFAULT
thk WM_CHAR ,102h , ,RC_DEFAULT
thk WM_DEADCHAR ,103h , ,RC_DEFAULT
thk WM_SYSKEYDOWN ,104h , ,RC_DEFAULT
thk WM_SYSKEYUP ,105h , ,RC_DEFAULT
thk WM_SYSCHAR ,106h , ,RC_DEFAULT
thk WM_SYSDEADCHAR ,107h , ,RC_DEFAULT
;UNIMP: thk WM_YOMICHAR ,108h , ,RC_DEFAULT
;UNIMP: thk WM_CONVERTREQUEST ,10Ah , ,RC_DEFAULT
;UNIMP: thk WM_CONVERTRESULT ,10Bh , ,RC_DEFAULT
thk WM_INITDIALOG ,110h ,<SL,LS> ,RC_DEFAULT
thk WM_COMMAND ,111h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_SYSCOMMAND ,112h , ,RC_DEFAULT
thk WM_TIMER ,113h , ,RC_DEFAULT
thk WM_HSCROLL ,114h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_VSCROLL ,115h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_INITMENU ,116h , ,RC_DEFAULT
thk WM_INITMENUPOPUP ,117h , ,RC_DEFAULT
thk WM_SYSTIMER ,118h , ,RC_DEFAULT
thk WM_MENUSELECT ,11Fh ,<SL,LS> ,RC_DEFAULT ,1
thk WM_MENUCHAR ,120h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_ENTERIDLE ,121h , ,RC_DEFAULT ,1
thk WM_LBTRACKPOINT ,131h , ,RC_DEFAULT
thk WM_CTLCOLORMSGBOX ,132h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLOREDIT ,133h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLORLISTBOX ,134h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLORBTN ,135h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLORDLG ,136h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLORSCROLLBAR ,137h ,<LS> ,RC_DEFAULT ,1
thk WM_CTLCOLORSTATIC ,138h ,<LS> ,RC_DEFAULT ,1
;Combobox control messages.
;All have to be thunked because the message number changes.
thk CB_GETEDITSEL ,140h , ,RC_DEFAULT
thk CB_LIMITTEXT ,141h , ,RC_DEFAULT
thk CB_SETEDITSEL ,142h , ,RC_DEFAULT
thk CB_ADDSTRING ,143h ,<SL,LS> ,RC_DEFAULT ,1
thk CB_DELETESTRING ,144h , ,RC_DEFAULT
thk CB_DIR ,145h ,<SL,LS> ,RC_DEFAULT ,1
thk CB_GETCOUNT ,146h , ,RC_DEFAULT
thk CB_GETCURSEL ,147h , ,RC_DEFAULT
thk CB_GETLBTEXT ,148h ,<SL,LS> ,RC_DEFAULT ,1
thk CB_GETLBTEXTLEN ,149h , ,RC_DEFAULT
thk CB_INSERTSTRING ,14Ah ,<SL,LS> ,RC_DEFAULT ,1
thk CB_RESETCONTENT ,14Bh , ,RC_DEFAULT
thk CB_FINDSTRING ,14Ch ,<SL,LS> ,RC_DEFAULT ,1
thk CB_SELECTSTRING ,14Dh ,<SL,LS> ,RC_DEFAULT ,1
thk CB_SETCURSEL ,14Eh ,<SL> ,RC_DEFAULT
thk CB_SHOWDROPDOWN ,14Fh , ,RC_DEFAULT
thk CB_GETITEMDATA ,150h , ,RC_DEFAULT
thk CB_SETITEMDATA ,151h , ,RC_DEFAULT
thk CB_GETDROPPEDCONTROLRECT,152h ,<SL,LS> ,RC_DEFAULT ,1
thk CB_SETITEMHEIGHT ,153h , ,RC_DEFAULT
thk CB_GETITEMHEIGHT ,154h , ,RC_DEFAULT
thk CB_SETEXTENDEDUI ,155h , ,RC_DEFAULT
thk CB_GETEXTENDEDUI ,156h , ,RC_DEFAULT
thk CB_GETDROPPEDSTATE ,157h , ,RC_DEFAULT
thk CB_FINDSTRINGEXACT ,158h ,<SL,LS> ,RC_DEFAULT ,1
;; thk CB_SETLOCALE ,159h
;; thk CB_GETLOCALE ,15Ah
thk CB_GETTOPINDEX ,15Bh , ,RC_DEFAULT
thk CB_SETTOPINDEX ,15Ch , ,RC_DEFAULT
thk CB_GETHORIZONTALEXTENT ,15Dh , ,RC_DEFAULT
thk CB_SETHORIZONTALEXTENT ,15Eh , ,RC_DEFAULT
thk CB_GETDROPPEDWIDTH ,15Fh , ,RC_DEFAULT
thk CB_SETDROPPEDWIDTH ,160h , ,RC_DEFAULT
thk CB_INITSTORAGE ,161h , ,RC_DEFAULT
; thk CB_MSGMAX ,162h ,1
;Static control messages.
thk STM_SETICON ,170h , ,RC_DEFAULT ,1
thk STM_GETICON ,171h , ,RC_DEFAULT ,1
thk STM_SETBITMAP ,172h , ,RC_DEFAULT ,1
thk STM_GETBITMAP ,173h , ,RC_DEFAULT ,1
thk STM_SETMETAPICT ,174h , ,RC_DEFAULT ,1
thk STM_GETMETAPICT ,175h , ,RC_DEFAULT ,1
;Listbox control messages.
;All have to be thunked because the message number changes.
thk LB_ADDSTRING ,180h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_INSERTSTRING ,181h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_DELETESTRING ,182h , ,RC_DEFAULT
;UNIMP: *************************** ,183h
thk LB_RESETCONTENT ,184h , ,RC_DEFAULT
thk LB_SETSEL ,185h ,<SL> ,RC_DEFAULT
thk LB_SETCURSEL ,186h ,<SL> ,RC_DEFAULT
thk LB_GETSEL ,187h ,<SL> ,RC_DEFAULT
thk LB_GETCURSEL ,188h , ,RC_DEFAULT
thk LB_GETTEXT ,189h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_GETTEXTLEN ,18Ah , ,RC_DEFAULT
thk LB_GETCOUNT ,18Bh , ,RC_DEFAULT
thk LB_SELECTSTRING ,18Ch ,<SL,LS> ,RC_DEFAULT ,1
thk LB_DIR ,18Dh ,<SL,LS> ,RC_DEFAULT ,1
thk LB_GETTOPINDEX ,18Eh , ,RC_DEFAULT
thk LB_FINDSTRING ,18Fh ,<SL,LS> ,RC_DEFAULT ,1
thk LB_GETSELCOUNT ,190h , ,RC_DEFAULT
thk LB_GETSELITEMS ,191h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_SETTABSTOPS ,192h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_GETHORIZONTALEXTENT ,193h , ,RC_DEFAULT
thk LB_SETHORIZONTALEXTENT ,194h , ,RC_DEFAULT
thk LB_SETCOLUMNWIDTH ,195h , ,RC_DEFAULT
thk LB_ADDFILE ,196h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_SETTOPINDEX ,197h , ,RC_DEFAULT
thk LB_GETITEMRECT ,198h ,<SL,LS> ,RC_DEFAULT ,1
thk LB_GETITEMDATA ,199h , ,RC_DEFAULT
thk LB_SETITEMDATA ,19Ah , ,RC_DEFAULT
thk LB_SELITEMRANGE ,19Bh , ,RC_DEFAULT
thk LB_SETANCHORINDEX ,19Ch ,<SL> ,RC_DEFAULT
thk LB_GETANCHORINDEX ,19Dh , ,RC_DEFAULT
thk LB_SETCARETINDEX ,19Eh ,<SL> ,RC_DEFAULT
thk LB_GETCARETINDEX ,19Fh , ,RC_DEFAULT
thk LB_SETITEMHEIGHT ,1A0h , ,RC_DEFAULT
thk LB_GETITEMHEIGHT ,1A1h , ,RC_DEFAULT
thk LB_FINDSTRINGEXACT ,1A2h ,<SL,LS> ,RC_DEFAULT ,1
thk LBCB_CARETON ,1A3h , ,RC_DEFAULT
thk LBCB_CARETOFF ,1A4h , ,RC_DEFAULT
thk LB_SETLOCALE ,1A5h , ,RC_DEFAULT
thk LB_GETLOCALE ,1A6h , ,RC_DEFAULT
thk LB_SETCOUNT ,1A7h , ,RC_DEFAULT
thk LB_ITEMFROMPOINT ,1A8h , ,RC_DEFAULT
thk WM_MOUSEMOVE ,200h , ,RC_DEFAULT
thk WM_LBUTTONDOWN ,201h , ,RC_DEFAULT
thk WM_LBUTTONUP ,202h , ,RC_DEFAULT
thk WM_LBUTTONDBLCLK ,203h , ,RC_DEFAULT
thk WM_RBUTTONDOWN ,204h , ,RC_DEFAULT
thk WM_RBUTTONUP ,205h , ,RC_DEFAULT
thk WM_RBUTTONDBLCLK ,206h , ,RC_DEFAULT
thk WM_MBUTTONDOWN ,207h , ,RC_DEFAULT
thk WM_MBUTTONUP ,208h , ,RC_DEFAULT
thk WM_MBUTTONDBLCLK ,209h , ,RC_DEFAULT
thk WM_PARENTNOTIFY ,210h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_ENTERMENULOOP ,211h , ,RC_DEFAULT
thk WM_EXITMENULOOP ,212h , ,RC_DEFAULT
; thk WM_NEXTMENU ,213h ,<SL,LS> ,RC_NEXTMENU,1
thk WM_NEXTMENU ,213h , ,RC_DEFAULT
thk WM_SIZING ,214h ,<SL,LS> ,RC_DEFAULT
thk WM_CAPTURECHANGED ,215h , ,RC_DEFAULT
thk WM_MOVING ,216h ,<SL,LS> ,RC_DEFAULT
thk WM_DEVICEBROADCAST ,217h ,<SL,LS> ,RC_DEFAULT
thk WM_MDICREATE ,220h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_MDIDESTROY ,221h , ,RC_DEFAULT
thk WM_MDIACTIVATE ,222h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_MDIRESTORE ,223h , ,RC_DEFAULT
thk WM_MDINEXT ,224h , ,RC_DEFAULT
thk WM_MDIMAXIMIZE ,225h , ,RC_DEFAULT
thk WM_MDITILE ,226h , ,RC_DEFAULT
thk WM_MDICASCADE ,227h , ,RC_DEFAULT
thk WM_MDIICONARRANGE ,228h , ,RC_DEFAULT
thk WM_MDIGETACTIVE ,229h ,<SL,LS> ,RC_MDIGETACTIVE
thk WM_DROPOBJECT ,22Ah ,<SL,LS> ,RC_DEFAULT
thk WM_QUERYDROPOBJECT ,22Bh ,<SL,LS> ,RC_DEFAULT
thk WM_BEGINDRAG ,22Ch ,<SL,LS> ,RC_DEFAULT
thk WM_DRAGLOOP ,22Dh ,<SL,LS> ,RC_DEFAULT
thk WM_DRAGSELECT ,22Eh ,<SL,LS> ,RC_DEFAULT
thk WM_DRAGMOVE ,22Fh ,<SL,LS> ,RC_DEFAULT
thk WM_MDISETMENU ,230h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_ENTERSIZEMOVE ,231h , ,RC_DEFAULT
thk WM_EXITSIZEMOVE ,232h , ,RC_DEFAULT
thk WM_DROPFILES ,233h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_MDIREFRESHMENU ,234h , ,RC_DEFAULT
; thk WM_KANJIFIRST ,280h , ,RC_DEFAULT
; thk WM_KANJILAST ,29Fh , ,RC_DEFAULT
thk WM_CUT ,300h , ,RC_DEFAULT
thk WM_COPY ,301h , ,RC_DEFAULT
thk WM_PASTE ,302h , ,RC_DEFAULT
thk WM_CLEAR ,303h , ,RC_DEFAULT
thk WM_UNDO ,304h , ,RC_DEFAULT
thk WM_RENDERFORMAT ,305h , ,RC_DEFAULT
thk WM_RENDERALLFORMATS ,306h , ,RC_DEFAULT
thk WM_DESTROYCLIPBOARD ,307h , ,RC_DEFAULT
thk WM_DRAWCLIPBOARD ,308h , ,RC_DEFAULT
thk WM_PAINTCLIPBOARD ,309h ,<SL,LS> ,RC_DEFAULT ,1
thk WM_VSCROLLCLIPBOARD ,30Ah , ,RC_DEFAULT
thk WM_SIZECLIPBOARD ,30Bh ,<SL,LS> ,RC_DEFAULT ,1
thk WM_ASKCBFORMATNAME ,30Ch ,<SL,LS> ,RC_DEFAULT ,1
thk WM_CHANGECBCHAIN ,30Dh , ,RC_DEFAULT ,1
thk WM_HSCROLLCLIPBOARD ,30Eh , ,RC_DEFAULT
thk WM_QUERYNEWPALETTE ,30Fh , ,RC_DEFAULT
;UNIMP: thk WM_PALETTEISCHANGING ,310h , ,RC_DEFAULT
thk WM_PALETTECHANGED ,311h , ,RC_DEFAULT
thk WM_HOTKEY ,312h , ,RC_DEFAULT ,1
;UNIMP: thk WM_HOOKMSG ,314h
;UNIMP: thk WM_EXITPROCESS ,315h
;UNIMP: thk WM_WAKETHREAD ,316h
thk WM_PRINT ,317h , ,RC_DEFAULT
thk WM_PRINTCLIENT ,318h , ,RC_DEFAULT
thk WM_AFXFIRST ,360h , ,RC_DEFAULT
thk WM_AFX2 ,361h , ,RC_DEFAULT
thk WM_AFX3 ,362h , ,RC_DEFAULT
thk WM_AFX4 ,363h , ,RC_DEFAULT
thk WM_AFX5 ,364h , ,RC_DEFAULT
thk WM_AFX6 ,365h , ,RC_DEFAULT
thk WM_AFX7 ,366h , ,RC_DEFAULT
thk WM_AFX8 ,367h , ,RC_DEFAULT
thk WM_AFX9 ,368h , ,RC_DEFAULT
thk WM_AFX10 ,369h , ,RC_DEFAULT
thk WM_AFX11 ,36Ah , ,RC_DEFAULT
thk WM_AFX12 ,36Bh , ,RC_DEFAULT
thk WM_AFX13 ,36Ch , ,RC_DEFAULT
thk WM_AFX14 ,36Dh , ,RC_DEFAULT
thk WM_AFX15 ,36Eh , ,RC_DEFAULT
thk WM_AFX16 ,36Fh , ,RC_DEFAULT
thk WM_AFX17 ,370h , ,RC_DEFAULT
thk WM_AFX18 ,371h , ,RC_DEFAULT
thk WM_AFX19 ,372h , ,RC_DEFAULT
thk WM_AFX20 ,373h , ,RC_DEFAULT
thk WM_AFX21 ,374h , ,RC_DEFAULT
thk WM_AFX22 ,375h , ,RC_DEFAULT
thk WM_AFX23 ,376h , ,RC_DEFAULT
thk WM_AFX24 ,377h , ,RC_DEFAULT
thk WM_AFX25 ,378h , ,RC_DEFAULT
thk WM_AFX26 ,379h , ,RC_DEFAULT
thk WM_AFX27 ,37Ah , ,RC_DEFAULT
thk WM_AFX28 ,37Bh , ,RC_DEFAULT
thk WM_AFX29 ,37Ch , ,RC_DEFAULT
thk WM_AFX30 ,37Dh , ,RC_DEFAULT
thk WM_AFX31 ,37Eh , ,RC_DEFAULT
thk WM_AFXLAST ,37Fh , ,RC_DEFAULT
; thk WM_PENWINFIRST ,380h , ,RC_DEFAULT
; thk WM_PENWINLAST ,38Fh , ,RC_DEFAULT
; thk WM_COALESCE_FIRST ,390h , ,RC_DEFAULT
; thk WM_COALESCE_LAST ,39Fh , ,RC_DEFAULT
; thk WM_MM_RESERVED_FIRST ,3A0h , ,RC_DEFAULT
; thk WM_MM_RESERVED_LAST ,3DFh , ,RC_DEFAULT
thk WM_DDE_INITIATE ,3E0h , ,RC_DEFAULT
thk WM_DDE_TERMINATE ,3E1h , ,RC_DEFAULT
thk WM_DDE_ADVISE ,3E2h , ,RC_DEFAULT
thk WM_DDE_UNADVISE ,3E3h , ,RC_DEFAULT
thk WM_DDE_ACK ,3E4h , ,RC_DEFAULT
thk WM_DDE_DATA ,3E5h , ,RC_DEFAULT
thk WM_DDE_REQUEST ,3E6h , ,RC_DEFAULT
thk WM_DDE_POKE ,3E7h , ,RC_DEFAULT
thk WM_DDE_EXECUTE ,3E8h ,<SL,LS> ,RC_DEFAULT, 1
; thk WM_INTERNAL_DDE_LAST ,3EFh , ,RC_DEFAULT
; thk WM_CBT_RESERVED_FIRST ,3F0h , ,RC_DEFAULT
; thk WM_CBT_RESERVED_LSAT ,3FFh , ,RC_DEFAULT
end_thunk_table
; ------------
; FROM RET.INC
; ------------
BeginDefRetType macro
ret_type_id = 0
endm
DefRetType macro name
RC_&name equ ret_type_id
ifdef dir
;Create and execute a statement of the form:
;
; RC_0 equ <RCSL_DEFAULT>
cat RC_,%ret_type_id,< equ >,!<,RC,%dir,_,&name,!>
endif
ret_type_id = ret_type_id + 1
endm
EndDefRetType macro
RC_MAX equ ret_type_id - 1
endm
MakeRetDispatchTable macro
local ret_type_id
;Create and execute statements of the form:
;
; externDef awSLRetOffset:word
; awSLRetOffset label word
cat <externDef >,aw,%dir,RetOffset,<:word>
cat aw,%dir,RetOffset,< label word>
ret_type_id = 0
repeat RC_MAX + 1
;Create and execute a statement of the form:
;
; % dw offset RC_0
;
; which when executed produces a statement like:
;
; dw offset RCSL_DEFAULT
cat <!% dw offset RC_>,%ret_type_id
ret_type_id = ret_type_id + 1
endm
endm
BeginDefRetType
DefRetType DEFAULT
DefRetType MDIGETACTIVE
DefRetType GETWORDBREAKPROC
;DefRetType NEXTMENU
EndDefRetType