Commit 77afd6c4 authored by Alexandre Julliard's avatar Alexandre Julliard

Made some more spec file entries optional or unnecessary.

Fixed a few DLLName/DLLFileName mismatches.
parent cf5188b6
......@@ -141,7 +141,7 @@ LINTS = $(C_SRCS:.c=.ln)
$(WINDRES) -i $< -o $@
.spec.spec.c:
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -spec $<
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -M $(MODULE) -spec $<
.spec.spec.def:
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -def $<
......
name advapi32
@ stdcall AbortSystemShutdownA(ptr) AbortSystemShutdownA
@ stdcall AbortSystemShutdownW(ptr) AbortSystemShutdownW
@ stdcall AccessCheck(ptr long long ptr ptr ptr ptr ptr) AccessCheck
......
name avicap32
@ stub capCreateCaptureWindowA
@ stub capCreateCaptureWindowW
@ stdcall capGetDriverDescriptionA(long ptr long ptr long) capGetDriverDescriptionA
......
name avifil32
@ stub AVIBuildFilter
@ stub AVIBuildFilterA
@ stub AVIBuildFilterW
......
name avifile
type win16
owner avifil32
# I'm just using "long" instead of "ptr" for the interface pointers,
# because they are 32-bit pointers, not converted to 16-bit format,
# but the app doesn't really need to know, it should never need to
......
name comcat
init COMCAT_DllEntryPoint
@ stdcall DllCanUnloadNow() COMCAT_DllCanUnloadNow
......
name comctl32
init COMCTL32_LibMain
# Functions exported by the Win95 comctl32.dll
......
name comdlg32
init COMDLG32_DllEntryPoint
@ stdcall ChooseColorA(ptr) ChooseColorA
......
name commdlg
type win16
owner comdlg32
1 pascal16 GetOpenFileName(segptr) GetOpenFileName16
2 pascal16 GetSaveFileName(segptr) GetSaveFileName16
5 pascal16 ChooseColor(ptr) ChooseColor16
......
# Old C runtime library. All functions provided by msvcrt
name crtdll
init CRTDLL_Init
@ forward ??2@YAPAXI@Z msvcrt.??2@YAPAXI@Z
......@@ -527,4 +526,3 @@ init CRTDLL_Init
@ forward wscanf msvcrt.wscanf
@ forward _itow msvcrt._itow
@ forward _ltow msvcrt._ltow
name crypt32
@ stub CertAddCRLContextToStore
@ stub CertAddCTLContextToStore
@ stub CertAddCertificateContextToStore
......
name dciman32
@ stub DCIBeginAccess
@ stdcall DCICloseProvider(long) DCICloseProvider
@ stub DCICreateOffscreen
......
name ddraw
init DDRAW_DllMain
@ stub DDHAL32_VidMemAlloc
......
name devenum
@ stub DllCanUnloadNow
@ stub DllGetClassObject
@ stub DllRegisterServer
......
name dinput
init Init
@ stdcall DirectInputCreateA(long long ptr ptr) DirectInputCreateA
......
name dinput8
@ stdcall DirectInput8Create(long long ptr ptr ptr) DirectInput8Create
@ stdcall DllCanUnloadNow() DINPUT8_DllCanUnloadNow
@ stdcall DllGetClassObject(ptr ptr ptr) DINPUT8_DllGetClassObject
......
# First DirectPlay dll. Replaced by dplayx.dll.
name dplay
@ forward DirectPlayCreate dplayx.DirectPlayCreate
@ forward DirectPlayEnumerate dplayx.DirectPlayEnumerate
name dplayx
init DPLAYX_LibMain
1 stdcall DirectPlayCreate(ptr ptr ptr) DirectPlayCreate
......
name dsound
0 stub DirectSoundUnknown
1 stdcall DirectSoundCreate(ptr ptr ptr) DirectSoundCreate8
2 stdcall DirectSoundEnumerateA(ptr ptr) DirectSoundEnumerateA
......
name dispdib
type win16
owner gdi32
1 pascal16 DisplayDib(ptr ptr word) DisplayDib
name gdi
type win16
heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
file gdi.exe
owner gdi32
heap 65520
rsrc version16.res
1 pascal SetBkColor(word long) SetBkColor16
......
name gdi32
init MAIN_GdiInit
# ordinal exports
......
name wing
type win16
owner gdi32
1001 pascal16 WinGCreateDC() WinGCreateDC16
1002 pascal16 WinGRecommendDIBFormat(ptr) WinGRecommendDIBFormat16
1003 pascal16 WinGCreateBitmap(word ptr ptr) WinGCreateBitmap16
......
name glu32
@ stdcall gluLookAt(double double double double double double double double double) wine_gluLookAt
@ stdcall gluOrtho2D(double double double double) wine_gluOrtho2D
@ stdcall gluPerspective(double double double double) wine_gluPerspective
......
name icmp
@ stdcall IcmpCloseHandle(ptr) IcmpCloseHandle
@ stdcall IcmpCreateFile() IcmpCreateFile
@ stub IcmpParseReplies
......@@ -8,5 +6,3 @@ name icmp
@ stub do_echo_rep
@ stub do_echo_req
@ stub register_icmp
name imagehlp
init IMAGEHLP_LibMain
@ stdcall BindImage(str str str) BindImage
......
name imm
type win16
owner imm32
4 stub IMMGETDEFAULTIMEWND
7 stub IMMGETDESCRIPTIONA
8 stub IMMGETIMEFILENAMEA
......
name imm32
@ stdcall ImmAssociateContext(long long) ImmAssociateContext
@ stdcall ImmConfigureIMEA(long long long ptr) ImmConfigureIMEA
@ stdcall ImmConfigureIMEW(long long long ptr) ImmConfigureIMEW
......
name comm
type win16
owner kernel32
1 stub INICOM
2 stub SETCOM
3 stub SETQUE
......@@ -21,4 +17,3 @@ owner kernel32
19 stub COMMWRITESTRING
20 stub READCOMMSTRING
100 stub ENABLENOTIFICATION
name kernel32
init MAIN_KernelInit
# Functions exported by the Win95 kernel32.dll
......
name kernel
type win16
file krnl386.exe
owner kernel32
rsrc version16.res
# 1-207 are the basic functions, those are (with minor variations)
......
# summary: resource modification dll
#
name stress
type win16
owner kernel32
2 pascal AllocMem(long) AllocMem
3 pascal FreeAllMem() FreeAllMem
6 pascal AllocFileHandles(word) AllocFileHandles
......
name system
type win16
owner kernel32
1 pascal InquireSystem(word word) InquireSystem16
2 pascal16 CreateSystemTimer(word segptr) WIN16_CreateSystemTimer
3 pascal16 KillSystemTimer(word) SYSTEM_KillSystemTimer
......
name toolhelp
type win16
owner kernel32
50 pascal16 GlobalHandleToSel(word) GlobalHandleToSel16
51 pascal16 GlobalFirst(ptr word) GlobalFirst16
52 pascal16 GlobalNext(ptr word) GlobalNext16
......
name win87em
type win16
owner kernel32
1 pascal -register _fpMath() WIN87_fpmath
3 pascal16 __WinEm87Info(ptr word) WIN87_WinEm87Info
4 pascal16 __WinEm87Restore(ptr word) WIN87_WinEm87Restore
......
name windebug
type win16
owner kernel32
1 stub WINDEBUG
2 stub WEP
3 pascal -register WinNotify() WinNotify16
name wprocs
type win16
owner kernel32
# Interrupt vectors 0-255 are ordinals 100-355
# The '-interrupt' keyword takes care of the flags pushed on the stack by the interrupt
117 pascal -interrupt INT_Int11Handler() INT_Int11Handler
......
name lz32
@ stdcall CopyLZFile(long long) CopyLZFile
@ stdcall GetExpandedNameA(str ptr) GetExpandedNameA
@ stdcall GetExpandedNameW(wstr ptr) GetExpandedNameW
......
name lzexpand
type win16
owner lz32
1 pascal LZCopy(word word) LZCopy16
2 pascal16 LZOpenFile(str ptr word) LZOpenFile16
3 pascal16 LZInit(word) LZInit16
......
name mapi32
@ stub BMAPIAddress
@ stub BMAPIDetails
@ stub BMAPIFindNext
......
name mpr
# ordinal exports
1 stub @
2 stub @
......
name imaadp32
file imaadp32.acm
@ stdcall DriverProc (long long long long long) ADPCM_DriverProc
name msacm
type win16
owner msacm32
1 stub WEP
2 stub DRIVERPROC
3 stub ___EXPORTEDSTUB
......
name msacm32
init MSACM32_LibMain
@ stdcall acmDriverAddA(ptr long long long long) acmDriverAddA
......
name msadp32
file msadp32.acm
@ stdcall DriverProc (long long long long long) ADPCM_DriverProc
name msg711
file msg711.acm
@ stdcall DriverProc(long long long long long) G711_DriverProc
name winemp3
file winemp3.acm
@ stdcall DriverProc(long long long long long) MPEG3_DriverProc
name msdmo
@ stub DMOEnum
@ stub DMOGetName
@ stub DMOGetTypes
......@@ -15,4 +13,3 @@ name msdmo
@ stub MoDuplicateMediaType
@ stub MoFreeMediaType
@ stub MoInitMediaType
name msimg32
@ stdcall AlphaBlend(long long long long long long long long long long long) AlphaBlend
@ stub DllInitialize
@ stdcall GradientFill(long ptr long ptr long long) GradientFill
......
name msisys
file msisys.ocx
init MSISYS_DllMain
@ stdcall DllCanUnloadNow() MSISYS_DllCanUnloadNow
......
name msnet32
1 stub @
2 stub @
3 stub @
......@@ -96,4 +94,3 @@ name msnet32
94 stub @
95 stub @
96 stub @
name msrle32
@ stub DriverProc #(long long long long long)
# msvcrt.dll - MS VC++ Run Time Library
name msvcrt
init MSVCRT_Init
@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT
......
# msvcrt20.dll - MS VC++ Run Time Library
name msvcrt20
@ stub ??0Iostream_init@@QAE@AAVios@@H@Z #
@ stub ??0Iostream_init@@QAE@XZ #
@ stub ??0filebuf@@QAE@ABV0@@Z #
......
name msvfw32
# Yes, ICCompress,ICDecompress,MCIWnd* and ICDraw* are cdecl (VFWAPIV).
# The rest is stdcall (VFWAPI) however. -Marcus Meissner, 990124
......
name msvideo
type win16
owner msvfw32
2 pascal VideoForWindowsVersion() VideoForWindowsVersion
20 stub VIDEOGETNUMDEVS
21 stub VIDEOGETERRORTEXT
......
name netapi32
init NETAPI32_LibMain
1 stdcall Netbios(ptr) Netbios
name ntdll
#note that the Zw... functions are alternate names for the
#Nt... functions. (see www.sysinternals.com for details)
#if you change a Nt.. function DON'T FORGET to change the
......
name odbc32
init MAIN_OdbcInit
001 stdcall SQLAllocConnect(long ptr) SQLAllocConnect
002 stdcall SQLAllocEnv(ptr) SQLAllocEnv
003 stdcall SQLAllocStmt(long ptr) SQLAllocStmt
004 stdcall SQLBindCol(long long long ptr long ptr) SQLBindCol
005 stdcall SQLCancel(long) SQLCancel
006 stdcall SQLColAttributes(long long long ptr long ptr ptr) SQLColAttributes
007 stdcall SQLConnect(long str long str long str long) SQLConnect
008 stdcall SQLDescribeCol(long long str long ptr ptr ptr ptr ptr) SQLDescribeCol
009 stdcall SQLDisconnect(long) SQLDisconnect
010 stdcall SQLError(long long long str ptr str long ptr) SQLError
011 stdcall SQLExecDirect(long str long) SQLExecDirect
012 stdcall SQLExecute(long) SQLExecute
013 stdcall SQLFetch(long) SQLFetch
014 stdcall SQLFreeConnect(long) SQLFreeConnect
015 stdcall SQLFreeEnv(long) SQLFreeEnv
016 stdcall SQLFreeStmt(long long ) SQLFreeStmt
017 stdcall SQLGetCursorName(long str long ptr) SQLGetCursorName
018 stdcall SQLNumResultCols(long ptr) SQLNumResultCols
019 stdcall SQLPrepare(long str long) SQLPrepare
020 stdcall SQLRowCount(long ptr) SQLRowCount
021 stdcall SQLSetCursorName(long str long) SQLSetCursorName
022 stdcall SQLSetParam(long long long long long long ptr ptr) SQLSetParam
023 stdcall SQLTransact(long long long) SQLTransact
024 stdcall SQLAllocHandle(long long ptr) SQLAllocHandle
025 stdcall SQLBindParam(long long long long long long ptr ptr) SQLBindParam
026 stdcall SQLCloseCursor(long) SQLCloseCursor
027 stdcall SQLColAttribute(long long long ptr long ptr ptr) SQLColAttribute
028 stdcall SQLCopyDesc(long long) SQLCopyDesc
029 stdcall SQLEndTran(long long long) SQLEndTran
030 stdcall SQLFetchScroll(long long long) SQLFetchScroll
031 stdcall SQLFreeHandle(long long) SQLFreeHandle
032 stdcall SQLGetConnectAttr(long long ptr long ptr) SQLGetConnectAttr
033 stdcall SQLGetDescField(long long long ptr long ptr) SQLGetDescField
034 stdcall SQLGetDescRec(long long str long ptr ptr ptr ptr ptr ptr ptr) SQLGetDescRec
035 stdcall SQLGetDiagField(long long long long ptr long ptr) SQLGetDiagField
036 stdcall SQLGetDiagRec(long long long str ptr str long ptr) SQLGetDiagRec
037 stdcall SQLGetEnvAttr(long long ptr long ptr) SQLGetEnvAttr
038 stdcall SQLGetStmtAttr(long long ptr long ptr) SQLGetStmtAttr
039 stdcall SQLSetConnectAttr(long long ptr long) SQLSetConnectAttr
040 stdcall SQLColumns(long str long str long str long str long) SQLColumns
041 stdcall SQLDriverConnect(long long str long str long str long) SQLDriverConnect
042 stdcall SQLGetConnectOption(long long ptr) SQLGetConnectOption
043 stdcall SQLGetData(long long long ptr long ptr) SQLGetData
044 stdcall SQLGetFunctions(long long ptr) SQLGetFunctions
045 stdcall SQLGetInfo(long long ptr long ptr) SQLGetInfo
046 stdcall SQLGetStmtOption(long long ptr) SQLGetStmtOption
047 stdcall SQLGetTypeInfo(long long) SQLGetTypeInfo
048 stdcall SQLParamData(long ptr) SQLParamData
049 stdcall SQLPutData(long ptr long) SQLPutData
050 stdcall SQLSetConnectOption(long long long) SQLSetConnectOption
051 stdcall SQLSetStmtOption(long long long) SQLSetStmtOption
052 stdcall SQLSpecialColumns(long long str long str long str long long long) SQLSpecialColumns
053 stdcall SQLStatistics(long str long str long str long long long) SQLStatistics
054 stdcall SQLTables(long str long str long str long str long) SQLTables
055 stdcall SQLBrowseConnect(long str long str long ptr) SQLBrowseConnect
056 stdcall SQLColumnPrivileges(long str long str long str long str long) SQLColumnPrivileges
057 stdcall SQLDataSources(long long str long ptr str long ptr) SQLDataSources
058 stdcall SQLDescribeParam(long long ptr ptr ptr ptr) SQLDescribeParam
059 stdcall SQLExtendedFetch(long long long ptr ptr) SQLExtendedFetch
060 stdcall SQLForeignKeys(long str long str long str long str long str long str long) SQLForeignKeys
061 stdcall SQLMoreResults(long) SQLMoreResults
062 stdcall SQLNativeSql(long str long str long ptr) SQLNativeSql
063 stdcall SQLNumParams(long ptr) SQLNumParams
064 stdcall SQLParamOptions(long long ptr) SQLParamOptions
065 stdcall SQLPrimaryKeys(long str long str long str long) SQLPrimaryKeys
066 stdcall SQLProcedureColumns(long str long str long str long str long) SQLProcedureColumns
067 stdcall SQLProcedures(long str long str long str long) SQLProcedures
068 stdcall SQLSetPos(long long long long) SQLSetPos
069 stdcall SQLSetScrollOptions(long long long long) SQLSetScrollOptions
070 stdcall SQLTablePrivileges(long str long str long str long) SQLTablePrivileges
071 stdcall SQLDrivers(long long str long ptr str long ptr) SQLDrivers
072 stdcall SQLBindParameter(long long long long long long long ptr long ptr) SQLBindParameter
073 stdcall SQLSetDescField(long long long ptr long) SQLSetDescField
074 stdcall SQLSetDescRec(long long long long long long long ptr ptr ptr) SQLSetDescRec
075 stdcall SQLSetEnvAttr(long long ptr long) SQLSetEnvAttr
076 stdcall SQLSetStmtAttr(long long ptr long) SQLSetStmtAttr
077 stdcall SQLAllocHandleStd(long long ptr) SQLAllocHandleStd
078 stdcall SQLBulkOperations(long long) SQLBulkOperations
079 stub CloseODBCPerfData
080 stub CollectODBCPerfData
081 stub CursorLibLockDbc
082 stub CursorLibLockDesc
083 stub CursorLibLockStmt
084 stub ODBCGetTryWaitValue
085 stub CursorLibTransact
086 stub ODBSetTryWaitValue
087 stub LockHandle
088 stub ODBCInternalConnectW
089 stub ODBCSharedPerfMon
090 stub ODBCSharedVSFlag
091 stub OpenODBCPerfData
092 stub PostComponentError
093 stub PostODBCComponentError
094 stub PostODBCError
095 stub SearchStatusCode
096 stub VFreeErrors
097 stub VRetrieveDriverErrorsRowCol
098 stub ValidateErrorQueue
099 stub SQLColAttributesW
1 stdcall SQLAllocConnect(long ptr) SQLAllocConnect
2 stdcall SQLAllocEnv(ptr) SQLAllocEnv
3 stdcall SQLAllocStmt(long ptr) SQLAllocStmt
4 stdcall SQLBindCol(long long long ptr long ptr) SQLBindCol
5 stdcall SQLCancel(long) SQLCancel
6 stdcall SQLColAttributes(long long long ptr long ptr ptr) SQLColAttributes
7 stdcall SQLConnect(long str long str long str long) SQLConnect
8 stdcall SQLDescribeCol(long long str long ptr ptr ptr ptr ptr) SQLDescribeCol
9 stdcall SQLDisconnect(long) SQLDisconnect
10 stdcall SQLError(long long long str ptr str long ptr) SQLError
11 stdcall SQLExecDirect(long str long) SQLExecDirect
12 stdcall SQLExecute(long) SQLExecute
13 stdcall SQLFetch(long) SQLFetch
14 stdcall SQLFreeConnect(long) SQLFreeConnect
15 stdcall SQLFreeEnv(long) SQLFreeEnv
16 stdcall SQLFreeStmt(long long ) SQLFreeStmt
17 stdcall SQLGetCursorName(long str long ptr) SQLGetCursorName
18 stdcall SQLNumResultCols(long ptr) SQLNumResultCols
19 stdcall SQLPrepare(long str long) SQLPrepare
20 stdcall SQLRowCount(long ptr) SQLRowCount
21 stdcall SQLSetCursorName(long str long) SQLSetCursorName
22 stdcall SQLSetParam(long long long long long long ptr ptr) SQLSetParam
23 stdcall SQLTransact(long long long) SQLTransact
24 stdcall SQLAllocHandle(long long ptr) SQLAllocHandle
25 stdcall SQLBindParam(long long long long long long ptr ptr) SQLBindParam
26 stdcall SQLCloseCursor(long) SQLCloseCursor
27 stdcall SQLColAttribute(long long long ptr long ptr ptr) SQLColAttribute
28 stdcall SQLCopyDesc(long long) SQLCopyDesc
29 stdcall SQLEndTran(long long long) SQLEndTran
30 stdcall SQLFetchScroll(long long long) SQLFetchScroll
31 stdcall SQLFreeHandle(long long) SQLFreeHandle
32 stdcall SQLGetConnectAttr(long long ptr long ptr) SQLGetConnectAttr
33 stdcall SQLGetDescField(long long long ptr long ptr) SQLGetDescField
34 stdcall SQLGetDescRec(long long str long ptr ptr ptr ptr ptr ptr ptr) SQLGetDescRec
35 stdcall SQLGetDiagField(long long long long ptr long ptr) SQLGetDiagField
36 stdcall SQLGetDiagRec(long long long str ptr str long ptr) SQLGetDiagRec
37 stdcall SQLGetEnvAttr(long long ptr long ptr) SQLGetEnvAttr
38 stdcall SQLGetStmtAttr(long long ptr long ptr) SQLGetStmtAttr
39 stdcall SQLSetConnectAttr(long long ptr long) SQLSetConnectAttr
40 stdcall SQLColumns(long str long str long str long str long) SQLColumns
41 stdcall SQLDriverConnect(long long str long str long str long) SQLDriverConnect
42 stdcall SQLGetConnectOption(long long ptr) SQLGetConnectOption
43 stdcall SQLGetData(long long long ptr long ptr) SQLGetData
44 stdcall SQLGetFunctions(long long ptr) SQLGetFunctions
45 stdcall SQLGetInfo(long long ptr long ptr) SQLGetInfo
46 stdcall SQLGetStmtOption(long long ptr) SQLGetStmtOption
47 stdcall SQLGetTypeInfo(long long) SQLGetTypeInfo
48 stdcall SQLParamData(long ptr) SQLParamData
49 stdcall SQLPutData(long ptr long) SQLPutData
50 stdcall SQLSetConnectOption(long long long) SQLSetConnectOption
51 stdcall SQLSetStmtOption(long long long) SQLSetStmtOption
52 stdcall SQLSpecialColumns(long long str long str long str long long long) SQLSpecialColumns
53 stdcall SQLStatistics(long str long str long str long long long) SQLStatistics
54 stdcall SQLTables(long str long str long str long str long) SQLTables
55 stdcall SQLBrowseConnect(long str long str long ptr) SQLBrowseConnect
56 stdcall SQLColumnPrivileges(long str long str long str long str long) SQLColumnPrivileges
57 stdcall SQLDataSources(long long str long ptr str long ptr) SQLDataSources
58 stdcall SQLDescribeParam(long long ptr ptr ptr ptr) SQLDescribeParam
59 stdcall SQLExtendedFetch(long long long ptr ptr) SQLExtendedFetch
60 stdcall SQLForeignKeys(long str long str long str long str long str long str long) SQLForeignKeys
61 stdcall SQLMoreResults(long) SQLMoreResults
62 stdcall SQLNativeSql(long str long str long ptr) SQLNativeSql
63 stdcall SQLNumParams(long ptr) SQLNumParams
64 stdcall SQLParamOptions(long long ptr) SQLParamOptions
65 stdcall SQLPrimaryKeys(long str long str long str long) SQLPrimaryKeys
66 stdcall SQLProcedureColumns(long str long str long str long str long) SQLProcedureColumns
67 stdcall SQLProcedures(long str long str long str long) SQLProcedures
68 stdcall SQLSetPos(long long long long) SQLSetPos
69 stdcall SQLSetScrollOptions(long long long long) SQLSetScrollOptions
70 stdcall SQLTablePrivileges(long str long str long str long) SQLTablePrivileges
71 stdcall SQLDrivers(long long str long ptr str long ptr) SQLDrivers
72 stdcall SQLBindParameter(long long long long long long long ptr long ptr) SQLBindParameter
73 stdcall SQLSetDescField(long long long ptr long) SQLSetDescField
74 stdcall SQLSetDescRec(long long long long long long long ptr ptr ptr) SQLSetDescRec
75 stdcall SQLSetEnvAttr(long long ptr long) SQLSetEnvAttr
76 stdcall SQLSetStmtAttr(long long ptr long) SQLSetStmtAttr
77 stdcall SQLAllocHandleStd(long long ptr) SQLAllocHandleStd
78 stdcall SQLBulkOperations(long long) SQLBulkOperations
79 stub CloseODBCPerfData
80 stub CollectODBCPerfData
81 stub CursorLibLockDbc
82 stub CursorLibLockDesc
83 stub CursorLibLockStmt
84 stub ODBCGetTryWaitValue
85 stub CursorLibTransact
86 stub ODBSetTryWaitValue
87 stub LockHandle
88 stub ODBCInternalConnectW
89 stub ODBCSharedPerfMon
90 stub ODBCSharedVSFlag
91 stub OpenODBCPerfData
92 stub PostComponentError
93 stub PostODBCComponentError
94 stub PostODBCError
95 stub SearchStatusCode
96 stub VFreeErrors
97 stub VRetrieveDriverErrorsRowCol
98 stub ValidateErrorQueue
99 stub SQLColAttributesW
100 stub SQLConnectW
101 stub SQLDescribeColW
102 stub SQLErrorW
......@@ -175,4 +174,3 @@ init MAIN_OdbcInit
172 stub SQLSetStmtAttrA
173 stub ODBCSharedTraceFlag
174 stub ODBCQualifyFileDSNW
name compobj
type win16
owner ole32
1 pascal CoBuildVersion() CoBuildVersion
2 pascal CoInitialize(long) CoInitialize16
3 pascal CoUninitialize() CoUninitialize16
......
name ole2
type win16
owner ole32
1 pascal OleBuildVersion() OleBuildVersion
2 pascal OleInitialize(ptr) OleInitialize
3 pascal OleUninitialize() OleUninitialize
......
name ole2conv
type win16
owner ole32
1 stub GETFILTERINFO
2 stub IMPORTGR
3 stub GETFILTERPREF
......
name ole2nls
type win16
owner ole32
1 pascal GetUserDefaultLCID() GetUserDefaultLCID16
2 pascal GetSystemDefaultLCID() GetSystemDefaultLCID16
3 pascal16 GetUserDefaultLangID() GetUserDefaultLangID16
......
name ole2prox
type win16
owner ole32
1 stub DLLGETCLASSOBJECT
#2 WEP
#3 ___EXPORTEDSTUB
name ole2thk
type win16
owner ole32
1 stub WEP
2 stub ROT16_ISRUNNING16
3 stub ISWIN32SHANDLE
......
name ole32
init OLE32_DllEntryPoint
1 stub BindMoniker # stdcall (ptr long ptr ptr) return 0,ERR_NOTIMPLEMENTED
......
# Compound Storage DLL.
# (FIXME: some methods are commented out. Commenting them in _WILL_
# result in dataloss. Do it at your own risk.)
name storage
type win16
owner ole32
1 pascal StgCreateDocFileA(str long long ptr) StgCreateDocFile16
2 stub StgCreateDocFileOnILockBytes
......
name ole2disp
type win16
owner oleaut32
1 stub DLLGETCLASSOBJECT
2 pascal SysAllocString(str) SysAllocString16
3 pascal SysReallocString(ptr str) SysReAllocString16
......
name oleaut32
1 stdcall DllGetClassObject(ptr ptr ptr) OLEAUT32_DllGetClassObject
2 stdcall SysAllocString(wstr) SysAllocString
3 stdcall SysReAllocString(ptr wstr) SysReAllocString
......
name typelib
type win16
owner oleaut32
2 stub CREATETYPELIB
3 pascal LoadTypeLib(ptr ptr) LoadTypeLib16
4 stub LHASHVALOFNAMESYS
......
name olecli
type win16
owner olecli32
#1 WEP
2 stub OLEDELETE
3 stub OLESAVETOSTREAM
......
name olecli32
1 stub WEP
2 stub OleDelete
3 forward OleSaveToStream ole32.OleSaveToStream
......
name oledlg
1 stdcall OleUIAddVerbMenuA(ptr str long long long long long long ptr) OleUIAddVerbMenuA
2 stdcall OleUICanConvertOrActivateAs(ptr long long) OleUICanConvertOrActivateAs
3 stdcall OleUIInsertObjectA(ptr) OleUIInsertObjectA
......
name olepro32
248 forward OleIconToCursor OLEAUT32.OleIconToCursor
249 forward OleCreatePropertyFrameIndirect OLEAUT32.OleCreatePropertyFrameIndirect
250 forward OleCreatePropertyFrame OLEAUT32.OleCreatePropertyFrame
......
name olesvr
type win16
owner olesvr32
#1 WEP
2 pascal OleRegisterServer(str ptr ptr word word) OleRegisterServer16
3 pascal OleRevokeServer(long) OleRevokeServer16
......
name olesvr32
1 stub WEP
2 stdcall OleRegisterServer(str ptr ptr long long) OleRegisterServer
3 stub OleRevokeServer
......
name opengl32
init OpenGL32_Init
@ stdcall wglCreateContext(long) wglCreateContext
......
name psapi
@ stdcall EmptyWorkingSet(long) EmptyWorkingSet
@ stdcall EnumDeviceDrivers(ptr long ptr) EnumDeviceDrivers
@ stdcall EnumProcessModules(long ptr long ptr) EnumProcessModules
......
name qcap
@ stub DllCanUnloadNow
@ stub DllGetClassObject
@ stub DllRegisterServer
@ stub DllUnregisterServer
name quartz
@ stub AMGetErrorTextA
@ stub AMGetErrorTextW
@ stub AmpFactorToDB
......@@ -8,4 +6,3 @@ name quartz
@ stub DllGetClassObject
@ stub DllRegisterServer
@ stub DllUnregisterServer
name rasapi16
type win16
owner rasapi32
#1 stub WEP
#2 stub DLLENTRYPOINT
3 stub RNA1632_THUNKDATA16
......
name rasapi32
1 stub RasAutodialAddressToNetwork
2 stub RasAutodialEntryToNetwork
3 stub RasConnectionNotificationA
......
name riched32
init RICHED32_LibMain
2 stdcall DllGetVersion (ptr) RICHED32_DllGetVersion
name rpcrt4
init RPCRT4_LibMain
@ stub DceErrorInqTextA
......
name serialui
init SERIALUI_LibMain
2 stdcall EnumPropPages(ptr ptr ptr) SERIALUI_EnumPropPages
......
name setupapi
@ stub AddMiniIconToList
@ stub AddTagToGroupOrderListEntry
@ stub AppendStringToMultiSz
......
name setupx
type win16
owner setupapi
1 stub WEP
2 pascal16 IpOpen(str ptr) IpOpen16
3 stub IpOpenAppend #(str word)
......
name shdocvw
# ordinal exports
101 stub @
102 stub @
......
name shell
type win16
owner shell32
rsrc version16.res
1 pascal RegOpenKey(long str ptr) RegOpenKey16
......
name shell32
init Shell32LibMain
# Functions exported by the Win95 shell32.dll
......
name shfolder
@ forward SHGetFolderPathA shell32.SHGetFolderPathA
@ forward SHGetFolderPathW shell32.SHGetFolderPathW
name shlwapi
init SHLWAPI_LibMain
1 stdcall @(str ptr) SHLWAPI_1
......
name snmpapi
init SNMPAPI_DllMain
@ stub SnmpSvcAddrIsIpx
......
name sti
@ stub DllCanUnloadNow
@ stub DllGetClassObject
@ stub DllRegisterServer
......
name tapi32
@ stdcall lineAccept(long str long) lineAccept
@ stdcall lineAddProvider(str long ptr) lineAddProvider
@ stdcall lineAddToConference(long long) lineAddToConference
......
name ttydrv
init TTYDRV_Init
# GDI driver
......
name twain_32
init TWAIN_LibMain
@ stdcall DSM_Entry(ptr ptr long long long ptr) DSM_Entry
name url
@ stub AddMIMEFileTypesPS
@ stub AutodialHookCallback
@ stub DllCanUnloadNow
......
name urlmon
1 stub CDLGetLongPathNameA
2 stub CDLGetLongPathNameW
@ stub AsyncGetClassBits
......@@ -76,4 +74,3 @@ name urlmon
@ stdcall UrlMkSetSessionOption(long ptr long long) UrlMkSetSessionOption
@ stub WriteHitLogging
@ stub ZonesReInit
name ddeml
type win16
owner user32
2 pascal16 DdeInitialize(ptr segptr long long) DdeInitialize16
3 pascal16 DdeUninitialize(long) DdeUninitialize16
4 pascal DdeConnectList(long word word word ptr) DdeConnectList16
......
name display
type win16
owner user32
rsrc resources/display.res
1 stub BitBlt
......@@ -59,4 +56,3 @@ rsrc resources/display.res
502 stub ORDINAL_ONLY2
600 stub InkReady
601 stub GetLPDevice
name keyboard
type win16
owner user32
1 pascal16 Inquire(ptr) KEYBOARD_Inquire
2 pascal16 Enable(segptr ptr) KEYBOARD_Enable
3 pascal16 Disable() KEYBOARD_Disable
......@@ -22,4 +18,3 @@ owner user32
135 pascal16 OemToAnsiBuff(ptr ptr word) OemToAnsiBuff16
#136 pascal EnableKbSysReq
#137 pascal GetBiosKeyProc
name mouse
type win16
owner user32
rsrc resources/mouse.res
1 pascal16 Inquire(ptr) MOUSE_Inquire
......
name user
type win16
heap 65520
file user.exe
owner user32
rsrc resources/version16.res
1 pascal16 MessageBox(word str str word) MessageBox16
......
name user32
init UserClientDllInitialize
@ stdcall ActivateKeyboardLayout(long long) ActivateKeyboardLayout
......
name ver
type win16
owner version
#1 DLLENTRYPOINT
2 pascal GetFileResourceSize(str str str ptr) GetFileResourceSize16
3 pascal GetFileResource(str str str long long ptr) GetFileResource16
6 pascal GetFileVersionInfoSize(str ptr) GetFileVersionInfoSize16
......
name version
@ stdcall GetFileVersionInfoA(str long long ptr) GetFileVersionInfoA
@ stdcall GetFileVersionInfoSizeA(str ptr) GetFileVersionInfoSizeA
@ stdcall GetFileVersionInfoSizeW(wstr ptr) GetFileVersionInfoSizeW
......
name w32skrnl
1 stub _kSetEnvironmentVariable@8
2 stub _SzFromImte@4
3 stdcall GetCurrentTask32() GetCurrentTask32
......
name w32sys
type win16
owner w32skrnl
#1 WEP
2 pascal16 IsPeFormat(str word) IsPeFormat16
3 stub EXECPE
......
name win32s16
type win16
owner w32skrnl
1 stub WEP
2 pascal16 BootTask() BootTask16
3 stub CREATEPROCESS
......
name winaspi
type win16
owner wnaspi32
1 pascal16 GetASPISupportInfo() GetASPISupportInfo16
2 pascal16 SendASPICommand(segptr) SendASPICommand16
3 pascal16 InsertInASPIChain(word segptr) InsertInASPIChain16
4 pascal GETASPIDLLVERSION() GetASPIDLLVersion16
5 stub ___EXPORTEDSTUB
1 pascal16 GetASPISupportInfo() GetASPISupportInfo16
2 pascal16 SendASPICommand(segptr) SendASPICommand16
3 pascal16 InsertInASPIChain(word segptr) InsertInASPIChain16
4 pascal GETASPIDLLVERSION() GetASPIDLLVersion16
5 stub ___EXPORTEDSTUB
name wnaspi32
init WNASPI32_LibMain
# we have several ordinal clashes here, it seems...
......
name winedos
init DOSVM_Init
@ stdcall LoadDosExe(str long) MZ_LoadImage
......
name wineps
init PSDRV_Init
# GDI driver
......
name wineps16
type win16
owner wineps
13 pascal16 DeviceMode(word word str str) PSDRV_DeviceMode16
90 pascal16 ExtDeviceMode(word word ptr str str ptr str word) PSDRV_ExtDeviceMode16
91 pascal DeviceCapabilities(str str word ptr ptr) PSDRV_DeviceCapabilities16
......
name wininet
init WININET_LibMain
@ stub InternetInitializeAutoProxyDll
......
name joystick
file joystick.drv
@ stdcall DriverProc(long long long long long) JSTCK_DriverProc
name mcianim
file mcianim.drv
@ stdcall DriverProc(long long long long long) MCIANIM_DriverProc
name mciavi
file mciavi.drv
init MCIAVI_LibMain
@ stdcall DriverProc(long long long long long) MCIAVI_DriverProc
name mcicda
file mcicda.drv
@ stdcall DriverProc(long long long long long) MCICDA_DriverProc
name mciseq
file mciseq.drv
@ stdcall DriverProc(long long long long long) MCIMIDI_DriverProc
name mciwave
file mciwave.drv
@ stdcall DriverProc(long long long long long) MCIWAVE_DriverProc
name midimap
file midimap.drv
@ stdcall DriverProc(long long long long long) MIDIMAP_DriverProc
@ stdcall modMessage(long long long long long) MIDIMAP_modMessage
name mmsystem
type win16
owner winmm
#1 pascal MMSYSTEM_WEP(word word word ptr) MMSYSTEM_WEP
2 pascal sndPlaySound(ptr word) sndPlaySound16
3 pascal PlaySound(ptr word long) PlaySound16
......
name sound
type win16
owner winmm
1 pascal16 OpenSound() OpenSound16
2 pascal16 CloseSound() CloseSound16
3 pascal16 SetVoiceQueueSize(word word) SetVoiceQueueSize16
......
name msacmmap
file msacm.drv
@ stdcall DriverProc(long long long long long) WAVEMAP_DriverProc
@ stdcall widMessage(long long long long long) WAVEMAP_widMessage
@ stdcall wodMessage(long long long long long) WAVEMAP_wodMessage
name winearts
file winearts.drv
@ stdcall DriverProc(long long long long long) ARTS_DriverProc
@ stdcall wodMessage(long long long long long) ARTS_wodMessage
name wineoss
file wineoss.drv
1 stdcall DriverProc(long long long long long) OSS_DriverProc
2 stdcall auxMessage(long long long long long) OSS_auxMessage
3 stdcall mixMessage(long long long long long) OSS_mixMessage
......
name winmm
init WINMM_LibMain
# ordinal exports
......
name winnls
type win16
owner winnls32
1 stub WINNLSINQUIRE
2 stub HOOKKEYBOARDMESSAGE
#3 stub ___EXPORTEDSTUB
......
name winnls32
1 stub WINNLS32EnableIME
2 stub WINNLS32GetEnableStatus
3 stub WINNLS32GetIMEHotKey
......
name winsock
type win16
owner ws2_32
1 pascal16 accept(word ptr ptr) WINSOCK_accept16
2 pascal16 bind(word ptr word) WINSOCK_bind16
3 pascal16 closesocket(word) WINSOCK_closesocket16
......
......@@ -2,7 +2,6 @@
#
# Export table information obtained from Windows 2000 ws2_32.dll
name ws2_32
init WS_LibMain
# EXPORTS ***********
......
name winspool
file winspool.drv
init WINSPOOL_EntryPoint
100 stub @
......
name wintrust
@ stdcall WinVerifyTrust(long ptr ptr) WinVerifyTrust
name wow32
# ordinal exports
1 forward WOWGetDescriptor kernel32.K32WOWGetDescriptor
......
name wsock32
1 forward accept ws2_32.accept
2 forward bind ws2_32.bind
3 forward closesocket ws2_32.closesocket
......
name x11drv
init X11DRV_Init
# GDI driver
......
......@@ -21,6 +21,9 @@ ALL_OBJS = $(SPEC_SRCS:.spec=.spec.o) $(OBJS)
$(MODULE): $(ALL_OBJS)
$(CC) -o $@ $(ALL_OBJS) -L$(DLLDIR) $(LDIMPORTS:%=-l%) $(LIBWINE) $(LIBUNICODE) $(LIBS) $(LDFLAGS)
wine.spec.c: wine.spec
$(LDPATH) $(WINEBUILD) $(DEFS) -o $@ -spec $(SRCDIR)/wine.spec -L$(DLLDIR) $(IMPORTS:%=-l%)
install:: $(MODULE)
$(MKINSTALLDIRS) $(bindir)
$(INSTALL_PROGRAM) wine $(bindir)/wine
......
name wine
mode guiexe
init wine_initial_task
Spec file format
----------------
name NAME
type win16|win32
[name NAME]
[file WINFILENAME]
[mode dll|cuiexe|guiexe|cuiexe_unicode|guiexe_unicode]
[heap SIZE]
[stack SIZE]
[init FUNCTION]
[rsrc RESFILE]
[ignore ([SYMBOL [SYMBOL...]])]
......@@ -29,9 +27,17 @@ ORDINAL forward [FLAGS] EXPORTNAME SYMBOLNAME
General:
========
"name" and "type" fields are mandatory. Specific ordinal
declarations are optional, but the default handler will print an error
message.
All declarations are optional; reasonable defaults will be used for
anything that isn't specified.
"name" is the internal name of the module. It is only used in Win16
modules. The default is to use the base name of the spec file (without
any extension). This is used for KERNEL, since it lives in
KRNL386.EXE. It shouldn't be needed otherwise.
"file" gives the name of the file containing the dll. If not specified
it is determined from the name of the source spec file. Normally you
shouldn't ever need to specify it explicitly.
"mode" specifies whether it is the spec file for a dll or the main exe.
This is only valid for Win32 spec files.
......@@ -39,13 +45,6 @@ This is only valid for Win32 spec files.
"heap" is the size of the module local heap (only valid for Win16
modules); default is no local heap.
"stack" is the stack size for Win32 exe modules, in kilobytes; default
size is 1024 (1Mb stack).
"file" gives the name of the Windows file that is replaced by the
builtin. <name>.DLL is assumed if none is given. (This is important
for kernel, which lives in the Windows file KRNL386.EXE).
"init" specifies a function which will be called when this dll
is loaded. This is only valid for Win32 modules.
......@@ -142,7 +141,7 @@ Equate ordinals:
================
This type defines an ordinal as an absolute value.
"EXPORTNAME" will be the name available for dynamic linking.
"EXPORTNAME" will be the name available for dynamic linking.
"DATA" can be a decimal number or a hex number preceeded by "0x".
Extern ordinals:
......@@ -158,6 +157,5 @@ Forwarded ordinals:
This type defines an entry that is forwarded to another entry
point (kind of a symbolic link). "EXPORTNAME" will forward to the
entry point "SYMBOLNAME" that must be of the form "DLL.Function". This
entry point "SYMBOLNAME" that must be of the form "DLL.Function". This
type only works with Win32.
......@@ -116,16 +116,13 @@ static char *open_library( const char *name )
static void read_exported_symbols( const char *name, struct import *imp )
{
FILE *f;
char buffer[1024];
char buffer[1024], prefix[80];
char *fullname, *cmdline;
const char *ext;
int size, err;
imp->exports = NULL;
imp->nb_exports = size = 0;
if (!(ext = strrchr( name, '.' ))) ext = name + strlen(name);
if (!(fullname = open_library( name ))) return;
cmdline = xmalloc( strlen(fullname) + 7 );
sprintf( cmdline, "nm -D %s", fullname );
......@@ -134,15 +131,15 @@ static void read_exported_symbols( const char *name, struct import *imp )
if (!(f = popen( cmdline, "r" )))
fatal_error( "Cannot execute '%s'\n", cmdline );
sprintf( prefix, "__wine_dllexport_%s", make_c_identifier(name) );
while (fgets( buffer, sizeof(buffer), f ))
{
char *p = buffer + strlen(buffer) - 1;
if (p < buffer) continue;
if (*p == '\n') *p-- = 0;
if (!(p = strstr( buffer, "__wine_dllexport_" ))) continue;
p += 17;
if (strncmp( p, name, ext - name )) continue;
p += ext - name;
if (!(p = strstr( buffer, prefix ))) continue;
p += strlen(prefix);
if (*p++ != '_') continue;
if (imp->nb_exports == size)
......
......@@ -119,6 +119,7 @@ static void do_f_flags( const char *arg );
static void do_define( const char *arg );
static void do_include( const char *arg );
static void do_exe_mode( const char *arg );
static void do_module( const char *arg );
static void do_spec( const char *arg );
static void do_def( const char *arg );
static void do_exe( const char *arg );
......@@ -142,6 +143,7 @@ static const struct option_descr option_table[] =
{ "-D", 1, do_define, "-D sym Ignored for C flags compatibility" },
{ "-I", 1, do_include, "-I dir Ignored for C flags compatibility" },
{ "-m", 1, do_exe_mode,"-m mode Set the executable mode (cui|gui|cuiw|guiw)" },
{ "-M", 1, do_module, "-M module Set the name of the main (Win32) module for a Win16 dll" },
{ "-L", 1, do_lib, "-L directory Look for imports libraries in 'directory'" },
{ "-l", 1, do_import, "-l lib.dll Import the specified library" },
{ "-dl", 1, do_dimport, "-dl lib.dll Delay-import the specified library" },
......@@ -207,9 +209,16 @@ static void do_include( const char *arg )
static void do_spec( const char *arg )
{
char *p;
if (exec_mode != MODE_NONE || !arg[0]) do_usage();
exec_mode = MODE_SPEC;
open_input( arg );
if ((p = strrchr( arg, '/' ))) strcpy( DLLFileName, p + 1 );
else strcpy( DLLFileName, arg );
if ((p = strrchr( DLLFileName, '.' )) && !strcmp( p, ".spec" )) *p = 0;
if (!strchr( DLLFileName, '.' )) strcat( DLLFileName, ".dll" );
}
static void do_def( const char *arg )
......@@ -227,7 +236,6 @@ static void do_exe( const char *arg )
exec_mode = MODE_EXE;
if ((p = strrchr( arg, '/' ))) p++;
else p = arg;
strcpy( DLLName, p );
strcpy( DLLFileName, p );
if (!strchr( DLLFileName, '.' )) strcat( DLLFileName, ".exe" );
if (SpecMode == SPEC_MODE_DLL) SpecMode = SPEC_MODE_GUIEXE;
......@@ -242,6 +250,11 @@ static void do_exe_mode( const char *arg )
else do_usage();
}
static void do_module( const char *arg )
{
strcpy( owner_name, arg );
}
static void do_glue( const char *arg )
{
if (exec_mode != MODE_NONE || !arg[0]) do_usage();
......
......@@ -495,6 +495,8 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
input_file = file;
current_line = 1;
if (owner_name[0]) SpecType = SPEC_WIN16;
while ((token = GetToken(1)) != NULL)
{
if (strcmp(token, "name") == 0)
......@@ -505,13 +507,6 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
{
strcpy(DLLFileName, GetToken(0));
}
else if (strcmp(token, "type") == 0)
{
token = GetToken(0);
if (!strcmp(token, "win16" )) SpecType = SPEC_WIN16;
else if (!strcmp(token, "win32" )) SpecType = SPEC_WIN32;
else fatal_error( "Type must be 'win16' or 'win32'\n" );
}
else if (strcmp(token, "mode") == 0)
{
token = GetToken(0);
......@@ -528,12 +523,6 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
if (!IsNumberString(token)) fatal_error( "Expected number after heap\n" );
DLLHeapSize = atoi(token);
}
else if (strcmp(token, "stack") == 0)
{
token = GetToken(0);
if (!IsNumberString(token)) fatal_error( "Expected number after stack\n" );
stack_size = atoi(token);
}
else if (strcmp(token, "init") == 0)
{
if (SpecType == SPEC_WIN16)
......@@ -549,12 +538,6 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
}
else GetToken(0); /* skip it */
}
else if (strcmp(token, "owner") == 0)
{
if (SpecType != SPEC_WIN16)
fatal_error( "Owner only supported for Win16 spec files\n" );
strcpy( owner_name, GetToken(0) );
}
else if (strcmp(token, "ignore") == 0)
{
if (SpecType != SPEC_WIN32)
......@@ -575,19 +558,6 @@ SPEC_TYPE ParseTopLevel( FILE *file, int def_only )
fatal_error( "Expected name, id, length or ordinal\n" );
}
if (!DLLFileName[0])
{
if (SpecMode == SPEC_MODE_DLL)
{
strcpy( DLLFileName, DLLName );
/* Append .dll to name if no extension present */
if (!strrchr( DLLFileName, '.'))
strcat( DLLFileName, ".dll" );
}
else
sprintf( DLLFileName, "%s.exe", DLLName );
}
if (SpecType == SPEC_WIN16 && !owner_name[0])
fatal_error( "'owner' not specified for Win16 dll\n" );
......
......@@ -199,6 +199,7 @@ static int BuildModule16( FILE *outfile, int max_code_offset,
/* First entry is module name */
*pstr = strlen( DLLName );
strcpy( pstr + 1, DLLName );
strupper( pstr + 1 );
pstr += *pstr + 1;
*pstr++ = 0;
*pstr++ = 0;
......@@ -588,7 +589,7 @@ static void output_stub_funcs( FILE *outfile )
fprintf( outfile, " rec.flags = %d;\n", EH_NONCONTINUABLE );
fprintf( outfile, " rec.rec = 0;\n" );
fprintf( outfile, " rec.params = 2;\n" );
fprintf( outfile, " rec.info[0] = dllname;\n" );
fprintf( outfile, " rec.info[0] = \"%s\";\n", DLLFileName );
fprintf( outfile, " rec.info[1] = func;\n" );
fprintf( outfile, "#ifdef __GNUC__\n" );
fprintf( outfile, " rec.addr = __builtin_return_address(1);\n" );
......@@ -639,9 +640,13 @@ void BuildSpec16File( FILE *outfile )
data = (unsigned char *)xmalloc( 0x10000 );
memset( data, 0, 16 );
data_offset = 16;
strupper( DLLName );
fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLName );
if (!DLLName[0]) /* set default name from file name */
{
char *p;
strcpy( DLLName, DLLFileName );
if ((p = strrchr( DLLName, '.' ))) *p = 0;
}
output_stub_funcs( outfile );
......@@ -683,7 +688,7 @@ void BuildSpec16File( FILE *outfile )
char profile[101];
strcpy( profile, get_function_name( typelist[i] ));
BuildCallFrom16Func( outfile, profile, DLLName );
BuildCallFrom16Func( outfile, profile, DLLFileName );
}
#endif
......@@ -780,7 +785,7 @@ void BuildSpec16File( FILE *outfile )
#ifdef __i386__
fprintf( outfile, " { 0x68, __wine_%s_CallFrom16_%s, 0x9a, __wine_call_from_16_%s,\n",
make_c_identifier(DLLName), profile,
make_c_identifier(DLLFileName), profile,
(typelist[i]->flags & (FLAG_REGISTER|FLAG_INTERRUPT)) ? "regs":
typelist[i]->type == TYPE_PASCAL_16? "word" : "long" );
if (argsize)
......@@ -878,8 +883,8 @@ void BuildSpec16File( FILE *outfile )
/* Output the DLL constructor */
sprintf( constructor, "__wine_spec_%s_init", make_c_identifier(DLLName) );
sprintf( destructor, "__wine_spec_%s_fini", make_c_identifier(DLLName) );
sprintf( constructor, "__wine_spec_%s_init", make_c_identifier(DLLFileName) );
sprintf( destructor, "__wine_spec_%s_fini", make_c_identifier(DLLFileName) );
output_dll_init( outfile, constructor, destructor );
fprintf( outfile,
......@@ -942,4 +947,3 @@ void BuildGlue( FILE *outfile, FILE *infile )
fclose( infile );
}
......@@ -53,12 +53,12 @@ static const char *make_internal_name( const ORDDEF *odp, const char *prefix )
if (odp->name[0])
{
char *p;
sprintf( buffer, "__wine_%s_%s_%s", prefix, DLLName, odp->name );
sprintf( buffer, "__wine_%s_%s_%s", prefix, DLLFileName, odp->name );
/* make sure name is a legal C identifier */
for (p = buffer; *p; p++) if (!isalnum(*p) && *p != '_') break;
if (!*p) return buffer;
}
sprintf( buffer, "__wine_%s_%s_%d", prefix, make_c_identifier(DLLName), odp->ordinal );
sprintf( buffer, "__wine_%s_%s_%d", prefix, make_c_identifier(DLLFileName), odp->ordinal );
return buffer;
}
......@@ -310,9 +310,9 @@ static int output_exports( FILE *outfile, int nr_exports )
if (!isalnum(*p) && *p != '_' && *p != '.') break;
if (*p) continue;
fprintf( outfile, " \"\\t.globl " PREFIX "__wine_dllexport_%s_%s\\n\"\n",
make_c_identifier(DLLName), Names[i]->name );
make_c_identifier(DLLFileName), Names[i]->name );
fprintf( outfile, " \"" PREFIX "__wine_dllexport_%s_%s:\\n\"\n",
make_c_identifier(DLLName), Names[i]->name );
make_c_identifier(DLLFileName), Names[i]->name );
}
fprintf( outfile, " \"\\t.long 0xffffffff\\n\"\n" );
......@@ -475,7 +475,6 @@ void output_dll_init( FILE *outfile, const char *constructor, const char *destru
{
fprintf( outfile, "asm(\"\\t.section\t.fini ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tbl " PREFIX "%s\\n\"\n", destructor );
DLLName );
fprintf( outfile, " \"\\t.previous\\n\");\n" );
}
#else
......@@ -527,7 +526,7 @@ void BuildSpec32File( FILE *outfile )
fprintf( outfile, " \".align %d\\n\"\n", get_alignment(page_size) );
fprintf( outfile, " \"" PREFIX "pe_header:\\t.fill %ld,1,0\\n\\t\");\n", page_size );
fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLName );
fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLFileName );
fprintf( outfile, "extern int __wine_spec_exports[];\n\n" );
#ifdef __i386__
......@@ -775,7 +774,7 @@ void BuildSpec32File( FILE *outfile )
/* Output the DLL constructor */
sprintf( constructor, "__wine_spec_%s_init", make_c_identifier(DLLName) );
sprintf( constructor, "__wine_spec_%s_init", make_c_identifier(DLLFileName) );
output_dll_init( outfile, constructor, NULL );
fprintf( outfile,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment