/*++ 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