office-gobmx/external/mingwheaders/mingw_headers.patch

3009 lines
101 KiB
Diff
Raw Normal View History

--- include/crtdbg.h.orig 2006-09-18 01:21:38.968750000 +0900
+++ include/crtdbg.h 2006-09-02 23:12:50.109375000 +0900
@@ -0,0 +1,11 @@
+#ifndef _CRTDBG_H
+#define _CRTDBG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef _ASSERTE
+#define _ASSERTE(expr) ((void)0)
+#endif
+
+#endif
--- include/winres.h.orig 2006-07-22 23:41:18.000000000 +0900
+++ include/winres.h 2006-07-22 23:41:18.000000000 +0900
@@ -0,0 +1,13 @@
+#ifndef _WINRES_H
+#define _WINRES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define VS_VERSION_INFO 1
+#include <winresrc.h>
+#ifdef IDC_STATIC
+#undef IDC_STATIC
+#endif
+#define IDC_STATIC (-1)
+#endif
--- include/excpt.h.orig 2005-01-14 05:19:52.000000000 +0900
+++ include/excpt.h 2006-12-31 09:21:56.000000000 +0900
@@ -16,8 +16,11 @@
/* All the headers include this file. */
#include <_mingw.h>
+#include <setjmp.h>
+#include <stdarg.h>
#include <windef.h>
+#include <winbase.h>
/*
* NOTE: The constants structs and typedefs below should be defined in the
@@ -52,7 +55,7 @@
* The type of function that is expected as an exception handler to be
* installed with _try1.
*/
-typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
+typedef EXCEPTION_DISPOSITION (* PEXCEPTION_HANDLER)
(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
/*
@@ -93,8 +96,122 @@
__asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
: : : "%eax");
+WINBASEAPI
+VOID
+WINAPI
+RtlUnwind (
+ IN PVOID TargetFrame OPTIONAL,
+ IN PVOID TargetIp OPTIONAL,
+ IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
+ IN PVOID ReturnValue
+ );
#ifdef __cplusplus
}
+
+class __SEHandler
+{
+ public:
+ __SEHandler() {}
+ ~__SEHandler() {}
+ typedef int (*PF)(void *, LPEXCEPTION_POINTERS);
+ typedef void (*PH)(void *, LPEXCEPTION_POINTERS);
+ typedef void (*PN)(void *);
+ void Set(jmp_buf jb, void *pdata=NULL, PF pfilter=NULL, PH phandlerbody=NULL, PN pfinal=NULL)
+ {
+ __builtin_memcpy(m_jmpbuf, jb, sizeof(jmp_buf));
+ m_pData=pdata;
+ switch (reinterpret_cast<int>(pfilter))
+ {
+ default:
+ m_filter=pfilter;
+ break;
+ case EXCEPTION_CONTINUE_EXECUTION:
+ m_filter=DefaultFilterContinueExecution;
+ break;
+ case EXCEPTION_EXECUTE_HANDLER:
+ m_filter=DefaultFilterExecuteHandler;
+ break;
+ case EXCEPTION_CONTINUE_SEARCH:
+ m_filter=DefaultFilterContinueSearch;
+ break;
+ }
+ if (phandlerbody)
+ m_handlerbody=phandlerbody;
+ else
+ m_handlerbody=DefaultHandler;
+ if (pfinal)
+ m_final=pfinal;
+ else
+ m_final=DefaultFinal;
+ m_ER.pHandlerClass = this;
+ m_ER.hp = handler;
+ asm("movl %%fs:0, %%eax\n\t"
+ "movl %%eax, %0": : "m" (m_ER.prev): "%eax" );
+ asm("movl %0, %%eax\n\t"
+ "movl %%eax, %%fs:0": : "r" (&m_ER): "%eax" );
+ }
+ void Reset()
+ {
+ m_final(m_pData);
+ asm("movl %0, %%eax \n\t"
+ "movl %%eax, %%fs:0"
+ : : "m" (m_ER.prev): "%eax");
+ }
+ private:
+ __SEHandler(const __SEHandler&);
+ __SEHandler& operator=(const __SEHandler&);
+ struct _ER {
+ _ER* prev;
+ PEXCEPTION_HANDLER hp;
+ __SEHandler *pHandlerClass;
+ };
+ static EXCEPTION_DISPOSITION handler(
+ struct _EXCEPTION_RECORD *pExceptionRecord,
+ void * EstablisherFrame,
+ struct _CONTEXT *ContextRecord,
+ void * /*DispatcherContext*/)
+ {
+ __SEHandler* pThis = reinterpret_cast< _ER * >(EstablisherFrame)->pHandlerClass;
+ if ( pExceptionRecord->ExceptionFlags & EH_UNWINDING )
+ {
+ pThis->m_final(pThis->m_pData);
+ return ExceptionContinueSearch;
+ }
+ EXCEPTION_POINTERS ep={pExceptionRecord, ContextRecord};
+ switch ( pThis->m_filter(pThis->m_pData, &ep) )
+ {
+ case EXCEPTION_EXECUTE_HANDLER:
+ RtlUnwind(EstablisherFrame, &&__set_label, pExceptionRecord, 0);
+__set_label:
+ pThis->m_handlerbody(pThis->m_pData, &ep);
+ ContextRecord->Ebp = pThis->m_jmpbuf[0];
+ ContextRecord->Eip = pThis->m_jmpbuf[1];
+ ContextRecord->Esp = pThis->m_jmpbuf[2];
+ return ExceptionContinueExecution;
+ case EXCEPTION_CONTINUE_SEARCH:
+ return ExceptionContinueSearch;
+ case EXCEPTION_CONTINUE_EXECUTION:
+ return ExceptionContinueExecution;
+ }
+ return ExceptionContinueExecution;
+ }
+ static int DefaultFilterContinueSearch(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_CONTINUE_SEARCH; }
+ static int DefaultFilterContinueExecution(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_CONTINUE_EXECUTION; }
+ static int DefaultFilterExecuteHandler(void *, LPEXCEPTION_POINTERS) { return EXCEPTION_EXECUTE_HANDLER; }
+ static void DefaultHandler(void *, LPEXCEPTION_POINTERS) {}
+ static void DefaultFinal(void *) {}
+ typedef int (*handler_p)(
+ struct _EXCEPTION_RECORD *ExceptionRecord,
+ void * EstablisherFrame,
+ struct _CONTEXT *ContextRecord,
+ void * DispatcherContext);
+ _ER m_ER;
+ void *m_pData;
+ PN m_final;
+ PH m_handlerbody;
+ PF m_filter;
+ jmp_buf m_jmpbuf;
+};
#endif
#endif /* Not RC_INVOKED */
--- include/tchar.h.orig 2006-03-26 09:21:36.000000000 +0900
+++ include/tchar.h 2006-03-26 09:21:42.000000000 +0900
@@ -221,6 +221,9 @@
#define _trewinddir _wrewinddir
#define _ttelldir _wtelldir
#define _tseekdir _wseekdir
+
+#define _ttempnam _wtempnam
+
#else /* Not _UNICODE */
@@ -405,6 +408,8 @@
#define _ttelldir telldir
#define _tseekdir seekdir
+#define _ttempnam _tempnam
+
#endif /* Not _UNICODE */
/*
--- include/amvideo.h.orig 2006-11-19 08:08:30.000000000 +0900
+++ include/amvideo.h 2007-01-16 23:11:24.656250000 +0900
@@ -52,10 +52,10 @@
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER;
typedef struct tagVIDEOINFO {
- RECT rcSource,
- RECT rcTarget,
- DWORD dwBitRate,
- DWORD dwBitErrorRate,
+ RECT rcSource;
+ RECT rcTarget;
+ DWORD dwBitRate;
+ DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
BITMAPINFOHEADER bmiHeader;
union {
--- include/basetyps.h.orig 2006-11-19 08:08:30.000000000 +0900
+++ include/basetyps.h 2006-09-17 12:12:06.000000000 +0900
@@ -124,7 +124,10 @@
#define UUID_DEFINED
typedef GUID UUID;
#endif /* UUID_DEFINED */
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
typedef GUID IID;
+#endif
typedef GUID CLSID;
typedef CLSID *LPCLSID;
typedef IID *LPIID;
--- include/bdatypes.h.orig 2006-11-19 08:08:30.000000000 +0900
+++ include/bdatypes.h 2007-01-16 23:21:10.062500000 +0900
@@ -17,9 +17,9 @@
} MEDIA_SAMPLE_CONTENT;
/*--- DirectShow Reference - DirectShow Structures */
typedef struct {
- DWORD dwOffset
- DWORD dwPacketLength
- DWORD dwStride
+ DWORD dwOffset;
+ DWORD dwPacketLength;
+ DWORD dwStride;
} MPEG2_TRANSPORT_STRIDE;
typedef struct {
ULONG ulPID;
--- include/oaidl.h.orig 2006-11-19 08:08:33.000000000 +0900
+++ include/oaidl.h 2007-01-20 09:08:24.625000000 +0900
@@ -73,6 +73,8 @@
typedef _COM_interface ICreateErrorInfo *LPCREATEERRORINFO;
typedef _COM_interface ISupportErrorInfo *LPSUPPORTERRORINFO;
typedef _COM_interface IRecordInfo *LPRECORDINFO;
+typedef _COM_interface IErrorLog *LPERRORLOG;
+typedef _COM_interface IPropertyBag *LPPROPERTYBAG;
extern const IID IID_ITypeLib;
extern const IID IID_ITypeLib2;
@@ -765,6 +767,29 @@
};
#undef INTERFACE
+EXTERN_C const IID IID_IErrorLog;
+#define INTERFACE IErrorLog
+DECLARE_INTERFACE_(IErrorLog,IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(AddError)(THIS_ LPCOLESTR,LPEXCEPINFO) PURE;
+};
+#undef INTERFACE
+
+EXTERN_C const IID IID_IPropertyBag;
+#define INTERFACE IPropertyBag
+DECLARE_INTERFACE_(IPropertyBag,IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(Read)(THIS_ LPCOLESTR,LPVARIANT,LPERRORLOG) PURE;
+ STDMETHOD(Write)(THIS_ LPCOLESTR,LPVARIANT) PURE;
+};
+#undef INTERFACE
+
#ifdef __cplusplus
}
#endif
--- include/objidl.h.orig 2006-11-19 08:08:34.000000000 +0900
+++ include/objidl.h 2007-01-20 11:56:53.875000000 +0900
@@ -1,3 +1,4 @@
+#include <ole2.h>
#ifndef _OBJIDL_H
#define _OBJIDL_H
#if __GNUC__ >= 3
@@ -127,6 +128,7 @@
struct IAdviseSink *pAdvSink;
DWORD dwConnection;
} STATDATA;
+#if 0
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
@@ -135,6 +137,7 @@
FILETIME ctime;
FILETIME atime;
} STATPROPSETSTG;
+#endif
typedef enum tagEXTCONN {
EXTCONN_STRONG=1,
EXTCONN_WEAK=2,
@@ -247,6 +250,7 @@
typedef enum tagSERVERCALL {
SERVERCALL_ISHANDLED,SERVERCALL_REJECTED,SERVERCALL_RETRYLATER
} SERVERCALL;
+#if 0
typedef struct tagCAUB {
ULONG cElems;
unsigned char *pElems;
@@ -406,6 +410,7 @@
PROPSETFLAG_DEFAULT,PROPSETFLAG_NONSIMPLE,PROPSETFLAG_ANSI,
PROPSETFLAG_UNBUFFERED=4
} PROPSETFLAG;
+#endif
typedef struct tagSTORAGELAYOUT {
DWORD LayoutType;
OLECHAR* pwcsElementName;
@@ -454,8 +459,10 @@
DECLARE_ENUMERATOR(FORMATETC);
DECLARE_ENUMERATOR(HLITEM);
DECLARE_ENUMERATOR(STATDATA);
+#if 0
DECLARE_ENUMERATOR(STATPROPSETSTG);
DECLARE_ENUMERATOR(STATPROPSTG);
+#endif
DECLARE_ENUMERATOR(STATSTG);
DECLARE_ENUMERATOR_(IEnumString,LPOLESTR);
DECLARE_ENUMERATOR_(IEnumMoniker,_COM_interface IMoniker*);
@@ -927,6 +934,7 @@
};
#undef INTERFACE
+#if 0
EXTERN_C const IID IID_IPropertyStorage;
#define INTERFACE IPropertyStorage
DECLARE_INTERFACE_(IPropertyStorage,IUnknown)
@@ -962,6 +970,7 @@
STDMETHOD(Enum)(THIS_ IEnumSTATPROPSETSTG**) PURE;
};
#undef INTERFACE
+#endif
EXTERN_C const IID IID_IClientSecurity;
#define INTERFACE IClientSecurity
--- include/objfwd.h.orig 2006-03-26 09:21:36.000000000 +0900
+++ include/objfwd.h 2006-03-26 09:21:42.000000000 +0900
@@ -27,7 +27,7 @@
typedef _COM_interface IEnumFORMATETC *LPENUMFORMATETC;
typedef _COM_interface IEnumSTATDATA *LPENUMSTATDATA;
typedef _COM_interface IEnumSTATSTG *LPENUMSTATSTG;
-typedef _COM_interface IEnumSTATPROPSTG LPENUMSTATPROPSTG;
+typedef _COM_interface IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
typedef _COM_interface IEnumString *LPENUMSTRING;
typedef _COM_interface IEnumUnknown *LPENUMUNKNOWN;
typedef _COM_interface IStorage *LPSTORAGE;
--- include/uxtheme.h.orig 2006-11-19 08:08:36.000000000 +0900
+++ include/uxtheme.h 2007-01-18 18:51:37.125000000 +0900
@@ -10,7 +10,7 @@
extern "C" {
#endif
-#if (_WIN32_WINNT >= 0x0501)
+//#if (_WIN32_WINNT >= 0x0501)
#define DTBG_CLIPRECT 0x00000001
#define DTBG_DRAWSOLID 0x00000002
#define DTBG_OMITBORDER 0x00000004
@@ -265,7 +265,7 @@
HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
void WINAPI SetThemeAppProperties(DWORD);
HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
-#endif
+//#endif
#ifdef __cplusplus
}
--- include/winbase.h.orig 2006-11-19 08:08:36.000000000 +0900
+++ include/winbase.h 2007-01-20 00:16:33.484375000 +0900
@@ -993,12 +993,14 @@
WORD Reserved2;
CHAR szPathName[OFS_MAXPATHNAME];
} OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
+#if 0
typedef struct _WIN_CERTIFICATE {
DWORD dwLength;
WORD wRevision;
WORD wCertificateType;
BYTE bCertificate[1];
} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
+#endif
#if (_WIN32_WINNT >= 0x0501)
typedef struct tagACTCTXA {
ULONG cbSize;
@@ -1337,8 +1337,8 @@
WINBASEAPI HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD);
WINBASEAPI BOOL WINAPI FindFirstFreeAce(PACL,PVOID*);
#if (_WIN32_WINNT >= 0x0500)
-WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPCSTR,DWORD);
-WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPCWSTR,DWORD);
+WINBASEAPI HANDLE WINAPI FindFirstVolumeA(LPSTR,DWORD);
+WINBASEAPI HANDLE WINAPI FindFirstVolumeW(LPWSTR,DWORD);
WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA(LPSTR,LPSTR,DWORD);
WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW(LPWSTR,LPWSTR,DWORD);
#endif
@@ -1346,7 +1346,7 @@
WINBASEAPI BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
WINBASEAPI BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
#if (_WIN32_WINNT >= 0x0500)
-WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPCSTR,DWORD);
+WINBASEAPI BOOL WINAPI FindNextVolumeA(HANDLE,LPSTR,DWORD);
WINBASEAPI BOOL WINAPI FindNextVolumeW(HANDLE,LPWSTR,DWORD);
WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA(HANDLE,LPSTR,DWORD);
WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD);
@@ -1458,10 +1458,10 @@
WINBASEAPI DWORD WINAPI GetLogicalDrives(void);
WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR);
WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR);
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
WINBASEAPI DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
WINBASEAPI DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
-#endif
+//#endif
WINBASEAPI BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD);
WINBASEAPI DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
WINBASEAPI DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD);
@@ -1499,9 +1499,9 @@
#endif
WINBASEAPI HANDLE WINAPI GetProcessHeap(VOID);
WINBASEAPI DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE);
-#if (_WIN32_WINNT >= 0x0501)
+//#if (_WIN32_WINNT >= 0x0501)
WINBASEAPI DWORD WINAPI GetProcessId(HANDLE);
-#endif
+//#endif
#if (_WIN32_WINNT >= 0x0500)
WINBASEAPI BOOL WINAPI GetProcessIoCounters(HANDLE,PIO_COUNTERS);
#endif
@@ -1779,9 +1779,9 @@
WINBASEAPI BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
WINBASEAPI HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
WINBASEAPI HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
-#if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
+//#if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)
WINBASEAPI HANDLE WINAPI OpenThread(DWORD,BOOL,DWORD);
-#endif
+//#endif
WINBASEAPI BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
WINBASEAPI HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR);
WINBASEAPI HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR);
@@ -2122,9 +2122,9 @@
#define GetFileAttributesEx GetFileAttributesExW
#define GetFullPathName GetFullPathNameW
#define GetLogicalDriveStrings GetLogicalDriveStringsW
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
#define GetLongPathName GetLongPathNameW
-#endif
+//#endif
#define GetModuleFileName GetModuleFileNameW
#define GetModuleHandle GetModuleHandleW
#if (_WIN32_WINNT >= 0x0500)
@@ -2317,9 +2317,9 @@
#define GetFileAttributesEx GetFileAttributesExA
#define GetFullPathName GetFullPathNameA
#define GetLogicalDriveStrings GetLogicalDriveStringsA
-#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
+//#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
#define GetLongPathName GetLongPathNameA
-#endif
+//#endif
#define GetNamedPipeHandleState GetNamedPipeHandleStateA
#define GetModuleHandle GetModuleHandleA
#if (_WIN32_WINNT >= 0x0500)
--- include/wininet.h.orig 2006-03-26 09:21:36.000000000 +0900
+++ include/wininet.h 2006-04-04 23:18:14.000000000 +0900
@@ -868,6 +868,7 @@
BOOL WINAPI InternetAutodial(DWORD,DWORD);
BOOL WINAPI InternetAutodialHangup(DWORD);
BOOL WINAPI InternetGetConnectedState(LPDWORD,DWORD);
+BOOL WINAPI InternetGetConnectedStateEx(LPDWORD,LPTSTR,DWORD,DWORD);
BOOL WINAPI InternetSetDialState(LPCTSTR,DWORD,DWORD);
BOOL WINAPI InternetReadFileExA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD_PTR);
BOOL WINAPI InternetReadFileExW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD_PTR);
--- include/winnt.h.orig 2006-11-19 08:08:37.000000000 +0900
+++ include/winnt.h 2007-01-16 07:06:57.796875000 +0900
@@ -67,9 +67,9 @@
#endif
#endif
-#ifndef C_ASSERT
-#define C_ASSERT(expr) typedef char __C_ASSERT__[(expr)?1:-1]
-#endif
+//#ifndef C_ASSERT
+//#define C_ASSERT(expr) typedef char __C_ASSERT__[(expr)?1:-1]
+//#endif
#ifndef VOID
#define VOID void
--- include/winuser.h.orig 2006-11-19 08:08:37.000000000 +0900
+++ include/winuser.h 2007-01-20 00:22:52.765625000 +0900
@@ -950,12 +950,14 @@
#define SM_SLOWMACHINE 73
#define SM_MIDEASTENABLED 74
#define SM_MOUSEWHEELPRESENT 75
+#if (WINVER >= 0x0500)
#define SM_XVIRTUALSCREEN 76
#define SM_YVIRTUALSCREEN 77
#define SM_CXVIRTUALSCREEN 78
#define SM_CYVIRTUALSCREEN 79
#define SM_CMONITORS 80
#define SM_SAMEDISPLAYFORMAT 81
+#endif
#define SM_IMMENABLED 82
#define SM_CXFOCUSBORDER 83
#define SM_CYFOCUSBORDER 84
@@ -2451,7 +2453,9 @@
typedef BOOL(CALLBACK *DRAWSTATEPROC)(HDC,LPARAM,WPARAM,int,int);
typedef BOOL(CALLBACK *WNDENUMPROC)(HWND,LPARAM);
typedef BOOL(CALLBACK *ENUMWINDOWSPROC)(HWND,LPARAM);
+#if (WINVER >= 0x0500)
typedef BOOL(CALLBACK* MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
+#endif
typedef BOOL(CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM);
typedef BOOL(CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM);
typedef NAMEENUMPROCA DESKTOPENUMPROCA;
@@ -3125,6 +3129,7 @@
UINT cbSize;
DWORD dwTime;
} LASTINPUTINFO,*PLASTINPUTINFO;
+#if (WINVER >= 0x0500)
typedef struct tagMONITORINFO {
DWORD cbSize;
RECT rcMonitor;
@@ -3157,6 +3162,7 @@
WCHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXW,*LPMONITORINFOEXW;
#endif /* __cplusplus */
+#endif
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
@@ -3525,7 +3531,9 @@
WINUSERAPI BOOL WINAPI EnumDesktopsA(HWINSTA,DESKTOPENUMPROCA,LPARAM);
WINUSERAPI BOOL WINAPI EnumDesktopsW(HWINSTA,DESKTOPENUMPROCW,LPARAM);
WINUSERAPI BOOL WINAPI EnumDesktopWindows(HDESK,ENUMWINDOWSPROC,LPARAM);
+#if (WINVER >= 0x0500)
WINUSERAPI BOOL WINAPI EnumDisplayMonitors(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
+#endif
#ifndef NOGDI
WINUSERAPI BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,PDEVMODEA);
WINUSERAPI BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,PDEVMODEW);
@@ -3715,8 +3723,10 @@
WINUSERAPI BOOL WINAPI GetScrollBarInfo(HWND,LONG,PSCROLLBARINFO);
WINUSERAPI BOOL WINAPI GetTitleBarInfo(HWND,PTITLEBARINFO);
WINUSERAPI BOOL WINAPI GetWindowInfo(HWND,PWINDOWINFO);
+#if (WINVER >= 0x0500)
WINUSERAPI BOOL WINAPI GetMonitorInfoA(HMONITOR,LPMONITORINFO);
WINUSERAPI BOOL WINAPI GetMonitorInfoW(HMONITOR,LPMONITORINFO);
+#endif
WINUSERAPI UINT WINAPI GetWindowModuleFileNameA(HWND,LPSTR,UINT);
WINUSERAPI UINT WINAPI GetWindowModuleFileNameW(HWND,LPWSTR,UINT);
WINUSERAPI BOOL WINAPI GrayStringA(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,int,int,int,int,int);
@@ -4067,7 +4077,9 @@
typedef CBT_CREATEWNDW CBT_CREATEWND, *LPCBT_CREATEWND;
typedef MDICREATESTRUCTW MDICREATESTRUCT,*LPMDICREATESTRUCT;
typedef MULTIKEYHELPW MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP;
+#if (WINVER >= 0x0500)
typedef MONITORINFOEXW MONITORINFOEX, *LPMONITORINFOEX;
+#endif
#define AppendMenu AppendMenuW
#define BroadcastSystemMessage BroadcastSystemMessageW
#define BroadcastSystemMessageEx BroadcastSystemMessageExW
@@ -4232,7 +4244,9 @@
typedef CBT_CREATEWNDA CBT_CREATEWND, *LPCBT_CREATEWND;
typedef MDICREATESTRUCTA MDICREATESTRUCT,*LPMDICREATESTRUCT;
typedef MULTIKEYHELPA MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP;
+#if (WINVER >= 0x0500)
typedef MONITORINFOEXA MONITORINFOEX, *LPMONITORINFOEX;
+#endif
#define AppendMenu AppendMenuA
#define BroadcastSystemMessage BroadcastSystemMessageA
#define BroadcastSystemMessageEx BroadcastSystemMessageExA
--- include/winver.h.orig 2006-03-26 09:21:36.000000000 +0900
+++ include/winver.h 2006-03-26 09:21:42.000000000 +0900
@@ -101,10 +101,10 @@
DWORD WINAPI VerFindFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT);
DWORD WINAPI VerInstallFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,PUINT);
DWORD WINAPI VerInstallFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT);
-DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR,PDWORD);
-DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR,PDWORD);
-BOOL WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,PVOID);
-BOOL WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,PVOID);
+DWORD WINAPI GetFileVersionInfoSizeA(LPSTR,PDWORD);
+DWORD WINAPI GetFileVersionInfoSizeW(LPWSTR,PDWORD);
+BOOL WINAPI GetFileVersionInfoA(LPSTR,DWORD,DWORD,PVOID);
+BOOL WINAPI GetFileVersionInfoW(LPWSTR,DWORD,DWORD,PVOID);
DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
BOOL WINAPI VerQueryValueA(const LPVOID,LPSTR,LPVOID*,PUINT);
--- include/wtypes.h.orig 2006-11-19 08:08:37.000000000 +0900
+++ include/wtypes.h 2007-01-19 23:05:02.531250000 +0900
@@ -72,6 +72,19 @@
unsigned short asData[1];
}FLAGGED_WORD_BLOB;
+typedef struct _COAUTHIDENTITY
+ {
+ /* [size_is] */ USHORT *User;
+ /* [range] */ ULONG UserLength;
+ /* [size_is] */ USHORT *Domain;
+ /* [range] */ ULONG DomainLength;
+ /* [size_is] */ USHORT *Password;
+ /* [range] */ ULONG PasswordLength;
+ ULONG Flags;
+ } COAUTHIDENTITY;
+
+typedef WORD CLIPFORMAT,*LPCLIPFORMAT;
+
#ifndef OLE2ANSI
typedef WCHAR OLECHAR;
typedef LPWSTR LPOLESTR;
@@ -100,6 +113,7 @@
}_STRUCT_NAME(s);
LONGLONG int64;
} CY;
+typedef union tagCY *LPCY;
typedef double DATE;
typedef struct tagBSTRBLOB {
ULONG cbSize;
@@ -163,7 +177,49 @@
ULONGLONG Lo64;
} DUMMYUNIONNAME2;
} DECIMAL;
+typedef DECIMAL *LPDECIMAL;
typedef void *HMETAFILEPICT;
+
+typedef enum tagTYSPEC {
+ TYSPEC_CLSID,
+ TYSPEC_FILEEXT,
+ TYSPEC_MIMETYPE,
+ TYSPEC_FILENAME,
+ TYSPEC_PROGID,
+ TYSPEC_PACKAGENAME,
+ TYSPEC_OBJECTID
+} TYSPEC;
+
+typedef union {
+ CLSID clsid;
+ LPOLESTR pFileExt;
+ LPOLESTR pMimeType;
+ LPOLESTR pProgId;
+ LPOLESTR pFileName;
+ struct {
+ LPOLESTR pPackageName;
+ GUID PolicyId;
+ } ByName;
+ struct {
+ GUID ObjectId;
+ GUID PolicyId;
+ } ByObjectId;
+} uCLSSPEC;
+
+typedef struct tagCSPLATFORM {
+ DWORD dwContext;
+ DWORD dwVersionHi;
+ DWORD dwVersionLo;
+ DWORD dwProcessorArch;
+} CSPLATFORM;
+
+typedef struct tagQUERYCONTEXT {
+ DWORD dwContext;
+ CSPLATFORM Platform;
+ LCID Locale;
+ DWORD dwVersionHi;
+ DWORD dwVersionLo;
+} QUERYCONTEXT;
#ifdef __cplusplus
}
#endif
--- include/sys/stat.h.orig 2006-06-25 19:45:42.000000000 +0900
+++ include/sys/stat.h 2006-12-30 18:26:27.578125000 +0900
@@ -11,6 +11,9 @@
#ifndef _STAT_H_
#define _STAT_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* All the headers include this file. */
#include <_mingw.h>
--- include/adoctint.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/adoctint.h 2007-01-02 17:41:58.437500000 +0900
@@ -11,6 +11,9 @@
//--------------------------------------------------------------------
#ifndef _ADOCTINT_H_
#define _ADOCTINT_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef _INC_TCHAR
#include <tchar.h>
@@ -3310,11 +3313,11 @@
#endif /* __Procedure_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Catalog;
#ifdef __cplusplus
-Catalog;
+//Catalog;
#endif
EXTERN_C const CLSID CLSID_Table;
#ifdef __cplusplus
-Table;
+//Table;
#endif
#ifndef __Property_INTERFACE_DEFINED__
#define __Property_INTERFACE_DEFINED__
@@ -3503,23 +3506,23 @@
#endif /* __Property_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Group;
#ifdef __cplusplus
-Group;
+//Group;
#endif
EXTERN_C const CLSID CLSID_User;
#ifdef __cplusplus
-User;
+//User;
#endif
EXTERN_C const CLSID CLSID_Column;
#ifdef __cplusplus
-Column;
+//Column;
#endif
EXTERN_C const CLSID CLSID_Index;
#ifdef __cplusplus
-Index;
+//Index;
#endif
EXTERN_C const CLSID CLSID_Key;
#ifdef __cplusplus
-Key;
+//Key;
#endif
#ifndef __Tables_INTERFACE_DEFINED__
#define __Tables_INTERFACE_DEFINED__
--- include/adodef.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/adodef.h 2007-01-05 21:48:51.265625000 +0900
@@ -12,6 +12,9 @@
#ifndef _ADODEF_H_
#define _ADODEF_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
// TYPELIB MAJOR VERSIONS
#define ADO_MAJOR 2
@@ -47,4 +50,4 @@
#define ADOMD_TYPELIB_UUID uuid(22813728-8BD3-11D0-B4EF-00A0C9138CA4)
#define JRO_TYPELIB_UUID uuid(AC3B8B4C-B6CA-11d1-9F31-00C04FC29D52)
-#endif // _ADODEF_H_
\ No newline at end of file
+#endif // _ADODEF_H_
--- include/adoguids.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/adoguids.h 2007-01-05 21:50:10.265625000 +0900
@@ -11,6 +11,9 @@
#ifndef __ADOGUIDS_H__
#define __ADOGUIDS_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#define STRING_GUID(l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) l##-##w1##-##w2##-##b1##b2##-##b3##b4##b5##b6##b7##b8
@@ -27,4 +30,4 @@
#undef IMMEDIATE_GUID_USE
-#endif //__ADOGUIDS_H__
\ No newline at end of file
+#endif //__ADOGUIDS_H__
--- include/adoint.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/adoint.h 2007-01-02 17:36:43.593750000 +0900
@@ -11,6 +11,9 @@
//--------------------------------------------------------------------
#ifndef _ADOINT_H_
#define _ADOINT_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef _INC_TCHAR
#include <tchar.h>
@@ -4273,7 +4276,7 @@
#endif /* __ADOConnectionConstruction_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Connection;
#ifdef __cplusplus
-Connection;
+//Connection;
#endif
#ifndef ___Record_INTERFACE_DEFINED__
#define ___Record_INTERFACE_DEFINED__
@@ -4740,7 +4743,7 @@
#endif /* ___Record_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Record;
#ifdef __cplusplus
-Record;
+//Record;
#endif
#ifndef ___Stream_INTERFACE_DEFINED__
#define ___Stream_INTERFACE_DEFINED__
@@ -5281,7 +5284,7 @@
#endif /* ___Stream_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Stream;
#ifdef __cplusplus
-Stream;
+//Stream;
#endif
#ifndef __ADORecordConstruction_INTERFACE_DEFINED__
#define __ADORecordConstruction_INTERFACE_DEFINED__
@@ -5616,11 +5619,11 @@
#endif /* __ADOCommandConstruction_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Command;
#ifdef __cplusplus
-Command;
+//Command;
#endif
EXTERN_C const CLSID CLSID_Recordset;
#ifdef __cplusplus
-Recordset;
+//Recordset;
#endif
#ifndef __Recordset15_INTERFACE_DEFINED__
#define __Recordset15_INTERFACE_DEFINED__
@@ -10662,7 +10665,7 @@
#endif /* ___Parameter_INTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_Parameter;
#ifdef __cplusplus
-Parameter;
+//Parameter;
#endif
#ifndef __Parameters_INTERFACE_DEFINED__
#define __Parameters_INTERFACE_DEFINED__
@@ -11124,4 +11127,4 @@
#define ADOStream _ADOStream
-#endif // _ADOINT_H_
\ No newline at end of file
+#endif // _ADOINT_H_
--- include/commctrl.h.orig 2005-04-14 17:54:38.000000000 +0900
+++ include/commctrl.h 2006-12-31 17:17:40.093750000 +0900
@@ -349,8 +349,10 @@
// Shell reserved (0U-580U) - (0U-589U)
+#ifndef CDN_FIRST
#define CDN_FIRST (0U-601U) // common dialog (new)
#define CDN_LAST (0U-699U)
+#endif
#define TBN_FIRST (0U-700U) // toolbar
#define TBN_LAST (0U-720U)
@@ -7005,8 +7007,10 @@
#if (_WIN32_WINNT >= 0x501)
// custom combobox control messages
+#ifndef CB_SETMINVISIBLE
#define CB_SETMINVISIBLE (CBM_FIRST + 1)
#define CB_GETMINVISIBLE (CBM_FIRST + 2)
+#endif
#define ComboBox_SetMinVisible(hwnd, iMinVisible) \
(BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0)
@@ -7319,6 +7323,7 @@
#if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0)
+#if 0
#if !defined(ISOLATION_AWARE_USE_STATIC_LIBRARY)
#define ISOLATION_AWARE_USE_STATIC_LIBRARY 0
#endif
@@ -10499,6 +10504,7 @@
#define Str_SetPtrW IsolationAwareStr_SetPtrW
#define UninitializeFlatSB IsolationAwareUninitializeFlatSB
#define _TrackMouseEvent IsolationAware_TrackMouseEvent
+#endif
#endif /* ISOLATION_AWARE_ENABLED */
#endif /* RC */
--- include/control.h.orig 2005-04-14 17:54:38.000000000 +0900
+++ include/control.h 2007-01-02 22:16:33.031250000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/filter.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/filter.h 2007-01-02 11:15:03.671875000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/gdiplusbitmap.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusbitmap.h 2007-01-02 11:17:13.125000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdiplusbrush.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusbrush.h 2007-01-02 10:33:22.734375000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdiplusenums.h.orig 2003-03-26 16:34:34.000000000 +0900
+++ include/gdiplusenums.h 2004-12-30 20:42:34.000000000 +0900
@@ -531,11 +531,11 @@
// We have to change the WMF record numbers so that they don't conflict with
// the EMF and EMF+ record numbers.
-enum EmfPlusRecordType;
+// enum EmfPlusRecordType;
#define GDIP_EMFPLUS_RECORD_BASE 0x00004000
#define GDIP_WMF_RECORD_BASE 0x00010000
-#define GDIP_WMF_RECORD_TO_EMFPLUS(n) ((EmfPlusRecordType)((n) | GDIP_WMF_RECORD_BASE))
+#define GDIP_WMF_RECORD_TO_EMFPLUS(n) ((n) | GDIP_WMF_RECORD_BASE)
#define GDIP_EMFPLUS_RECORD_TO_WMF(n) ((n) & (~GDIP_WMF_RECORD_BASE))
#define GDIP_IS_WMF_RECORDTYPE(n) (((n) & GDIP_WMF_RECORD_BASE) != 0)
--- include/gdiplusfont.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusfont.h 2007-01-02 10:35:57.671875000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdiplusheaders.h.orig 2003-03-26 16:34:34.000000000 +0900
+++ include/gdiplusheaders.h 2004-12-30 20:58:22.000000000 +0900
@@ -650,7 +650,7 @@
class CachedBitmap : public GdiplusBase
{
- friend Graphics;
+ friend class Graphics;
public:
CachedBitmap(IN Bitmap *bitmap,
--- include/gdiplusimageattributes.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusimageattributes.h 2007-01-02 10:21:23.031250000 +0900
@@ -32,6 +32,9 @@
#ifndef _GDIPLUSIMAGEATTRIBUTES_H
#define _GDIPLUSIMAGEATTRIBUTES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
class GpImageAttributes;
--- include/gdiplusimaging.h.orig 2003-03-26 16:34:34.000000000 +0900
+++ include/gdiplusimaging.h 2004-12-30 21:15:38.000000000 +0900
@@ -153,7 +153,7 @@
UINT Width;
UINT Height;
INT Stride;
- PixelFormat PixelFormat;
+ PixelFormat aPixelFormat;
VOID* Scan0;
UINT_PTR Reserved;
};
--- include/gdiplusmatrix.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusmatrix.h 2007-01-02 10:32:35.203125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdipluspath.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdipluspath.h 2007-01-02 10:34:33.125000000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdipluspen.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdipluspen.h 2007-01-02 10:34:12.593750000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/gdiplusregion.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/gdiplusregion.h 2007-01-02 10:35:23.453125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/**************************************************************************\
*
* Copyright (c) 1998-2001, Microsoft Corp. All Rights Reserved.
--- include/imagehlp.h.orig 2005-04-14 17:54:44.000000000 +0900
+++ include/imagehlp.h 2006-04-04 23:22:28.000000000 +0900
@@ -376,7 +376,7 @@
IMAGEAPI
TouchFileTimes (
HANDLE FileHandle,
- PSYSTEMTIME pSystemTime
+ LPSYSTEMTIME pSystemTime
);
BOOL
@@ -2592,7 +2592,7 @@
// ThreadId must be 4 bytes on all architectures.
//
-C_ASSERT (sizeof ( ((PPROCESS_INFORMATION)0)->dwThreadId ) == 4);
+//C_ASSERT (sizeof ( ((PPROCESS_INFORMATION)0)->dwThreadId ) == 4);
typedef struct _MINIDUMP_THREAD {
ULONG32 ThreadId;
--- include/mapinls.h.orig 2005-04-14 17:54:46.000000000 +0900
+++ include/mapinls.h 2006-12-30 20:46:11.125000000 +0900
@@ -72,7 +72,7 @@
typedef const void FAR * LPCVOID;
#ifndef _MAC
-#ifndef LPOLESTR
+#ifndef OLESTR
#if !defined (_WIN32)
#define LPOLESTR LPSTR
@@ -88,9 +88,11 @@
#define OLESTR(str) L##str
#endif /* !_WIN32 */
-#endif /* LPOLESTR */
+#endif /* OLESTR */
#endif /* _MAC */
+#ifndef NORM_IGNORECASE
+
#define NORM_IGNORECASE 0x00000001 /* ignore case */
#define NORM_IGNORENONSPACE 0x00000002 /* ignore diacritics */
#define NORM_IGNORESYMBOLS 0x00000004 /* ignore symbols */
@@ -103,6 +105,8 @@
#define NORM_IGNOREKANATYPE 0x00000040 /* ignore kanatype */
#endif
+#endif /* NORM_IGNORECASE */
+
#if defined(WIN16)
#define lstrcpyA lstrcpy
--- include/mapiwin.h.orig 2003-03-26 16:34:38.000000000 +0900
+++ include/mapiwin.h 2004-12-28 21:41:14.000000000 +0900
@@ -428,4 +428,4 @@
#endif
#endif /* __MAPIWIN_H__ */
-
+
--- include/msdasc.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/msdasc.h 2007-01-05 21:47:51.515625000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/multimon.h.orig 2005-04-14 17:54:52.000000000 +0900
+++ include/multimon.h 2006-12-31 18:00:37.203125000 +0900
@@ -175,7 +175,7 @@
BOOL IsPlatformNT()
{
- OSVERSIONINFOA osvi = {0};
+ OSVERSIONINFOA osvi;
osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionExA((OSVERSIONINFOA*)&osvi);
return (VER_PLATFORM_WIN32_NT == osvi.dwPlatformId);
--- include/ocidl.h.orig 2005-04-14 17:54:54.000000000 +0900
+++ include/ocidl.h 2007-01-02 17:17:24.328125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -5767,11 +5770,13 @@
HITRESULT_HIT = 3
} HITRESULT;
+#if 0
typedef /* [v1_enum] */
enum tagDVASPECT2
{ DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
+#endif
typedef struct tagExtentInfo
{
--- include/oleauto.h.orig 2005-04-14 17:54:54.000000000 +0900
+++ include/oleauto.h 2006-04-08 22:33:24.000000000 +0900
@@ -392,6 +392,9 @@
WINOLEAUTAPI VarBoolFromUI8(ULONG64 i64In, VARIANT_BOOL FAR* pboolOut);
WINOLEAUTAPI VarBoolFromDec(DECIMAL *pdecIn, VARIANT_BOOL *pboolOut);
+#define __in
+#define __out
+
WINOLEAUTAPI
VarI1FromUI1(
__in BYTE bIn,
@@ -485,6 +488,9 @@
__out CHAR *pcOut
);
+#undef __in
+#undef __out
+
WINOLEAUTAPI VarUI2FromUI1(BYTE bIn, USHORT *puiOut);
WINOLEAUTAPI VarUI2FromI2(SHORT uiIn, USHORT *puiOut);
WINOLEAUTAPI VarUI2FromI4(LONG lIn, USHORT *puiOut);
@@ -880,6 +886,9 @@
/* ICreateTypeLib */
/*---------------------------------------------------------------------*/
+typedef interface ICreateTypeLib ICreateTypeLib;
+typedef interface ICreateTypeLib2 ICreateTypeLib2;
+typedef interface ICreateTypeInfo ICreateTypeInfo;
typedef ICreateTypeLib * LPCREATETYPELIB;
typedef ICreateTypeInfo * LPCREATETYPEINFO;
@@ -1068,7 +1077,7 @@
// Declare variant access functions.
-#if __STDC__ || defined(NONAMELESSUNION)
+#ifdef NONAMELESSUNION
#define V_UNION(X, Y) ((X)->n1.n2.n3.Y)
#define V_VT(X) ((X)->n1.n2.vt)
#define V_RECORDINFO(X) ((X)->n1.n2.n3.brecVal.pRecInfo)
--- include/oledb.h.orig 2005-04-04 18:50:18.000000000 +0900
+++ include/oledb.h 2007-01-02 17:16:30.656250000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -788,7 +791,7 @@
//@@@+ V2.0
#if( OLEDBVER >= 0x0200 )
-#if !defined(_WINBASE_) && !defined(_FILETIME_)
+#if !defined(_WINBASE_H) && !defined(_FILETIME_)
#define _FILETIME_
typedef struct _FILETIME {
DWORD dwLowDateTime;
--- include/oleidl.h.orig 2005-04-14 17:54:54.000000000 +0900
+++ include/oleidl.h 2006-12-31 08:27:03.031250000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/propidl.h.orig 2005-04-14 17:54:56.000000000 +0900
+++ include/propidl.h 2006-04-01 08:26:46.000000000 +0900
@@ -307,7 +307,7 @@
/* [case()] */ FLOAT fltVal;
/* [case()] */ DOUBLE dblVal;
/* [case()] */ VARIANT_BOOL boolVal;
- /* [case()] */ _VARIANT_BOOL bool;
+// /* [case()] */ _VARIANT_BOOL bool;
/* [case()] */ SCODE scode;
/* [case()] */ CY cyVal;
/* [case()] */ DATE date;
--- include/qedit.h.orig 2005-04-14 17:54:56.000000000 +0900
+++ include/qedit.h 2007-01-02 22:11:05.140625000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -10205,10 +10208,10 @@
#define DEX_IDS_GRAPH_ERROR 1427
#define DEX_IDS_GRID_ERROR 1428
#define DEX_IDS_INTERFACE_ERROR 1429
-EXTERN_GUID(CLSID_VideoEffects1Category, 0xcc7bfb42, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
-EXTERN_GUID(CLSID_VideoEffects2Category, 0xcc7bfb43, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
-EXTERN_GUID(CLSID_AudioEffects1Category, 0xcc7bfb44, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
-EXTERN_GUID(CLSID_AudioEffects2Category, 0xcc7bfb45, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
+DEFINE_GUID(CLSID_VideoEffects1Category, 0xcc7bfb42, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
+DEFINE_GUID(CLSID_VideoEffects2Category, 0xcc7bfb43, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
+DEFINE_GUID(CLSID_AudioEffects1Category, 0xcc7bfb44, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
+DEFINE_GUID(CLSID_AudioEffects2Category, 0xcc7bfb45, 0xf175, 0x11d1, 0xa3, 0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59);
extern RPC_IF_HANDLE __MIDL_itf_qedit_0495_v0_0_c_ifspec;
--- include/shlobj.h.orig 2005-04-14 17:54:58.000000000 +0900
+++ include/shlobj.h 2006-04-01 15:49:26.000000000 +0900
@@ -1383,7 +1383,7 @@
// no POF_ flags currently defined
-typedef UINT PRINTEROP_FLAGS;
+//typedef UINT PRINTEROP_FLAGS;
#endif // FO_MOVE
--- include/shobjidl.h 2006-12-30 18:12:26.718750000 +0900
+++ include/shobjidl.h 2006-12-30 18:23:17.281250000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/shtypes.h.orig 2006-12-30 18:12:26.093750000 +0900
+++ include/shtypes.h 2006-12-30 18:24:10.953125000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -122,7 +125,7 @@
} ITEMIDLIST;
#include <poppack.h>
-typedef /* [unique] */ BYTE_BLOB *wirePIDL;
+//typedef /* [unique] */ BYTE_BLOB *wirePIDL;
typedef /* [wire_marshal] */ ITEMIDLIST __unaligned *LPITEMIDLIST;
--- include/specstrings.h.orig 2005-04-14 17:54:58.000000000 +0900
+++ include/specstrings.h 2005-05-25 06:42:00.000000000 +0900
@@ -8,6 +8,8 @@
* *
\***************************************************************/
+#include <wchar.h>
+
// @@BEGIN_DDKSPLIT
// -------------------------------------------------------------------------------
@@ -445,7 +447,7 @@
// @@END_DDKSPLIT
- #define __null
+// #define __null
#define __notnull
#define __maybenull
#define __readonly
--- include/strmif.h.orig 2005-04-14 17:54:58.000000000 +0900
+++ include/strmif.h 2007-01-02 22:04:39.312500000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
@@ -20566,7 +20569,7 @@
#define _IAMFilterGraphCallback_
// Note: Because this interface was not defined as a proper interface it is
// supported under C++ only. Methods aren't stdcall.
-EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
+DEFINE_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
interface IAMFilterGraphCallback : public IUnknown
{
// S_OK means rendering complete, S_FALSE means retry now.
@@ -28962,7 +28965,7 @@
typedef struct tagVMRGUID
{
GUID *pGUID;
- GUID GUID;
+ GUID aGUID;
} VMRGUID;
typedef struct tagVMRMONITORINFO
--- include/strsafe.h.orig 2005-04-14 17:54:58.000000000 +0900
+++ include/strsafe.h 2007-01-02 22:20:15.218750000 +0900
@@ -11,6 +11,9 @@
#ifndef _STRSAFE_H_INCLUDED_
#define _STRSAFE_H_INCLUDED_
#pragma once
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#include <stdio.h> // for _vsnprintf, _vsnwprintf, getc, getwc
#include <string.h> // for memset
--- include/urlmon.h.orig 2005-04-14 17:55:00.000000000 +0900
+++ include/urlmon.h 2006-12-31 08:26:09.921875000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
--- include/wincrypt.h.orig 2005-04-14 17:55:02.000000000 +0900
+++ include/wincrypt.h 2006-03-29 00:13:26.000000000 +0900
@@ -14713,8 +14713,8 @@
IN DWORD dwFlags,
OPTIONAL PCRYPT_KEY_PROV_INFO pKeyProvInfo,
OPTIONAL PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
- OPTIONAL PSYSTEMTIME pStartTime,
- OPTIONAL PSYSTEMTIME pEndTime,
+ OPTIONAL LPSYSTEMTIME pStartTime,
+ OPTIONAL LPSYSTEMTIME pEndTime,
OPTIONAL PCERT_EXTENSIONS pExtensions
);
--- include/wingdi.h.orig 2005-04-14 17:55:02.000000000 +0900
+++ include/wingdi.h 2006-03-31 23:27:00.000000000 +0900
@@ -2751,7 +2751,26 @@
typedef FARPROC LINEDDAPROC;
#endif
-
+#define __in
+#define __in_ecount(x)
+#define __in_bcount(x)
+#define __in_opt
+#define __in_ecount_opt(x)
+#define __in_bcount_opt(x)
+#define __out
+#define __out_ecount(x)
+#define __out_bcount(x)
+#define __out_opt
+#define __out_ecount_opt(x)
+#define __out_bcount_opt(x)
+#define __out_bcount_part_opt(x,y)
+#define __out_ecount_part_opt(x,y)
+#define __inout
+#define __inout_ecount(x)
+#define __reserved
+#define __deref_opt_out
+#define __typefix(x)
+WINGDIAPI int WINAPI FillRect(HDC,LPCRECT,HBRUSH);
WINGDIAPI int WINAPI AddFontResourceA(__in LPCSTR);
WINGDIAPI int WINAPI AddFontResourceW(__in LPCWSTR);
@@ -4140,6 +4159,26 @@
WINGDIAPI BOOL WINAPI ColorCorrectPalette( __in HDC hdc, __in HPALETTE hPal, __in DWORD deFirst, __in DWORD num);
#endif
+#undef __in
+#undef __in_ecount(x)
+#undef __in_bcount(x)
+#undef __in_opt
+#undef __in_ecount_opt(x)
+#undef __in_bcount_opt(x)
+#undef __out
+#undef __out_ecount(x)
+#undef __out_bcount(x)
+#undef __out_opt
+#undef __out_ecount_opt(x)
+#undef __out_bcount_opt(x)
+#undef __out_bcount_part_opt(x,y)
+#undef __out_ecount_part_opt(x,y)
+#undef __inout
+#undef __inout_ecount(x)
+#undef __reserved
+#undef __deref_opt_out
+#undef __typefix(x)
+
#ifndef NOMETAFILE
// Enhanced metafile constants.
--- include/winsock2.h.orig 2005-04-14 17:55:02.000000000 +0900
+++ include/winsock2.h 2006-04-08 23:36:00.000000000 +0900
@@ -10,9 +10,9 @@
* conditions for redistribution.
*/
-#ifndef _WINSOCK2API_
-#define _WINSOCK2API_
-#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
+#ifndef _WINSOCK2_H
+#define _WINSOCK2_H
+#define _WINSOCK_H /* to prevent later inclusion of winsock.h */
/*
* Ensure structures are packed consistently.
@@ -1293,10 +1293,8 @@
* registration (RNR) API
*/
-#ifndef _tagBLOB_DEFINED
-#define _tagBLOB_DEFINED
-#define _BLOB_DEFINED
-#define _LPBLOB_DEFINED
+#ifndef __BLOB_T_DEFINED
+#define __BLOB_T_DEFINED
typedef struct _BLOB {
ULONG cbSize ;
#ifdef MIDL_PASS
@@ -3858,4 +3856,4 @@
#include <wsipv6ok.h>
#endif // IPV6STRICT
-#endif /* _WINSOCK2API_ */
+#endif /* _WINSOCK2_H */
--- include/ws2tcpip.h.orig 2005-04-14 17:55:04.000000000 +0900
+++ include/ws2tcpip.h 2006-04-01 01:37:10.000000000 +0900
@@ -396,6 +396,8 @@
UINT ipi_ifindex; // received interface index
} IN_PKTINFO;
+#define C_ASSERT(x)
+
C_ASSERT(sizeof(IN_PKTINFO) == 8);
// structure for IPV6_PKTINFO option
--- include/wspiapi.h.orig 2005-04-14 17:55:04.000000000 +0900
+++ include/wspiapi.h 2006-12-30 18:25:01.375000000 +0900
@@ -15,6 +15,9 @@
#ifndef _WSPIAPI_H_
#define _WSPIAPI_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#include <stdio.h> // sprintf()
#include <stdlib.h> // calloc(), strtoul()
@@ -76,6 +79,11 @@
#ifdef __cplusplus
extern "C" {
+#define _inline inline
+#define __inline inline
+#else
+#define _inline static
+#define __inline static
#endif
////////////////////////////////////////////////////////////
@@ -1043,6 +1051,8 @@
(*pfFreeAddrInfo)(ai);
}
+#undef _inline
+#undef __inline
#ifdef __cplusplus
}
#endif
--- include/atl/atlbase.h.orig 2005-04-14 17:54:32.000000000 +0900
+++ include/atl/atlbase.h 2006-12-31 08:24:46.640625000 +0900
@@ -10,6 +10,9 @@
#ifndef __ATLBASE_H__
#define __ATLBASE_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef __cplusplus
#error ATL requires C++ compilation (use a .cpp suffix)
@@ -73,19 +76,47 @@
#define _ATL_TYPELIB_INDEX_LENGTH 10
#define _ATL_QUOTES_SPACE 2
-#pragma pack(push, _ATL_PACKING)
+#pragma pack(push, 8)
#if defined(_ATL_DLL)
#pragma comment(lib, "atl.lib")
#endif
-extern "C" const __declspec(selectany) GUID LIBID_ATLLib = {0x44EC0535,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
-extern "C" const __declspec(selectany) CLSID CLSID_Registrar = {0x44EC053A,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
-extern "C" const __declspec(selectany) IID IID_IRegistrar = {0x44EC053B,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
-extern "C" const __declspec(selectany) IID IID_IAxWinHostWindow = {0xb6ea2050,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
-extern "C" const __declspec(selectany) IID IID_IAxWinAmbientDispatch = {0xb6ea2051,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
-extern "C" const __declspec(selectany) IID IID_IInternalConnection = {0x72AD0770,0x6A9F,0x11d1,{0xBC,0xEC,0x00,0x60,0x08,0x8F,0x44,0x4E}};
-extern "C" const __declspec(selectany) IID IID_IDocHostUIHandlerDispatch = {0x425B5AF0,0x65F1,0x11d1,{0x96,0x11,0x00,0x00,0xF8,0x1E,0x0D,0x0D}};
+#define __uuidof(I) IID_##I
+
+#include <excpt.h>
+
+namespace ATL
+{
+inline int InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2)
+{
+ return (
+ ((unsigned long *) &rguid1)[0] == ((unsigned long *) &rguid2)[0] &&
+ ((unsigned long *) &rguid1)[1] == ((unsigned long *) &rguid2)[1] &&
+ ((unsigned long *) &rguid1)[2] == ((unsigned long *) &rguid2)[2] &&
+ ((unsigned long *) &rguid1)[3] == ((unsigned long *) &rguid2)[3]);
+}
+}
+
+#ifdef _INIT_ATL_COMMON_VARS
+extern "C" const GUID LIBID_ATLLib = {0x44EC0535,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
+extern "C" const CLSID CLSID_Registrar = {0x44EC053A,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
+extern "C" const IID IID_IRegistrar = {0x44EC053B,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}};
+extern "C" const IID IID_IAxWinHostWindow = {0xb6ea2050,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
+extern "C" const IID IID_IAxWinAmbientDispatch = {0xb6ea2051,0x48a,0x11d1,{0x82,0xb9,0x0,0xc0,0x4f,0xb9,0x94,0x2e}};
+extern "C" const IID IID_IInternalConnection = {0x72AD0770,0x6A9F,0x11d1,{0xBC,0xEC,0x00,0x60,0x08,0x8F,0x44,0x4E}};
+extern "C" const IID IID_IDocHostUIHandlerDispatch = {0x425B5AF0,0x65F1,0x11d1,{0x96,0x11,0x00,0x00,0xF8,0x1E,0x0D,0x0D}};
+#else
+extern "C" {
+extern const GUID LIBID_ATLLib;
+extern const CLSID CLSID_Registrar;
+extern const IID IID_IRegistrar;
+extern const IID IID_IAxWinHostWindow;
+extern const IID IID_IAxWinAmbientDispatch;
+extern const IID IID_IInternalConnection;
+extern const IID IID_IDocHostUIHandlerDispatch;
+}
+#endif
#ifndef _ATL_DLL_IMPL
namespace ATL
@@ -135,7 +166,7 @@
IUnknown* p = NULL;
if (pfnGetClassObject == NULL)
return S_OK;
- HRESULT hRes = pfnGetClassObject(pfnCreateInstance, IID_IUnknown, (LPVOID*) &p);
+ HRESULT hRes = pfnGetClassObject((LPVOID)pfnCreateInstance, IID_IUnknown, (LPVOID*) &p);
if (SUCCEEDED(hRes))
hRes = CoRegisterClassObject(*pclsid, p, dwClsContext, dwFlags, &dwRegister);
if (p != NULL)
@@ -284,13 +315,15 @@
};
#pragma pack(pop)
-PVOID __stdcall __AllocStdCallThunk(VOID);
-VOID __stdcall __FreeStdCallThunk(PVOID);
+//PVOID __stdcall __AllocStdCallThunk(VOID);
+//VOID __stdcall __FreeStdCallThunk(PVOID);
-#define AllocStdCallThunk() __AllocStdCallThunk()
-#define FreeStdCallThunk(p) __FreeStdCallThunk(p)
+//#define AllocStdCallThunk() __AllocStdCallThunk()
+//#define FreeStdCallThunk(p) __FreeStdCallThunk(p)
-#pragma comment(lib, "atlthunk.lib")
+//#pragma comment(lib, "atlthunk.lib")
+#define AllocStdCallThunk() HeapAlloc(GetProcessHeap(),0,sizeof(_stdcallthunk))
+#define FreeStdCallThunk(p) HeapFree(GetProcessHeap(), 0, p)
#elif defined (_M_AMD64)
#pragma pack(push,2)
@@ -658,6 +691,7 @@
class _NoAddRefReleaseOnCComPtr : public T
{
private:
+ _NoAddRefReleaseOnCComPtr();
STDMETHOD_(ULONG, AddRef)()=0;
STDMETHOD_(ULONG, Release)()=0;
};
@@ -781,6 +815,7 @@
{
return AtlAdvise(p, pUnk, iid, pdw);
}
+#if 0
HRESULT CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter = NULL, DWORD dwClsContext = CLSCTX_ALL)
{
ATLASSERT(p == NULL);
@@ -801,11 +836,12 @@
ATLASSERT(pp != NULL && *pp == NULL);
return p->QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
T* p;
};
-template <class T, const IID* piid = &__uuidof(T)>
+template <class T, const IID* piid>
class CComQIPtr
{
public:
@@ -933,6 +969,7 @@
{
return AtlAdvise(p, pUnk, iid, pdw);
}
+#if 0
HRESULT CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter = NULL, DWORD dwClsContext = CLSCTX_ALL)
{
ATLASSERT(p == NULL);
@@ -953,6 +990,7 @@
ATLASSERT(pp != NULL && *pp == NULL);
return p->QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
T* p;
};
@@ -1087,12 +1125,14 @@
hr = ::CoCreateInstance(clsid, pUnkOuter, dwClsContext, __uuidof(IUnknown), (void**)&p);
return hr;
}
+#if 0
template <class Q>
HRESULT QueryInterface(Q** pp)
{
ATLASSERT(pp != NULL && *pp == NULL);
return p->QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
IUnknown* p;
};
@@ -1257,21 +1297,26 @@
LeaveCriticalSection(&m_sec);
return S_OK;
}
+ static void _InitHandler(void *pData, LPEXCEPTION_POINTERS ep)
+ {
+ HRESULT &hRes=*reinterpret_cast<HRESULT*>(pData);
+ if (STATUS_NO_MEMORY == ep->ExceptionRecord->ExceptionCode)
+ hRes = E_OUTOFMEMORY;
+ else
+ hRes = E_FAIL;
+ }
HRESULT Init() throw()
{
HRESULT hRes = S_OK;
- __try
- {
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
+ {
+ _sehandler.Set(_sejmpbuf, &hRes, reinterpret_cast<__SEHandler::PF>(EXCEPTION_EXECUTE_HANDLER), _InitHandler);
InitializeCriticalSection(&m_sec);
- }
+ }
// structured exception may be raised in low memory situations
- __except(EXCEPTION_EXECUTE_HANDLER)
- {
- if (STATUS_NO_MEMORY == GetExceptionCode())
- hRes = E_OUTOFMEMORY;
- else
- hRes = E_FAIL;
- }
+ _sehandler.Reset();
return hRes;
}
@@ -2799,10 +2844,19 @@
class CComModule;
-__declspec(selectany) CComModule* _pModule=NULL;
+#ifdef _INIT_ATL_COMMON_VARS
+CComModule* _pModule=NULL;
+#else
+extern CComModule* _pModule;
+#endif
+
// {B62F5910-6528-11d1-9611-0000F81E0D0D}
-_declspec(selectany) GUID GUID_ATLVer30 = { 0xb62f5910, 0x6528, 0x11d1, { 0x96, 0x11, 0x0, 0x0, 0xf8, 0x1e, 0xd, 0xd } };
+#ifdef _INIT_ATL_COMMON_VARS
+GUID GUID_ATLVer30 = { 0xb62f5910, 0x6528, 0x11d1, { 0x96, 0x11, 0x0, 0x0, 0xf8, 0x1e, 0xd, 0xd } };
+#else
+extern GUID GUID_ATLVer30;
+#endif
class CComModule : public _ATL_MODULE
{
@@ -4286,7 +4340,9 @@
#endif
-__declspec(selectany) GUID CComModule::m_libid = {0x0,0x0,0x0,{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}};
+#ifdef _INIT_ATL_COMMON_VARS
+GUID CComModule::m_libid = {0x0,0x0,0x0,{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}};
+#endif
#ifdef _ATL_STATIC_REGISTRY
#define UpdateRegistryFromResource UpdateRegistryFromResourceS
@@ -4355,7 +4411,9 @@
LONG m_nLockCnt;
};
-__declspec(selectany) UINT CComApartment::ATL_CREATE_OBJECT = 0;
+#ifdef _INIT_ATL_COMMON_VARS
+UINT CComApartment::ATL_CREATE_OBJECT = 0;
+#endif
class CComSimpleThreadAllocator
{
@@ -5855,6 +5913,10 @@
}
}
+ static int _Except(void *pThis, LPEXCEPTION_POINTERS lpEP)
+ {
+ return reinterpret_cast<CVirtualBuffer *>(pThis)->Except(lpEP);
+ }
void Seek(int nElement)
{
if(nElement < 0 || nElement >= m_nMaxElements)
@@ -5866,41 +5928,53 @@
{
if(nElement < 0 || nElement >= m_nMaxElements)
_AtlRaiseException((DWORD)EXCEPTION_ARRAY_BOUNDS_EXCEEDED);
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, this, _Except);
T* p = &m_pBase[nElement];
*p = Element;
m_pTop = p > m_pTop ? p : m_pTop;
}
- __except(Except(GetExceptionInformation()))
+ else
{
}
+ _sehandler.Reset();
}
template <class Q>
void WriteBulk(Q& helper)
{
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, this, _Except);
m_pCurrent = helper(m_pBase);
m_pTop = m_pCurrent > m_pTop ? m_pCurrent : m_pTop;
}
- __except(Except(GetExceptionInformation()))
+ else
{
}
+ _sehandler.Reset();
}
void Write(const T& Element)
{
if (m_pCurrent < &m_pBase[m_nMaxElements]) {
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, this, _Except);
*m_pCurrent = Element;
m_pCurrent++;
m_pTop = m_pCurrent > m_pTop ? m_pCurrent : m_pTop;
}
- __except(Except(GetExceptionInformation()))
+ else
{
}
+ _sehandler.Reset();
}
}
T& Read()
@@ -5910,14 +5984,18 @@
operator BSTR()
{
BSTR bstrTemp = NULL ;
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, this, _Except);
bstrTemp = SysAllocStringByteLen((char*) m_pBase,
(UINT) ((BYTE*)m_pTop - (BYTE*)m_pBase));
}
- __except(Except(GetExceptionInformation()))
+ else
{
}
+ _sehandler.Reset();
return bstrTemp;
}
const T& operator[](int nElement) const
@@ -6336,6 +6414,11 @@
//Although these functions are big, they are only used once in a module
//so we should make them inline.
+ATLINLINE int atlmoduleinitfilter(void *, LPEXCEPTION_POINTERS ep)
+{
+ return ep->ExceptionRecord->ExceptionCode == STATUS_NO_MEMORY ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH;
+}
+
ATLINLINE ATLAPI AtlModuleInit(_ATL_MODULE* pM, _ATL_OBJMAP_ENTRY* p, HINSTANCE h)
{
ATLASSERT(pM != NULL);
@@ -6352,32 +6435,43 @@
pM->m_hInst = pM->m_hInstTypeLib = pM->m_hInstResource = h;
pM->m_nLockCnt=0L;
pM->m_hHeap = NULL;
- __try {
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0) {
+ _sehandler.Set(_sejmpbuf, NULL, atlmoduleinitfilter);
InitializeCriticalSection(&pM->m_csTypeInfoHolder);
- } __except (GetExceptionCode() == STATUS_NO_MEMORY ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
+ } else {
ZeroMemory(&pM->m_csTypeInfoHolder, sizeof(pM->m_csTypeInfoHolder));
- return STATUS_NO_MEMORY;
+ _sehandler.Reset();
+ return STATUS_NO_MEMORY;
}
+ _sehandler.Reset();
- __try {
+ if (__builtin_setjmp(_sejmpbuf) == 0) {
+ _sehandler.Set(_sejmpbuf, NULL, atlmoduleinitfilter);
InitializeCriticalSection(&pM->m_csWindowCreate);
- } __except (GetExceptionCode() == STATUS_NO_MEMORY ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
+ } else {
DeleteCriticalSection(&pM->m_csTypeInfoHolder);
ZeroMemory(&pM->m_csWindowCreate, sizeof(pM->m_csWindowCreate));
ZeroMemory(&pM->m_csTypeInfoHolder, sizeof(pM->m_csTypeInfoHolder));
+ _sehandler.Reset();
return STATUS_NO_MEMORY;
}
+ _sehandler.Reset();
- __try {
+ if (__builtin_setjmp(_sejmpbuf) == 0) {
+ _sehandler.Set(_sejmpbuf, NULL, atlmoduleinitfilter);
InitializeCriticalSection(&pM->m_csObjMap);
- } __except (GetExceptionCode() == STATUS_NO_MEMORY ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
+ } else {
DeleteCriticalSection(&pM->m_csWindowCreate);
DeleteCriticalSection(&pM->m_csTypeInfoHolder);
ZeroMemory(&pM->m_csObjMap, sizeof(pM->m_csObjMap));
ZeroMemory(&pM->m_csWindowCreate, sizeof(pM->m_csWindowCreate));
ZeroMemory(&pM->m_csTypeInfoHolder, sizeof(pM->m_csTypeInfoHolder));
+ _sehandler.Reset();
return STATUS_NO_MEMORY;
}
+ _sehandler.Reset();
#ifdef _ATL_DLL_IMPL
if (pM->cbSize > _nAtlModuleVer21Size)
#endif
@@ -6450,6 +6544,11 @@
return hRes;
}
+ATLINLINE void atlfinalleavecriticalsection(void *pData)
+{
+ LeaveCriticalSection(reinterpret_cast<LPCRITICAL_SECTION>(pData));
+}
+
ATLINLINE ATLAPI AtlModuleGetClassObject(_ATL_MODULE* pM, REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
ATLASSERT(pM != NULL);
@@ -6473,15 +6572,15 @@
if (pEntry->pCF == NULL)
{
EnterCriticalSection(&pM->m_csObjMap);
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, &pM->m_csObjMap, EXCEPTION_CONTINUE_SEARCH, NULL, atlfinalleavecriticalsection);
if (pEntry->pCF == NULL)
- hRes = pEntry->pfnGetClassObject(pEntry->pfnCreateInstance, IID_IUnknown, (LPVOID*)&pEntry->pCF);
- }
- __finally
- {
- LeaveCriticalSection(&pM->m_csObjMap);
+ hRes = pEntry->pfnGetClassObject((void *)(pEntry->pfnCreateInstance), IID_IUnknown, (LPVOID*)&pEntry->pCF);
}
+ _sehandler.Reset();
}
if (pEntry->pCF != NULL)
hRes = pEntry->pCF->QueryInterface(riid, ppv);
--- include/atl/atlcom.h.orig 2005-04-14 17:54:32.000000000 +0900
+++ include/atl/atlcom.h 2006-12-31 09:17:56.984375000 +0900
@@ -10,6 +10,9 @@
#ifndef __ATLCOM_H__
#define __ATLCOM_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef __cplusplus
#error ATL requires C++ compilation (use a .cpp suffix)
@@ -19,7 +22,7 @@
#error atlcom.h requires atlbase.h to be included first
#endif
-#pragma pack(push, _ATL_PACKING)
+#pragma pack(push, 8)
EXTERN_C const IID IID_ITargetFrame;
@@ -2191,19 +2194,23 @@
// override it in your class and call each base class' version of this
#define BEGIN_COM_MAP(x) public: \
typedef x _ComMapClass; \
+ static void _CacheFinal(void *pData)\
+ {\
+ reinterpret_cast<_ComMapClass*>(pData)->Unlock();\
+ }\
static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw)\
{\
_ComMapClass* p = (_ComMapClass*)pv;\
p->Lock();\
HRESULT hRes = E_FAIL; \
- __try \
+ jmp_buf _sejmpbuf; \
+ __SEHandler _sehandler; \
+ if (__builtin_setjmp(_sejmpbuf) == 0) \
{ \
+ _sehandler.Set(_sejmpbuf, p, EXCEPTION_CONTINUE_SEARCH, NULL, _CacheFinal);\
hRes = CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);\
} \
- __finally \
- { \
- p->Unlock();\
- } \
+ _sehandler.Reset();\
return hRes;\
}\
IUnknown* _GetRawUnknown() \
@@ -2339,7 +2346,7 @@
return( pMap ); }
#define BEGIN_OBJECT_MAP(x) static _ATL_OBJMAP_ENTRY x[] = {
-#define END_OBJECT_MAP() {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}};
+#define END_OBJECT_MAP() {NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL}};
#define OBJECT_ENTRY(clsid, class) {&clsid, class::UpdateRegistry, class::_ClassFactoryCreatorClass::CreateInstance, class::_CreatorClass::CreateInstance, NULL, 0, class::GetObjectDescription, class::GetCategoryMap, class::ObjectMain },
#define OBJECT_ENTRY_NON_CREATEABLE(class) {&CLSID_NULL, class::UpdateRegistry, NULL, NULL, NULL, 0, NULL, class::GetCategoryMap, class::ObjectMain },
@@ -2492,9 +2499,9 @@
public:
typedef ThreadModel _ThreadModel;
#ifdef OLD_ATL_CRITSEC_CODE
- typename typedef _ThreadModel::AutoCriticalSection _CritSec;
+ typedef typename _ThreadModel::AutoCriticalSection _CritSec;
#else
- typename typedef _ThreadModel::AutoDeleteCriticalSection _AutoDelCritSec;
+ typedef typename _ThreadModel::AutoDeleteCriticalSection _AutoDelCritSec;
#endif /* OLD_ATL_CRITSEC_CODE */
typedef CComObjectLockT<_ThreadModel> ObjectLock;
@@ -2638,8 +2645,8 @@
// Set refcount to 1 to protect destruction
~CComObject()
{
- m_dwRef = 1L;
- FinalRelease();
+ this->m_dwRef = 1L;
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
@@ -2647,22 +2654,24 @@
}
//If InternalAddRef or InternalRelease is undefined then your class
//doesn't derive from CComObjectRoot
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
}
//if _InternalQueryInterface is undefined then you forgot BEGIN_COM_MAP
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
- {return _InternalQueryInterface(iid, ppvObject);}
+ {return this->_InternalQueryInterface(iid, ppvObject);}
+#if 0
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
{
return QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
static HRESULT WINAPI CreateInstance(CComObject<Base>** pp);
};
@@ -2719,8 +2728,8 @@
#endif /* OLD_ATL_CRITSEC_CODE */
~CComObjectCached()
{
- m_dwRef = 1L;
- FinalRelease();
+ this->m_dwRef = 1L;
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
@@ -2729,14 +2738,14 @@
//doesn't derive from CComObjectRoot
STDMETHOD_(ULONG, AddRef)()
{
- ULONG l = InternalAddRef();
+ ULONG l = this->InternalAddRef();
if (l == 2)
_Module.Lock();
return l;
}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
else if (l == 1)
@@ -2745,7 +2754,7 @@
}
//if _InternalQueryInterface is undefined then you forgot BEGIN_COM_MAP
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
- {return _InternalQueryInterface(iid, ppvObject);}
+ {return this->_InternalQueryInterface(iid, ppvObject);}
#ifndef OLD_ATL_CRITSEC_CODE
CComGlobalsThreadModel::AutoDeleteCriticalSection m_csCached;
#endif /* OLD_ATL_CRITSEC_CODE */
@@ -2762,8 +2771,8 @@
// Set refcount to 1 to protect destruction
~CComObjectNoLock()
{
- m_dwRef = 1L;
- FinalRelease();
+ this->m_dwRef = 1L;
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
@@ -2771,17 +2780,17 @@
//If InternalAddRef or InternalRelease is undefined then your class
//doesn't derive from CComObjectRoot
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
}
//if _InternalQueryInterface is undefined then you forgot BEGIN_COM_MAP
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
- {return _InternalQueryInterface(iid, ppvObject);}
+ {return this->_InternalQueryInterface(iid, ppvObject);}
};
// It is possible for Base not to derive from CComObjectRoot
@@ -2794,14 +2803,14 @@
CComObjectGlobal(void* = NULL)
{
#ifndef OLD_ATL_CRITSEC_CODE
- m_hResFinalConstruct = _AtlInitialConstruct();
+ m_hResFinalConstruct = this->_AtlInitialConstruct();
if (SUCCEEDED(m_hResFinalConstruct))
#endif /* OLD_ATL_CRITSEC_CODE */
- m_hResFinalConstruct = FinalConstruct();
+ m_hResFinalConstruct = this->FinalConstruct();
}
~CComObjectGlobal()
{
- FinalRelease();
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
@@ -2810,7 +2819,7 @@
STDMETHOD_(ULONG, AddRef)() {return _Module.Lock();}
STDMETHOD_(ULONG, Release)(){return _Module.Unlock();}
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
- {return _InternalQueryInterface(iid, ppvObject);}
+ {return this->_InternalQueryInterface(iid, ppvObject);}
HRESULT m_hResFinalConstruct;
};
@@ -2824,14 +2833,14 @@
CComObjectStack(void* = NULL)
{
#ifndef OLD_ATL_CRITSEC_CODE
- m_hResFinalConstruct = _AtlInitialConstruct();
+ m_hResFinalConstruct = this->_AtlInitialConstruct();
if (SUCCEEDED(m_hResFinalConstruct))
#endif /* OLD_ATL_CRITSEC_CODE */
- m_hResFinalConstruct = FinalConstruct();
+ m_hResFinalConstruct = this->FinalConstruct();
}
~CComObjectStack()
{
- FinalRelease();
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
@@ -2850,6 +2859,8 @@
{
public:
typedef Base _BaseClass;
+ using Base::_GetRawUnknown;
+ using Base::m_pOuterUnknown;
CComContainedObject(void* pv) {m_pOuterUnknown = (IUnknown*)pv;}
#ifdef _ATL_DEBUG_INTERFACES
~CComContainedObject()
@@ -2859,20 +2870,22 @@
}
#endif
- STDMETHOD_(ULONG, AddRef)() {return OuterAddRef();}
- STDMETHOD_(ULONG, Release)() {return OuterRelease();}
+ STDMETHOD_(ULONG, AddRef)() {return this->OuterAddRef();}
+ STDMETHOD_(ULONG, Release)() {return this->OuterRelease();}
STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
{
- HRESULT hr = OuterQueryInterface(iid, ppvObject);
+ HRESULT hr = this->OuterQueryInterface(iid, ppvObject);
if (FAILED(hr) && _GetRawUnknown() != m_pOuterUnknown)
- hr = _InternalQueryInterface(iid, ppvObject);
+ hr = this->_InternalQueryInterface(iid, ppvObject);
return hr;
}
+#if 0
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
{
return QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
//GetControllingUnknown may be virtual if the Base class has declared
//DECLARE_GET_CONTROLLING_UNKNOWN()
IUnknown* GetControllingUnknown()
@@ -2915,18 +2928,18 @@
// override it in your class and call each base class' version of this
HRESULT FinalConstruct()
{
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
return m_contained.FinalConstruct();
}
void FinalRelease()
{
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
m_contained.FinalRelease();
}
// Set refcount to 1 to protect destruction
~CComAggObject()
{
- m_dwRef = 1L;
+ this->m_dwRef = 1L;
FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(this);
@@ -2934,10 +2947,10 @@
_Module.Unlock();
}
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
@@ -2959,11 +2972,13 @@
hRes = m_contained._InternalQueryInterface(iid, ppvObject);
return hRes;
}
+#if 0
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
{
return QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
static HRESULT WINAPI CreateInstance(LPUNKNOWN pUnkOuter, CComAggObject<contained>** pp)
{
_ATL_VALIDATE_OUT_POINTER(pp);
@@ -3023,21 +3038,21 @@
// override it in your class and call each base class' version of this
HRESULT FinalConstruct()
{
- InternalAddRef();
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
+ this->InternalAddRef();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
HRESULT hr = m_contained.FinalConstruct();
- InternalRelease();
+ this->InternalRelease();
return hr;
}
void FinalRelease()
{
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
m_contained.FinalRelease();
}
// Set refcount to 1 to protect destruction
~CComPolyObject()
{
- m_dwRef = 1L;
+ this->m_dwRef = 1L;
FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(this);
@@ -3045,10 +3060,10 @@
_Module.Unlock();
}
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
@@ -3072,11 +3087,13 @@
hRes = m_contained._InternalQueryInterface(iid, ppvObject);
return hRes;
}
+#if 0
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
{
return QueryInterface(__uuidof(Q), (void**)pp);
}
+#endif
static HRESULT WINAPI CreateInstance(LPUNKNOWN pUnkOuter, CComPolyObject<contained>** pp)
{
_ATL_VALIDATE_OUT_POINTER(pp);
@@ -3111,27 +3128,28 @@
class CComTearOffObject : public Base
{
public:
+ using Base::m_pOwner;
CComTearOffObject(void* pv)
{
ATLASSERT(m_pOwner == NULL);
- m_pOwner = reinterpret_cast<CComObject<Base::_OwnerClass>*>(pv);
+ m_pOwner = reinterpret_cast<CComObject<typename Base::_OwnerClass>*>(pv);
m_pOwner->AddRef();
}
// Set refcount to 1 to protect destruction
~CComTearOffObject()
{
- m_dwRef = 1L;
- FinalRelease();
+ this->m_dwRef = 1L;
+ this->FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
m_pOwner->Release();
}
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
@@ -3150,27 +3168,27 @@
public:
typedef contained _BaseClass;
CComCachedTearOffObject(void* pv) :
- m_contained(((contained::_OwnerClass*)pv)->GetControllingUnknown())
+ m_contained(((typename contained::_OwnerClass*)pv)->GetControllingUnknown())
{
ATLASSERT(m_contained.m_pOwner == NULL);
- m_contained.m_pOwner = reinterpret_cast<CComObject<contained::_OwnerClass>*>(pv);
+ m_contained.m_pOwner = reinterpret_cast<CComObject<typename contained::_OwnerClass>*>(pv);
}
//If you get a message that this call is ambiguous then you need to
// override it in your class and call each base class' version of this
HRESULT FinalConstruct()
{
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalConstruct();
return m_contained.FinalConstruct();
}
void FinalRelease()
{
- CComObjectRootEx<contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
+ CComObjectRootEx<typename contained::_ThreadModel::ThreadModelNoCS>::FinalRelease();
m_contained.FinalRelease();
}
// Set refcount to 1 to protect destruction
~CComCachedTearOffObject()
{
- m_dwRef = 1L;
+ this->m_dwRef = 1L;
FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_Module.DeleteNonAddRefThunk(this);
@@ -3178,10 +3196,10 @@
}
- STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
+ STDMETHOD_(ULONG, AddRef)() {return this->InternalAddRef();}
STDMETHOD_(ULONG, Release)()
{
- ULONG l = InternalRelease();
+ ULONG l = this->InternalRelease();
if (l == 0)
delete this;
return l;
@@ -3260,6 +3278,8 @@
{
public:
typedef license _LicenseClass;
+ using license::IsLicenseValid;
+ using license::GetLicenseKey;
typedef CComClassFactory2<license> _ComMapClass;
BEGIN_COM_MAP(CComClassFactory2<license>)
COM_INTERFACE_ENTRY(IClassFactory)
@@ -3297,7 +3317,7 @@
if (ppvObject == NULL)
return E_POINTER;
*ppvObject = NULL;
- if ( ((bstrKey != NULL) && !VerifyLicenseKey(bstrKey)) ||
+ if ( ((bstrKey != NULL) && !this->VerifyLicenseKey(bstrKey)) ||
((bstrKey == NULL) && !IsLicenseValid()) )
return CLASS_E_NOTLICENSED;
if ((pUnkOuter != NULL) && !InlineIsEqualUnknown(riid))
@@ -3363,7 +3383,7 @@
if (pUnkOuter != NULL)
hRes = CLASS_E_NOAGGREGATION;
else
- hRes = _Module.CreateInstance(m_pfnCreateInstance, riid, ppvObj);
+ hRes = _Module.CreateInstance((LPVOID)m_pfnCreateInstance, riid, ppvObj);
}
return hRes;
}
@@ -3454,6 +3474,7 @@
lpszHelpFile, iid, hRes);
}
#endif
+#if 0
template <class Q>
static HRESULT CreateInstance(IUnknown* punkOuter, Q** pp)
{
@@ -3464,6 +3485,7 @@
{
return T::_CreatorClass::CreateInstance(NULL, __uuidof(Q), (void**) pp);
}
+#endif
};
// ATL doesn't support multiple LCID's at the same time
@@ -3651,7 +3673,7 @@
{
CComPtr<ITypeInfo> spInfo(spTypeInfo);
CComPtr<ITypeInfo2> spTypeInfo2;
- if (SUCCEEDED(spTypeInfo->QueryInterface(&spTypeInfo2)))
+ if (SUCCEEDED(spTypeInfo->QueryInterface(IID_ITypeInfo2, (void**)&spTypeInfo2)))
spInfo = spTypeInfo2;
m_pInfo = spInfo.Detach();
@@ -3760,6 +3782,9 @@
/////////////////////////////////////////////////////////////////////////////
// IDispEventImpl
+template <class T>
+struct _ATL_EVENT_ENTRY;
+
#ifdef _ATL_DLL
ATLAPI AtlGetObjectSourceInterface(IUnknown* punkObj, GUID* plibid, IID* piid, unsigned short* pdwMajor, unsigned short* pdwMinor);
#else
@@ -3909,16 +3934,17 @@
#else
#pragma warning(disable:4740) // flow in/out of inline disables global opts
-inline void __declspec(naked) __stdcall CComStdCallThunkHelper()
+inline void __stdcall CComStdCallThunkHelper()
{
- __asm
- {
- mov eax, [esp+4]; // get pThunk
- mov edx, [eax+4]; // get the pThunk->pThis
- mov [esp+4], edx; // replace pThunk with pThis
- mov eax, [eax+8]; // get pThunk->pfn
- jmp eax; // jump pfn
- };
+ asm(
+ " movl $8(%ebp), %eax\n" // get pThunk
+ " movl $4(%eax), edx\n" // get the pThunk->pThis
+ " movl %edx, $8(%ebp)\n" // replace pThunk with pThis
+ " movl $8(%eax), %eax\n" // get pThunk->pfn
+ " movl %ebp, %esp\n"
+ " popl %ebp\n"
+ " jmp %eax" // jump pfn
+ );
}
#pragma warning(default:4740)
#endif
@@ -3985,6 +4011,7 @@
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
{
public:
+ using _IDispEventLocator<nID, pdiid>::m_dwEventCookie;
STDMETHOD(_LocDEQueryInterface)(REFIID riid, void ** ppvObject)
{
_ATL_VALIDATE_OUT_POINTER(ppvObject);
@@ -3992,7 +4019,7 @@
if (InlineIsEqualGUID(riid, *pdiid) ||
InlineIsEqualUnknown(riid) ||
InlineIsEqualGUID(riid, IID_IDispatch) ||
- InlineIsEqualGUID(riid, m_iid))
+ InlineIsEqualGUID(riid, this->m_iid))
{
*ppvObject = this;
AddRef();
@@ -4186,6 +4213,10 @@
{
public:
typedef tihclass _tihclass;
+ using IDispEventSimpleImpl<nID, T, pdiid>::m_libid;
+ using IDispEventSimpleImpl<nID, T, pdiid>::m_iid;
+ using IDispEventSimpleImpl<nID, T, pdiid>::m_wMajorVerNum;
+ using IDispEventSimpleImpl<nID, T, pdiid>::m_wMinorVerNum;
IDispEventImpl()
{
@@ -4475,6 +4506,11 @@
}
};
+template <class Base, const IID* piid, class T, class Copy, class ThreadModel = CComObjectThreadModel>
+class ATL_NO_VTABLE CComEnum;
+template <class Base, const IID* piid, class T, class Copy, class CollType, class ThreadModel = CComObjectThreadModel>
+class ATL_NO_VTABLE CComEnumOnSTL;
+
/////////////////////////////////////////////////////////////////////////////
// CComEnumImpl
@@ -4746,7 +4782,7 @@
return S_OK;
}
-template <class Base, const IID* piid, class T, class Copy, class ThreadModel = CComObjectThreadModel>
+template <class Base, const IID* piid, class T, class Copy, class ThreadModel>
class ATL_NO_VTABLE CComEnum :
public CComEnumImpl<Base, piid, T, Copy>,
public CComObjectRootEx< ThreadModel >
@@ -4868,7 +4904,7 @@
return hRes;
}
-template <class Base, const IID* piid, class T, class Copy, class CollType, class ThreadModel = CComObjectThreadModel>
+template <class Base, const IID* piid, class T, class Copy, class CollType, class ThreadModel>
class ATL_NO_VTABLE CComEnumOnSTL :
public IEnumOnSTLImpl<Base, piid, T, Copy, CollType>,
public CComObjectRootEx< ThreadModel >
@@ -4901,7 +4937,7 @@
return E_INVALIDARG;
HRESULT hr = E_FAIL;
Index--;
- CollType::iterator iter = m_coll.begin();
+ typename CollType::iterator iter = m_coll.begin();
while (iter != m_coll.end() && Index > 0)
{
iter++;
@@ -5314,7 +5350,7 @@
if (InlineIsEqualGUID(riid, IID_IConnectionPoint) || InlineIsEqualUnknown(riid))
{
*ppvObject = this;
- AddRef();
+ this->AddRef();
#ifdef _ATL_DEBUG_INTERFACES
_Module.AddThunk((IUnknown**)ppvObject, _T("IConnectionPointImpl"), riid);
#endif // _ATL_DEBUG_INTERFACES
--- include/atl/atlconv.h.orig 2005-04-14 17:54:32.000000000 +0900
+++ include/atl/atlconv.h 2006-09-18 20:37:06.015625000 +0900
@@ -30,7 +30,11 @@
// Following code is to avoid alloca causing a stack overflow.
// It is intended for use from the _ATL_SAFE_ALLOCA macros
// or Conversion macros.
-__declspec(selectany) DWORD _Atlosplatform = 0;
+#ifdef _INIT_ATL_COMMON_VARS
+DWORD _Atlosplatform = 0;
+#else
+extern DWORD _Atlosplatform;
+#endif
inline BOOL _AtlGetVersionEx()
{
OSVERSIONINFO osi;
@@ -158,6 +162,9 @@
// Verifies if sufficient space is available on the stack.
inline bool _AtlVerifyStackAvailable(SIZE_T Size)
{
+#if 1
+ return false;
+#else
bool bStackAvailable = true;
__try
@@ -173,6 +180,7 @@
_Atlresetstkoflw();
}
return bStackAvailable;
+#endif
}
#pragma prefast(pop)
--- include/atl/atlctl.h.orig 2005-04-14 17:54:32.000000000 +0900
+++ include/atl/atlctl.h 2006-12-31 08:25:53.890625000 +0900
@@ -10,6 +10,9 @@
#ifndef __ATLCTL_H__
#define __ATLCTL_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef __cplusplus
#error ATL requires C++ compilation (use a .cpp suffix)
@@ -57,7 +60,7 @@
namespace ATL
{
-#pragma pack(push, _ATL_PACKING)
+#pragma pack(push, 8)
// Forward declarations
//
@@ -142,7 +145,7 @@
CComControlBase(HWND& h) : m_hWndCD(h)
{
memset(this, 0, sizeof(CComControlBase));
- m_phWndCD = &h;
+// m_phWndCD = &h;
m_sizeExtent.cx = 2*2540;
m_sizeExtent.cy = 2*2540;
m_sizeNatural = m_sizeExtent;
@@ -530,13 +533,13 @@
SIZE m_sizeNatural; //unscaled size in himetric
SIZE m_sizeExtent; //current extents in himetric
RECT m_rcPos; // position in pixels
-#pragma warning(disable: 4510 4610) // unnamed union
- union
- {
+//#pragma warning(disable: 4510 4610) // unnamed union
+// union
+// {
HWND& m_hWndCD;
- HWND* m_phWndCD;
- };
-#pragma warning(default: 4510 4610)
+// HWND* m_phWndCD;
+// };
+//#pragma warning(default: 4510 4610)
union
{
// m_nFreezeEvents is the only one actually used
@@ -1362,7 +1365,7 @@
class ATL_NO_VTABLE CComControl : public CComControlBase, public WinBase
{
public:
- CComControl() : CComControlBase(m_hWnd) {}
+ CComControl() : CComControlBase(this->m_hWnd) {}
HRESULT FireOnRequestEdit(DISPID dispID)
{
T* pT = static_cast<T*>(this);
@@ -1401,6 +1404,8 @@
class CComCompositeControl : public CComControl< T, CAxDialogImpl< T > >
{
public:
+ using CComControl< T, CAxDialogImpl< T > >::m_hWnd;
+ using CComControl< T, CAxDialogImpl< T > >::GetNextDlgTabItem;
CComCompositeControl()
{
m_hbrBackground = NULL;
@@ -1429,7 +1434,7 @@
m_hbrBackground = NULL;
}
OLE_COLOR clr;
- HRESULT hr = GetAmbientBackColor(clr);
+ HRESULT hr = this->GetAmbientBackColor(clr);
if (SUCCEEDED(hr))
{
COLORREF rgb;
@@ -1458,10 +1463,10 @@
}
HWND Create(HWND hWndParent, RECT& /*rcPos*/, LPARAM dwInitParam = NULL)
{
- CComControl< T, CAxDialogImpl< T > >::Create(hWndParent, dwInitParam);
+ this->Create(hWndParent, dwInitParam);
SetBackgroundColorFromAmbient();
if (m_hWnd != NULL)
- ShowWindow(SW_SHOWNOACTIVATE);
+ this->ShowWindow(SW_SHOWNOACTIVATE);
return m_hWnd;
}
BOOL CalcExtent(SIZE& size)
@@ -1488,7 +1493,7 @@
return FALSE;
// find a direct child of the dialog from the window that has focus
HWND hWndCtl = ::GetFocus();
- if (IsChild(hWndCtl) && ::GetParent(hWndCtl) != m_hWnd)
+ if (this->IsChild(hWndCtl) && ::GetParent(hWndCtl) != m_hWnd)
{
do
{
@@ -1546,7 +1551,7 @@
break;
}
- return IsDialogMessage(pMsg);
+ return this->IsDialogMessage(pMsg);
}
HRESULT IOleInPlaceObject_InPlaceDeactivate(void)
{
@@ -1563,7 +1568,7 @@
}
virtual HRESULT OnDraw(ATL_DRAWINFO& di)
{
- if(!m_bInPlaceActive)
+ if(!this->m_bInPlaceActive)
{
HPEN hPen = (HPEN)::GetStockObject(BLACK_PEN);
HBRUSH hBrush = (HBRUSH)::GetStockObject(GRAY_BRUSH);
--- include/atl/atlwin.h.orig 2005-04-14 17:54:32.000000000 +0900
+++ include/atl/atlwin.h 2006-12-30 22:59:02.312500000 +0900
@@ -10,6 +10,9 @@
#ifndef __ATLWIN_H__
#define __ATLWIN_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#ifndef __cplusplus
#error ATL requires C++ compilation (use a .cpp suffix)
@@ -99,6 +102,8 @@
#else
#define CWndClassInfo CWndClassInfoA
#endif
+template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0> class CWinTraits;
+typedef CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0> CControlWinTraits;
template <class T, class TBase = CWindow, class TWinTraits = CControlWinTraits> class CWindowImpl;
template <class T, class TBase = CWindow> class CDialogImpl;
#ifndef _ATL_NO_HOSTING
@@ -658,6 +663,13 @@
ATLASSERT(::IsWindow(m_hWnd));
return ::GetDlgItemText(m_hWnd, nID, lpStr, nMaxCount);
}
+
+ HWND GetDlgItem(int nID) const
+ {
+ ATLASSERT(::IsWindow(m_hWnd));
+ return ::GetDlgItem(m_hWnd, nID);
+ }
+
BOOL GetDlgItemText(int nID, BSTR& bstrText) const
{
ATLASSERT(::IsWindow(m_hWnd));
@@ -847,12 +859,6 @@
return (int)::SetWindowLong(m_hWnd, GWL_ID, nID);
}
- HWND GetDlgItem(int nID) const
- {
- ATLASSERT(::IsWindow(m_hWnd));
- return ::GetDlgItem(m_hWnd, nID);
- }
-
// Alert Functions
BOOL FlashWindow(BOOL bInvert)
@@ -1319,7 +1325,9 @@
}
};
-_declspec(selectany) RECT CWindow::rcDefault = { CW_USEDEFAULT, CW_USEDEFAULT, 0, 0 };
+#ifdef _INIT_ATL_COMMON_VARS
+RECT CWindow::rcDefault = { CW_USEDEFAULT, CW_USEDEFAULT, 0, 0 };
+#endif
/////////////////////////////////////////////////////////////////////////////
// CAxWindow - client side for an ActiveX host window
@@ -1330,6 +1338,7 @@
class CAxWindowT : public TBase
{
public:
+ using TBase::m_hWnd;
// Constructors
CAxWindowT(HWND hWnd = NULL) : TBase(hWnd)
{ }
@@ -1439,11 +1448,13 @@
hr = spUnk->QueryInterface(iid, ppUnk);
return hr;
}
+#if 0
template <class Q>
HRESULT QueryHost(Q** ppUnk)
{
return QueryHost(__uuidof(Q), (void**)ppUnk);
}
+#endif
HRESULT QueryControl(REFIID iid, void** ppUnk)
{
ATLASSERT(ppUnk != NULL);
@@ -1459,11 +1470,13 @@
hr = spUnk->QueryInterface(iid, ppUnk);
return hr;
}
+#if 0
template <class Q>
HRESULT QueryControl(Q** ppUnk)
{
return QueryControl(__uuidof(Q), (void**)ppUnk);
}
+#endif
HRESULT SetExternalDispatch(IDispatch* pDisp)
{
HRESULT hr;
@@ -1750,7 +1763,7 @@
// search for an empty one
- for(i = 0; i < m_aChainEntry.GetSize(); i++)
+ for(int i = 0; i < m_aChainEntry.GetSize(); i++)
{
if(m_aChainEntry[i] == NULL)
{
@@ -1841,7 +1854,7 @@
/////////////////////////////////////////////////////////////////////////////
// CWinTraits - Defines various default values for a window
-template <DWORD t_dwStyle = 0, DWORD t_dwExStyle = 0>
+template <DWORD t_dwStyle, DWORD t_dwExStyle>
class CWinTraits
{
public:
@@ -1855,7 +1868,7 @@
}
};
-typedef CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0> CControlWinTraits;
+//typedef CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0> CControlWinTraits;
typedef CWinTraits<WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_APPWINDOW | WS_EX_WINDOWEDGE> CFrameWinTraits;
typedef CWinTraits<WS_OVERLAPPEDWINDOW | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_MDICHILD> CMDIChildWinTraits;
@@ -1882,6 +1895,7 @@
class ATL_NO_VTABLE CWindowImplRoot : public TBase, public CMessageMap
{
public:
+ using TBase::GetDlgItem;
CWndProcThunk m_thunk;
const MSG* m_pCurrentMsg;
@@ -1892,7 +1906,7 @@
~CWindowImplRoot()
{
#ifdef _DEBUG
- if(m_hWnd != NULL) // should be cleared in WindowProc
+ if(this->m_hWnd != NULL) // should be cleared in WindowProc
{
ATLTRACE2(atlTraceWindowing, 0, _T("ERROR - Object deleted before window was destroyed\n"));
ATLASSERT(FALSE);
@@ -2017,6 +2031,8 @@
class ATL_NO_VTABLE CWindowImplBaseT : public CWindowImplRoot< TBase >
{
public:
+ using CWindowImplRoot< TBase >::m_hWnd;
+ using CWindowImplRoot< TBase >::m_thunk;
WNDPROC m_pfnSuperWindowProc;
CWindowImplBaseT() : m_pfnSuperWindowProc(::DefWindowProc)
@@ -2049,7 +2065,7 @@
LRESULT DefWindowProc()
{
- const MSG* pMsg = m_pCurrentMsg;
+ const MSG* pMsg = this->m_pCurrentMsg;
LRESULT lRes = 0;
if (pMsg != NULL)
lRes = DefWindowProc(pMsg->message, pMsg->wParam, pMsg->lParam);
@@ -2219,6 +2235,7 @@
class ATL_NO_VTABLE CWindowImpl : public CWindowImplBaseT< TBase, TWinTraits >
{
public:
+ using CWindowImplBaseT< TBase, TWinTraits >::StartWindowProc;
DECLARE_WND_CLASS(NULL)
HWND Create(HWND hWndParent, RECT& rcPos, LPCTSTR szWindowName = NULL,
@@ -2226,8 +2243,8 @@
UINT nID = 0, LPVOID lpCreateParam = NULL)
{
if (T::GetWndClassInfo().m_lpszOrigName == NULL)
- T::GetWndClassInfo().m_lpszOrigName = GetWndClassName();
- ATOM atom = T::GetWndClassInfo().Register(&m_pfnSuperWindowProc);
+ T::GetWndClassInfo().m_lpszOrigName = this->GetWndClassName();
+ ATOM atom = T::GetWndClassInfo().Register(&(this->m_pfnSuperWindowProc));
dwStyle = T::GetWndStyle(dwStyle);
dwExStyle = T::GetWndExStyle(dwExStyle);
@@ -2244,6 +2261,7 @@
class ATL_NO_VTABLE CDialogImplBaseT : public CWindowImplRoot< TBase >
{
public:
+ using CWindowImplRoot< TBase >::m_hWnd;
virtual DLGPROC GetDialogProc()
{
return DialogProc;
@@ -2344,6 +2362,9 @@
class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT< TBase >
{
public:
+ using CDialogImplBaseT< TBase >::m_hWnd;
+ using CDialogImplBaseT< TBase >::m_thunk;
+ typedef CDialogImplBaseT< TBase > CDialogImplBase_Class;
#ifdef _DEBUG
bool m_bModal;
CDialogImpl() : m_bModal(false) { }
@@ -2422,6 +2443,8 @@
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT< TBase >
{
public:
+ using CDialogImplBaseT< TBase >::m_hWnd;
+ using CDialogImplBaseT< TBase >::m_thunk;
#ifdef _DEBUG
bool m_bModal;
CAxDialogImpl() : m_bModal(false) { }
@@ -2515,6 +2538,8 @@
class CContainedWindowT : public TBase
{
public:
+ using TBase::m_hWnd;
+ using TBase::GetWndClassName;
CWndProcThunk m_thunk;
LPCTSTR m_lpszClassName;
WNDPROC m_pfnSuperWindowProc;
@@ -2536,7 +2561,7 @@
{ }
CContainedWindowT(CMessageMap* pObject, DWORD dwMsgMapID = 0)
- : m_lpszClassName(TBase::GetWndClassName()),
+ : m_lpszClassName(GetWndClassName()),
m_pfnSuperWindowProc(::DefWindowProc),
m_pObject(pObject), m_dwMsgMapID(dwMsgMapID),
m_pCurrentMsg(NULL)
@@ -2666,7 +2691,7 @@
LPCTSTR szWindowName = NULL, DWORD dwStyle = 0, DWORD dwExStyle = 0,
UINT nID = 0, LPVOID lpCreateParam = NULL)
{
- m_lpszClassName = TBase::GetWndClassName();
+ m_lpszClassName = GetWndClassName();
m_pfnSuperWindowProc = ::DefWindowProc;
m_pObject = pObject;
m_dwMsgMapID = dwMsgMapID;
@@ -2959,8 +2984,11 @@
{
::EnterCriticalSection(&pM->m_csWindowCreate);
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, &pM->m_csWindowCreate, EXCEPTION_CONTINUE_SEARCH, NULL, atlfinalleavecriticalsection);
if(p->m_atom == 0)
{
HINSTANCE hInst = pM->m_hInst;
@@ -2979,7 +3007,7 @@
if(!::GetClassInfoExA(_Module.GetModuleInstance(), p->m_lpszOrigName, &wc))
{
fFail = TRUE;
- __leave;
+ __builtin_longjmp(_sejmpbuf, 1);
}
}
memcpy(&p->m_wc, &wc, sizeof(WNDCLASSEX));
@@ -3011,10 +3039,7 @@
p->m_atom = ::RegisterClassExA(&p->m_wc);
}
}
- __finally
- {
- ::LeaveCriticalSection(&pM->m_csWindowCreate);
- }
+ _sehandler.Reset();
}
if (fFail)
@@ -3038,8 +3063,11 @@
if (p->m_atom == 0)
{
::EnterCriticalSection(&pM->m_csWindowCreate);
- __try
+ jmp_buf _sejmpbuf;
+ __SEHandler _sehandler;
+ if (__builtin_setjmp(_sejmpbuf) == 0)
{
+ _sehandler.Set(_sejmpbuf, &pM->m_csWindowCreate, EXCEPTION_CONTINUE_SEARCH, NULL, atlfinalleavecriticalsection);
if(p->m_atom == 0)
{
HINSTANCE hInst = pM->m_hInst;
@@ -3058,7 +3086,7 @@
if(!::GetClassInfoExW(_Module.GetModuleInstance(), p->m_lpszOrigName, &wc))
{
fFail = TRUE;
- __leave;
+ __builtin_longjmp(_sejmpbuf, -1);
}
}
memcpy(&p->m_wc, &wc, sizeof(WNDCLASSEX));
@@ -3090,10 +3118,7 @@
p->m_atom = ::RegisterClassExW(&p->m_wc);
}
}
- __finally
- {
- ::LeaveCriticalSection(&pM->m_csWindowCreate);
- }
+ _sehandler.Reset();
}
if (fFail)
--- include/atl/statreg.h.orig 2005-04-14 17:54:34.000000000 +0900
+++ include/atl/statreg.h 2006-09-18 20:05:01.468750000 +0900
@@ -573,15 +573,16 @@
return hRes;
}
-__declspec(selectany) LPCTSTR CRegParser::rgszNeverDelete[] = //Component Catagories
+#ifdef _INIT_ATL_COMMON_VARS
+LPCTSTR CRegParser::rgszNeverDelete[] = //Component Catagories
{
_T("CLSID"), _T("TYPELIB")
};
-__declspec(selectany) const int CRegParser::cbNeverDelete = sizeof(rgszNeverDelete) / sizeof(LPCTSTR*);
-__declspec(selectany) const int CRegParser::MAX_VALUE=4096;
-__declspec(selectany) const int CRegParser::MAX_TYPE=MAX_VALUE;
-
+const int CRegParser::cbNeverDelete = sizeof(rgszNeverDelete) / sizeof(LPCTSTR*);
+const int CRegParser::MAX_VALUE=4096;
+const int CRegParser::MAX_TYPE=MAX_VALUE;
+#endif
inline BOOL CRegParser::VTFromRegType(LPCTSTR szValueType, VARTYPE& vt)
{
--- icnlude/dxtrans.h.orig 2004-09-28 00:18:32.000000000 +0900
+++ include/dxtrans.h 2007-01-02 22:08:41.640625000 +0900
@@ -1,3 +1,6 @@
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
#pragma warning( disable: 4049 ) /* more than 64k source lines */