summaryrefslogtreecommitdiff
path: root/src/binder/inc/bindertypes.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binder/inc/bindertypes.hpp')
-rw-r--r--src/binder/inc/bindertypes.hpp132
1 files changed, 132 insertions, 0 deletions
diff --git a/src/binder/inc/bindertypes.hpp b/src/binder/inc/bindertypes.hpp
new file mode 100644
index 0000000000..7d7e822871
--- /dev/null
+++ b/src/binder/inc/bindertypes.hpp
@@ -0,0 +1,132 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+// ============================================================
+//
+// BinderTypes.hpp
+//
+
+
+//
+// Declares a bunch of binder classes, types and macros
+//
+// ============================================================
+
+#ifndef __BINDER_TYPES_HPP__
+#define __BINDER_TYPES_HPP__
+
+#include "clrtypes.h"
+#include "sstring.h"
+
+#include "fusionhelpers.hpp"
+
+extern void DECLSPEC_NORETURN ThrowOutOfMemory();
+
+#ifndef S_TRUE
+#define S_TRUE S_OK
+#endif
+
+class PEImage;
+class PEAssembly;
+
+namespace BINDER_SPACE
+{
+ class AssemblyVersion;
+ class AssemblyName;
+ class Assembly;
+
+ class GACEntry;
+ class GACVersionIterator;
+ class GAC;
+
+ class ContextEntry;
+ class ExecutionContext;
+ class InspectionContext;
+
+ class PropertyMap;
+ class ApplicationContext;
+
+ class BindResult;
+ class FailureCache;
+ class AssemblyBinder;
+
+#if defined(BINDER_DEBUG_LOG)
+ class DebugLog;
+#endif
+
+#if defined(FEATURE_VERSIONING_LOG)
+ class BindingLog;
+ class CDebugLog;
+#endif // FEATURE_VERSIONING_LOG
+
+ namespace Tests
+ {
+ HRESULT Run();
+ };
+};
+
+#define IF_FAIL_GO(expr) \
+ hr = (expr); \
+ if (FAILED(hr)) \
+ { \
+ goto Exit; \
+ }
+
+#define IF_FALSE_GO(expr) \
+ if (!(expr)) { \
+ hr = E_FAIL; \
+ goto Exit; \
+ }
+
+#define GO_WITH_HRESULT(hrValue) \
+ hr = hrValue; \
+ goto Exit;
+
+#define IF_WIN32_ERROR_GO(expr) \
+ if (!(expr)) \
+ { \
+ hr = HRESULT_FROM_GetLastError(); \
+ goto Exit; \
+ }
+
+#define NEW_CONSTR(Object, Constr) \
+ (Object) = new (nothrow) Constr;
+
+#define SAFE_NEW_CONSTR(Object, Constr) \
+ (Object) = new (nothrow) Constr; \
+ if ((Object) == NULL) \
+ { \
+ hr = E_OUTOFMEMORY; \
+ goto Exit; \
+ }
+
+#define SAFE_NEW(Object, Class) \
+ SAFE_NEW_CONSTR(Object, Class());
+
+#define SAFE_RELEASE(objectPtr) \
+ if ((objectPtr) != NULL) \
+ { \
+ (objectPtr)->Release(); \
+ (objectPtr) = NULL; \
+ }
+
+#define SAFE_DELETE(objectPtr) \
+ if ((objectPtr) != NULL) \
+ { \
+ delete (objectPtr); \
+ (objectPtr) = NULL; \
+ }
+
+#define SAFE_DELETE_ARRAY(objectPtr) \
+ if ((objectPtr) != NULL) \
+ { \
+ delete[] (objectPtr); \
+ (objectPtr) = NULL; \
+ }
+
+#define LENGTH_OF(x) \
+ (sizeof(x) / sizeof(x[0]))
+
+#include "debuglog.hpp"
+
+#endif