winhlp32: Use explicit prototypes for the dll callbacks.

This commit is contained in:
Alexandre Julliard 2009-10-07 13:31:32 +02:00
parent a54bd70bac
commit e2d22db7b9
3 changed files with 41 additions and 21 deletions

View file

@ -158,23 +158,23 @@ static LONG CALLBACK WHD_API(LPSTR x, WORD xx, DWORD xxx)
return 0; return 0;
} }
FARPROC Callbacks[] = const struct winhelp_callbacks Callbacks =
{ {
(FARPROC)WHD_GetFSError, WHD_GetFSError,
(FARPROC)WHD_Open, WHD_Open,
(FARPROC)WHD_Close, WHD_Close,
(FARPROC)WHD_OpenBag, WHD_OpenBag,
(FARPROC)WHD_CloseBag, WHD_CloseBag,
(FARPROC)WHD_ReadBag, WHD_ReadBag,
(FARPROC)WHD_TellBag, WHD_TellBag,
(FARPROC)WHD_SeekBag, WHD_SeekBag,
(FARPROC)WHD_IsEofBag, WHD_IsEofBag,
(FARPROC)WHD_SizeBag, WHD_SizeBag,
(FARPROC)WHD_Access, WHD_Access,
(FARPROC)WHD_LLInfoFromBag, WHD_LLInfoFromBag,
(FARPROC)WHD_LLInfoFromFile, WHD_LLInfoFromFile,
(FARPROC)WHD_Error, WHD_Error,
(FARPROC)WHD_ErrorString, WHD_ErrorString,
(FARPROC)WHD_GetInfo, WHD_GetInfo,
(FARPROC)WHD_API WHD_API
}; };

View file

@ -735,7 +735,7 @@ static void CALLBACK MACRO_RegisterRoutine(LPCSTR dll_name, LPCSTR proc, LPCSTR
dll->class = dll->handler ? (dll->handler)(DW_WHATMSG, 0, 0) : DC_NOMSG; dll->class = dll->handler ? (dll->handler)(DW_WHATMSG, 0, 0) : DC_NOMSG;
WINE_TRACE("Got class %x for DLL %s\n", dll->class, dll_name); WINE_TRACE("Got class %x for DLL %s\n", dll->class, dll_name);
if (dll->class & DC_INITTERM) dll->handler(DW_INIT, 0, 0); if (dll->class & DC_INITTERM) dll->handler(DW_INIT, 0, 0);
if (dll->class & DC_CALLBACKS) dll->handler(DW_CALLBACKS, (DWORD)Callbacks, 0); if (dll->class & DC_CALLBACKS) dll->handler(DW_CALLBACKS, (LONG_PTR)&Callbacks, 0);
} }
else WINE_WARN("OOM\n"); else WINE_WARN("OOM\n");
} }

View file

@ -115,7 +115,7 @@ typedef struct tagWinHelp
#define DW_ACTIVATE 9 #define DW_ACTIVATE 9
#define DW_CALLBACKS 10 #define DW_CALLBACKS 10
typedef long (CALLBACK *WINHELP_LDLLHandler)(WORD, LONG, LONG); typedef LONG (CALLBACK *WINHELP_LDLLHandler)(WORD, LONG_PTR, LONG_PTR);
typedef struct tagDll typedef struct tagDll
{ {
@ -140,8 +140,28 @@ typedef struct
HFONT hButtonFont; HFONT hButtonFont;
} WINHELP_GLOBALS; } WINHELP_GLOBALS;
extern const struct winhelp_callbacks
{
WORD (WINAPI *GetFSError)(void);
HANDLE (WINAPI *HfsOpenSz)(LPSTR,BYTE);
WORD (WINAPI *RcCloseHfs)(HANDLE);
HANDLE (WINAPI *HfOpenHfs)(HANDLE,LPSTR,BYTE);
HANDLE (WINAPI *RcCloseHf)(HANDLE);
LONG (WINAPI *LcbReadHf)(HANDLE,BYTE*,LONG);
LONG (WINAPI *LTellHf)(HANDLE);
LONG (WINAPI *LSeekHf)(HANDLE,LONG,WORD);
BOOL (WINAPI *FEofHf)(HANDLE);
LONG (WINAPI *LcbSizeHf)(HANDLE);
BOOL (WINAPI *FAccessHfs)(HANDLE,LPSTR,BYTE);
WORD (WINAPI *RcLLInfoFromHf)(HANDLE,WORD,LPWORD,LPLONG,LPLONG);
WORD (WINAPI *RcLLInfoFromHfs)(HANDLE,LPSTR,WORD,LPWORD,LPLONG,LPLONG);
void (WINAPI *ErrorW)(int);
void (WINAPI *ErrorSz)(LPSTR);
ULONG_PTR (WINAPI *GetInfo)(WORD,HWND);
LONG (WINAPI *API)(LPSTR,WORD,DWORD);
} Callbacks;
extern WINHELP_GLOBALS Globals; extern WINHELP_GLOBALS Globals;
extern FARPROC Callbacks[];
BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE*, int, BOOL); BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE*, int, BOOL);
BOOL WINHELP_OpenHelpWindow(HLPFILE_PAGE* (*)(HLPFILE*, LONG, ULONG*), BOOL WINHELP_OpenHelpWindow(HLPFILE_PAGE* (*)(HLPFILE*, LONG, ULONG*),