Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// RefClock.idl : IDL source for RefClock.dll //
// This file will be processed by the MIDL tool to // produce the type library (RefClock.tlb) and marshalling code.
//===================================================================== //===================================================================== // time information // // This represents a time (either reference or stream) in 100ns units // The class library contains a CRefTime helper class // that supports simple comparison and arithmetic operations //===================================================================== //=====================================================================
// Win32 HANDLEs have to be cast to these as the MIDL compiler doesn't // like the HANDLE type or in fact anything remotely associated with // them. If this ever gets ported to a MAC environment then these will // have to become an alertable synchronisation object that it supports
//typedef DWORD_PTR HSEMAPHORE; //typedef DWORD_PTR HEVENT;
typedef unsigned long HSEMAPHORE; typedef unsigned long HEVENT; typedef __int64 REFERENCE_TIME; typedef double REFTIME;
import "oaidl.idl"; import "ocidl.idl"; [ object, uuid(56a86897-0ad4-11ce-b03a-0020af0ba770),
helpstring("IReferenceClock Interface"), pointer_default(unique) ] interface IReferenceClock : IUnknown { // get the time now HRESULT GetTime( [out] REFERENCE_TIME *pTime );
// ask for an async notification that a time has elapsed HRESULT AdviseTime( [in] REFERENCE_TIME baseTime, // base reference time [in] REFERENCE_TIME streamTime, // stream offset time [in] HEVENT hEvent, // advise via this event [out] DWORD_PTR * pdwAdviseCookie // where your cookie goes );
// ask for an async periodic notification that a time has elapsed HRESULT AdvisePeriodic( [in] REFERENCE_TIME startTime, // starting at this time [in] REFERENCE_TIME periodTime, // time between notifications [in] HSEMAPHORE hSemaphore, // advise via a semaphore [out] DWORD_PTR * pdwAdviseCookie // where your cookie goes );
// cancel a request for notification HRESULT Unadvise( [in] DWORD_PTR dwAdviseCookie); };
[ uuid(600A1B0F-038E-48CD-8EAE-0E2CFA9D0FD4), version(1.0), helpstring("RefClock 1.0 Type Library") ] library REFCLOCKLib { importlib("stdole2.tlb");
[ uuid(CF8767F3-7913-4F90-A279-4CED5BF64B4F), helpstring("ReferenceClock Class") ] coclass ReferenceClock { [default] interface IReferenceClock; }; };
|