#define MAX_BUFF 256 #define LOG_BUFF 32768 #define HASH_FUNC( str ) ((char)(str[0] * 13 + str[1])) #define MAX_CREATE_NEST 16 typedef struct _special SPECIAL ; struct _special { char *name; va_list (* rtn)( LPSTR lpApi, LPSTR lpstr, va_list marker ); } ; typedef struct _typeio TYPEIO; struct _typeio { char *name; va_list (* rtn)( LPSTR lpstr, va_list marker ); TYPEIO *next; }; extern int nLineLen; extern TYPEIO *typehash[]; extern TYPEIO IoTypes[]; extern int nIoTypes; extern int FAR *lpfMouseMoved; extern RECT CreateWindowRects[]; extern int CreateWindowLevel; extern BOOL fAlias; extern void WriteBuff( LPSTR lpText ); extern void EndLineBuff( void ); extern DWORD StoreData( LPCSTR lpstrData, DWORD dwCount); extern va_list PrtBool( LPSTR lpstr, va_list marker ); extern va_list PrtInt( LPSTR lpstr, va_list marker ); extern va_list PrtShort( LPSTR lpstr, va_list marker ); extern va_list PrtLong( LPSTR lpstr, va_list marker ); extern va_list PrtATOM( LPSTR lpstr, va_list marker ); extern va_list PrtHACCEL( LPSTR lpstr, va_list marker ); extern va_list PrtHBITMAP( LPSTR lpstr, va_list marker ); extern va_list PrtHBRUSH( LPSTR lpstr, va_list marker ); extern va_list PrtHCURSOR( LPSTR lpstr, va_list marker ); extern va_list PrtHDC( LPSTR lpstr, va_list marker ); extern va_list PrtHDWP( LPSTR lpstr, va_list marker ); extern va_list PrtHFILE( LPSTR lpstr, va_list marker ); extern va_list PrtHFONT( LPSTR lpstr, va_list marker ); extern va_list PrtHHOOK( LPSTR lpstr, va_list marker ); extern va_list PrtHICON( LPSTR lpstr, va_list marker ); extern va_list PrtHMEM( LPSTR lpstr, va_list marker ); extern va_list PrtPHANDLE( LPSTR lpstr, va_list marker ); extern va_list PrtHMENU( LPSTR lpstr, va_list marker ); extern va_list PrtHMETA( LPSTR lpstr, va_list marker ); extern va_list PrtHPALETTE( LPSTR lpstr, va_list marker ); extern va_list PrtHPEN( LPSTR lpstr, va_list marker ); extern va_list PrtHRES( LPSTR lpstr, va_list marker ); extern va_list PrtHRGN( LPSTR lpstr, va_list marker ); extern va_list PrtHTASK( LPSTR lpstr, va_list marker ); extern va_list PrtHWND( LPSTR lpstr, va_list marker ); extern va_list PrtLPDEVMODE( LPSTR lpstr, va_list marker ); extern va_list PrtLPFARPROC( LPSTR lpstr, va_list marker ); extern va_list PrtLPTR( LPSTR lpstr, va_list marker ); extern va_list PrtLPINT( LPSTR lpstr, va_list marker ); extern va_list PrtLPDWORD( LPSTR lpstr, va_list marker ); extern va_list PrtLPWORD( LPSTR lpstr, va_list marker ); extern va_list PrtARRAYINT( LPSTR lpstr, va_list marker ); #ifdef WIN32 extern va_list PrtLPLOGFONTA( LPSTR lpstr, va_list marker ); extern va_list PrtLPLOGFONTW( LPSTR lpstr, va_list marker ); #else extern va_list PrtLPLOGFONT( LPSTR lpstr, va_list marker ); #endif extern va_list PrtLPLOGBRUSH( LPSTR lpstr, va_list marker ); extern va_list PrtLPLOGPEN( LPSTR lpstr, va_list marker ); extern va_list PrtLPLOGPALETTE( LPSTR lpstr, va_list marker ); extern va_list PrtLPPALETTEENTRY( LPSTR lpstr, va_list marker ); extern va_list PrtLPMSG( LPSTR lpstr, va_list marker ); extern va_list PrtLPOFSTRUCT( LPSTR lpstr, va_list marker ); extern va_list PrtLPPAINTSTRUCT( LPSTR lpstr, va_list marker ); extern va_list PrtLPPOINT( LPSTR lpstr, va_list marker ); extern va_list PrtPOINTS( LPSTR lpstr, va_list marker ); extern va_list PrtLPRECT( LPSTR lpstr, va_list marker ); extern va_list PrtPSMALL_RECT( LPSTR lpstr, va_list marker ); extern va_list PrtLPCOMSTAT( LPSTR lpstr, va_list marker ); extern va_list PrtLPSTR( LPSTR lpstr, va_list marker ); #ifdef WIN32 extern va_list PrtLPWSTR( LPSTR lpstr, va_list marker ); extern va_list PrtPLPWSTR( LPSTR lpstr, va_list marker ); extern va_list PrtLPBYTE( LPSTR lpstr, va_list marker ); #endif extern va_list PrtFixedString( LPSTR lpstr, va_list marker ); extern va_list PrtFineString( LPSTR lpstr, va_list marker ); #ifdef WIN32 extern va_list PrtLPTEXTMETRICA( LPSTR lpstr, va_list marker ); extern va_list PrtLPTEXTMETRICW( LPSTR lpstr, va_list marker ); #else extern va_list PrtLPTEXTMETRIC( LPSTR lpstr, va_list marker ); #endif #if (WINVER >= 0x30a ) #ifdef WIN32 extern va_list PrtLPOUTLINETEXTMETRICA( LPSTR lpstr, va_list marker ); extern va_list PrtLPOUTLINETEXTMETRICW( LPSTR lpstr, va_list marker ); #else extern va_list PrtLPOUTLINETEXTMETRIC( LPSTR lpstr, va_list marker ); #endif extern va_list PrtLPGLYPHMETRICS( LPSTR lpstr, va_list marker ); extern va_list PrtLPMAT2( LPSTR lpstr, va_list marker ); #endif extern va_list PrtLPBMIH( LPSTR lpstr, va_list marker ); extern va_list PrtLPBMI( LPSTR lpstr, va_list marker ); extern va_list PrtLPBITMAP( LPSTR lpstr, va_list marker ); #ifdef WIN32 extern va_list PrtLPWNDCLASSA( LPSTR lpstr, va_list marker ); extern va_list PrtLPWNDCLASSW( LPSTR lpstr, va_list marker ); #else extern va_list PrtLPWNDCLASS( LPSTR lpstr, va_list marker ); #endif extern va_list PrtFARPROC( LPSTR lpstr, va_list marker ); extern va_list PrtLPEVENTMSG( LPSTR lpstr, va_list marker ); extern va_list PrtLPNCB( LPSTR lpstr, va_list marker ); #ifdef WIN32 extern va_list PrtHKEY( LPSTR lpstr, va_list marker ); extern va_list PrtPHKEY( LPSTR lpstr, va_list marker ); extern va_list PrtHEVENT( LPSTR lpstr, va_list marker ); extern va_list PrtLPSTARTUPINFOA( LPSTR lpstr, va_list marker ); extern va_list PrtLPSTARTUPINFOW( LPSTR lpstr, va_list marker ); extern va_list PrtLPOVERLAPPED( LPSTR lpstr, va_list marker ); extern va_list PrtLPSECURITY_ATTRIBUTES( LPSTR lpstr, va_list marker ); extern va_list PrtLPCRITICAL_SECTION( LPSTR lpstr, va_list marker ); extern va_list PrtPMEMORY_BASIC_INFORMATION( LPSTR lpstr, va_list marker ); extern va_list PrtLPFILETIME( LPSTR lpstr, va_list marker ); extern va_list PrtLPSYSTEMTIME( LPSTR lpstr, va_list marker ); extern va_list PrtLPWIN32_FIND_DATAA( LPSTR lpstr, va_list marker ); extern va_list PrtLPWIN32_FIND_DATAW( LPSTR lpstr, va_list marker ); extern va_list PrtLPDLGTEMPLATEA( LPSTR lpstr, va_list marker ); extern va_list PrtLPDLGTEMPLATEW( LPSTR lpstr, va_list marker ); extern va_list PrtLPDLGITEMTEMPLATEA( LPSTR lpstr, va_list marker ); extern va_list PrtLPDLGITEMTEMPLATEW( LPSTR lpstr, va_list marker ); extern va_list PrtLPWINDOWPLACEMENT( LPSTR lpstr, va_list marker ); extern va_list PrtLPCONVCONTEXT( LPSTR lpstr, va_list marker ); // DDI types extern va_list PrtPSURFOBJ( LPSTR lpstr, va_list marker ); extern va_list PrtPCLIPOBJ( LPSTR lpstr, va_list marker ); extern va_list PrtPXLATEOBJ( LPSTR lpstr, va_list marker ); extern va_list PrtPRECTL( LPSTR lpstr, va_list marker ); extern va_list PrtPPOINTL( LPSTR lpstr, va_list marker ); extern va_list PrtPBRUSHOBJ( LPSTR lpstr, va_list marker ); extern va_list PrtROP4( LPSTR lpstr, va_list marker ); extern va_list PrtPHSURF( LPSTR lpstr, va_list marker ); extern va_list PrtHSURF( LPSTR lpstr, va_list marker ); extern va_list PrtPIFIMETRICS( LPSTR lpstr, va_list marker ); extern va_list PrtPDEVMODEW( LPSTR lpstr, va_list marker ); extern va_list PrtPDRVENABLEDATA( LPSTR lpstr, va_list marker ); extern va_list PrtPDEVINFO( LPSTR lpstr, va_list marker ); extern va_list PrtDHPDEV( LPSTR lpstr, va_list marker ); extern va_list PrtHDEV( LPSTR lpstr, va_list marker ); extern va_list PrtPSTROBJ( LPSTR lpstr, va_list marker ); extern va_list PrtPFONTOBJ( LPSTR lpstr, va_list marker ); extern va_list PrtMIX( LPSTR lpstr, va_list marker ); extern va_list PrtSIZE( LPSTR lpstr, va_list marker ); #endif #ifdef WIN32 extern void PrtMessageA (HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet); extern void PrtMessageW (HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam, BOOL fCall, LONG lRet); #else extern void PrtMessage( HWND, WORD, WORD, LONG, BOOL, LONG ); #endif typedef HANDLE HDWP; typedef HANDLE HMEM; typedef HANDLE HMETA; typedef HANDLE HRES; extern void WriteBOOL( BOOL f ); extern void WriteLPSTR( LPCSTR lpstr, DWORD wLen ); #ifdef WIN32 extern void WriteLPWSTR( LPCWSTR lpstr, DWORD wLen ); #endif extern void WriteLPPOINT( LPPOINT lppoint, int npoint ); extern void WriteLPPALETTEENTRY( LPPALETTEENTRY ); extern void WriteATOM( ATOM ); extern void WriteHACCEL( HACCEL ); extern void WriteHBITMAP( HBITMAP ); extern void WriteHBRUSH( HBRUSH ); extern void WriteHCURSOR( HCURSOR ); extern void WriteHDC( HDC ); extern void WriteHDWP( HDWP ); extern void WriteHFILE( HFILE ); extern void WriteHFONT( HFONT ); extern void WriteHICON( HICON ); extern void WriteHMEM( HMEM ); extern void WriteHMENU( HMENU ); extern void WriteHMETA( HMETA ); extern void WriteHPALETTE( HPALETTE ); extern void WriteHRES( HRES ); extern void WriteHRGN( HRGN ); extern void WriteHTASK( HTASK ); extern void WriteHWND( HWND ); #ifdef WIN32 extern void WriteHKEY( HANDLE ); extern void WritePHKEY( HANDLE* ); extern void WriteHEVENT( HANDLE ); extern void WriteHTHREAD( HANDLE ); extern void WriteHSEMAPHORE( HANDLE ); extern void WriteHKEY( HANDLE ); #endif /* CALL Special Case handlers */ #ifdef WIN32 va_list DoAppendMenuW( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoChangeMenuW( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoModifyMenuW( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreateWindowW( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoGetStartupInfoA( LPSTR lpApi, LPSTR lpstr, va_list marker); va_list DoGetStartupInfoW( LPSTR lpApi, LPSTR lpstr, va_list marker); va_list DoSearchPathA( LPSTR lpApi, LPSTR lpstr, va_list marker); va_list DoSearchPathW( LPSTR lpApi, LPSTR lpstr, va_list marker); va_list DoGetTextExtentW( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoTextOutW( LPSTR lpApi, LPSTR lpstr, va_list marker ); #endif va_list DoAppendMenu( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoChangeMenu( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoModifyMenu( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreateWindow( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoHDC_LPPOINT_int( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list Do_lreadwrite( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoGetTextExtent( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoGetSetKeyboardState( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreateDialogIndirect( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCallPeek( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoGetMessage( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoEscape( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreateBitmap( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreateDIBitmap( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoSetBitmapBits( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoTextOut( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoLoadModule( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoCreatePolygonRgn( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoSetClipboardData( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoSetPaletteEntries( LPSTR lpApi, LPSTR lpstr, va_list marker ); /* Call special case handler for: PostAppMessage PostMessage SendMessage SendDlgItemMessage */ #ifdef WIN32 va_list DoMessageA( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoMessageW( LPSTR lpApi, LPSTR lpstr, va_list marker ); #else va_list DoMessage( LPSTR lpApi, LPSTR lpstr, va_list marker ); #endif /* RET Special Case handlers */ va_list DoCreateWindowRet( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetPeek( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoGetMessageRet( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetSimpleLPSTR( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRet_lread( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetEscape( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetPalettes( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetGlobalHandle( LPSTR lpApi, LPSTR lpstr, va_list marker ); va_list DoRetGetClipboardData( LPSTR lpApi, LPSTR lpstr, va_list marker ); LPSTR lpartial_strcpy( LPSTR lpstrDest, LPSTR lpstrSource, char ch, int nMaxLen ); #define MAX_HASH 256 #define ATOM_TABLE 0 #define FARPROC_TABLE 1 #define HACCEL_TABLE 2 #define HBITMAP_TABLE 3 #define HBRUSH_TABLE 4 #define HCURSOR_TABLE 5 #define HDC_TABLE 6 #define HDWP_TABLE 7 #define HFILE_TABLE 8 #define HFONT_TABLE 9 #define HHOOK_TABLE 10 #define HICON_TABLE 11 #define HINST_TABLE 12 #define HMEM_TABLE 12 // Matches HINST_TABLE #define HMENU_TABLE 13 #define HMETA_TABLE 14 #define HPALETTE_TABLE 15 #define HPEN_TABLE 16 #define HRES_TABLE 17 #define HRGN_TABLE 18 #define HTASK_TABLE 19 #define HWND_TABLE 20 #define OBJECT_TABLE 21 #define PS_TABLE 22 #define TIME_TABLE 23 #ifdef WIN32 #define HEVENT_TABLE 24 #define HTHREAD_TABLE 25 #define HSEMAPHORE_TABLE 26 #define HKEY_TABLE 27 #define MAX_CORR_INDEX 28 // This should be 1 higher than the highest // *_TABLE index above. #else #define MAX_CORR_INDEX 24 // This should be 1 higher than the highest // *_TABLE index above. #endif typedef struct _ps_piece { BYTE rgbReserved[16]; } PS_PIECE; typedef WORD CORR_TABLE ; typedef struct _corr { int nOldLength; int nNewLength; int nItemLength; int nElements; int nNextAvail; unsigned long nCount; #if defined (SGA_DEBUG) int nUsed; int nHighest; #endif int iHashTable[2][MAX_HASH]; } CORR; extern CORR FAR *atom_table; extern CORR FAR *farproc_table; extern CORR FAR *haccel_table; extern CORR FAR *hbitmap_table; extern CORR FAR *hbrush_table; extern CORR FAR *hcursor_table; extern CORR FAR *hdc_table; extern CORR FAR *hdwp_table; extern CORR FAR *hfile_table; extern CORR FAR *hfont_table; extern CORR FAR *hhook_table; extern CORR FAR *hicon_table; extern CORR FAR *hmem_table; extern CORR FAR *hmenu_table; extern CORR FAR *hmeta_table; extern CORR FAR *hpalette_table; extern CORR FAR *hpen_table; extern CORR FAR *hrgn_table; extern CORR FAR *hres_table; extern CORR FAR *htask_table; extern CORR FAR *hwnd_table; extern CORR FAR *object_table; extern CORR FAR *ps_table; #ifdef WIN32 extern CORR FAR *hevent_table; extern CORR FAR *hthread_table; extern CORR FAR *hsemaphore_table; extern CORR FAR *hkey_table; #endif BOOL SetupCorrespondenceTables( void ); void MakeCorrespondence( CORR_TABLE, void FAR * ); BOOL SpecialFindNewCorrespondence( CORR_TABLE, void FAR * );