summaryrefslogtreecommitdiff
path: root/solenv/inc
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2013-04-16 10:10:57 +0200
committerDavid Tardon <dtardon@redhat.com>2013-04-16 18:25:18 +0000
commitbe421269f95446307d1168e17e1fe9ee7d9a0a66 (patch)
tree491fa90929828589d390e994b3e9f841672d22ea /solenv/inc
parentbaffab9a4ffca9a4940a3310937d6e858e66cc1f (diff)
move headers from solenv/inc/ to include/
Change-Id: Ieb6cba645b3535f7d683d2aefa5599d04d9994f3 Reviewed-on: https://gerrit.libreoffice.org/3403 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'solenv/inc')
-rw-r--r--solenv/inc/postmac.h41
-rw-r--r--solenv/inc/postwin.h252
-rw-r--r--solenv/inc/premac.h50
-rw-r--r--solenv/inc/prewin.h77
-rw-r--r--solenv/inc/shlinfo.rc72
-rw-r--r--solenv/inc/version.hrc51
-rw-r--r--solenv/inc/win32/jni_md.h42
-rw-r--r--solenv/inc/wntgcci/sehandler.hxx128
8 files changed, 0 insertions, 713 deletions
diff --git a/solenv/inc/postmac.h b/solenv/inc/postmac.h
deleted file mode 100644
index f157e678262a..000000000000
--- a/solenv/inc/postmac.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#undef Button
-#undef Byte
-#undef Control
-#undef Cursor
-#undef DirInfo
-#undef FontInfo
-#undef LSize
-#undef Line
-#undef MemoryBlock
-#undef ModalDialog
-#undef Palette
-#undef Pattern
-#undef Point
-#undef Polygon
-#undef Ptr
-#undef Region
-#undef SetCursor
-#undef Size
-#undef StringPtr
-#undef TimeValue
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/postwin.h b/solenv/inc/postwin.h
deleted file mode 100644
index 1ec09435b5cb..000000000000
--- a/solenv/inc/postwin.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* nicht geschuetz, muss als gegenstueck zu prewin.h includet werden */
-
-#ifdef WNT
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#undef Region
-#undef PolyPolygon
-#undef Polygon
-#undef Rectangle
-#undef DELETE
-
-#undef Folder
-#undef GradientStyle_RECT
-
-/* Hilfe-Ids umbenennen */
-#define WIN_HELP_INDEX 0x0003
-#define WIN_HELP_HELPONHELP 0x0004
-#undef HELP_INDEX
-#undef HELP_HELPONHELP
-
-#define WIN_MOUSE_MOVED 0x0001
-#undef MOUSE_MOVED
-
-#define WIN_WB_LEFT 0
-#define WIN_WB_RIGHT 1
-#undef WB_LEFT
-#undef WB_RIGHT
-
-#ifdef GetObject
-#undef GetObject
-#ifdef UNICODE
-#define WIN_GetObject GetObjectW
-#else
-#define WIN_GetObject GetObjectA
-#endif
-#else
-#define WIN_GetObject GetObject
-#endif
-
-#ifdef SetPrinter
-#undef SetPrinter
-#ifdef UNICODE
-#define WIN_SetPrinter SetPrinterW
-#else
-#define WIN_SetPrinter SetPrinterA
-#endif
-#else
-#define WIN_SetPrinter SetPrinter
-#endif
-
-#ifdef GetPrinter
-#undef GetPrinter
-#ifdef UNICODE
-#define WIN_GetPrinter GetPrinterW
-#else
-#define WIN_GetPrinter GetPrinterA
-#endif
-#else
-#define WIN_GetPrinter GetPrinter
-#endif
-
-#ifdef DrawText
-#undef DrawText
-#ifdef UNICODE
-#define WIN_DrawText DrawTextW
-#else
-#define WIN_DrawText DrawTextA
-#endif
-#else
-#define WIN_DrawText DrawText
-#endif
-
-#ifdef mciSetCommand
-#undef mciSetCommand
-#ifdef UNICODE
-#define WIN_mciSetCommand mciSetCommandW
-#else
-#define WIN_mciSetCommand mciSetCommandA
-#endif
-#else
-#define mciSetCommand mciSetCommand
-#endif
-
-#ifdef SetPort
-#undef SetPort
-#ifdef UNICODE
-#define WIN_SetPort SetPortW
-#else
-#define WIN_SetPort SetPortA
-#endif
-#else
-#define WIN_SetPort SetPort
-#endif
-
-#ifdef CopyFile
-#undef CopyFile
-#ifdef UNICODE
-#define WIN_CopyFile CopyFileW
-#else
-#define WIN_CopyFile CopyFileA
-#endif
-#else
-#define WIN_CopyFile CopyFile
-#endif
-
-
-#ifdef GetUserName
-#undef GetUserName
-#ifdef UNICODE
-#define WIN_GetUserName GetUserNameW
-#else
-#define WIN_GetUserName GetUserNameA
-#endif
-#else
-#define WIN_GetUserName GetUserName
-#endif
-
-#ifdef GetClassName
-#undef GetClassName
-#ifdef UNICODE
-#define WIN_GetClassName GetClassNameW
-#else
-#define WIN_GetClassName GetClassNameA
-#endif
-#else
-#define WIN_GetClassName GetClassName
-#endif
-
-#ifdef GetCharWidth
-#undef GetCharWidth
-#ifdef UNICODE
-#define WIN_GetCharWidth GetCharWidthW
-#else
-#define WIN_GetCharWidth GetCharWidthA
-#endif
-#else
-#define WIN_GetCharWidth GetCharWidth
-#endif
-
-#ifdef GetMetaFile
-#undef GetMetaFile
-#ifdef UNICODE
-#define WIN_GetMetaFile GetMetaFileW
-#else
-#define WIN_GetMetaFile GetMetaFileA
-#endif
-#else
-#define WIN_GetMetaFile GetMetaFile
-#endif
-
-#ifdef GetNumberFormat
-#undef GetNumberFormat
-#ifdef UNICODE
-#define WIN_GetNumberFormat GetNumberFormatW
-#else
-#define WIN_GetNumberFormat GetNumberFormatA
-#endif
-#else
-#define WIN_GetNumberFormat GetNumberFormat
-#endif
-
-#ifdef GetGlyphOutline
-#undef GetGlyphOutline
-#ifdef UNICODE
-#define WIN_GetGlyphOutline GetGlyphOutlineW
-#else
-#define WIN_GetGlyphOutline GetGlyphOutlineA
-#endif
-#else
-#define WIN_GetGlyphOutline GetGlyphOutline
-#endif
-
-#ifdef GetKerningPairs
-#undef GetKerningPairs
-#ifdef UNICODE
-#define WIN_GetKerningPairs GetKerningPairsW
-#else
-#define WIN_GetKerningPairs GetKerningPairsA
-#endif
-#else
-#define WIN_GetKerningPairs GetKerningPairs
-#endif
-
-#ifdef FindWindow
-#undef FindWindow
-#ifdef UNICODE
-#define WIN_FindWindow FindWindowW
-#else
-#define WIN_FindWindow FindWindowA
-#endif
-#else
-#define WIN_FindWindow FindWindow
-#endif
-
-// keine Yield-Definition
-#undef Yield
-
-/* new StretchBlt() Modes (simpler names) */
-#ifndef STRETCH_ANDSCANS
-#define STRETCH_ANDSCANS 1
-#endif
-#ifndef STRETCH_ORSCANS
-#define STRETCH_ORSCANS 2
-#endif
-#ifndef STRETCH_DELETESCANS
-#define STRETCH_DELETESCANS 3
-#endif
-
-#ifdef WNT
-extern "C"
-{
-BOOL WINAPI WIN_Rectangle( HDC hDC, int X1, int Y1, int X2, int Y2 );
-BOOL WINAPI WIN_Polygon( HDC hDC, CONST POINT * ppt, int ncnt );
-BOOL WINAPI WIN_PolyPolygon( HDC hDC, CONST POINT * ppt, LPINT npcnt, int ncnt );
-}
-#endif
-
-// svwin.h nicht mehr includen
-#define _SVWIN_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/premac.h b/solenv/inc/premac.h
deleted file mode 100644
index f6e37475795f..000000000000
--- a/solenv/inc/premac.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define Button MacOSButton
-#define Byte MacOSByte
-#define Control MacOSControl
-#define Cursor MacOSCursor
-#define DirInfo MacOSDirInfo
-#define FontInfo MacOSFontInfo
-#define LSize MacOSLSize
-#define Line MacOSLine
-#define MemoryBlock MacOSMemoryBlock
-#define ModalDialog MacOSModalDialog
-#define Palette MacOSPalette
-#define Pattern MacOSPattern
-#define Point MacOSPoint
-#define Polygon MacOSPolygon
-#define Ptr MacOSPtr
-#define Region MacOSRegion
-#define SetCursor MacOSSetCursor
-#define Size MacOSSize
-#define StringPtr MacOSStringPtr
-#define TimeValue MacOSTimeValue
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/prewin.h b/solenv/inc/prewin.h
deleted file mode 100644
index 837dfa093872..000000000000
--- a/solenv/inc/prewin.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/* nicht geschuetzt, darf nur einmal includet werden */
-
-#if defined WNT
-
-#define Rectangle BLA_Rectangle
-#define Polygon BLA_Polygon
-#define PolyPolygon BLA_PolyPolygon
-#define Region WIN_Region
-#define Folder WIN_Folder
-#define GradientStyle_RECT WIN_GradientStyle_RECT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined STRICT
-#define STRICT
-#endif
-#ifdef _MSC_VER
-#pragma warning(push, 1)
-#pragma warning (disable: 4005)
-#endif
-#include <windows.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <shellapi.h>
-#include <commdlg.h>
-#include <dlgs.h>
-#ifdef USE_TOOLHELP
-#include <tlhelp32.h>
-#endif
-#ifdef USE_IMAGEHLP
-#include <imagehlp.h>
-#endif
-#ifdef INCLUDE_MMSYSTEM
-#include <mmsystem.h>
-#endif
-#ifdef _MSC_VER
-#pragma warning(push, 1)
-#endif
-#include <commctrl.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/shlinfo.rc b/solenv/inc/shlinfo.rc
deleted file mode 100644
index 2176bbf9937d..000000000000
--- a/solenv/inc/shlinfo.rc
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <windows.h>
-#include "version.hrc"
-
-// -----------------------------------------------------------------------
-// version information
-// -----------------------------------------------------------------------
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION VERSION, SUBVERSION, MICROVERSION, VERVARIANT
- PRODUCTVERSION VERSION, SUBVERSION, MICROVERSION, VERVARIANT
- FILEFLAGSMASK 0x3F
- FILEFLAGS
-#if defined(DEBUG)
- VS_FF_DEBUG |
-#endif
-#ifdef VER_PREL
- VS_FF_PRERELEASE |
-#endif
- 0
- FILEOS VOS_NT_WINDOWS32
- FILETYPE VFT_APP
- {
- BLOCK "StringFileInfo"
- {
- BLOCK "040904E4"
- {
- // International StringTable
- VALUE "CompanyName", PPS(RES_APP_VENDOR) "\0"
- VALUE "ProductName", "LibreOffice\0"
- VALUE "ProductVersion", PPS(VER_LEVEL) "\0"
- VALUE "FileVersion", PPS(VER_LEVEL) "\0"
- VALUE "OriginalFilename", PPS(ORG_NAME) "\0"
- VALUE "InternalName", PPS(INTERNAL_NAME) "\0"
- VALUE "LegalCopyright", S_CRIGHT " LibreOffice contributors and/or their affiliates. All rights reserved.\0"
- ADDITIONAL_VERINFO1
- ADDITIONAL_VERINFO2
- ADDITIONAL_VERINFO3
- }
- }
-
- BLOCK "VarFileInfo"
- {
- VALUE "Translation", 0x0409, 1252
- }
- }
diff --git a/solenv/inc/version.hrc b/solenv/inc/version.hrc
deleted file mode 100644
index 305dc47afdc0..000000000000
--- a/solenv/inc/version.hrc
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- *************************************************************************/
-
-#include <config_version.h>
-
-#define VERSION LIBO_VERSION_MAJOR
-#define SUBVERSION LIBO_VERSION_MINOR
-#define MICROVERSION LIBO_VERSION_MICRO
-#define VER_YEARRANGE 2000-LIBO_THIS_YEAR
-
-#include <winver.h>
-
-#ifndef PPSX
-#define PPSX(s) #s
-#endif
-#ifndef PPS
-#define PPS(s) PPSX(s)
-#endif
-
-#define VER_LEVEL VERSION.SUBVERSION.MICROVERSION.VERVARIANT
-
-#define VERC(a) Copyright \251 a by
-
-#define S_CRIGHT PPS(VERC(VER_YEARRANGE))
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/win32/jni_md.h b/solenv/inc/win32/jni_md.h
deleted file mode 100644
index b7aab253b350..000000000000
--- a/solenv/inc/win32/jni_md.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- */
-
-/* Fake jni_md.h for use when cross-compiling to Windows */
-
-#ifndef JNI_MD_H_INCLUDED
-#define JNI_MD_H_INCLUDED
-
-#define JNIEXPORT __declspec (dllexport)
-#define JNIIMPORT __declspec (dllimport)
-#define JNICALL __stdcall
-
-typedef long jint;
-typedef __int64 jlong;
-typedef char jbyte;
-
-#endif /* JNI_MD_H_INCLUDED */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/solenv/inc/wntgcci/sehandler.hxx b/solenv/inc/wntgcci/sehandler.hxx
deleted file mode 100644
index 2fabe486a452..000000000000
--- a/solenv/inc/wntgcci/sehandler.hxx
+++ /dev/null
@@ -1,128 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-
-// Provenance of this code unclear. From crosswin32-dtrans-mingw.diff,
-// but from where it got there, I don't know.
-
-
-#ifndef _SEHANDLER_HXX
-#define _SEHANDLER_HXX
-
-#ifndef __MINGW32__
-#error This file should be included only in a MinGW compilation
-#endif
-
-#include <windows.h>
-#include <setjmp.h>
-
-#ifndef EH_UNWINDING
-// See _EH_UNWINDING in MSVS9/VC/crt/src/except.inc
-#define EH_UNWINDING 2
-#endif
-
-namespace {
-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;
-};
-
-} // namespace {
-
-#endif // _SEHANDLER_HXX