Release 960516
[wine.git] / tools / build-spec.txt
blob88887c12040640901891e193a932cca679b63e0e
1 name    NAME
2 type    win16|win32
3 id      ID_NUMBER
5 ORDINAL VARTYPE EXPORTNAME (DATA [DATA [DATA [...]]])
7 ORDINAL FUNCTYPE EXPORTNAME([ARGTYPE [ARGTYPE [...]]]) HANDLERNAME
9 ORDINAL stub EXPORTNAME
11 ORDINAL equate EXPORTNAME DATA
13 ORDINAL return EXPORTNAME ARGLENGTH RETVALUE
15 # COMMENT_TEXT
17 --------------------
18 General:
20     "name", "type" and "id" fields are mandatory.  Specific ordinal
21 declarations are optional, but the default handler will print an error
22 message.  Lines whose first character is a '#' will be ignored as
23 comments.
25 Variable ordinals:
27     This type defines data storage at the ordinal specified.  You may
28 store items as bytes, 16-bit words, or 32-bit words.
29     "ORDINAL" is replaced by the ordinal number corresponding to the
30 variable.  "VARTYPE" should be "byte", "word" or "long" for 8, 16, or
31 32 bits respectively.  "EXPORTNAME" will be the name available for
32 dynamic linking.  "DATA" can be a decimal number or a hex number preceeded
33 by "0x".  The following example defines the variable "VariableA" at
34 ordinal 2 and containing 4 bytes:
36         2 byte VariableA -1 0xff 0 0
38 Function ordinals:
40     This type defines a function entry point.  The prototype defined by
41 "EXPORTNAME ([ARGTYPE [ARGTYPE [...]]])" specifies the name available for
42 dynamic linking and the format of the 16-bit stack. "ORDINAL" is replaced
43 by the ordinal number corresponding to the function.  "FUNCTYPE" should be
44 "pascal16" or "pascal" for 16-bit or 32-bit return values.  "ARGTYPE"
45 should be "byte", "word", "long", "ptr" (linear pointer), "s_byte" (signed
46 byte), "s_word" (signed word), "s_long" (signed long), or "segptr"
47 (segmented pointer).  "HANDLERNAME" is the name of the actual function that
48 will process the request in 32-bit mode.
50     This first example defines an entry point for the CreateWindow()
51 call (the ordinal 100 is just an example):
53         100 pascal CreateWindow(ptr ptr long s_word s_word s_word s_word
54                                 word word word ptr)
55                    WIN_CreateWindow
57    This second example defines an entry point for the GetFocus()
58 call (the ordinal 100 is just an example):
60         100 pascal GetFocus() WIN_GetFocus()
62 Stub ordinals:
64     This type defines a stub function. It makes the name and ordinal
65 available for dynamic linking, but will terminate execution with an
66 error message if the function is ever called.
68 Equate ordinals:
70     This type defines an ordinal as an absolute value.
71 "ORDINAL" is replaced by the ordinal number corresponding to the
72 variable.  "EXPORTNAME" will be the name available for dynamic linking.  
73 "DATA" can be a decimal number or a hex number preceeded by "0x".
75 Return ordinals:
77     This type defines a function entry point whose handler should do
78 nothing but return a value.
79     "ORDINAL" is replaced by the ordinal number corresponding to the
80 variable.  ARGLENGTH is the number of bytes that need to be removed
81 from the stack before returning to the caller.  RETVALUE is the
82 return value which will be passed back to the caller.