--- /dev/null
+/*////////////////////////////////////////////////////////////////////////////\r
+ * Project:\r
+ * Memory_and_Exception_Trace\r
+ *\r
+ * ///////////////////////////////////////////////////////////////////////////\r
+ * File:\r
+ * Stackwalker.h\r
+ *\r
+ * Remarks:\r
+ *\r
+ *\r
+ * Note:\r
+ *\r
+ *\r
+ * Author:\r
+ * Jochen Kalmbach\r
+ *\r
+ *////////////////////////////////////////////////////////////////////////////\r
+\r
+#ifndef __STACKWALKER_H__\r
+#define __STACKWALKER_H__\r
+\r
+// Only valid in the following environment: Intel platform, MS VC++ 5/6/7/7.1/8\r
+#ifndef _X86_\r
+#error Only INTEL envirnoments are supported!\r
+#endif\r
+\r
+// Only MS VC++ 5 to 7\r
+//#if (_MSC_VER < 1100) || (_MSC_VER > 1400)\r
+//#error Only MS VC++ 5/6/7/7.1/8 supported. Check if the '_CrtMemBlockHeader' has not changed with this compiler!\r
+//#endif\r
+\r
+typedef enum eAllocCheckOutput\r
+{\r
+ ACOutput_Simple,\r
+ ACOutput_Advanced,\r
+ ACOutput_XML\r
+};\r
+\r
+// Make extern "C", so it will also work with normal C-Programs\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+extern int InitAllocCheckWN(eAllocCheckOutput eOutput, LPCTSTR pszFilename, ULONG ulShowStackAtAlloc = 0);\r
+extern int InitAllocCheck(eAllocCheckOutput eOutput = ACOutput_Simple, BOOL bSetUnhandledExeptionFilter = TRUE, ULONG ulShowStackAtAlloc = 0); // will create the filename by itself\r
+\r
+extern ULONG DeInitAllocCheck();\r
+\r
+extern DWORD StackwalkFilter( EXCEPTION_POINTERS *ep, DWORD status, LPCTSTR pszLogFile);\r
+\r
+extern void OnlyInstallUnhandeldExceptionFilter(eAllocCheckOutput eOutput = ACOutput_Simple);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif // __STACKWALKER_H__\r