Partial revert of r30843.

Some extra changes snuck into my commit; they'll probably be reviewed
and committed to Subversion eventually, but were not part of the fix
for WaitForSingleObject on thread handles.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30844 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
sesse 2010-03-05 11:14:07 +00:00
parent 61f351dc90
commit c27b99441b
1 changed files with 5 additions and 17 deletions

View File

@ -569,28 +569,16 @@ static HMODULE WINAPI expGetDriverModuleHandle(DRVR* pdrv)
#define MODULE_HANDLE_winmm ((HMODULE)0x128)
#define MODULE_HANDLE_psapi ((HMODULE)0x129)
/* fake EXE struct to make msvcrt8+ not to crash:
it checks all exe sections for a section named .mixcrt
we fake a section with that name, so the crt will avoid
using Encode/Decode Pointer, as we was a posix binary */
static const struct {
IMAGE_DOS_HEADER doshdr;
IMAGE_NT_HEADERS nthdr;
IMAGE_SECTION_HEADER opthdr;
} __attribute__((__packed__)) mp_exe = {
.doshdr.e_lfanew = sizeof(IMAGE_DOS_HEADER),
.nthdr.FileHeader.NumberOfSections = 1,
.nthdr.FileHeader.SizeOfOptionalHeader = sizeof(IMAGE_NT_HEADERS) - FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader), /* 0xe0 */
.opthdr.Name = ".mixcrt"
};
static HMODULE WINAPI expGetModuleHandleA(const char* name)
{
WINE_MODREF* wm;
HMODULE result;
if(!name)
result=(HMODULE)&mp_exe.doshdr;
#ifdef CONFIG_QTX_CODECS
result=1;
#else
result=0;
#endif
else
{
wm=MODULE_FindModule(name);