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

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

?? filemon.c

?? 文件監視FileMon 一個常用的監視軟件
?? C
?? 第 1 頁 / 共 5 頁
字號:
	char		*secondsPtr;
	FILETIME	localTime;
	SYSTEMTIME	systemTime;
	int			msIndex;

	// Split line into columns
	itemcnt = Split( line, '\t', items );
	if ( itemcnt == 0 )
		return FALSE;

	// Determine row number for request
	if ( *items[0] )  {
		// Its a new request.  Put at end.
		row = 0x7FFFFFFF;
	} else {
		// Its a status.  Locate its associated request.
		lvI.mask = LVIF_PARAM;
		lvI.iSubItem = 0;
		for ( row = ListView_GetItemCount(hWndList) - 1; row >= 0; --row )  {
			lvI.iItem = row;
			if ( ListView_GetItem( hWndList, &lvI )  &&  (DWORD)lvI.lParam == seq )
				break;
		}
		if ( row == -1 )
			// No request associated with status.
			return FALSE;
	}

	// Sequence number if a new item
	if ( *items[0] )  {
		_stprintf( msgbuf, _T("%d"), seq );
		lvI.mask		= LVIF_TEXT | LVIF_PARAM;
		lvI.iItem		= row;
		lvI.iSubItem	= 0;
		lvI.pszText		= msgbuf;
		lvI.cchTextMax	= lstrlen( lvI.pszText ) + 1;
		lvI.lParam		= seq;
		row = ListView_InsertItem( hWndList, &lvI );
		if ( row == -1 )  {
			_stprintf( msgbuf, _T("Error adding item %d to list view"), seq );
			MessageBox( hWndList, msgbuf, APPNAME, MB_OK|MB_ICONERROR );
			return FALSE;
		}
        LastRow = row;
	}
	if( !TimeIsDuration ) {

		// no timestamp for completions
		if( dateTime ) {

			if( IsNT ) {
				FileTimeToLocalFileTime( (PFILETIME) &dateTime, &localTime );
				FileTimeToSystemTime( &localTime, &systemTime );
			} else {
				DosDateTimeToFileTime( (WORD) (dateTime >> 48), (WORD) (dateTime >> 32), &localTime );
				FileTimeToSystemTime( &localTime, &systemTime );
				systemTime.wSecond += ((WORD) dateTime) / 1000;
				systemTime.wMilliseconds = ((WORD) dateTime) % 1000;
			}
			GetTimeFormat( LOCALE_USER_DEFAULT, 0,
						   &systemTime, NULL, timeBuf, 64 );
			if( ShowMs ) {

				secondsPtr = strrchr( timeBuf, ':');
				msIndex = (DWORD) (secondsPtr - timeBuf);
				while( timeBuf[msIndex] && timeBuf[msIndex] != ' ') msIndex++;
				strcpy( timeSub, &timeBuf[msIndex] );
				timeBuf[ msIndex ] = 0;
				sprintf( msgbuf, "%s.%03d%s", timeBuf, systemTime.wMilliseconds, timeSub );
			} else {

				strcpy( msgbuf, timeBuf );
			}
			ListView_SetItemText( hWndList, row, 1, msgbuf );
		}

	} else {

		if( IsNT ) {
			elapsed = ((float) perfTime)/(float)PerfFrequency.QuadPart;
			sprintf( msgbuf, "%10.8f", elapsed );
		} else {
			sprintf( msgbuf, "%10.8f", (float) perfTime * 0.8 / 1e6);
		}
		ListView_SetItemText( hWndList, row, 1, msgbuf );
	}

	// Process name
	if ( itemcnt>0 && *items[0] ) {

		ListView_SetItemText( hWndList, row, 2, items[0] );
	}

	// Request type
	if ( itemcnt>1 && *items[1] )  {

		ListView_SetItemText( hWndList, row, 3, items[1] );
	}

	// Path
	if ( itemcnt>2 && *items[2] )  {

		ListView_SetItemText( hWndList, row, 4, items[2] );
	}

	// Result
	if ( itemcnt>4 && *items[4] )  {

		ListView_SetItemText( hWndList, row, 5, items[4] );
	}

	// Additional
	if ( itemcnt>3 && *items[3] )  {

		ListView_SetItemText( hWndList, row, 6, items[3] );
	}
	return TRUE;
}


/******************************************************************************
*
*	FUNCTION:	UpdateStatistics
*
*	PURPOSE:	Clear the statistics window and refill it with the current 
*				contents of the statistics buffer.  Does not refresh the 
*				buffer from the device driver.
*
******************************************************************************/
void UpdateStatistics( HWND hWnd, HWND hList, BOOL Clear )
{
	PENTRY	ptr;
	BOOLEAN itemsAdded = FALSE;
	int		totitems, i;

	// Just return if nothing to do
	if ( !Clear  &&  StatsLen < sizeof(int)+2 )
		return;

	// post hourglass icon
	if( !IsNT ) {
		
		hSaveCursor = SetCursor(hHourGlass);
		SendMessage(hList, WM_SETREDRAW, FALSE, 0);
	}

	// Start with empty list
	if( Clear ) {

		if( IsNT ) {

			ListView_DeleteAllItems( hList );
		} else {

			// Win9x listview clear (or delete) is *very* slow
			Deleting = TRUE;
			totitems = ListView_GetItemCount( hList );
			for(i = 0; i < totitems; i++) {
				ListView_DeleteItem( hList, 0 );
			}
			Deleting = FALSE;
		}
		LastRow = 0;
	}

	// Add all List items from Stats[] data
	for ( ptr = (void *)Stats; (char *)ptr < min(Stats+StatsLen,Stats + sizeof (Stats)); )  {
	 	// Add to list
		size_t len = strlen(ptr->text);
        
		itemsAdded |= ListAppend( hList, ptr->seq, ptr->perftime.QuadPart, 
								ptr->datetime.QuadPart, ptr->text );

		if( IsNT ) {
			
			len += 4; len &= 0xFFFFFFFC; // +1 for null-terminator +3 for 32bit alignment
			ptr = (void *)(ptr->text + len);
		} else 
			ptr = (void *)(ptr->text + len + 1);
	}

	// Empty the buffer
	StatsLen = 0;

	// only do stuff if we added stuff
	if( itemsAdded ) {

		// limit number of lines saved
		if (MaxLines) {
			SendMessage(hList, WM_SETREDRAW, FALSE, 0);
			while ( LastRow > MaxLines ) {
				ListView_DeleteItem ( hList, 0 );
				LastRow--;
			}
			SendMessage(hList, WM_SETREDRAW, TRUE, 0);
		}

		// Scroll so newly added items are visible
		if ( Autoscroll ) {
			if( hBalloon ) DestroyWindow( hBalloon );
			ListView_EnsureVisible( hList, ListView_GetItemCount(hList)-1, FALSE ); 
		}
	}

	if( !IsNT) {
		SendMessage(hList, WM_SETREDRAW, TRUE, 0);
		InvalidateRect( hList, NULL, FALSE );
		SetCursor( hSaveCursor );
	}
}

/****************************************************************************
*
*    FUNCTION: CalcStringEllipsis
*
*    PURPOSE:  Determines if an item will fit in a listview row, and if
*			   not, attaches the appropriate number of '.' to a truncated 
*			   version.
*
****************************************************************************/
BOOL WINAPI CalcStringEllipsis (HDC     hdc, 
                                LPTSTR  szString, 
                                int     cchMax, 
                                UINT    uColWidth) 
{ 
    static TCHAR szEllipsis3[] = TEXT("..."); 
    static TCHAR szEllipsis2[] = TEXT(".."); 
    static TCHAR szEllipsis1[] = TEXT("."); 
    SIZE		sizeString; 
    SIZE		sizeEllipsis3, sizeEllipsis2, sizeEllipsis1; 
    int			cbString; 
    LPTSTR		lpszTemp; 
     
    // Adjust the column width to take into account the edges 
    uColWidth -= 4; 

	// Allocate a string for us to work with.  This way we can mangle the 
    // string and still preserve the return value 
    lpszTemp = (LPTSTR)HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, cchMax); 
    if (!lpszTemp) return FALSE;
    lstrcpy (lpszTemp, szString); 
 
    // Get the width of the string in pixels 
    cbString = lstrlen(lpszTemp); 
    if (!GetTextExtentPoint32 (hdc, lpszTemp, cbString, &sizeString)) {
        HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
		return FALSE;
    } 
 
    // If the width of the string is greater than the column width shave 
    // the string and add the ellipsis 
    if ((ULONG)sizeString.cx > uColWidth) {
		
        if (!GetTextExtentPoint32 (hdc, 
                                   szEllipsis3, 
                                   lstrlen(szEllipsis3), 
                                   &sizeEllipsis3)) {
			HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
			return FALSE;
        } 
        if (!GetTextExtentPoint32 (hdc, 
                                   szEllipsis2, 
                                   lstrlen(szEllipsis2), 
                                   &sizeEllipsis2)) {
			HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
			return FALSE;
        } 
        if (!GetTextExtentPoint32 (hdc, 
                                   szEllipsis1, 
                                   lstrlen(szEllipsis1), 
                                   &sizeEllipsis1)) {
			HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
			return FALSE;
        } 
 
        while (cbString > 0) { 

			lpszTemp[--cbString] = 0; 
			if (!GetTextExtentPoint32 (hdc, lpszTemp, cbString, &sizeString)) {
 				HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
				return FALSE;
			} 
			if ((ULONG)(sizeString.cx + DOTOFFSET + sizeEllipsis3.cx) <= uColWidth) { 
				break;
			} 
        } 
		lpszTemp[0] = szString[0];
 		if((ULONG)(sizeString.cx + DOTOFFSET + sizeEllipsis3.cx) <= uColWidth) { 
			lstrcat (lpszTemp, szEllipsis3); 
		} else if((ULONG)(sizeString.cx + DOTOFFSET + sizeEllipsis2.cx) <= uColWidth) { 
			lstrcat (lpszTemp, szEllipsis2); 
		} else if((ULONG)(sizeString.cx + DOTOFFSET + sizeEllipsis1.cx) <= uColWidth) { 
			lstrcat (lpszTemp, szEllipsis1); 
		} else {
			lpszTemp[0] = szString[0];
		}
        lstrcpy (szString, lpszTemp); 
 		HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
		return TRUE;

    } else {

		HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
		return TRUE;
	}

	HeapFree (GetProcessHeap(), 0, (LPVOID)lpszTemp); 
	return FALSE;
} 


/****************************************************************************
*
*    FUNCTION: DrawItemColumn
*
*    PURPOSE:  Draws text to the listview.
*
****************************************************************************/
void WINAPI DrawItemColumn (HDC hdc, LPTSTR szText, LPRECT prcClip) 
{ 
    TCHAR szString[MAXITEMLENGTH]; 

    // Check to see if the string fits in the clip rect.  If not, truncate 
    // the string and add "...". 
    lstrcpy(szString, szText); 
    CalcStringEllipsis (hdc, szString, sizeof( szString ), prcClip->right - prcClip->left); 
    ExtTextOut (hdc, 
                prcClip->left + 2, 
                prcClip->top + 1, 
                ETO_CLIPPED | ETO_OPAQUE, 
                prcClip, 
                szString, 
                lstrlen(szString), 
                NULL); 
} 


/****************************************************************************
*
*    FUNCTION: DrawListViewItem
*
*    PURPOSE:  Handles a request from Windows to draw one of the lines
*				in the listview window.
*
****************************************************************************/
void DrawListViewItem(LPDRAWITEMSTRUCT lpDrawItem)
{
	TCHAR 		colString[NUMCOLUMNS][MAXITEMLENGTH];
	BOOLEAN		highlight = FALSE;
    LV_ITEM		lvi;
    RECT		rcClip;
    int			iColumn;
	DWORD		width, leftOffset;
	UINT		uiFlags = ILD_TRANSPARENT;

    // Get the item image to be displayed
    lvi.mask = LVIF_IMAGE | LVIF_STATE;
    lvi.iItem = lpDrawItem->itemID;
    lvi.iSubItem = 0;
    ListView_GetItem(lpDrawItem->hwndItem, &lvi);

	// Get the column text and see if there is a highlight
	for( iColumn = 0; iColumn < NUMCOLUMNS; iColumn++ ) {
		colString[iColumn][0] = 0;
		ListView_GetItemText( hWndList, lpDrawItem->itemID,
							  iColumn, colString[iColumn], 
							  MAXITEMLENGTH);
		if( !highlight && iColumn != 0) {

			highlight = MatchWithHighlightPattern( colString[iColumn] );
		}
	}

    // Check to see if this item is selected
	if (lpDrawItem->itemState & ODS_SELECTED) {

        // Set the text background and foreground colors
		SetTextColor(lpDrawItem->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
        SetBkColor(lpDrawItem->hDC, GetSysColor(COLOR_HIGHLIGHT));

		// Also add the ILD_BLEND50 so the images come out selected
		uiFlags |= ILD_BLEND50;
    } else {
        // Set the text background and foreground colors to the standard window
        // colors
		if( highlight ) {
			SetTextColor(lpDrawItem->hDC, HighlightFg ); 
	        SetBkColor(lpDrawItem->hDC, HighlightBg );
		} else {
			SetTextColor(lpDrawItem->hDC, GetSysColor(COLOR_WINDOWTEXT));
			SetBkColor(lpDrawItem->hDC, GetSysColor(COLOR_WINDOW));
		}
    }

    // Set up the new clipping rect for the first column text and draw it
	leftOffset = 0;
	for( iColumn = 0; iColumn< NUMCOLUMNS; iColumn++ ) {

		width = ListView_GetColumnWidth( hWndList, iColumn );
		rcClip.left		= lpDrawItem->rcItem.left + leftOffset;
		rcClip.right	= lpDrawItem->rcItem.left + leftOffset + width;
		rcClip.top		= lpDrawItem->rcItem.top;
		rcClip.bottom	= lpDrawItem->rcItem.bottom;

		DrawItemColumn(lpDrawItem->hDC, colString[iColumn], &rcClip);
		leftOffset += width;
	}

    // If we changed the colors for the selected item, undo it
    if (lpDrawItem->itemState & ODS_SELECTED) {
        // Set the text background and foreground colors
        SetTextColor(lpDrawItem->hDC, GetSysColor(COLOR_WINDOWTEXT));
        SetBkColor(lpDrawItem->hDC, GetSysColor(COLOR_WINDOW));
    }

    // If the item is focused, now draw a focus rect around the entire row
    if (lpDrawItem->itemState & ODS_FOCUS)
    {
        // Adjust the left edge to exclude the image
        rcClip = lpDrawItem->rcItem;

        // Draw the focus rect
        DrawFocusRect(lpDrawItem->hDC, &rcClip);
    }
}


/****************************************************************************
* 
*    FUNCTION: ListViewSubclass(HWND,UINT,WPARAM)
*
*    PURPOSE:  Subclasses the listview so that we can do tooltips
*
****************************************************************************/
LRESULT CALLBACK ListViewSubclass(HWND hWnd, UINT uMsg, WPARAM wParam,
        LPARAM lParam)
{
	ITEM_CLICK		itemClick;
	LVHITTESTINFO	hitItem;
	static initTrack = FALSE;
	POINT           hitPoint, topleftPoint, bottomrightPoint;
	RECT			listRect;
	static POINTS  mousePosition;

	if( !initTrack ) {

		SetTimer( hWnd,	2, BALLOONDELAY, NULL );
		initTrack = TRUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本一道本在线视频| 色哟哟在线观看一区二区三区| 88在线观看91蜜桃国自产| 亚洲精品欧美综合四区| 91色在线porny| 成人免费在线视频| 99亚偷拍自图区亚洲| 久久先锋影音av| 91精品国产综合久久精品性色| 麻豆精品视频在线观看免费| 亚洲精品一区二区三区香蕉| 国产黄色成人av| 亚洲色图在线播放| 久久精品一区二区三区av| 丝袜国产日韩另类美女| 久久久国产午夜精品| 欧美精品一区二区三区四区| 91电影在线观看| 国模一区二区三区白浆| 最新国产成人在线观看| 91精品麻豆日日躁夜夜躁| av成人动漫在线观看| 91亚洲精品久久久蜜桃网站| 欧美日韩不卡一区二区| ww久久中文字幕| 国产精品18久久久久久久网站| www国产精品av| 成人18精品视频| 亚洲精品午夜久久久| 欧美怡红院视频| 性欧美大战久久久久久久久| 日韩欧美成人激情| 国产suv一区二区三区88区| 国产精品麻豆一区二区| 91福利在线导航| 日韩电影在线观看一区| 精品成人一区二区| gogogo免费视频观看亚洲一| 国产欧美精品一区二区三区四区| 一本大道久久精品懂色aⅴ| 日本成人在线不卡视频| 亚洲一区二三区| 国产精品第四页| 国产女同互慰高潮91漫画| 91精品国产91热久久久做人人| 欧洲日韩一区二区三区| thepron国产精品| 国产99久久久国产精品免费看 | 欧美一区二区视频网站| 成人av在线播放网址| 国产成人免费视频| 久久99精品国产麻豆婷婷洗澡| 国产精品一区免费视频| 成人性视频网站| 久久99精品久久久久婷婷| 日本一区二区综合亚洲| 日韩欧美aaaaaa| 精品国产一区二区三区忘忧草 | 在线观看国产91| 午夜激情久久久| 久久综合99re88久久爱| 99国产一区二区三精品乱码| 日韩在线观看一区二区| 国产精品毛片无遮挡高清| 7878成人国产在线观看| 成人av电影观看| 日韩精品一二三四| 国产精品久久久久毛片软件| 欧美一区二区黄色| 96av麻豆蜜桃一区二区| 免费三级欧美电影| 亚洲欧美日韩国产另类专区| 精品国产免费人成在线观看| 91浏览器打开| 国产乱码精品一区二区三区忘忧草 | 91美女片黄在线观看91美女| 偷窥国产亚洲免费视频| 国产精品久久一级| 日韩片之四级片| 色欧美88888久久久久久影院| 激情综合网天天干| 亚洲一区成人在线| 国产精品天天看| 精品国产乱码久久久久久图片| 91高清视频免费看| 成人免费福利片| 久久99精品国产.久久久久| 亚洲国产精品精华液网站| 国产精品萝li| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩一区小说| 色综合久久88色综合天天免费| 国产成人免费av在线| 日本午夜一本久久久综合| 中文字幕欧美一| 久久久久久久国产精品影院| 91精品国产日韩91久久久久久| 色素色在线综合| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 精品亚洲porn| 午夜久久久影院| 福利一区二区在线| 捆绑变态av一区二区三区| 亚洲最色的网站| 亚洲视频1区2区| 国产精品激情偷乱一区二区∴| 久久久久久久久久久99999| 日韩精品中文字幕在线不卡尤物| 欧美色视频在线| 色播五月激情综合网| jizz一区二区| 99久久精品国产毛片| 成人综合在线视频| 国产精品一区二区久久精品爱涩| 久久精品99国产精品| 日本少妇一区二区| 日韩高清不卡一区二区| 天天影视网天天综合色在线播放| 亚洲一区二区偷拍精品| 亚洲精品免费在线| 一区二区三区四区高清精品免费观看 | 99久久精品国产精品久久| 懂色av中文字幕一区二区三区| 国内成人免费视频| 国产精品中文欧美| 国产毛片精品一区| 国产高清不卡二三区| 国产成人欧美日韩在线电影| 狠狠色丁香婷婷综合久久片| 精品一区二区国语对白| 国产在线视频精品一区| 国产在线麻豆精品观看| 国产资源精品在线观看| 国产一区中文字幕| 国产成人精品亚洲午夜麻豆| 国产成人精品影视| 成人激情图片网| 97精品国产露脸对白| 日本久久精品电影| 欧美日韩高清一区二区| 91精品国产欧美一区二区18| 欧美一二三在线| 精品国产不卡一区二区三区| 久久久影视传媒| 欧美高清在线视频| 中文字幕在线观看一区| 亚洲伦在线观看| 亚洲观看高清完整版在线观看| 亚洲成人黄色小说| 美国三级日本三级久久99| 九九热在线视频观看这里只有精品| 极品少妇xxxx精品少妇偷拍| 成人综合婷婷国产精品久久蜜臀 | 2024国产精品| 国产精品无人区| 亚洲精品免费电影| 日韩在线一二三区| 国产专区欧美精品| 成人国产精品免费网站| 91精彩视频在线| 91精品国产综合久久久久| 久久久久久久综合狠狠综合| 激情五月激情综合网| 成人性生交大片免费看视频在线| 91在线观看免费视频| 欧美日韩在线三级| 精品999在线播放| 中文字幕一区二| 亚洲午夜电影在线观看| 久99久精品视频免费观看| 99久久久精品| 91精品久久久久久久久99蜜臂| 国产日韩欧美制服另类| 亚洲最色的网站| 国内成人免费视频| 色婷婷国产精品久久包臀| 日韩区在线观看| 亚洲人成网站在线| 蜜臀av性久久久久蜜臀aⅴ四虎 | ...xxx性欧美| 免费在线一区观看| 成人国产电影网| 欧美酷刑日本凌虐凌虐| 日本一区二区视频在线观看| 亚洲成人先锋电影| 国产高清精品网站| 欧美理论在线播放| 国产婷婷色一区二区三区在线| 亚洲综合区在线| 国产高清亚洲一区| 69堂成人精品免费视频| 国产精品每日更新| 欧美aaaaa成人免费观看视频| av成人免费在线观看| 欧美zozozo| 亚洲电影一区二区| 成人永久免费视频| 日韩三级av在线播放| 一区二区成人在线观看| 国产精品一区二区久久精品爱涩|