|
|
1.1 ! root 1: // This is a part of the Microsoft Foundation Classes C++ library. ! 2: // Copyright (C) 1992 Microsoft Corporation ! 3: // All rights reserved. ! 4: // ! 5: // This source code is only intended as a supplement to the ! 6: // Microsoft Foundation Classes Reference and Microsoft ! 7: // QuickHelp documentation provided with the library. ! 8: // See these sources for detailed information regarding the ! 9: // Microsoft Foundation Classes product. ! 10: ! 11: ! 12: #include "afxole.h" ! 13: #pragma hdrstop ! 14: ! 15: #include <limits.h> ! 16: ! 17: #ifdef AFX_OLE_SEG ! 18: #pragma code_seg(AFX_OLE_SEG) ! 19: #endif ! 20: ! 21: #ifdef _DEBUG ! 22: #undef THIS_FILE ! 23: static char BASED_CODE THIS_FILE[] = __FILE__; ! 24: #endif ! 25: ! 26: ///////////////////////////////////////////////////////////////////////////// ! 27: // Exceptions for OLE Support ! 28: ! 29: #ifdef _DEBUG ! 30: // character strings to use for dumping COleException ! 31: ! 32: static char BASED_CODE szOK[] = "OLE_OK"; ! 33: static char BASED_CODE szWAIT_FOR_RELEASE[] = "OLE_WAIT_FOR_RELEASE"; ! 34: static char BASED_CODE szBUSY[] = "OLE_BUSY"; ! 35: static char BASED_CODE szErrPROTECT_ONLY[] = "OLE_ERROR_PROTECT_ONLY"; ! 36: static char BASED_CODE szErrMEMORY[] = "OLE_ERROR_MEMORY"; ! 37: static char BASED_CODE szErrSTREAM[] = "OLE_ERROR_STREAM"; ! 38: static char BASED_CODE szErrSTATIC[] = "OLE_ERROR_STATIC"; ! 39: static char BASED_CODE szErrBLANK[] = "OLE_ERROR_BLANK"; ! 40: static char BASED_CODE szErrDRAW[] = "OLE_ERROR_DRAW"; ! 41: static char BASED_CODE szErrMETAFILE[] = "OLE_ERROR_METAFILE"; ! 42: static char BASED_CODE szErrABORT[] = "OLE_ERROR_ABORT"; ! 43: static char BASED_CODE szErrCLIPBOARD[] = "OLE_ERROR_CLIPBOARD"; ! 44: static char BASED_CODE szErrFORMAT[] = "OLE_ERROR_FORMAT"; ! 45: static char BASED_CODE szErrOBJECT[] = "OLE_ERROR_OBJECT"; ! 46: static char BASED_CODE szErrOPTION[] = "OLE_ERROR_OPTION"; ! 47: static char BASED_CODE szErrPROTOCOL[] = "OLE_ERROR_PROTOCOL"; ! 48: static char BASED_CODE szErrADDRESS[] = "OLE_ERROR_ADDRESS"; ! 49: static char BASED_CODE szErrNOT_EQUAL[] = "OLE_ERROR_NOT_EQUAL"; ! 50: static char BASED_CODE szErrHANDLE[] = "OLE_ERROR_HANDLE"; ! 51: static char BASED_CODE szErrGENERIC[] = "OLE_ERROR_GENERIC"; ! 52: static char BASED_CODE szErrCLASS[] = "OLE_ERROR_CLASS"; ! 53: static char BASED_CODE szErrSYNTAX[] = "OLE_ERROR_SYNTAX"; ! 54: static char BASED_CODE szErrDATATYPE[] = "OLE_ERROR_DATATYPE"; ! 55: static char BASED_CODE szErrPALETTE[] = "OLE_ERROR_PALETTE"; ! 56: static char BASED_CODE szErrNOT_LINK[] = "OLE_ERROR_NOT_LINK"; ! 57: static char BASED_CODE szErrNOT_EMPTY[] = "OLE_ERROR_NOT_EMPTY"; ! 58: static char BASED_CODE szErrSIZE[] = "OLE_ERROR_SIZE"; ! 59: static char BASED_CODE szErrDRIVE[] = "OLE_ERROR_DRIVE"; ! 60: static char BASED_CODE szErrNETWORK[] = "OLE_ERROR_NETWORK"; ! 61: static char BASED_CODE szErrNAME[] = "OLE_ERROR_NAME"; ! 62: static char BASED_CODE szErrTEMPLATE[] = "OLE_ERROR_TEMPLATE"; ! 63: static char BASED_CODE szErrNEW[] = "OLE_ERROR_NEW"; ! 64: static char BASED_CODE szErrEDIT[] = "OLE_ERROR_EDIT"; ! 65: static char BASED_CODE szErrOPEN[] = "OLE_ERROR_OPEN"; ! 66: static char BASED_CODE szErrNOT_OPEN[] = "OLE_ERROR_NOT_OPEN"; ! 67: static char BASED_CODE szErrLAUNCH[] = "OLE_ERROR_LAUNCH"; ! 68: static char BASED_CODE szErrCOMM[] = "OLE_ERROR_COMM"; ! 69: static char BASED_CODE szErrTERMINATE[] = "OLE_ERROR_TERMINATE"; ! 70: static char BASED_CODE szErrCOMMAND[] = "OLE_ERROR_COMMAND"; ! 71: static char BASED_CODE szErrSHOW[] = "OLE_ERROR_SHOW"; ! 72: static char BASED_CODE szErrDOVERB[] = "OLE_ERROR_DOVERB"; ! 73: static char BASED_CODE szErrADVISE_NATIVE[] = "OLE_ERROR_ADVISE_NATIVE"; ! 74: static char BASED_CODE szErrADVISE_PICT[] = "OLE_ERROR_ADVISE_PICT"; ! 75: static char BASED_CODE szErrADVISE_RENAME[] = "OLE_ERROR_ADVISE_RENAME"; ! 76: static char BASED_CODE szErrPOKE_NATIVE[] = "OLE_ERROR_POKE_NATIVE"; ! 77: static char BASED_CODE szErrREQUEST_NATIVE[] = "OLE_ERROR_REQUEST_NATIVE"; ! 78: static char BASED_CODE szErrREQUEST_PICT[] = "OLE_ERROR_REQUEST_PICT"; ! 79: static char BASED_CODE szErrSERVER_BLOCKED[] = "OLE_ERROR_SERVER_BLOCKED"; ! 80: static char BASED_CODE szErrREGISTRATION[] = "OLE_ERROR_REGISTRATION"; ! 81: static char BASED_CODE szErrALREADY_REGISTERED[] = "OLE_ERROR_ALREADY_REGISTERED"; ! 82: static char BASED_CODE szErrTASK[] = "OLE_ERROR_TASK"; ! 83: static char BASED_CODE szErrOUTOFDATE[] = "OLE_ERROR_OUTOFDATE"; ! 84: static char BASED_CODE szErrCANT_UPDATE_CLIENT[] = "OLE_ERROR_CANT_UPDATE_CLIENT"; ! 85: static char BASED_CODE szErrUPDATE[] = "OLE_ERROR_UPDATE"; ! 86: ! 87: static char FAR* BASED_CODE errorStrings[] = ! 88: { ! 89: szOK, ! 90: szWAIT_FOR_RELEASE, ! 91: szBUSY, ! 92: szErrPROTECT_ONLY, ! 93: szErrMEMORY, ! 94: szErrSTREAM, ! 95: szErrSTATIC, ! 96: szErrBLANK, ! 97: szErrDRAW, ! 98: szErrMETAFILE, ! 99: szErrABORT, ! 100: szErrCLIPBOARD, ! 101: szErrFORMAT, ! 102: szErrOBJECT, ! 103: szErrOPTION, ! 104: szErrPROTOCOL, ! 105: szErrADDRESS, ! 106: szErrNOT_EQUAL, ! 107: szErrHANDLE, ! 108: szErrGENERIC, ! 109: szErrCLASS, ! 110: szErrSYNTAX, ! 111: szErrDATATYPE, ! 112: szErrPALETTE, ! 113: szErrNOT_LINK, ! 114: szErrNOT_EMPTY, ! 115: szErrSIZE, ! 116: szErrDRIVE, ! 117: szErrNETWORK, ! 118: szErrNAME, ! 119: szErrTEMPLATE, ! 120: szErrNEW, ! 121: szErrEDIT, ! 122: szErrOPEN, ! 123: szErrNOT_OPEN, ! 124: szErrLAUNCH, ! 125: szErrCOMM, ! 126: szErrTERMINATE, ! 127: szErrCOMMAND, ! 128: szErrSHOW, ! 129: szErrDOVERB, ! 130: szErrADVISE_NATIVE, ! 131: szErrADVISE_PICT, ! 132: szErrADVISE_RENAME, ! 133: szErrPOKE_NATIVE, ! 134: szErrREQUEST_NATIVE, ! 135: szErrREQUEST_PICT, ! 136: szErrSERVER_BLOCKED, ! 137: szErrREGISTRATION, ! 138: szErrALREADY_REGISTERED, ! 139: szErrTASK, ! 140: szErrOUTOFDATE, ! 141: szErrCANT_UPDATE_CLIENT, ! 142: szErrUPDATE, ! 143: }; ! 144: #endif //_DEBUG ! 145: ! 146: ! 147: IMPLEMENT_DYNAMIC(COleException, CException) ! 148: ! 149: COleException::COleException(OLESTATUS status) ! 150: { ! 151: ASSERT(status != OLE_OK); ! 152: m_status = status; ! 153: } ! 154: ! 155: void AfxThrowOleException(OLESTATUS status) ! 156: { ! 157: #ifdef _DEBUG ! 158: TRACE("Warning: Throwing OLE Exception (OLESTATUS = %d)\n", status); ! 159: TRACE("\t[%Fs]\n", (LPCSTR)errorStrings[status]); ! 160: #endif ! 161: THROW(new COleException(status)); ! 162: } ! 163: ! 164: ///////////////////////////////////////////////////////////////////////////// ! 165: // Turn a caught exception into an OLE return code ! 166: ! 167: OLESTATUS COleException::Process(CException* pAnyException) ! 168: { ! 169: OLESTATUS status; ! 170: ! 171: if (pAnyException->IsKindOf(RUNTIME_CLASS(COleException))) ! 172: status = ((COleException*)pAnyException)->m_status; ! 173: else if (pAnyException->IsKindOf(RUNTIME_CLASS(CMemoryException))) ! 174: status = OLE_ERROR_MEMORY; ! 175: else ! 176: status = OLE_ERROR_GENERIC; // some other problem ! 177: ! 178: return status; ! 179: } ! 180: ! 181: /////////////////////////////////////////////////////////////////////////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.