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;
 | 
						|
}
 |