forked from qt-creator/qt-creator
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <stdio.h>
 | |
| #include <windows.h>
 | |
| #include <dbgeng.h>
 | |
| 
 | |
| #include "outputcallback.h"
 | |
| 
 | |
| WinDbgOutputCallback g_outputCallbacks;
 | |
| 
 | |
| STDMETHODIMP
 | |
| WinDbgOutputCallback::QueryInterface(
 | |
|     THIS_
 | |
|     IN REFIID InterfaceId,
 | |
|     OUT PVOID* Interface
 | |
|     )
 | |
| {
 | |
|     *Interface = NULL;
 | |
| 
 | |
|     if (IsEqualIID(InterfaceId, __uuidof(IUnknown)) ||
 | |
|         IsEqualIID(InterfaceId, __uuidof(IDebugOutputCallbacks)))
 | |
|     {
 | |
|         *Interface = (IDebugOutputCallbacks *)this;
 | |
|         AddRef();
 | |
|         return S_OK;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         return E_NOINTERFACE;
 | |
|     }
 | |
| }
 | |
| 
 | |
| STDMETHODIMP_(ULONG)
 | |
| WinDbgOutputCallback::AddRef(
 | |
|     THIS
 | |
|     )
 | |
| {
 | |
|     // This class is designed to be static so
 | |
|     // there's no true refcount.
 | |
|     return 1;
 | |
| }
 | |
| 
 | |
| STDMETHODIMP_(ULONG)
 | |
| WinDbgOutputCallback::Release(
 | |
|     THIS
 | |
|     )
 | |
| {
 | |
|     // This class is designed to be static so
 | |
|     // there's no true refcount.
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| STDMETHODIMP
 | |
| WinDbgOutputCallback::Output(
 | |
|     THIS_
 | |
|     IN ULONG Mask,
 | |
|     IN PCSTR Text
 | |
|     )
 | |
| {
 | |
|     UNREFERENCED_PARAMETER(Mask);
 | |
|     fputs(Text, stdout);
 | |
|     return S_OK;
 | |
| }
 |