windows-nt/Source/XPSP1/NT/base/mvdm/wow32/wkgthunk.h
2020-09-26 16:20:57 +08:00

56 lines
1.6 KiB
C

/*++ BUILD Version: 0001
*
* WOW v1.0
*
* Copyright (c) 1992, Microsoft Corporation
*
* WKGTHUNK.H
* WOW32 Generic Thunk Routines
*
* History:
* Created 11-March-1993 by Matthew Felton (mattfe)
--*/
ULONG FASTCALL WK32ICallProc32W(PVDMFRAME pFrame);
ULONG FASTCALL WK32GetVDMPointer32W(PVDMFRAME pFrame);
ULONG FASTCALL WK32LoadLibraryEx32W(PVDMFRAME pFrame);
ULONG FASTCALL WK32FreeLibrary32W(PVDMFRAME pFrame);
ULONG FASTCALL WK32GetProcAddress32W(PVDMFRAME pFrame);
/* ShellLink exported by W32Inst.dll (installshield dll)
* takes a pointer to struct.
* at offset 40, it has a pointer (pShellLinkArg->pszShortCut)
* to a string. The string is actually several strings delimited by character 0x7f
* in. Path where the shortcut needs to go is located after second 0x7f. Unfortunately
* some apps use hardcoded paths valid for 9x only, so we attempt to correct them here.
* see bug Whistler 177738
*/
typedef struct _SHELLLINKARG{
DWORD PlaceHolder[10];
PSZ pszShortCut;
} SHELLLINKARG,*PSHELLLINKARG;
typedef ULONG (*PFNSHELLLINK)(PSHELLLINKARG pShellLinkArg);
extern PVOID pfnGetVersionExA;
extern PVOID pfnCreateDirectoryA;
extern PVOID pfnLoadLibraryA;
extern PFNSHELLLINK pfnShellLink;
extern ULONG GtCompShellLink(PSHELLLINKARG pShellLinkArg);
extern ULONG GtCompCreateDirectoryA(PSZ pszDirPath, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
extern VOID GtCompHookImport(PBYTE pDllBase, PSZ pszModuleName, DWORD pfnOldFunc, DWORD pfnNewFunc);
extern PSZ GtCompGetExportDirectory(PBYTE pDllBase);
extern HMODULE GtCompLoadLibraryA(PSZ pszDllName);
#ifdef WX86
VOID
TermWx86System(
VOID
);
#endif