亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eventlogthreads.c

?? 讀系統日志,功能強大喲
?? C
?? 第 1 頁 / 共 2 頁
字號:
	
	HWND hDlg	= (HWND)(pSortData->hDlg);
	HWND hwndLV = (HWND)(GetDlgItem(hDlg, IDL_EVENTS));
	
	int nSubItemColIdx		= pSortData->nColIdx;
	int nSortOrder			= pSortData->nSortOrder;
	int nSortType			= pSortData->nSortType;

	TCHAR lpsz1[_MAX_PATH + 1], lpsz2[_MAX_PATH + 1];

	ListView_GetItemText(hwndLV, nIdx1, nSubItemColIdx, lpsz1, _MAX_PATH + 1);
	ListView_GetItemText(hwndLV, nIdx2, nSubItemColIdx, lpsz2, _MAX_PATH + 1);

	if(nSortOrder == ASCENDING)
	{
		if(nSortType == STRING)
			nRetVal = _tcsicmp(lpsz1, lpsz2);
		else if(nSortType == NUMERIC)
		{
			int n1 = atoi(lpsz1), n2 = atoi(lpsz2);
			nRetVal = n1 < n2 ? -1 : n1 == n2 ? 0 : 1;
		}
		else
			nRetVal = 0;
	}
	else if(nSortOrder == DESCENDING)
	{
		if(nSortType == STRING)
			nRetVal = -1 * _tcsicmp(lpsz1, lpsz2);
		else if(nSortType == NUMERIC)
		{
			int n1 = atoi(lpsz1), n2 = atoi(lpsz2);
			nRetVal = (n1 < n2) ? 1 : ((n1 == n2) ? 0 : -1);
		}
		else
			nRetVal = 0;
	}
	else
		nRetVal = 0; // none

	return nRetVal;
}

unsigned int __stdcall 
ShowEventData(LPVOID lpParam)
{
	LPEVENTID peid = (LPEVENTID)lpParam;

//	if(pdt->pDlg->m_strSource.IsEmpty())
//	{
//		LocalFree(pdt);
//		return 0L;
//	}

	int   nRetVal = 0;

	HWND  hwndDlg			= peid->hwndDlg;
	HWND  hwndEditStrings	= GetDlgItem(hwndDlg, IDE_STRINGS);
	HWND  hwndEditData		= GetDlgItem(hwndDlg, IDE_DATA);
	DWORD dwRecId			= peid->dwEventId;

	TCHAR  lpUNCServerName[_MAX_PATH + 1];
	TCHAR  lpSourceName[_MAX_PATH + 1];

	HANDLE  hEventLog				= 0;
	
	DWORD  dwEventLogRecords		= 0;
	DWORD  dwOldestEventLogRecord	= 0;
	DWORD  dwEvLogCounter			= 0;

	LPVOID lpEventLogRecordBuffer	= 0;
	char   chFakeBuffer				= ' ';
	DWORD  dwNumberOfBytesToRead	= 0;
	DWORD  dwBytesRead				= 0;
	DWORD  dwMinNumberOfBytesNeeded	= 0;
	BOOL    bRetVal					= FALSE;
	TCHAR	lpszEventLogSourceName[_MAX_PATH + 1];

	wsprintf(lpUNCServerName, _T("\\\\%s"), peid->lpszMachineName);
	wsprintf(lpSourceName, _T("%s"), peid->lpszEventName);

	if(g_fApplication)
		_tcscpy(lpszEventLogSourceName, _T("Application"));
	else if(g_fSystem)
		_tcscpy(lpszEventLogSourceName, _T("System"));
	else if(g_fSecurity)
		_tcscpy(lpszEventLogSourceName, _T("Security"));
//	else if(g_fCustom)
//		_tcscpy(lpszEventLogSourceName, _T("Application"));
	else
	{
		nRetVal = -1;
		goto _cleanup_;
	}

	hEventLog = OpenEventLog((LPCTSTR)lpUNCServerName, (LPCTSTR)lpszEventLogSourceName);
	if(hEventLog)
	{
		if(GetNumberOfEventLogRecords(hEventLog, &dwEventLogRecords) && 
			GetOldestEventLogRecord(hEventLog, &dwOldestEventLogRecord))
		{
			for(dwEvLogCounter = dwOldestEventLogRecord; 
				dwEvLogCounter <= (dwOldestEventLogRecord + dwEventLogRecords); 
				dwEvLogCounter++)
			{
				if(dwEvLogCounter != dwRecId)
					continue;

				lpEventLogRecordBuffer		= (LPVOID)&chFakeBuffer;
				dwNumberOfBytesToRead		= 1;
				dwMinNumberOfBytesNeeded	= 0;

_retry_:
				bRetVal = ReadEventLog(hEventLog, EVENTLOG_SEEK_READ | EVENTLOG_FORWARDS_READ, dwEvLogCounter, 
					lpEventLogRecordBuffer, dwNumberOfBytesToRead, &dwBytesRead, &dwMinNumberOfBytesNeeded);

				if(!bRetVal)
				{
					g_dwLastError = GetLastError();

					if(g_dwLastError == ERROR_INSUFFICIENT_BUFFER)
					{
						lpEventLogRecordBuffer = (LPVOID)GlobalAlloc(GPTR, dwMinNumberOfBytesNeeded);
						if(lpEventLogRecordBuffer == (void *)0)
							goto _allocationfailure_;

						dwNumberOfBytesToRead = dwMinNumberOfBytesNeeded;
						goto _retry_;
					}
					else
						goto _unknownerror_;
				}
				else
				{
					PEVENTLOGRECORD pELR = 0;
					LPBYTE			pData = 0;
					HMODULE hModule = 0;
					TCHAR szExeFile[_MAX_PATH + 1], szExeFilePath[_MAX_PATH + 1];
					HKEY   hk						= (HKEY)0;
					TCHAR  szKeyName[_MAX_PATH + 1];
					DWORD dwMaxPath;
					DWORD dwType;
					LPBYTE			pStrings = 0;
					UINT uStringOffset;
					TCHAR *szExpandedString;
					LPVOID lpszBuffer = 0;
					
					pELR	= (PEVENTLOGRECORD)lpEventLogRecordBuffer;

					pData = (LPBYTE)GlobalAlloc(GPTR, pELR->DataLength * sizeof(BYTE));
					memcpy(pData, (LPBYTE)((LPBYTE)pELR + pELR->DataOffset), pELR->DataLength);

					{
						UINT x, uStepOfString = 0;

						pStrings = (LPBYTE)GlobalAlloc(GPTR, pELR->DataOffset - pELR->StringOffset * sizeof(BYTE));
						memcpy(pStrings, (LPBYTE)pELR + pELR->StringOffset, pELR->DataOffset - pELR->StringOffset);

						szExpandedString = (TCHAR *)GlobalAlloc(GPTR, (pELR->DataOffset - pELR->StringOffset + 1024) * sizeof(TCHAR));
						for(x = 0; x < pELR->NumStrings; x++)
						{
							if(x == 0)
							{
								strcpy(szExpandedString, (TCHAR *)pStrings + uStepOfString);
								if(x < (UINT)pELR->NumStrings - 1)
									strcat(szExpandedString, ",");
							}
							else
								strcat(szExpandedString, (TCHAR *)pStrings + uStepOfString);

							uStepOfString = strlen((TCHAR *)pStrings + uStepOfString) + 1;
						}

						wsprintf(szKeyName, _T("SYSTEM\\CurrentControlSet\\Services\\EventLog\\%s\\%s"), 
							lpszEventLogSourceName, peid->lpszEventName);
						if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0L, KEY_READ, &hk) == NOERROR)
						{
							dwMaxPath = _MAX_PATH + 1;
							if(RegQueryValueEx(hk, _T("EventMessageFile"), 0, &dwType, (LPBYTE)szExeFile, &dwMaxPath) == NOERROR)
							{
								if(ExpandEnvironmentStrings(szExeFile, szExeFilePath, _MAX_PATH + 1) == 0)
									strcpy(szExeFilePath, szExeFile);

								hModule = LoadLibraryEx(szExeFilePath, 0, DONT_RESOLVE_DLL_REFERENCES);
								if(hModule)
								{
									TCHAR **_sz = (TCHAR**)GlobalAlloc(GPTR, (pELR->NumStrings) * sizeof(TCHAR *));
									register UINT z;

									uStringOffset = 0;
									for(z = 0; z < pELR->NumStrings; z++)
									{
										_sz[z] = (TCHAR *)GlobalAlloc(GPTR, 
											(strlen((TCHAR *)pStrings + uStringOffset) + 1) * sizeof(TCHAR));
										strcpy(_sz[z], (TCHAR *)pStrings + uStringOffset);

										uStringOffset += strlen((TCHAR *)pStrings + uStringOffset) + 1;
									}

									FormatMessage(
										FORMAT_MESSAGE_ALLOCATE_BUFFER | 
										FORMAT_MESSAGE_FROM_HMODULE | 
										FORMAT_MESSAGE_FROM_SYSTEM | 
										FORMAT_MESSAGE_ARGUMENT_ARRAY,
										hModule, pELR->EventID, 0, (LPTSTR)&lpszBuffer, 1024, 
										_sz
									);

									for(z = 0; z < pELR->NumStrings; z++)
									{
										SafeDeletePointer(_sz[z], strlen(_sz[z]));
										_sz[z] = 0;
									}
									SafeDeletePointer(_sz, (pELR->NumStrings) * sizeof(TCHAR *));
									_sz = 0;

									if(lpszBuffer)
									{
										strcpy(szExpandedString, (TCHAR *)lpszBuffer);
										uStringOffset = strlen(szExpandedString);
									}

									if(lpszBuffer)
										LocalFree(lpszBuffer);

									FreeLibrary(hModule);
								}
							}						
							RegCloseKey(hk);
						}

						SendMessage(hwndEditStrings, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)szExpandedString);

						SafeDeletePointer(szExpandedString, strlen(szExpandedString));
					}

					{
						TCHAR _str[1024];
						_tcscpy(_str, _T(""));
						if(pELR->DataLength > 0)
						{
							register UINT x;

							for(x = 0; x < pELR->DataLength; x += 8)
							{
								TCHAR _strAux[1024];
								register UINT y;

								wsprintf(_strAux, "%.4x: ", x);
								_tcscat(_str, _strAux);

								for(y = x; y < x + 8; y++)
								{
									wsprintf(_strAux, "%.2x ", pData[y]);
									_tcscat(_str, _strAux);
								}
								_tcscat(_str, _T("  "));

								for(y = x; y < x + 8; y++)
								{
									if(!isprint((int)pData[y]))
										_tcscat(_str, _T("."));
									else
									{
										TCHAR s[2];
										s[0] = (TCHAR)pData[y];
										s[1] = '\0';
										_tcscat(_str, s);
									}
								}
								_tcscat(_str, _T("\r\n"));
							}
						}
						else
							_tcscat(_str, _T("No data available."));

						SendMessage(hwndEditData, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_str);
					}
				}
			}

			goto _cleanup_;
		}
		else
			ReportLastError(0, 0, TRUE);

_unknownerror_:
		MessageBox(0, TEXT("Unknown error."), 0, MB_OK | MB_ICONSTOP);
		goto _cleanup_;

_allocationfailure_:
		MessageBox(0, TEXT("Allocation failure."), 0, MB_OK | MB_ICONSTOP);
		goto _cleanup_;

_cleanup_:
		CloseEventLog(hEventLog);
		hEventLog = 0;
	}
	else
		ReportLastError(0, 0, TRUE);

	#pragma warning(disable:4127)
	SafeDeletePointer(peid, sizeof(EVENTID));

	return 0L;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中国av一区二区三区| 日韩二区三区四区| 香蕉加勒比综合久久| 国产成人激情av| 欧美日韩免费观看一区二区三区| 欧美tk丨vk视频| 亚洲午夜日本在线观看| 国产精品综合二区| 欧美一区二区三区视频在线| 成人免费在线播放视频| 韩国v欧美v日本v亚洲v| 精品婷婷伊人一区三区三| 中文字幕电影一区| 国产在线视视频有精品| 欧美人妇做爰xxxⅹ性高电影 | 国产精品天美传媒| 久久91精品国产91久久小草| 欧美曰成人黄网| 中文字幕在线一区免费| 国产裸体歌舞团一区二区| 日韩一区二区三区在线视频| 亚洲成人av一区二区| 欧美影院一区二区三区| 亚洲精品久久7777| 色狠狠一区二区| 亚洲免费视频中文字幕| 99re这里只有精品6| 中文字幕一区av| 91看片淫黄大片一级在线观看| 国产女主播一区| 国产91高潮流白浆在线麻豆| 精品久久久久久久人人人人传媒| 久久99精品国产麻豆婷婷 | 免费成人av在线| 欧美精选在线播放| 天天av天天翘天天综合网色鬼国产| 91久久精品一区二区| 一区二区三区中文免费| 欧美四级电影网| 五月天亚洲婷婷| 91精品国产乱码久久蜜臀| 青青草一区二区三区| 精品乱人伦小说| 国产夫妻精品视频| 欧美激情一区二区三区全黄| 成人免费视频播放| 亚洲精品国产a久久久久久| 91福利国产精品| 天堂成人国产精品一区| 欧美成人国产一区二区| 国产成人在线色| 亚洲理论在线观看| 欧美日韩黄视频| 精品亚洲成av人在线观看| 国产欧美一区二区精品性色超碰 | 国产精品久久99| 在线一区二区视频| 欧美aⅴ一区二区三区视频| 久久免费的精品国产v∧| eeuss鲁片一区二区三区| 亚洲国产欧美另类丝袜| 精品国产不卡一区二区三区| 粉嫩一区二区三区在线看| 亚洲日本一区二区三区| 91精品国产福利| 高清国产一区二区| 亚洲不卡在线观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 色婷婷综合久久久中文字幕| 亚洲成人免费看| 国产亚洲人成网站| 欧美在线观看视频在线| 国产一级精品在线| 亚洲18色成人| 国产精品亲子伦对白| 欧美一级片在线| 91片在线免费观看| 国产伦精品一区二区三区在线观看 | 欧美精品一区二区三区视频| 色综合天天综合色综合av| 久久99精品久久久| 亚洲成人1区2区| 亚洲欧洲av一区二区三区久久| 日韩亚洲欧美在线观看| 色综合久久综合网97色综合| 成人欧美一区二区三区| 久久久久久久免费视频了| 欧美日韩国产bt| 色综合中文字幕国产 | proumb性欧美在线观看| 蜜臀久久99精品久久久久宅男| 日韩理论片中文av| 亚洲精品一区二区三区蜜桃下载 | 色综合久久99| 成人午夜免费电影| 久久精品国产99国产精品| 亚洲最快最全在线视频| 国产精品久久久久久久久晋中 | 日本伊人精品一区二区三区观看方式 | 亚洲国产精品久久久久秋霞影院| 国产区在线观看成人精品| 日韩欧美一级片| 欧美日韩国产高清一区二区三区| av午夜精品一区二区三区| 国产成人在线视频网站| 玖玖九九国产精品| 免费成人av在线| 久久99精品久久久久久国产越南 | 日日摸夜夜添夜夜添亚洲女人| 亚洲男同性视频| 亚洲欧美日韩久久| 亚洲精品综合在线| 亚洲精品水蜜桃| 亚洲男人的天堂在线aⅴ视频| 中文字幕中文字幕在线一区| 国产精品高潮久久久久无| 中文字幕中文在线不卡住| 亚洲天堂2016| 亚洲一区二区视频在线| 亚洲小说春色综合另类电影| 亚洲一二三四区| 日韩电影在线免费| 久久精品国产99国产| 国内精品在线播放| 国产乱码精品1区2区3区| 国产一区二区三区免费观看| 国产精品一区二区三区网站| 成人小视频免费观看| 色天使久久综合网天天| 欧美在线播放高清精品| 制服.丝袜.亚洲.另类.中文| 日韩精品中文字幕在线不卡尤物| 欧美大片拔萝卜| 国产精品美女一区二区三区| 亚洲精品国产无套在线观 | 亚洲图片你懂的| 亚洲成在线观看| 久久国产成人午夜av影院| 激情综合色综合久久| 丰满少妇在线播放bd日韩电影| av动漫一区二区| 91欧美一区二区| 91精品办公室少妇高潮对白| 91精品国产色综合久久| 中文字幕欧美日本乱码一线二线| 亚洲欧美色一区| 久久精品国产99久久6| 波波电影院一区二区三区| 欧美日韩国产成人在线免费| 精品91自产拍在线观看一区| 一区二区中文字幕在线| 奇米影视一区二区三区| 国产91精品免费| 欧美一区二区视频在线观看2020 | 337p日本欧洲亚洲大胆色噜噜| 国产精品久久久久永久免费观看 | 老司机午夜精品99久久| 99精品在线免费| 欧美mv日韩mv| 亚洲最新视频在线观看| 国产成人免费视频网站| 在线成人av网站| 国产精品国产三级国产有无不卡 | 99精品视频在线免费观看| 欧美精品第一页| 国产精品乱码久久久久久| 三级一区在线视频先锋| 91同城在线观看| 久久免费国产精品 | 五月天一区二区| 99免费精品在线观看| 精品国产乱码久久久久久浪潮| 亚洲免费视频中文字幕| 成人网在线免费视频| 精品国产免费一区二区三区四区 | 国产精品久久久久四虎| 激情五月激情综合网| 欧美少妇一区二区| **欧美大码日韩| 精一区二区三区| 亚洲第一久久影院| 国产欧美一区二区精品性色 | 9色porny自拍视频一区二区| 91麻豆精品国产自产在线观看一区| 亚洲丝袜美腿综合| 国产91丝袜在线播放| 久久蜜桃av一区精品变态类天堂| 蜜臀久久久久久久| 欧美电影在线免费观看| 洋洋成人永久网站入口| 在线看日韩精品电影| 亚洲色图欧美激情| 99re热这里只有精品视频| 国产精品入口麻豆九色| 大胆欧美人体老妇| 国产欧美精品一区二区三区四区| 国产在线精品一区二区| www激情久久| 国产一区二区不卡在线| 久久久精品综合|