windows-nt/Source/XPSP1/NT/com/ole32/olethunk/olethk32/tc1632.cxx
2020-09-26 16:20:57 +08:00

350 lines
10 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//+---------------------------------------------------------------------------
//
// 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;
}