Annotation of truecrypt/common/exception.h, revision 1.1.1.4

1.1       root        1: /*
1.1.1.4 ! root        2:  Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved.
1.1       root        3: 
1.1.1.4 ! root        4:  Governed by the TrueCrypt License 2.8 the full text of which is contained in
        !             5:  the file License.txt included in TrueCrypt binary and source code distribution
        !             6:  packages.
1.1       root        7: */
                      8: 
                      9: #ifndef TC_HEADER_Common_Exception
                     10: #define TC_HEADER_Common_Exception
                     11: 
                     12: #include "Platform/PlatformBase.h"
                     13: #include "Dlgcode.h"
                     14: 
                     15: namespace TrueCrypt
                     16: {
                     17:        struct Exception
                     18:        {
                     19:                virtual void Show (HWND parent) const = 0;
                     20:        };
                     21: 
                     22:        struct SystemException : public Exception
                     23:        {
                     24:                SystemException () : ErrorCode (GetLastError()) { }
                     25: 
                     26:                void Show (HWND parent) const
                     27:                {
                     28:                        SetLastError (ErrorCode);
                     29:                        handleWin32Error (parent);
                     30:                }
                     31: 
                     32:                DWORD ErrorCode;
                     33:        };
                     34: 
                     35:        struct ErrorException : public Exception
                     36:        {
                     37:                ErrorException (char *langId) : ErrLangId (langId) { }
                     38:                ErrorException (const wstring &errMsg) : ErrMsg (errMsg) { }
                     39: 
                     40:                void Show (HWND parent) const
                     41:                {
                     42:                        if (ErrMsg.empty())
                     43:                                ::Error (ErrLangId);
                     44:                        else
                     45:                                ::ErrorDirect (ErrMsg.c_str());
                     46:                }
                     47: 
                     48:                char *ErrLangId;
                     49:                wstring ErrMsg;
                     50:        };
                     51: 
                     52:        struct ParameterIncorrect : public Exception
                     53:        {
                     54:                ParameterIncorrect (const char *srcPos) : SrcPos (srcPos) { }
                     55: 
                     56:                void Show (HWND parent) const
                     57:                {
                     58:                        string msgBody = "Parameter incorrect.\n\n\n(If you report a bug in connection with this, please include the following technical information in the bug report:\n" + string (SrcPos) + ")";
                     59:                        MessageBox (parent, msgBody.c_str(), "TrueCrypt", MB_ICONERROR | MB_SETFOREGROUND);
                     60:                }
                     61: 
                     62:                const char *SrcPos;
                     63:        };
                     64: 
                     65:        struct TimeOut : public Exception
                     66:        {
                     67:                TimeOut (const char *srcPos) { }
                     68:                void Show (HWND parent) const { ErrorDirect (L"Timeout"); }
                     69:        };
                     70: 
                     71:        struct UserAbort : public Exception
                     72:        {
                     73:                UserAbort (const char *srcPos) { }
                     74:                void Show (HWND parent) const { }
                     75:        };
                     76: }
                     77: 
                     78: #define throw_sys_if(condition) do { if (condition) throw SystemException(); } while (false)
                     79: 
                     80: 
                     81: #endif // TC_HEADER_Common_Exception

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.