perfservice.h

来自「Vc.Net入门与提高源码」· C头文件 代码 · 共 69 行

H
69
字号
// PerfService.h
//
// This is a part of the Active Template Library.
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
// This source code is only intended as a supplement to the
// Active Template Library Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Active Template Library product.


#pragma once

__interface ATL_NO_VTABLE __declspec(uuid("2DC4AE64-BCD6-401A-9212-3A7EAF536F89")) 
	IFibonacciPerfService : public IUnknown
{
	HRESULT  STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv);
	ULONG STDMETHODCALLTYPE AddRef();
	ULONG STDMETHODCALLTYPE Release();
	HRESULT GetFibonacciPerf(CFibonacciPerf** ppPerfMon);
};

CFibonacciPerf g_perf;

class CFibonacciPerfService :
	public CComObjectRootEx<CComMultiThreadModel>,
	public IFibonacciPerfService
{
public:
	BEGIN_COM_MAP(CFibonacciPerfService)
		COM_INTERFACE_ENTRY(IFibonacciPerfService)
	END_COM_MAP()

	CFibonacciPerfService()
	{
	}

	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		HRESULT hr;
		
		CComPtr<IDispatch> spPerfCache;
		hr = spPerfCache.CoCreateInstance(__uuidof(CPerfCache));
		if (FAILED(hr))
			return E_FAIL;

		hr = g_perf.Initialize();
		if (FAILED(hr))
			return E_FAIL;

		g_perf.SetPerfCache(spPerfCache);

		return S_OK;
	}
	
	void FinalRelease() 
	{
	}

	HRESULT GetFibonacciPerf(CFibonacciPerf** ppPerfMon)
	{
		*ppPerfMon = &g_perf;
		return S_OK;
	}
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?