__foldwin32sstuff __foldwin32sstuff; foldstyleinitialization = true; enablemapdirect1632 = true; defaultholdwin16lock = true; #include "types.thk" typedef DWORD PFF; typedef DWORD PFC; typedef LPSTR PSZ; typedef LPSTR PCONTEXTINFO; /* * fd_fnt.c: PFF FDENTRY FdLoadFontFile( PSZ pszFile, ULONG ulLangageID ) * fd_fnt.c: LONG FDENTRY FdUnloadFontFile( PFF pFF ) * fd_fnt.c: LONG FDENTRY FdGetFontData( PFF pFF, ULONG ulTable, ULONG ulStart, P1616 pb1616, ULONG cb ) * fd_fnt.c: LONG FDENTRY FdQueryFontMetrics( PFF pff, ULONG ulOffset, P1616 pfm16, ULONG cMetricLen ) * fd_fnt.c: LONG FDENTRY FdGetGlyphIndexes( PFF pff, ULONG iQuery, P1616 pBuffer16, ULONG cb, P1616 pagi16, ULONG ulgiStart ) * fd_hfc.c: LONG FDENTRY FdEnable( void ) * fd_hfc.c: PFC FDENTRY FdOpenFontContext( PFF pff ) * fd_hfc.c: LONG FDENTRY FdSetFontContext( PFC pfc, PCONTEXTINFO pci ) * fd_hfc.c: LONG FDENTRY FdCloseFontContext( PFC pfc ) * fd_query.c:LONG FDENTRY FdQueryFaceAttr( PFC pfc, ULONG iQuery, P1616 pBuffer16, ULONG cb, P1616 pagi16, ULONG ulgiStart ) * fd_query.c:LONG FDENTRY FdQueryCharAttr( PFC pfc, ULONG dwQuery, P1616 pbmm16, P1616 lpBuffer16, ULONG dwBuffer, ULONG dwGlyph ) * fd_vdmx.c: long FDENTRY Em2FontHeight( PFF pff, short ResX, short ResY, short EM ) */ PFF FdLoadFontFile( PSZ pszFile, ULONG ulLangageID) = PFF FdLoadFontFile( PSZ pszFile, ULONG ulLangageID) {} LONG FdUnloadFontFile( PFF pFF) = LONG FdUnloadFontFile( PFF pFF) {} LONG FdGetFontData( PFF pFF, ULONG ulTable, ULONG ulStart, PBYTE pb, ULONG cb) = LONG FdGetFontData( PFF pFF, ULONG ulTable, ULONG ulStart, PBYTE pb, ULONG cb) {} LONG FdQueryFontMetrics( PFF pff, ULONG ulOffset, PBYTE pfm, ULONG cMetricLen) = LONG FdQueryFontMetrics( PFF pff, ULONG ulOffset, PBYTE pfm, ULONG cMetricLen) {} LONG FdGetGlyphIndexes( PFF pff, LPWORD pBuffer, ULONG cb, LPWORD pagi, ULONG ulgiStart) = LONG FdGetGlyphIndexes( PFF pff, LPWORD pBuffer, ULONG cb, LPWORD pagi, ULONG ulgiStart) {} LONG FdEnable() = LONG FdEnable( ) {} PFC FdOpenFontContext( PFF pff) = PFC FdOpenFontContext( PFF pff) {} LONG FdSetFontContext( PFC pfc, PCONTEXTINFO pci) = LONG FdSetFontContext( PFC pfc, PCONTEXTINFO pci) {} LONG FdCloseFontContext( PFC pfc) = LONG FdCloseFontContext( PFC pfc) {} LONG FdQueryFaceAttr( PFC pfc, ULONG iQuery, PBYTE pBuffer, ULONG cb, PBYTE pagi, ULONG ulgiStart) = LONG FdQueryFaceAttr( PFC pfc, ULONG iQuery, PBYTE pBuffer, ULONG cb, PBYTE pagi, ULONG ulgiStart) {} LONG FdQueryCharAttr( PFC pfc, ULONG dwQuery, PBYTE pbmm, PBYTE lpBuffer, ULONG dwBuffer, ULONG dwGlyph) = LONG FdQueryCharAttr( PFC pfc, ULONG dwQuery, PBYTE pbmm, PBYTE lpBuffer, ULONG dwBuffer, ULONG dwGlyph) {} LONG Em2FontHeight( PFF pff, UINT ResX, UINT ResY, UINT EM) = LONG Em2FontHeight( PFF pff, UINT ResX, UINT ResY, UINT EM) {} LONG FracSqrtFar( LONG lFrac ) = LONG HackFracSqrt( LONG lFrac ) {} LONG fduFindFontFile( PSZ pszFile, PSZ pszFullPath, DWORD dwFullPath ) = LONG fduFindFontFile( PSZ pszFile, PSZ pszFullPath, DWORD dwFullPath ) {} /* 32bit font file interface */ /* Releasing the lock is essential because we are going to */ /* be calling LoadLibrary in kernel32. Scary! */ /* 12/19/94 - mikegi */ LONG Gdi32Font( DWORD dwHandle, DWORD dwFunction, PSZ lpszBuffer ) = LONG Gdi32Font( DWORD dwHandle, DWORD dwFunction, PSZ lpszBuffer ) { releasewin16lock = true; } /* ---------------------------------------------------------------------- */ /* The following thunks are for allocating 32bit heap memory from GDI16 */ /* ---------------------------------------------------------------------- */ LONG GDI32VirtualAlloc (DWORD dwSize) = LONG GDI32VirtualAlloc (DWORD dwSize) {} BOOL GDI32VirtualFree (DWORD lpAdr, DWORD dwSize) = BOOL GDI32VirtualFree (DWORD lpAdr, DWORD dwSize) {} BOOL GDI32UnmapViewOfFile(DWORD) = BOOL GDI32UnmapViewOfFile(DWORD) {} /* ---------------------------------------------------------------------- */ /* */ /* The Following Thunks Are for the Spooler API's */ /* */ /* ---------------------------------------------------------------------- */ /* Make defines to translate simple ptrs */ typedef BYTE TCHAR; /* Define structures for compiler so it can repack appropriately */ typedef struct _DOC_INFO_2 { /* dci1 */ LPSTR pDocName; LPSTR pOutputFile; LPSTR pDatatype; DWORD fMode; DWORD channel; DWORD JobId; } DOCINFO; typedef DOCINFO *LPDOCINFO; typedef struct _PRINTER_DEFAULTS { /* pd */ LPSTR pDatatype; LPSTR pDevMode; DWORD AccessGranted ; } PRINTER_DEFAULTS; typedef PRINTER_DEFAULTS *LPPRINTER_DEFAULTS; BOOL OpenPrinterA(LPSTR lpszPrinter, LPDWORD hPrinter, LPPRINTER_DEFAULTS lppd) = BOOL OpenPrinterA(LPSTR lpszPrinter, LPDWORD hPrinter, LPPRINTER_DEFAULTS lppd) { errorcode = 0; } BOOL ThkDeleteJob(DWORD hPrinter, DWORD dwJobId) = BOOL ThkDeleteJob(DWORD hPrinter, DWORD dwJobId) { errorcode = 0; } DWORD StartDocPrinterA(DWORD hPrinter, DWORD dwLevel, LPDOCINFO lpbDocInfo) = DWORD StartDocPrinterA(DWORD hPrinter, DWORD dwLevel, LPDOCINFO lpbDocInfo) { errorcode = 0; } BOOL StartPagePrinter(DWORD hPrinter) = BOOL StartPagePrinter(DWORD hPrinter) { errorcode = 0; } BOOL WritePrinter(DWORD hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD lpdwWritten) = BOOL WritePrinter(DWORD hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD lpdwWritten) { errorcode = 0; } BOOL EndPagePrinter(DWORD hPrinter) = BOOL EndPagePrinter(DWORD hPrinter) { errorcode = 0; } BOOL EndDocPrinter(DWORD hPrinter) = BOOL EndDocPrinter(DWORD hPrinter) { errorcode = 0; } BOOL ClosePrinter(DWORD hPrinter) = BOOL ClosePrinter(DWORD hPrinter) { errorcode = 0; } BOOL AbortPrinter(DWORD hPrinter) = BOOL AbortPrinter(DWORD hPrinter) { errorcode = 0; } DWORD PrinterMessageBoxA(DWORD hPrinter, DWORD Error, DWORD hWnd, LPSTR pText, LPSTR pCaption, DWORD dwType) = DWORD PrinterMessageBoxA(DWORD hPrinter, DWORD Error, DWORD hWnd, LPSTR pText, LPSTR pCaption, DWORD dwType) { errorcode = 0; } DWORD ThkGetPrinterData(LPSTR lpPrinter, LPSTR pValueName, LPDWORD pType, LPBYTE bData, DWORD nSize, LPDWORD pcbNeeded) = DWORD ThkGetPrinterData(LPSTR lpPrinter, LPSTR pValueName, LPDWORD pType, LPBYTE bData, DWORD nSize, LPDWORD pcbNeeded) { errorcode = 0; } /* this is added for gdi to launch splexe32.exe */ VOID RunSpoolExe() = VOID RunSpoolExe() { releasewin16lock = true; //This sucker calls WinExec. errorcode = 0; } /* this is added for gdi to clean up spooler ipc data for the process when */ /* it terminates */ DWORD ThkDetachSpooler(DWORD dwID) = DWORD ThkDetachSpooler(DWORD dwID) { errorcode = 0; } /* portions of the EMF system need to call PlayEnhMetaFile */ /* The last parameter is an LPRECTL on both sides so no packing needed */ BOOL PlayEnhMetaFile(HDC hdc, HANDLE hemf, LPSTR) = BOOL PlayEnhMetaFile(HDC hdc, HANDLE hemf, LPSTR) { errorcode = 0; } BOOL NoLockPlayEnhMetaFile(HDC hdc, HANDLE hemf, LPSTR) = BOOL NoLockPlayEnhMetaFile(HDC hdc, HANDLE hemf, LPSTR) { errorcode = 0; } BOOL gdiPlaySpoolStream(LPSTR, LPSTR, LPSTR, ULONG, ULONG, HDC) = BOOL gdiPlaySpoolStream(LPSTR, LPSTR, LPSTR, ULONG, ULONG, HDC) { errorcode = 0; } /* ---------------------------------------------------------------------- */ /* */ /* The Following Thunks Are for making Inverse color tables (INVCMAP.C) */ /* */ /* ---------------------------------------------------------------------- */ BOOL MakeITable(LPBYTE, LPDWORD, INT) = BOOL MakeITable(LPBYTE, LPDWORD, INT) { }