Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
78 lines
2.2 KiB
C++
78 lines
2.2 KiB
C++
//==========================================================================;
|
|
//
|
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
|
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
|
|
// PURPOSE.
|
|
//
|
|
// Copyright (c) 1992 - 1998 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
//--------------------------------------------------------------------------;
|
|
// SYSCLOCK.CPP
|
|
// Implements a system clock based on IReferenceClock
|
|
|
|
#include <streams.h>
|
|
#include <limits.h>
|
|
|
|
|
|
#ifdef FILTER_DLL
|
|
|
|
/* List of class IDs and creator functions for the class factory. This
|
|
provides the link between the OLE entry point in the DLL and an object
|
|
being created. The class factory will call the static CreateInstance
|
|
function when it is asked to create a CLSID_SystemClock object */
|
|
|
|
CFactoryTemplate g_Templates[1] = {
|
|
{&CLSID_SystemClock, CSystemClock::CreateInstance}
|
|
};
|
|
|
|
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
|
|
#endif
|
|
|
|
/* This goes in the factory template table to create new instances */
|
|
CUnknown * WINAPI CSystemClock::CreateInstance(LPUNKNOWN pUnk,HRESULT *phr)
|
|
{
|
|
return new CSystemClock(NAME("System reference clock"),pUnk, phr);
|
|
}
|
|
|
|
|
|
CSystemClock::CSystemClock(TCHAR *pName,LPUNKNOWN pUnk,HRESULT *phr) :
|
|
CBaseReferenceClock(pName, pUnk, phr)
|
|
{
|
|
}
|
|
|
|
STDMETHODIMP CSystemClock::NonDelegatingQueryInterface(
|
|
REFIID riid,
|
|
void ** ppv)
|
|
{
|
|
if (riid == IID_IPersist)
|
|
{
|
|
return GetInterface(static_cast<IPersist *>(this), ppv);
|
|
}
|
|
else if (riid == IID_IAMClockAdjust)
|
|
{
|
|
return GetInterface(static_cast<IAMClockAdjust *>(this), ppv);
|
|
}
|
|
else
|
|
{
|
|
return CBaseReferenceClock::NonDelegatingQueryInterface(riid, ppv);
|
|
}
|
|
}
|
|
|
|
/* Return the clock's clsid */
|
|
STDMETHODIMP
|
|
CSystemClock::GetClassID(CLSID *pClsID)
|
|
{
|
|
CheckPointer(pClsID,E_POINTER);
|
|
ValidateReadWritePtr(pClsID,sizeof(CLSID));
|
|
*pClsID = CLSID_SystemClock;
|
|
return NOERROR;
|
|
}
|
|
|
|
|
|
STDMETHODIMP
|
|
CSystemClock::SetClockDelta(REFERENCE_TIME rtDelta)
|
|
{
|
|
return SetTimeDelta(rtDelta);
|
|
}
|