mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
350 lines
10 KiB
350 lines
10 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
|
//
|
|
// File: tc1632.cxx
|
|
//
|
|
// Notes: This file is automatically generated
|
|
// Do not modify by hand
|
|
//
|
|
// History: Fri May 27 10:39:02 1994 Generated
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#include <headers.cxx>
|
|
#pragma hdrstop
|
|
|
|
#if DBG == 1
|
|
extern "C" ULONG ThunkCall1632_count = 0;
|
|
extern "C" ULONG ThunkCall1632_break = 0;
|
|
#endif
|
|
|
|
DWORD ThunkCall1632(THUNKINFO *pti)
|
|
{
|
|
DWORD dwReturn;
|
|
|
|
#if DBG == 1
|
|
ULONG ulThunkCall1632_count = ++ThunkCall1632_count;
|
|
thkAssert( (ThunkCall1632_count != ThunkCall1632_break) &&
|
|
"Break Count Hit");
|
|
#endif
|
|
|
|
thkAssert(pti->pvfn != NULL);
|
|
thkAssert(*pti->pThop == THOP_END);
|
|
pti->pThop++;
|
|
thkAssert(*pti->pThop == THOP_ROUTINEINDEX);
|
|
pti->pThop++;
|
|
|
|
thkDebugOut((DEB_ITRACE, "%sIn ThunkCall1632 #(%x) %p, index %d\n",
|
|
NestingLevelString(), ulThunkCall1632_count,
|
|
pti->pvfn, *pti->pThop));
|
|
DebugIncrementNestingLevel();
|
|
|
|
if (FAILED(pti->scResult))
|
|
{
|
|
DebugDecrementNestingLevel();
|
|
thkDebugOut((DEB_ITRACE, "%sOut ThunkCall1632 #(%x) returns 0x%08lX\n",
|
|
NestingLevelString(), ulThunkCall1632_count, pti->scResult));
|
|
return (DWORD)pti->scResult;
|
|
}
|
|
pti->pThkMgr->SetThkState(THKSTATE_NOCALL);
|
|
switch(*pti->pThop)
|
|
{
|
|
case 0:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8)
|
|
);
|
|
break;
|
|
case 1:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0)
|
|
);
|
|
break;
|
|
case 2:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12)
|
|
);
|
|
break;
|
|
case 3:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4)
|
|
);
|
|
break;
|
|
case 4:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20),
|
|
*(DWORD *)(pti->s32.pbStart+24)
|
|
);
|
|
break;
|
|
case 5:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16)
|
|
);
|
|
break;
|
|
case 6:
|
|
dwReturn = (*(DWORD (__stdcall *)())pti->pvfn)(
|
|
);
|
|
break;
|
|
case 7:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20)
|
|
);
|
|
break;
|
|
case 8:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
WORD,
|
|
WORD,
|
|
DWORD))pti->pvfn)(
|
|
*(WORD *)(pti->s32.pbStart+0),
|
|
*(WORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8)
|
|
);
|
|
break;
|
|
case 9:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
ULARGE_INTEGER,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20)
|
|
);
|
|
break;
|
|
case 10:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
ULARGE_INTEGER))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4)
|
|
);
|
|
break;
|
|
case 11:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
ULARGE_INTEGER,
|
|
ULARGE_INTEGER,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+20)
|
|
);
|
|
break;
|
|
case 12:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
ULARGE_INTEGER,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16)
|
|
);
|
|
break;
|
|
case 13:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
ULARGE_INTEGER,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20)
|
|
);
|
|
break;
|
|
case 14:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20),
|
|
*(DWORD *)(pti->s32.pbStart+24),
|
|
*(DWORD *)(pti->s32.pbStart+28),
|
|
*(DWORD *)(pti->s32.pbStart+32),
|
|
*(DWORD *)(pti->s32.pbStart+36),
|
|
*(DWORD *)(pti->s32.pbStart+40)
|
|
);
|
|
break;
|
|
case 15:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
SIZEL,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(SIZEL *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+20)
|
|
);
|
|
break;
|
|
case 16:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
SIZEL,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(SIZEL *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+16)
|
|
);
|
|
break;
|
|
case 17:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
WORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(WORD *)(pti->s32.pbStart+8)
|
|
);
|
|
break;
|
|
case 18:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
SIZEL))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(SIZEL *)(pti->s32.pbStart+4)
|
|
);
|
|
break;
|
|
case 19:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
WORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(WORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8)
|
|
);
|
|
break;
|
|
case 20:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(DWORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20),
|
|
*(DWORD *)(pti->s32.pbStart+24),
|
|
*(DWORD *)(pti->s32.pbStart+28)
|
|
);
|
|
break;
|
|
case 21:
|
|
dwReturn = (*(DWORD (__stdcall *)(
|
|
DWORD,
|
|
WORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD,
|
|
DWORD))pti->pvfn)(
|
|
*(DWORD *)(pti->s32.pbStart+0),
|
|
*(WORD *)(pti->s32.pbStart+4),
|
|
*(DWORD *)(pti->s32.pbStart+8),
|
|
*(DWORD *)(pti->s32.pbStart+12),
|
|
*(DWORD *)(pti->s32.pbStart+16),
|
|
*(DWORD *)(pti->s32.pbStart+20),
|
|
*(DWORD *)(pti->s32.pbStart+24)
|
|
);
|
|
break;
|
|
}
|
|
|
|
#if DBG == 1
|
|
if ( !pti->fResultThunked && FAILED(dwReturn) )
|
|
{
|
|
thkDebugOut((DEB_FAILURES,
|
|
"ThunkCall1632 pvfn = %08lX Probably failed hr = %08lX\n",
|
|
pti->pvfn, dwReturn));
|
|
if(thkInfoLevel & DEB_DBGFAIL)
|
|
thkAssert(!"Wish to Debug");
|
|
}
|
|
#endif
|
|
|
|
pti->pThkMgr->SetThkState(THKSTATE_INVOKETHKOUT32);
|
|
|
|
DebugDecrementNestingLevel();
|
|
thkDebugOut((DEB_ITRACE, "%sOut ThunkCall1632 #(%x) returns 0x%08lX\n",
|
|
NestingLevelString(), ulThunkCall1632_count, dwReturn));
|
|
return dwReturn;
|
|
}
|
|
|