Commit 76d3671b authored by Alexandre Julliard's avatar Alexandre Julliard

Added 'owner' field to 16-bit spec files to specify the name of the

32-bit dll that contains it.
parent a3502ccf
name avifile
type win16
owner avifil32
1 stub WEP
2 stub DLLGETCLASSOBJECT
......
name commdlg
type win16
owner comdlg32
1 pascal16 GetOpenFileName(segptr) GetOpenFileName16
2 pascal16 GetSaveFileName(segptr) GetSaveFileName16
......
name dispdib
type win16
owner gdi32
1 pascal16 DISPLAYDIB(ptr ptr word) DisplayDib
......@@ -2,6 +2,7 @@ name gdi
type win16
heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
file gdi.exe
owner gdi32
1 pascal SetBkColor(word long) SetBkColor16
2 pascal16 SetBkMode(word word) SetBkMode16
......
name wing
type win16
owner gdi32
1001 pascal16 WINGCREATEDC() WinGCreateDC16
1002 pascal16 WINGRECOMMENDDIBFORMAT(ptr) WinGRecommendDIBFormat16
......
name comm
type win16
owner kernel32
1 stub INICOM
2 stub SETCOM
......
name kernel
type win16
file krnl386.exe
owner kernel32
# 1-207 are the basic functions, those are (with minor variations)
# present in win31, win95 and nt351
......
......@@ -2,6 +2,7 @@
#
name stress
type win16
owner kernel32
2 pascal allocmem(long) AllocMem
3 pascal freeallmem() FreeAllMem
......
name system
type win16
owner kernel32
1 pascal InquireSystem(word word) InquireSystem16
2 pascal16 CreateSystemTimer(word segptr) WIN16_CreateSystemTimer
......
name toolhelp
type win16
owner kernel32
50 pascal16 GlobalHandleToSel(word) GlobalHandleToSel16
51 pascal16 GlobalFirst(ptr word) GlobalFirst16
......
name win87em
type win16
owner kernel32
1 register _fpMath() WIN87_fpmath
3 pascal16 __WinEm87Info(ptr word) WIN87_WinEm87Info
......
name windebug
type win16
owner kernel32
1 stub WINDEBUG
2 stub WEP
......
name wprocs
type win16
owner kernel32
23 pascal UTGlue16(ptr long ptr long) UTGlue16
27 pascal EntryAddrProc(word word) WIN16_NE_GetEntryPoint
......
name lzexpand
type win16
owner lz32
1 pascal LZCopy(word word) LZCopy16
2 pascal16 LZOpenFile(str ptr word) LZOpenFile16
......
name msacm
type win16
owner msacm32
1 stub WEP
2 stub DRIVERPROC
......
name msvideo
type win16
owner msvfw32
2 pascal VideoForWindowsVersion() VideoForWindowsVersion
20 stub VIDEOGETNUMDEVS
......
name compobj
type win16
owner ole32
1 pascal CoBuildVersion() CoBuildVersion
2 pascal CoInitialize(long) CoInitialize16
......
name ole2
type win16
owner ole32
1 pascal OleBuildVersion() OleBuildVersion
2 pascal OleInitialize(ptr) OleInitialize
......
name ole2conv
type win16
owner ole32
1 stub GETFILTERINFO
2 stub IMPORTGR
......
name ole2nls
type win16
owner ole32
1 pascal GetUserDefaultLCID() GetUserDefaultLCID
2 pascal GetSystemDefaultLCID() GetSystemDefaultLCID
......
name ole2prox
type win16
owner ole32
1 stub DLLGETCLASSOBJECT
#2 WEP
......
name ole2thk
type win16
owner ole32
1 stub WEP
2 stub ROT16_ISRUNNING16
......
......@@ -3,6 +3,7 @@
# 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
......
name typelib
type win16
owner oleaut32
2 stub CREATETYPELIB
3 pascal LoadTypeLib(ptr ptr) LoadTypeLib16
......
name olecli
type win16
owner olecli32
#1 WEP
2 stub OLEDELETE
......
name olesvr
type win16
owner olesvr32
#1 WEP
2 pascal OleRegisterServer(str ptr ptr word word) OleRegisterServer16
......
name rasapi16
type win16
owner rasapi32
#1 stub WEP
#2 stub DLLENTRYPOINT
......
name setupx
type win16
owner setupapi
1 stub WEP
2 stub IPOPEN
......
name shell
type win16
owner shell32
1 pascal RegOpenKey(long str ptr) RegOpenKey16
2 pascal RegCreateKey(long str ptr) RegCreateKey16
......
name ddeml
type win16
owner user32
2 pascal16 DdeInitialize(ptr segptr long long) DdeInitialize16
3 pascal16 DdeUninitialize(long) DdeUninitialize16
......
name display
type win16
owner user32
rsrc disp
1 stub BitBlt
......
name keyboard
type win16
owner user32
1 pascal16 Inquire(ptr) KEYBOARD_Inquire
2 pascal16 Enable(segptr ptr) WIN16_KEYBOARD_Enable
......
name mouse
type win16
owner user32
rsrc mouserc
1 pascal16 Inquire(ptr) MOUSE_Inquire
......
......@@ -2,6 +2,7 @@ name user
type win16
heap 65520
file user.exe
owner user32
1 pascal16 MessageBox(word str str word) MessageBox16
2 stub OldExitWindows
......
name ver
type win16
owner version
#1 DLLENTRYPOINT
......
name w32sys
type win16
owner w32skrnl
#1 WEP
2 pascal16 IsPeFormat(str word) IsPeFormat16
......
name win32s16
type win16
owner w32skrnl
1 stub WEP
2 pascal16 BootTask() BootTask16
......
name winaspi
type win16
owner wnaspi32
1 pascal16 GetASPISupportInfo() GetASPISupportInfo16
2 pascal16 SendASPICommand(segptr) SendASPICommand16
......
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
......
name mmsystem
type win16
owner winmm
#1 pascal MMSYSTEM_WEP(word word word ptr) MMSYSTEM_WEP
2 pascal sndPlaySound(ptr word) sndPlaySound16
......
name sound
type win16
owner winmm
1 pascal16 OpenSound() OpenSound16
2 pascal16 CloseSound() CloseSound16
......
......@@ -5,6 +5,7 @@
#
name winsock
type win16
owner ws2_32
1 pascal16 accept(word ptr ptr) WINSOCK_accept16
2 pascal16 bind(word ptr word) WINSOCK_bind16
......
......@@ -78,6 +78,7 @@ typedef struct
int module_size; /* Size of the module data */
const BYTE *code_start; /* 32-bit address of DLL code */
const BYTE *data_start; /* 32-bit address of DLL data */
const char *owner; /* 32-bit dll that contains this dll */
const void *rsrc; /* resources data */
} BUILTIN16_DESCRIPTOR;
......
......@@ -162,6 +162,7 @@ extern char DLLName[80];
extern char DLLFileName[80];
extern char DLLInitFunc[80];
extern char rsrc_name[80];
extern char owner_name[80];
extern char *DLLImports[MAX_IMPORTS];
extern const char *input_file_name;
extern const char *output_file_name;
......
......@@ -46,6 +46,7 @@ char DLLFileName[80];
char DLLInitFunc[80];
char *DLLImports[MAX_IMPORTS];
char rsrc_name[80];
char owner_name[80];
const char *input_file_name;
const char *output_file_name;
......
......@@ -467,6 +467,12 @@ SPEC_TYPE ParseTopLevel( FILE *file )
strcpy( rsrc_name, GetToken() );
strcat( rsrc_name, "_ResourceDescriptor" );
}
else if (strcmp(token, "owner") == 0)
{
if (SpecType != SPEC_WIN16)
fatal_error( "Owner only supported for Win16 spec files\n" );
strcpy( owner_name, GetToken() );
}
else if (strcmp(token, "@") == 0)
{
if (SpecType != SPEC_WIN32)
......@@ -490,6 +496,9 @@ SPEC_TYPE ParseTopLevel( FILE *file )
}
if (SpecType == SPEC_INVALID) fatal_error( "Missing 'type' declaration\n" );
if (SpecType == SPEC_WIN16 && !owner_name[0])
fatal_error( "'owner' not specified for Win16 dll\n" );
current_line = 0; /* no longer parsing the input file */
return SpecType;
}
......@@ -707,6 +707,7 @@ void BuildSpec16File( FILE *outfile )
fprintf( outfile, " sizeof(Module),\n" );
fprintf( outfile, " (BYTE *)&Code_Segment,\n" );
fprintf( outfile, " (BYTE *)Data_Segment,\n" );
fprintf( outfile, " \"%s\",\n", owner_name );
fprintf( outfile, " %s\n", rsrc_name[0] ? rsrc_name : "0" );
fprintf( outfile, "};\n" );
......
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