windows-nt/Source/XPSP1/NT/com/ole32/ih/perfmnce.hxx
2020-09-26 16:20:57 +08:00

120 lines
2.9 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: perfmnce.hxx
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 3-06-95 JohannP (Johann Posch) Created
//
//----------------------------------------------------------------------------
#ifdef _PERF_BUILD_
#ifndef _PERFORMANCE_DEFINED_
#define _PERFORMANCE_DEFINED_
typedef struct perfdata
{
WORD wPos;
char szName[32];
LARGE_INTEGER liStart;
LARGE_INTEGER liEnd;
} PerfData;
typedef struct perflist
{
UINT cElements;
PerfData rgPerfData[32];
} PerfRg, *PPerfRg;
extern PerfRg perfrg;
typedef enum
{
DebugTerminal = 1,
Consol = 2,
OleStream,
SzStr,
} PrintDestination;
#undef INTERFACE
#define INTERFACE IPerformance
DECLARE_INTERFACE_(IPerformance, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IPerformance methods ***
STDMETHOD (Init) (THIS_ ) PURE;
STDMETHOD (Print) (THIS_ DWORD PrntDest) PURE;
STDMETHOD (Reset) (THIS_ ) PURE;
};
typedef IPerformance FAR* LPPerformance, *PPerformance;
#define _Perf_LoadLibraryOle 0
#define _Perf_OleInitialize 1
#define _Perf_CoInitialize 2
#define _Perf_ChannelProcessInit 3
#define _Perf_ChannelThreadInit 4
#define _Perf_CreateFileMap 5
#define _Perf_CreateFileMapConvert 6
#define _Perf_CheckAndStartScm 7
#define _Perf_EndScm 8
#define _Perf_ISLClassCacheList 9
#define _Perf_ISLCreateAllocator 10
#define _Perf_ISLInProcList 11
#define _Perf_ISLLocSrvList 12
#define _Perf_ISLScmRot 13
#define _Perf_InitClassCache 14
#define _Perf_InitRot 15
#define _Perf_InitSharedLists 16
#define _Perf_MDFDllMain 17
#define _Perf_ServiceListen 18
#define _Perf_ShrdTbl 19
#define _Perf_StartScm 20
#define _Perf_StartScmX1 21
#define _Perf_StartScmX2 22
#define _Perf_StartScmX3 23
#define _Perf_ThreadInit 24
#define _Perf_CoUnitialzie 25
#define _Perf_DllMain 26
#define _Perf_RpcService 27
#define _Perf_RpcListen 28
#define _Perf_RpcReqProtseq 29
#define _Perf_ChannelControl 30
#define _Perf_27 31
#define StartPerfCounter(x) \
QueryPerformanceCounter(&perfrg.rgPerfData[_Perf_##x].liStart);
#define EndPerfCounter(x) \
QueryPerformanceCounter(&perfrg.rgPerfData[_Perf_##x].liEnd);
STDAPI CoGetPerformance(PPerformance *ppPerformance);
#endif // _PERFORMANCE_DEFINED_
#else // !_PERF_BUILD_
#define StartPerfCounter(x)
#define EndPerfCounter(x)
#define CoGetPerformance(x )
#endif // !_PERF_BUILD_