Alexandre Julliard : winhlp32: Use explicit prototypes for the dll callbacks.
Alexandre Julliard
julliard at winehq.org
Wed Oct 7 09:46:05 CDT 2009
Module: wine
Branch: master
Commit: e2d22db7b9ec325d614806f2ef97cd3587a11506
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2d22db7b9ec325d614806f2ef97cd3587a11506
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Oct 7 13:31:32 2009 +0200
winhlp32: Use explicit prototypes for the dll callbacks.
---
programs/winhlp32/callback.c | 38 +++++++++++++++++++-------------------
programs/winhlp32/macro.c | 2 +-
programs/winhlp32/winhelp.h | 24 ++++++++++++++++++++++--
3 files changed, 42 insertions(+), 22 deletions(-)
diff --git a/programs/winhlp32/callback.c b/programs/winhlp32/callback.c
index 0b3e62e..5193861 100644
--- a/programs/winhlp32/callback.c
+++ b/programs/winhlp32/callback.c
@@ -158,23 +158,23 @@ static LONG CALLBACK WHD_API(LPSTR x, WORD xx, DWORD xxx)
return 0;
}
-FARPROC Callbacks[] =
-{
- (FARPROC)WHD_GetFSError,
- (FARPROC)WHD_Open,
- (FARPROC)WHD_Close,
- (FARPROC)WHD_OpenBag,
- (FARPROC)WHD_CloseBag,
- (FARPROC)WHD_ReadBag,
- (FARPROC)WHD_TellBag,
- (FARPROC)WHD_SeekBag,
- (FARPROC)WHD_IsEofBag,
- (FARPROC)WHD_SizeBag,
- (FARPROC)WHD_Access,
- (FARPROC)WHD_LLInfoFromBag,
- (FARPROC)WHD_LLInfoFromFile,
- (FARPROC)WHD_Error,
- (FARPROC)WHD_ErrorString,
- (FARPROC)WHD_GetInfo,
- (FARPROC)WHD_API
+const struct winhelp_callbacks Callbacks =
+{
+ WHD_GetFSError,
+ WHD_Open,
+ WHD_Close,
+ WHD_OpenBag,
+ WHD_CloseBag,
+ WHD_ReadBag,
+ WHD_TellBag,
+ WHD_SeekBag,
+ WHD_IsEofBag,
+ WHD_SizeBag,
+ WHD_Access,
+ WHD_LLInfoFromBag,
+ WHD_LLInfoFromFile,
+ WHD_Error,
+ WHD_ErrorString,
+ WHD_GetInfo,
+ WHD_API
};
diff --git a/programs/winhlp32/macro.c b/programs/winhlp32/macro.c
index fdec6b3..9fa99ec 100644
--- a/programs/winhlp32/macro.c
+++ b/programs/winhlp32/macro.c
@@ -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;
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_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");
}
diff --git a/programs/winhlp32/winhelp.h b/programs/winhlp32/winhelp.h
index e770cb5..e163d90 100644
--- a/programs/winhlp32/winhelp.h
+++ b/programs/winhlp32/winhelp.h
@@ -115,7 +115,7 @@ typedef struct tagWinHelp
#define DW_ACTIVATE 9
#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
{
@@ -140,8 +140,28 @@ typedef struct
HFONT hButtonFont;
} 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 FARPROC Callbacks[];
BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE*, int, BOOL);
BOOL WINHELP_OpenHelpWindow(HLPFILE_PAGE* (*)(HLPFILE*, LONG, ULONG*),
More information about the wine-cvs
mailing list