13 #pragma managed( push, off ) 32 , m_bInfinite( false )
114 wchar_t szBuffer[ MAX_PATH ];
115 if (
nullptr != pszObjectName ) {
117 ::wcscpy_s( szBuffer, pszObjectName );
119 pszObjectName = szBuffer;
123 m_hObject = ::CreateWaitableTimerW(
nullptr,
false, pszObjectName );
129 else if ( ERROR_ALREADY_EXISTS != ::GetLastError() ) {
149 if (
nullptr == pszObjectName ) {
160 wchar_t szBuffer[ MAX_PATH ];
161 ::wcscpy_s( szBuffer, pszObjectName );
163 pszObjectName = szBuffer;
166 m_hObject = ::OpenWaitableTimerW( TIMER_ALL_ACCESS,
false, pszObjectName );
198 if ( INFINITE == dwTime ) {
208 LONGLONG llWait = ( -10LL * 1000 * dwTime );
218 bool CTimer::SetNano100( LONGLONG llWait, LONG nPeriod, PTIMERAPCROUTINE pfnCallBack, LPVOID lpParam,
bool bResume ) noexcept {
226 LARGE_INTEGER sDueTime;
227 sDueTime.QuadPart = llWait;
228 if ( 0 == ::SetWaitableTimer(
m_hObject, &sDueTime, nPeriod, pfnCallBack, lpParam, bResume ) ) {
233 else if ( bResume ) {
235 if ( ERROR_NOT_SUPPORTED == ::GetLastError() ) {
269 if ( 0 == ::CancelWaitableTimer(
m_hObject ) ) {
291 #pragma managed( pop ) virtual void Close() noexcept
クローズ関数
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
virtual bool Wait(DWORD dwTime=INFINITE) noexcept override
ウェイト関数
virtual bool SetNano100(LONGLONG llWait, LONG nPeriod=0, PTIMERAPCROUTINE pfnCallBack=nullptr, LPVOID lpParam=nullptr, bool bResume=false) noexcept
100ナノタイマ設定関数
virtual bool Wait(DWORD dwTime=INFINITE) noexcept
ウェイト関数
virtual bool Open(wchar_t const *pszObjectName) noexcept
オープン関数
virtual ~CTimer() noexcept
デストラクタ
HANDLE m_hObject
オブジェクトハンドル
virtual bool Set(DWORD dwTime) noexcept
タイマ設定関数
virtual void Close() noexcept override
クローズ関数
virtual bool Cancel() noexcept
タイマ解除関数
virtual bool Create(wchar_t const *pszObjectName=nullptr) noexcept
作成関数
virtual bool Release() noexcept override
リリース関数