- Define HIC in this header rather than in windef.h (this is the
correct thing to do although it is unrelated to the C++ issues).
- WINE_HIC is an internal structure and it won't compile in C++ because
it contains a field called 'private'. Enclosed in a __WINE__ ifdef.
- Reordered the CALLBACK and WINAPI directives so that it compiles with
old g++ versions.
diff --git a/include/vfw.h b/include/vfw.h
index 747a547..4d1b50d 100644
--- a/include/vfw.h
+++ b/include/vfw.h
@@ -34,6 +34,9 @@
/* Installable Compressor M? */
+DECLARE_HANDLE(HIC);
+
+#ifdef __WINE__
/* HIC struct (same layout as Win95 one) */
typedef struct tagWINE_HIC {
DWORD magic; /* 00: 'Smag' */
@@ -48,6 +51,7 @@
DWORD x3; /* 22: */
/* 26: */
} WINE_HIC;
+#endif
/* error return codes */
#define ICERR_OK 0
@@ -231,8 +235,8 @@
DWORD dwScale;
DWORD dwOverheadPerFrame;
DWORD dwReserved2;
- LONG (CALLBACK *GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len);
- LONG (CALLBACK *PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len);
+ LONG CALLBACK (*GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len);
+ LONG CALLBACK (*PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len);
} ICCOMPRESSFRAMES;
/* Values for wMode of ICOpen() */
diff --git a/include/windef.h b/include/windef.h
index 4b9800b..f567cd1 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -296,7 +296,6 @@
DECLARE_HANDLE(HDESK);
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HKL);
-DECLARE_HANDLE(HIC);
DECLARE_HANDLE(HRASCONN);
/* Handle types that must remain interchangeable even with strict on */
@@ -310,30 +309,30 @@
/* Callback function pointers types */
-typedef BOOL (CALLBACK* DATEFMT_ENUMPROCA)(LPSTR);
-typedef BOOL (CALLBACK* DATEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL CALLBACK (*DATEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL CALLBACK (*DATEFMT_ENUMPROCW)(LPWSTR);
DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC)
-typedef BOOL (CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
-typedef LRESULT (CALLBACK *DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
-typedef INT (CALLBACK *EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
-typedef INT (CALLBACK *EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);
+typedef BOOL CALLBACK (*DLGPROC)(HWND,UINT,WPARAM,LPARAM);
+typedef LRESULT CALLBACK (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
+typedef INT CALLBACK (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
+typedef INT CALLBACK (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);
DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC)
-typedef LRESULT (CALLBACK *FARPROC)();
-typedef INT (CALLBACK *PROC)();
-typedef BOOL (CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,INT);
-typedef LRESULT (CALLBACK *HOOKPROC)(INT,WPARAM,LPARAM);
-typedef BOOL (CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
-typedef BOOL (CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
+typedef LRESULT CALLBACK (*FARPROC)();
+typedef INT CALLBACK (*PROC)();
+typedef BOOL CALLBACK (*GRAYSTRINGPROC)(HDC,LPARAM,INT);
+typedef LRESULT CALLBACK (*HOOKPROC)(INT,WPARAM,LPARAM);
+typedef BOOL CALLBACK (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
+typedef BOOL CALLBACK (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
DECL_WINELIB_TYPE_AW(PROPENUMPROC)
-typedef BOOL (CALLBACK *PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM);
-typedef BOOL (CALLBACK *PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM);
+typedef BOOL CALLBACK (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM);
+typedef BOOL CALLBACK (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM);
DECL_WINELIB_TYPE_AW(PROPENUMPROCEX)
-typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCA)(LPSTR);
-typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL CALLBACK (*TIMEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL CALLBACK (*TIMEFMT_ENUMPROCW)(LPWSTR);
DECL_WINELIB_TYPE_AW(TIMEFMT_ENUMPROC)
-typedef VOID (CALLBACK *TIMERPROC)(HWND,UINT,UINT,DWORD);
-typedef BOOL (CALLBACK *WNDENUMPROC)(HWND,LPARAM);
-typedef LRESULT (CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
+typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD);
+typedef BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM);
+typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
/*----------------------------------------------------------------------------
** FIXME: Better isolate Wine's reliance on the xxx16 type definitions.