1// Stdafx.h : include file for standard system include files,
2//  or project specific include files that are used frequently, but
3//      are changed infrequently
4//
5
6#if !defined(AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED_)
7#define AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED_
8
9#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
10
11#include <afxwin.h>	    // MFC core and standard components
12#include <afxdisp.h>
13
14#include <atlbase.h>
15//You may derive a class from CComModule and use it if you want to override
16//something, but do not change the name of _Module
17extern CComModule _Module;
18
19#include <atlcom.h>
20
21// Developer Studio Object Model
22#include <ObjModel\addauto.h>
23#include <ObjModel\appdefs.h>
24#include <ObjModel\appauto.h>
25#include <ObjModel\blddefs.h>
26#include <ObjModel\bldauto.h>
27#include <ObjModel\textdefs.h>
28#include <ObjModel\textauto.h>
29#include <ObjModel\dbgdefs.h>
30#include <ObjModel\dbgauto.h>
31
32/////////////////////////////////////////////////////////////////////////////
33// Debugging support
34
35// Use VERIFY_OK around all calls to the Developer Studio objects which
36//  you expect to return S_OK.
37// In DEBUG builds of your add-in, VERIFY_OK displays an ASSERT dialog box
38//  if the expression returns an HRESULT other than S_OK.  If the HRESULT
39//  is a success code, the ASSERT box will display that HRESULT.  If it
40//  is a failure code, the ASSERT box will display that HRESULT plus the
41//  error description string provided by the object which raised the error.
42// In RETAIL builds of your add-in, VERIFY_OK just evaluates the expression
43//  and ignores the returned HRESULT.
44
45#ifdef _DEBUG
46
47void GetLastErrorDescription (CComBSTR & bstr);	// Defined in VisVim.cpp
48#define VERIFY_OK(f) \
49	{ \
50		HRESULT hr = (f); \
51		if (hr != S_OK) \
52		{ \
53			if (FAILED(hr)) \
54			{ \
55				CComBSTR bstr; \
56				GetLastErrorDescription(bstr); \
57				_RPTF2(_CRT_ASSERT, "Object call returned %lx\n\n%S", hr, (BSTR) bstr); \
58			} \
59			else \
60				_RPTF1(_CRT_ASSERT, "Object call returned %lx", hr); \
61		} \
62	}
63
64#else //_DEBUG
65
66#define VERIFY_OK(f) (f);
67
68#endif //_DEBUG
69
70//{{AFX_INSERT_LOCATION}}
71// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
72
73#endif // !defined(AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED)
74