summaryrefslogtreecommitdiff
path: root/src/ToolBox/PdbTypeMatch/callback.h
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2016-11-23 19:09:09 +0900
commit4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (patch)
tree98110734c91668dfdbb126fcc0e15ddbd93738ca /src/ToolBox/PdbTypeMatch/callback.h
parentfa45f57ed55137c75ac870356a1b8f76c84b229c (diff)
downloadcoreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.gz
coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.tar.bz2
coreclr-4b4aad7217d3292650e77eec2cf4c198ea9c3b4b.zip
Imported Upstream version 1.1.0upstream/1.1.0
Diffstat (limited to 'src/ToolBox/PdbTypeMatch/callback.h')
-rw-r--r--src/ToolBox/PdbTypeMatch/callback.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/ToolBox/PdbTypeMatch/callback.h b/src/ToolBox/PdbTypeMatch/callback.h
new file mode 100644
index 0000000000..34ea3d80c0
--- /dev/null
+++ b/src/ToolBox/PdbTypeMatch/callback.h
@@ -0,0 +1,96 @@
+// 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.
+
+#include "dia2.h"
+
+#pragma warning ( disable : 4100)
+
+class CCallback : public IDiaLoadCallback2{
+ int m_nRefCount;
+public:
+ CCallback() { m_nRefCount = 0; }
+
+ //IUnknown
+ ULONG STDMETHODCALLTYPE AddRef() {
+ m_nRefCount++;
+ return m_nRefCount;
+ }
+ ULONG STDMETHODCALLTYPE Release() {
+ ULONG newRefCount = --m_nRefCount;
+ if ( newRefCount == 0 )
+ delete this;
+ return newRefCount;
+ }
+ HRESULT STDMETHODCALLTYPE QueryInterface( REFIID rid, void **ppUnk ) {
+ if ( ppUnk == NULL ) {
+ return E_POINTER;
+ }
+ if (rid == __uuidof( IDiaLoadCallback2 ) )
+ *ppUnk = (IDiaLoadCallback2 *)this;
+ else if (rid == __uuidof( IDiaLoadCallback ) )
+ *ppUnk = (IDiaLoadCallback *)this;
+ else if (rid == __uuidof( IUnknown ) )
+ *ppUnk = (IUnknown *)this;
+ else
+ *ppUnk = NULL;
+ if ( *ppUnk != NULL ) {
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+ }
+
+ HRESULT STDMETHODCALLTYPE NotifyDebugDir(
+ BOOL fExecutable,
+ DWORD cbData,
+ BYTE data[]) // really a const struct _IMAGE_DEBUG_DIRECTORY *
+ {
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE NotifyOpenDBG(
+ LPCOLESTR dbgPath,
+ HRESULT resultCode)
+ {
+ // wprintf(L"opening %s...\n", dbgPath);
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE NotifyOpenPDB(
+ LPCOLESTR pdbPath,
+ HRESULT resultCode)
+ {
+ // wprintf(L"opening %s...\n", pdbPath);
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictRegistryAccess()
+ {
+ // return hr != S_OK to prevent querying the registry for symbol search paths
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess()
+ {
+ // return hr != S_OK to prevent accessing a symbol server
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictOriginalPathAccess()
+ {
+ // return hr != S_OK to prevent querying the registry for symbol search paths
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictReferencePathAccess()
+ {
+ // return hr != S_OK to prevent accessing a symbol server
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictDBGAccess()
+ {
+ return S_OK;
+ }
+ HRESULT STDMETHODCALLTYPE RestrictSystemRootAccess()
+ {
+ return S_OK;
+ }
+};
+
+#pragma warning ( default : 4100 )