windows-nt/Source/XPSP1/NT/net/homenet/alg/alg_icq/util.cpp

101 lines
1.8 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 2000, Microsoft Corporation
Module Name:
Abstract:
Author:
Savas Guven (savasg) 27-Nov-2000
Revision History:
--*/
#include "stdafx.h"
#include "util.h"
//
// GLOBALS
//
HANDLE g_TimerQueueHandle = NULL;
void
ErrorOut(void)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL );
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL,
(LPCTSTR)lpMsgBuf,
_T("Error"),
MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
}
PTIMER_CONTEXT
AllocateAndSetTimer(
ULONG uContext,
ULONG timeOut,
WAITORTIMERCALLBACK Callbackp
)
{
ULONG Error = NO_ERROR;
PTIMER_CONTEXT TimerContextp = NULL;
TimerContextp = (PTIMER_CONTEXT) NH_ALLOCATE(sizeof(TIMER_CONTEXT));
if(TimerContextp is NULL)
{
return NULL;
}
ZeroMemory(TimerContextp, sizeof(TIMER_CONTEXT));
TimerContextp->TimerQueueHandle = g_TimerQueueHandle;
TimerContextp->uContext = uContext;
Error = CreateTimerQueueTimer(&TimerContextp->TimerHandle,
g_TimerQueueHandle,
Callbackp,
TimerContextp,
timeOut * 1000,
0,
WT_EXECUTEDEFAULT);
if(Error is 0)
{
NH_FREE(TimerContextp);
return NULL;
}
return TimerContextp;
}