void WINAPI DbgInitialise(HINSTANCE hInst) { InitializeCriticalSection(&m_CSDebug); m_bInit = TRUE; m_hInst = hInst; DbgInitModuleName(); if(GetProfileInt(m_ModuleName, TEXT("BreakOnLoad"), 0)) DebugBreak(); DbgInitModuleSettings(false); DbgInitGlobalSettings(true); dwTimeOffset = timeGetTime(); }
BOOL WINAPI DbgCheckModuleLevel(DWORD Type,DWORD Level) { if(g_fAutoRefreshLevels) { // re-read the registry every second. We cannot use RegNotify() to // notice registry changes because it's not available on win9x. static DWORD g_dwLastRefresh = 0; DWORD dwTime = timeGetTime(); if(dwTime - g_dwLastRefresh > 1000) { g_dwLastRefresh = dwTime; // there's a race condition: multiple threads could update the // values. plus read and write not synchronized. no harm // though. DbgInitModuleSettings(false); } } DWORD Mask = 0x01; // If no valid bits are set return FALSE if ((Type & ((1<<iMAXLEVELS)-1))) { // speed up unconditional output. if (0==Level) return(TRUE); for (LONG lKeyPos = 0;lKeyPos < iMAXLEVELS;lKeyPos++) { if (Type & Mask) { if (Level <= (m_Levels[lKeyPos] & ~LOG_FORCIBLY_SET)) { return TRUE; } } Mask <<= 1; } } return FALSE; }