File:  [WindowsNT SDKs] / mstools / mfc / src / olemisc.cpp
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:21:01 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntsdk-oct-1992, ntsdk-jun-1992, ntsdk-jul-1993, HEAD
Microsoft Windows NT Build 297 06-28-1992

// This is a part of the Microsoft Foundation Classes C++ library. 
// Copyright (C) 1992 Microsoft Corporation 
// All rights reserved. 
//  
// This source code is only intended as a supplement to the 
// Microsoft Foundation Classes Reference and Microsoft 
// QuickHelp documentation provided with the library. 
// See these sources for detailed information regarding the 
// Microsoft Foundation Classes product. 


#include "afxole.h"
#pragma hdrstop

#include <limits.h>

#ifdef AFX_OLE_SEG
#pragma code_seg(AFX_OLE_SEG)
#endif

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Exceptions for OLE Support

#ifdef _DEBUG
// character strings to use for dumping COleException

static char BASED_CODE szOK[] = "OLE_OK";
static char BASED_CODE szWAIT_FOR_RELEASE[] = "OLE_WAIT_FOR_RELEASE";
static char BASED_CODE szBUSY[] = "OLE_BUSY";
static char BASED_CODE szErrPROTECT_ONLY[] = "OLE_ERROR_PROTECT_ONLY";
static char BASED_CODE szErrMEMORY[] = "OLE_ERROR_MEMORY";
static char BASED_CODE szErrSTREAM[] = "OLE_ERROR_STREAM";
static char BASED_CODE szErrSTATIC[] = "OLE_ERROR_STATIC";
static char BASED_CODE szErrBLANK[] = "OLE_ERROR_BLANK";
static char BASED_CODE szErrDRAW[] = "OLE_ERROR_DRAW";
static char BASED_CODE szErrMETAFILE[] = "OLE_ERROR_METAFILE";
static char BASED_CODE szErrABORT[] = "OLE_ERROR_ABORT";
static char BASED_CODE szErrCLIPBOARD[] = "OLE_ERROR_CLIPBOARD";
static char BASED_CODE szErrFORMAT[] = "OLE_ERROR_FORMAT";
static char BASED_CODE szErrOBJECT[] = "OLE_ERROR_OBJECT";
static char BASED_CODE szErrOPTION[] = "OLE_ERROR_OPTION";
static char BASED_CODE szErrPROTOCOL[] = "OLE_ERROR_PROTOCOL";
static char BASED_CODE szErrADDRESS[] = "OLE_ERROR_ADDRESS";
static char BASED_CODE szErrNOT_EQUAL[] = "OLE_ERROR_NOT_EQUAL";
static char BASED_CODE szErrHANDLE[] = "OLE_ERROR_HANDLE";
static char BASED_CODE szErrGENERIC[] = "OLE_ERROR_GENERIC";
static char BASED_CODE szErrCLASS[] = "OLE_ERROR_CLASS";
static char BASED_CODE szErrSYNTAX[] = "OLE_ERROR_SYNTAX";
static char BASED_CODE szErrDATATYPE[] = "OLE_ERROR_DATATYPE";
static char BASED_CODE szErrPALETTE[] = "OLE_ERROR_PALETTE";
static char BASED_CODE szErrNOT_LINK[] = "OLE_ERROR_NOT_LINK";
static char BASED_CODE szErrNOT_EMPTY[] = "OLE_ERROR_NOT_EMPTY";
static char BASED_CODE szErrSIZE[] = "OLE_ERROR_SIZE";
static char BASED_CODE szErrDRIVE[] = "OLE_ERROR_DRIVE";
static char BASED_CODE szErrNETWORK[] = "OLE_ERROR_NETWORK";
static char BASED_CODE szErrNAME[] = "OLE_ERROR_NAME";
static char BASED_CODE szErrTEMPLATE[] = "OLE_ERROR_TEMPLATE";
static char BASED_CODE szErrNEW[] = "OLE_ERROR_NEW";
static char BASED_CODE szErrEDIT[] = "OLE_ERROR_EDIT";
static char BASED_CODE szErrOPEN[] = "OLE_ERROR_OPEN";
static char BASED_CODE szErrNOT_OPEN[] = "OLE_ERROR_NOT_OPEN";
static char BASED_CODE szErrLAUNCH[] = "OLE_ERROR_LAUNCH";
static char BASED_CODE szErrCOMM[] = "OLE_ERROR_COMM";
static char BASED_CODE szErrTERMINATE[] = "OLE_ERROR_TERMINATE";
static char BASED_CODE szErrCOMMAND[] = "OLE_ERROR_COMMAND";
static char BASED_CODE szErrSHOW[] = "OLE_ERROR_SHOW";
static char BASED_CODE szErrDOVERB[] = "OLE_ERROR_DOVERB";
static char BASED_CODE szErrADVISE_NATIVE[] = "OLE_ERROR_ADVISE_NATIVE";
static char BASED_CODE szErrADVISE_PICT[] = "OLE_ERROR_ADVISE_PICT";
static char BASED_CODE szErrADVISE_RENAME[] = "OLE_ERROR_ADVISE_RENAME";
static char BASED_CODE szErrPOKE_NATIVE[] = "OLE_ERROR_POKE_NATIVE";
static char BASED_CODE szErrREQUEST_NATIVE[] = "OLE_ERROR_REQUEST_NATIVE";
static char BASED_CODE szErrREQUEST_PICT[] = "OLE_ERROR_REQUEST_PICT";
static char BASED_CODE szErrSERVER_BLOCKED[] = "OLE_ERROR_SERVER_BLOCKED";
static char BASED_CODE szErrREGISTRATION[] = "OLE_ERROR_REGISTRATION";
static char BASED_CODE szErrALREADY_REGISTERED[] = "OLE_ERROR_ALREADY_REGISTERED";
static char BASED_CODE szErrTASK[] = "OLE_ERROR_TASK";
static char BASED_CODE szErrOUTOFDATE[] = "OLE_ERROR_OUTOFDATE";
static char BASED_CODE szErrCANT_UPDATE_CLIENT[] = "OLE_ERROR_CANT_UPDATE_CLIENT";
static char BASED_CODE szErrUPDATE[] = "OLE_ERROR_UPDATE";

static char FAR* BASED_CODE errorStrings[] =
{
	szOK,
	szWAIT_FOR_RELEASE,
	szBUSY,
	szErrPROTECT_ONLY,
	szErrMEMORY,
	szErrSTREAM,
	szErrSTATIC,
	szErrBLANK,
	szErrDRAW,
	szErrMETAFILE,
	szErrABORT,
	szErrCLIPBOARD,
	szErrFORMAT,
	szErrOBJECT,
	szErrOPTION,
	szErrPROTOCOL,
	szErrADDRESS,
	szErrNOT_EQUAL,
	szErrHANDLE,
	szErrGENERIC,
	szErrCLASS,
	szErrSYNTAX,
	szErrDATATYPE,
	szErrPALETTE,
	szErrNOT_LINK,
	szErrNOT_EMPTY,
	szErrSIZE,
	szErrDRIVE,
	szErrNETWORK,
	szErrNAME,
	szErrTEMPLATE,
	szErrNEW,
	szErrEDIT,
	szErrOPEN,
	szErrNOT_OPEN,
	szErrLAUNCH,
	szErrCOMM,
	szErrTERMINATE,
	szErrCOMMAND,
	szErrSHOW,
	szErrDOVERB,
	szErrADVISE_NATIVE,
	szErrADVISE_PICT,
	szErrADVISE_RENAME,
	szErrPOKE_NATIVE,
	szErrREQUEST_NATIVE,
	szErrREQUEST_PICT,
	szErrSERVER_BLOCKED,
	szErrREGISTRATION,
	szErrALREADY_REGISTERED,
	szErrTASK,
	szErrOUTOFDATE,
	szErrCANT_UPDATE_CLIENT,
	szErrUPDATE,
};
#endif //_DEBUG


IMPLEMENT_DYNAMIC(COleException, CException)

COleException::COleException(OLESTATUS status)
{
	ASSERT(status != OLE_OK);
	m_status = status;
}

void AfxThrowOleException(OLESTATUS status)
{
#ifdef _DEBUG
	TRACE("Warning: Throwing OLE Exception (OLESTATUS = %d)\n", status);
	TRACE("\t[%Fs]\n", (LPCSTR)errorStrings[status]);
#endif
	THROW(new COleException(status));
}

/////////////////////////////////////////////////////////////////////////////
// Turn a caught exception into an OLE return code

OLESTATUS COleException::Process(CException* pAnyException)
{
	OLESTATUS status;

	if (pAnyException->IsKindOf(RUNTIME_CLASS(COleException)))
		status = ((COleException*)pAnyException)->m_status;
	else if (pAnyException->IsKindOf(RUNTIME_CLASS(CMemoryException)))
		status = OLE_ERROR_MEMORY;
	else
		status = OLE_ERROR_GENERIC;     // some other problem

	return status;
}

/////////////////////////////////////////////////////////////////////////////

unix.superglobalmegacorp.com

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