Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
613ead7f
Commit
613ead7f
authored
Oct 04, 2002
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed some handle conversions in prevision of void* handles.
parent
dd0c4c16
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
45 additions
and
49 deletions
+45
-49
access.c
dlls/imagehlp/access.c
+1
-3
process.c
dlls/msvcrt/process.c
+2
-2
user16.c
dlls/user/user16.c
+3
-4
info.c
dlls/winspool/info.c
+2
-2
tlhelp32.h
include/tlhelp32.h
+2
-2
pe_image.c
loader/pe_image.c
+29
-30
font.c
objects/font.c
+1
-1
gdiobj.c
objects/gdiobj.c
+5
-5
No files found.
dlls/imagehlp/access.c
View file @
613ead7f
...
...
@@ -37,7 +37,7 @@ static PLOADED_IMAGE IMAGEHLP_pLastLoadedImage=NULL;
static
LOADED_IMAGE
IMAGEHLP_EmptyLoadedImage
=
{
NULL
,
/* ModuleName */
0
xffffffff
,
/* hFile */
0
,
/* hFile */
NULL
,
/* MappedAddress */
NULL
,
/* FileHeader */
NULL
,
/* LastRvaSection */
...
...
@@ -317,5 +317,3 @@ BOOL WINAPI UnMapAndLoad(PLOADED_IMAGE LoadedImage)
SetLastError
(
ERROR_CALL_NOT_IMPLEMENTED
);
return
FALSE
;
}
dlls/msvcrt/process.c
View file @
613ead7f
...
...
@@ -453,7 +453,7 @@ int MSVCRT_system(const char* cmd)
*/
int
_loaddll
(
const
char
*
dllname
)
{
return
LoadLibraryA
(
dllname
);
return
(
int
)
LoadLibraryA
(
dllname
);
}
/*********************************************************************
...
...
@@ -461,7 +461,7 @@ int _loaddll(const char* dllname)
*/
int
_unloaddll
(
int
dll
)
{
if
(
FreeLibrary
((
H
AND
LE
)
dll
))
if
(
FreeLibrary
((
H
MODU
LE
)
dll
))
return
0
;
else
{
...
...
dlls/user/user16.c
View file @
613ead7f
...
...
@@ -181,8 +181,8 @@ BOOL16 WINAPI GetIconInfo16(HICON16 hIcon, LPICONINFO16 iconinfo)
iconinfo
->
fIcon
=
ii32
.
fIcon
;
iconinfo
->
xHotspot
=
ii32
.
xHotspot
;
iconinfo
->
yHotspot
=
ii32
.
yHotspot
;
iconinfo
->
hbmMask
=
ii32
.
hbmMask
;
iconinfo
->
hbmColor
=
ii32
.
hbmColor
;
iconinfo
->
hbmMask
=
HBITMAP_16
(
ii32
.
hbmMask
)
;
iconinfo
->
hbmColor
=
HBITMAP_16
(
ii32
.
hbmColor
)
;
return
ret
;
}
...
...
@@ -204,8 +204,7 @@ HCURSOR16 WINAPI CreateCursor16(HINSTANCE16 hInstance,
info
.
bPlanes
=
1
;
info
.
bBitsPerPixel
=
1
;
return
CreateCursorIconIndirect16
(
HINSTANCE_32
(
hInstance
),
&
info
,
lpANDbits
,
lpXORbits
);
return
CreateCursorIconIndirect16
(
hInstance
,
&
info
,
lpANDbits
,
lpXORbits
);
}
/**********************************************************************
...
...
dlls/winspool/info.c
View file @
613ead7f
...
...
@@ -1074,7 +1074,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
* just create to find a DEVMODEA struct (it will use the WINEPS default
* one in case it is not there, so we are ok).
*/
size
=
DocumentPropertiesW
(
0
,
-
1
,
pi
->
pPrinterName
,
NULL
,
NULL
,
0
);
size
=
DocumentPropertiesW
(
0
,
0
,
pi
->
pPrinterName
,
NULL
,
NULL
,
0
);
if
(
size
<
0
)
{
FIXME
(
"DocumentPropertiesW on printer '%s' fails
\n
"
,
debugstr_w
(
pi
->
pPrinterName
));
size
=
sizeof
(
DEVMODEW
);
...
...
@@ -1084,7 +1084,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
else
{
dmW
=
HeapAlloc
(
GetProcessHeap
(),
0
,
size
);
dmW
->
dmSize
=
size
;
if
(
0
>
DocumentPropertiesW
(
0
,
-
1
,
pi
->
pPrinterName
,
dmW
,
NULL
,
DM_OUT_BUFFER
))
{
if
(
0
>
DocumentPropertiesW
(
0
,
0
,
pi
->
pPrinterName
,
dmW
,
NULL
,
DM_OUT_BUFFER
))
{
ERR
(
"DocumentPropertiesW on printer '%s' failed!
\n
"
,
debugstr_w
(
pi
->
pPrinterName
));
SetLastError
(
ERROR_UNKNOWN_PRINTER_DRIVER
);
return
0
;
...
...
include/tlhelp32.h
View file @
613ead7f
...
...
@@ -114,7 +114,7 @@ typedef struct tagMODULEENTRY32
DWORD
ProccntUsage
;
BYTE
*
modBaseAddr
;
DWORD
modBaseSize
;
DWORD
hModule
;
HMODULE
hModule
;
char
szModule
[
MAX_MODULE_NAME32
+
1
];
char
szExePath
[
MAX_PATH
];
}
MODULEENTRY32
,
*
PMODULEENTRY32
,
*
LPMODULEENTRY32
;
...
...
@@ -128,7 +128,7 @@ typedef struct tagMODULEENTRY32W
DWORD
ProccntUsage
;
BYTE
*
modBaseAddr
;
DWORD
modBaseSize
;
DWORD
hModule
;
HMODULE
hModule
;
WCHAR
szModule
[
MAX_MODULE_NAME32
+
1
];
WCHAR
szExePath
[
MAX_PATH
];
}
MODULEENTRY32W
,
*
PMODULEENTRY32W
,
*
LPMODULEENTRY32W
;
...
...
loader/pe_image.c
View file @
613ead7f
...
...
@@ -56,7 +56,10 @@ WINE_DECLARE_DEBUG_CHANNEL(segment);
/* convert PE image VirtualAddress to Real Address */
#define RVA(x) ((void *)((char *)load_addr+(unsigned int)(x)))
inline
static
void
*
get_rva
(
HMODULE
module
,
DWORD
va
)
{
return
(
void
*
)((
char
*
)
module
+
va
);
}
#define AdjustPtr(ptr,delta) ((char *)(ptr) + (delta))
...
...
@@ -66,37 +69,36 @@ void dump_exports( HMODULE hModule )
int
i
,
j
;
WORD
*
ordinal
;
DWORD
*
function
,
*
functions
;
BYTE
**
name
;
unsigned
int
load_addr
=
hModule
;
DWORD
*
name
;
IMAGE_EXPORT_DIRECTORY
*
pe_exports
;
DWORD
rva_start
,
size
;
pe_exports
=
RtlImageDirectoryEntryToData
(
hModule
,
TRUE
,
IMAGE_DIRECTORY_ENTRY_EXPORT
,
&
size
);
rva_start
=
(
char
*
)
pe_exports
-
(
char
*
)
hModule
;
Module
=
(
char
*
)
RVA
(
pe_exports
->
Name
);
Module
=
get_rva
(
hModule
,
pe_exports
->
Name
);
DPRINTF
(
"*******EXPORT DATA*******
\n
"
);
DPRINTF
(
"Module name is %s, %ld functions, %ld names
\n
"
,
Module
,
pe_exports
->
NumberOfFunctions
,
pe_exports
->
NumberOfNames
);
ordinal
=
RVA
(
pe_exports
->
AddressOfNameOrdinals
);
functions
=
function
=
RVA
(
pe_exports
->
AddressOfFunctions
);
name
=
RVA
(
pe_exports
->
AddressOfNames
);
ordinal
=
get_rva
(
hModule
,
pe_exports
->
AddressOfNameOrdinals
);
functions
=
function
=
get_rva
(
hModule
,
pe_exports
->
AddressOfFunctions
);
name
=
get_rva
(
hModule
,
pe_exports
->
AddressOfNames
);
DPRINTF
(
" Ord RVA Addr Name
\n
"
);
for
(
i
=
0
;
i
<
pe_exports
->
NumberOfFunctions
;
i
++
,
function
++
)
{
if
(
!*
function
)
continue
;
/* No such function */
DPRINTF
(
"%4ld %08lx %p"
,
i
+
pe_exports
->
Base
,
*
function
,
RVA
(
*
function
)
);
DPRINTF
(
"%4ld %08lx %p"
,
i
+
pe_exports
->
Base
,
*
function
,
get_rva
(
hModule
,
*
function
)
);
/* Check if we have a name for it */
for
(
j
=
0
;
j
<
pe_exports
->
NumberOfNames
;
j
++
)
if
(
ordinal
[
j
]
==
i
)
{
DPRINTF
(
" %s"
,
(
char
*
)
RVA
(
name
[
j
])
);
DPRINTF
(
" %s"
,
(
char
*
)
get_rva
(
hModule
,
name
[
j
])
);
break
;
}
if
((
*
function
>=
rva_start
)
&&
(
*
function
<=
rva_start
+
size
))
DPRINTF
(
" (forwarded -> %s)"
,
(
char
*
)
RVA
(
*
function
));
DPRINTF
(
" (forwarded -> %s)"
,
(
char
*
)
get_rva
(
hModule
,
*
function
));
DPRINTF
(
"
\n
"
);
}
}
...
...
@@ -117,11 +119,11 @@ static FARPROC PE_FindExportedFunction(
{
WORD
*
ordinals
;
DWORD
*
function
;
BYTE
**
name
,
*
ename
=
NULL
;
int
i
,
ordinal
;
unsigned
int
load_addr
=
wm
->
module
;
DWORD
rva_start
,
addr
;
char
*
forward
;
DWORD
*
name
;
char
*
ename
=
NULL
;
FARPROC
proc
;
IMAGE_EXPORT_DIRECTORY
*
exports
;
DWORD
exp_size
;
...
...
@@ -133,9 +135,9 @@ static FARPROC PE_FindExportedFunction(
if
(
HIWORD
(
funcName
))
TRACE
(
"(%s)
\n
"
,
funcName
);
else
TRACE
(
"(%d)
\n
"
,
LOWORD
(
funcName
));
ordinals
=
RVA
(
exports
->
AddressOfNameOrdinals
);
function
=
RVA
(
exports
->
AddressOfFunctions
);
name
=
RVA
(
exports
->
AddressOfNames
);
ordinals
=
get_rva
(
wm
->
module
,
exports
->
AddressOfNameOrdinals
);
function
=
get_rva
(
wm
->
module
,
exports
->
AddressOfFunctions
);
name
=
get_rva
(
wm
->
module
,
exports
->
AddressOfNames
);
forward
=
NULL
;
rva_start
=
(
char
*
)
exports
-
(
char
*
)
wm
->
module
;
...
...
@@ -146,7 +148,7 @@ static FARPROC PE_FindExportedFunction(
/* first check the hint */
if
(
hint
>=
0
&&
hint
<=
max
)
{
ename
=
RVA
(
name
[
hint
]);
ename
=
get_rva
(
wm
->
module
,
name
[
hint
]);
if
(
!
strcmp
(
ename
,
funcName
))
{
ordinal
=
ordinals
[
hint
];
...
...
@@ -158,7 +160,7 @@ static FARPROC PE_FindExportedFunction(
while
(
min
<=
max
)
{
int
res
,
pos
=
(
min
+
max
)
/
2
;
ename
=
RVA
(
name
[
pos
]);
ename
=
get_rva
(
wm
->
module
,
name
[
pos
]);
if
(
!
(
res
=
strcmp
(
ename
,
funcName
)))
{
ordinal
=
ordinals
[
pos
];
...
...
@@ -177,7 +179,7 @@ static FARPROC PE_FindExportedFunction(
for
(
i
=
0
;
i
<
exports
->
NumberOfNames
;
i
++
)
if
(
ordinals
[
i
]
==
ordinal
)
{
ename
=
RVA
(
name
[
i
]);
ename
=
get_rva
(
wm
->
module
,
name
[
i
]);
break
;
}
}
...
...
@@ -192,7 +194,7 @@ static FARPROC PE_FindExportedFunction(
addr
=
function
[
ordinal
];
if
(
!
addr
)
return
NULL
;
proc
=
RVA
(
addr
);
proc
=
get_rva
(
wm
->
module
,
addr
);
if
(((
char
*
)
proc
<
(
char
*
)
exports
)
||
((
char
*
)
proc
>=
(
char
*
)
exports
+
exp_size
))
{
if
(
snoop
)
...
...
@@ -229,7 +231,6 @@ static FARPROC PE_FindExportedFunction(
*/
DWORD
PE_fixup_imports
(
WINE_MODREF
*
wm
)
{
unsigned
int
load_addr
=
wm
->
module
;
int
i
,
characteristics_detection
=
1
;
IMAGE_IMPORT_DESCRIPTOR
*
imports
,
*
pe_imp
;
DWORD
size
;
...
...
@@ -268,7 +269,7 @@ DWORD PE_fixup_imports( WINE_MODREF *wm )
WINE_MODREF
*
wmImp
;
IMAGE_IMPORT_BY_NAME
*
pe_name
;
PIMAGE_THUNK_DATA
import_list
,
thunk_list
;
char
*
name
=
(
char
*
)
RVA
(
pe_imp
->
Name
);
char
*
name
=
get_rva
(
wm
->
module
,
pe_imp
->
Name
);
if
(
characteristics_detection
&&
!
pe_imp
->
u
.
Characteristics
)
break
;
...
...
@@ -284,8 +285,8 @@ DWORD PE_fixup_imports( WINE_MODREF *wm )
if
(
pe_imp
->
u
.
OriginalFirstThunk
!=
0
)
{
/* original MS style */
TRACE
(
"Microsoft style imports used
\n
"
);
import_list
=
(
PIMAGE_THUNK_DATA
)
RVA
(
pe_imp
->
u
.
OriginalFirstThunk
);
thunk_list
=
(
PIMAGE_THUNK_DATA
)
RVA
(
pe_imp
->
FirstThunk
);
import_list
=
get_rva
(
wm
->
module
,
(
DWORD
)
pe_imp
->
u
.
OriginalFirstThunk
);
thunk_list
=
get_rva
(
wm
->
module
,
(
DWORD
)
pe_imp
->
FirstThunk
);
while
(
import_list
->
u1
.
Ordinal
)
{
if
(
IMAGE_SNAP_BY_ORDINAL
(
import_list
->
u1
.
Ordinal
))
{
...
...
@@ -301,7 +302,7 @@ DWORD PE_fixup_imports( WINE_MODREF *wm )
thunk_list
->
u1
.
Function
=
(
PDWORD
)
0xdeadbeef
;
}
}
else
{
/* import by name */
pe_name
=
(
PIMAGE_IMPORT_BY_NAME
)
RVA
(
import_list
->
u1
.
AddressOfData
);
pe_name
=
get_rva
(
wm
->
module
,
(
DWORD
)
import_list
->
u1
.
AddressOfData
);
TRACE
(
"--- %s %s.%d
\n
"
,
pe_name
->
Name
,
name
,
pe_name
->
Hint
);
thunk_list
->
u1
.
Function
=
(
PDWORD
)
MODULE_GetProcAddress
(
wmImp
->
module
,
pe_name
->
Name
,
pe_name
->
Hint
,
TRUE
...
...
@@ -317,7 +318,7 @@ DWORD PE_fixup_imports( WINE_MODREF *wm )
}
}
else
{
/* Borland style */
TRACE
(
"Borland style imports used
\n
"
);
thunk_list
=
(
PIMAGE_THUNK_DATA
)
RVA
(
pe_imp
->
FirstThunk
);
thunk_list
=
get_rva
(
wm
->
module
,
(
DWORD
)
pe_imp
->
FirstThunk
);
while
(
thunk_list
->
u1
.
Ordinal
)
{
if
(
IMAGE_SNAP_BY_ORDINAL
(
thunk_list
->
u1
.
Ordinal
))
{
/* not sure about this branch, but it seems to work */
...
...
@@ -333,7 +334,7 @@ DWORD PE_fixup_imports( WINE_MODREF *wm )
thunk_list
->
u1
.
Function
=
(
PDWORD
)
0xdeadbeef
;
}
}
else
{
pe_name
=
(
PIMAGE_IMPORT_BY_NAME
)
RVA
(
thunk_list
->
u1
.
AddressOfData
);
pe_name
=
get_rva
(
wm
->
module
,
(
DWORD
)
thunk_list
->
u1
.
AddressOfData
);
TRACE
(
"--- %s %s.%d
\n
"
,
pe_name
->
Name
,
name
,
pe_name
->
Hint
);
thunk_list
->
u1
.
Function
=
(
PDWORD
)
MODULE_GetProcAddress
(
...
...
@@ -411,7 +412,6 @@ HMODULE PE_LoadImage( HANDLE hFile, LPCSTR filename, DWORD flags )
WINE_MODREF
*
PE_CreateModule
(
HMODULE
hModule
,
LPCSTR
filename
,
DWORD
flags
,
HANDLE
hFile
,
BOOL
builtin
)
{
DWORD
load_addr
=
(
DWORD
)
hModule
;
/* for RVA */
IMAGE_NT_HEADERS
*
nt
;
IMAGE_DATA_DIRECTORY
*
dir
;
IMAGE_EXPORT_DIRECTORY
*
pe_export
=
NULL
;
...
...
@@ -422,8 +422,7 @@ WINE_MODREF *PE_CreateModule( HMODULE hModule, LPCSTR filename, DWORD flags,
nt
=
RtlImageNtHeader
(
hModule
);
dir
=
nt
->
OptionalHeader
.
DataDirectory
+
IMAGE_DIRECTORY_ENTRY_EXPORT
;
if
(
dir
->
Size
)
pe_export
=
(
PIMAGE_EXPORT_DIRECTORY
)
RVA
(
dir
->
VirtualAddress
);
if
(
dir
->
Size
)
pe_export
=
get_rva
(
hModule
,
dir
->
VirtualAddress
);
dir
=
nt
->
OptionalHeader
.
DataDirectory
+
IMAGE_DIRECTORY_ENTRY_EXCEPTION
;
if
(
dir
->
Size
)
FIXME
(
"Exception directory ignored
\n
"
);
...
...
@@ -462,7 +461,7 @@ WINE_MODREF *PE_CreateModule( HMODULE hModule, LPCSTR filename, DWORD flags,
*/
{
ImgDelayDescr
*
pe_delay
=
NULL
;
pe_delay
=
(
PImgDelayDescr
)
RVA
(
dir
->
VirtualAddress
);
pe_delay
=
get_rva
(
hModule
,
dir
->
VirtualAddress
);
TRACE_
(
delayhlp
)(
"pe_delay->grAttrs = %08x
\n
"
,
pe_delay
->
grAttrs
);
TRACE_
(
delayhlp
)(
"pe_delay->szName = %s
\n
"
,
pe_delay
->
szName
);
TRACE_
(
delayhlp
)(
"pe_delay->phmod = %08x
\n
"
,
pe_delay
->
phmod
);
...
...
objects/font.c
View file @
613ead7f
...
...
@@ -469,7 +469,7 @@ static HGDIOBJ FONT_SelectObject( HGDIOBJ handle, void *obj, HDC hdc )
if
(
ret
&&
dc
->
gdiFont
)
dc
->
gdiFont
=
0
;
if
(
ret
==
GDI_ERROR
)
if
(
ret
==
H
GDI_ERROR
)
ret
=
0
;
/* SelectObject returns 0 on error */
else
{
...
...
objects/gdiobj.c
View file @
613ead7f
...
...
@@ -726,7 +726,7 @@ void *GDI_ReallocObject( WORD size, HGDIOBJ handle, void *object )
{
HGDIOBJ
new_handle
;
if
(
handle
&
2
)
/* GDI heap handle */
if
(
(
UINT_PTR
)
handle
&
2
)
/* GDI heap handle */
{
LOCAL_Unlock
(
GDI_HeapSel
,
handle
);
if
((
new_handle
=
LOCAL_ReAlloc
(
GDI_HeapSel
,
handle
,
size
,
LMEM_MOVEABLE
)))
...
...
@@ -764,7 +764,7 @@ BOOL GDI_FreeObject( HGDIOBJ handle, void *ptr )
object
->
wMagic
=
0
;
/* Mark it as invalid */
object
->
funcs
=
NULL
;
if
(
handle
&
2
)
/* GDI heap handle */
if
(
(
UINT_PTR
)
handle
&
2
)
/* GDI heap handle */
{
LOCAL_Unlock
(
GDI_HeapSel
,
handle
);
LOCAL_Free
(
GDI_HeapSel
,
handle
);
...
...
@@ -798,7 +798,7 @@ void *GDI_GetObjPtr( HGDIOBJ handle, WORD magic )
_EnterSysLevel
(
&
GDI_level
);
if
(
handle
&
2
)
/* GDI heap handle */
if
(
(
UINT_PTR
)
handle
&
2
)
/* GDI heap handle */
{
ptr
=
(
GDIOBJHDR
*
)
LOCAL_Lock
(
GDI_HeapSel
,
handle
);
if
(
ptr
)
...
...
@@ -814,7 +814,7 @@ void *GDI_GetObjPtr( HGDIOBJ handle, WORD magic )
}
else
/* large heap handle */
{
int
i
=
(
handle
>>
2
)
-
FIRST_LARGE_HANDLE
;
int
i
=
(
(
UINT_PTR
)
handle
>>
2
)
-
FIRST_LARGE_HANDLE
;
if
(
i
>=
0
&&
i
<
MAX_LARGE_HANDLES
)
{
ptr
=
large_handles
[
i
];
...
...
@@ -840,7 +840,7 @@ void *GDI_GetObjPtr( HGDIOBJ handle, WORD magic )
*/
void
GDI_ReleaseObj
(
HGDIOBJ
handle
)
{
if
(
handle
&
2
)
LOCAL_Unlock
(
GDI_HeapSel
,
handle
);
if
(
(
UINT_PTR
)
handle
&
2
)
LOCAL_Unlock
(
GDI_HeapSel
,
handle
);
TRACE_SEC
(
handle
,
"leave"
);
_LeaveSysLevel
(
&
GDI_level
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment