56 lines
1.6 KiB
C
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
|