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

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

?? shutils.cpp

?? 該代碼壓縮包只為需要研究CE下的任務管理器的實現而提供的。某些通用的頭文件沒有包含在其中
?? CPP
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*---------------------------------------------------------------------------*\
 *
 * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
 * 
 *
 *  file:  SHUTILS.CPP
 *  purpose: Utility functions used by sample shell
 *
\*---------------------------------------------------------------------------*/

#include <windows.h>
#include <sipapi.h>
#include "shellapi.h"
#include "commdlg.h"

typedef BOOL (WINAPI* LPFNSIP)(SIPINFO*);

BOOL DoExec(HWND hwndParent, LPCTSTR lpszApp, LPCTSTR lpszArgs)
{
	BOOL fRet;
	SHELLEXECUTEINFO sei;
	
	// Try to execute the thing. If it fails, ShellExecuteEx puts up the error msg
    memset(&sei, 0, sizeof(sei));
	sei.cbSize = sizeof(sei);
    sei.hwnd = hwndParent;
	sei.lpFile = lpszApp;
	sei.lpParameters = lpszArgs;
	sei.lpDirectory = NULL;
	sei.nShow = SW_SHOWNORMAL;

	fRet = ShellExecuteEx(&sei);
	DEBUGMSG(!fRet, (L"Taskman: ShellExecuteEx(%s, %s) FAILED GLE=%d\r\n", lpszApp, lpszArgs, GetLastError()));
	return fRet;
}

//
// This function tries to center a window on screen, taking into account 
// whether there is a SIP (soft input panel, i.e. an on-screen keyboard)
// on screen or not. If your device doesn't support a SIP, you could
// considerably simplify this. 
//
// We use this initially on creating the window. If we have a SIP then 
// we also call this whenever the SIP state changes. But to avoid excessive 
// jumping around of the window, we re-center when a SIP comes up (basically 
// trying to move out of SIP's way), but we leave it alone when the 
// SIP goes down.
// 
BOOL CenterWindowSIPAware(HWND hwnd, BOOL fInitial)
{
    SIPINFO si;
	RECT    rcWnd;
    RECT    rcWorkArea;
    int     cx, cy;
    LPFNSIP pSipGetInfo;
    HINSTANCE hinst = NULL;

    // Get the size of window
    GetWindowRect(hwnd, &rcWnd);

	// Get the size of SIP-less area OR if no SIP, then screen workarea
	memset(&si, 0, sizeof(SIPINFO));
    si.cbSize = sizeof(SIPINFO);

    if( (hinst = LoadLibrary(L"coredll.dll")) &&
        (pSipGetInfo = (LPFNSIP)GetProcAddress(hinst, TEXT("SipGetInfo"))) &&
		pSipGetInfo(&si) ) {
    	// we have a SIP
		rcWorkArea = si.rcVisibleDesktop;
    } else {
    	// either no SIP APIs on device, or SIP not operative
	    SystemParametersInfo(SPI_GETWORKAREA, FALSE, &rcWorkArea, 0);
	}
	if(hinst) FreeLibrary(hinst);

	// if we're positioning after a INICHANGE, then only do something on SIP-up, not SIP-down
	if(!fInitial && !(si.fdwFlags & SIPF_ON))
		return FALSE;

	// Calc space left on each side (may be negative is window is too big)
    cx = ((rcWorkArea.right - rcWorkArea.left) - (rcWnd.right - rcWnd.left))/2;
    cy = ((rcWorkArea.bottom - rcWorkArea.top) - (rcWnd.bottom - rcWnd.top))/2;

	DEBUGMSG(1, (L"VisibleRect=(top=%d, bottom=%d, left=%d, right=%d) Work=(top=%d, bottom=%d, left=%d, right=%d) Wnd=(top=%d, bottom=%d, left=%d, right=%d) cx=%d cy=%d\r\n",
		si.rcVisibleDesktop.top, si.rcVisibleDesktop.bottom, si.rcVisibleDesktop.left, si.rcVisibleDesktop.right,
		rcWorkArea.top, rcWorkArea.bottom, rcWorkArea.left, rcWorkArea.right,
		rcWnd.top, rcWnd.bottom, rcWnd.left, rcWnd.right, cx, cy));

	// If window is too big
	// if X is negative reset to 0 (so we fall off right edge only, not both)
	// if Y is negative reset to 0 (so we fall off bottom only, not top & bottom)
	if(cx < 0) cx = 0;
	if(cy < 0) cy = 0;

	// Do the actual window-move
    return SetWindowPos(hwnd, NULL, rcWorkArea.left+cx, rcWorkArea.top+cy, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
} 

// 
// Some useful filename & path-parsing functions
//

#define IS_SPACE(x) ( ((x) == TEXT(' ')) || ((x) == TEXT('\t')) )
void WINAPI PathRemoveBlanks(LPTSTR lpszString)
{
    LPTSTR lpszPosn = lpszString;

	/// strip leading blanks
    while(IS_SPACE(*lpszPosn)) {
        lpszPosn++;
    }
    if (lpszPosn != lpszString)
        lstrcpy(lpszString, lpszPosn);

    // strip trailing blanks
	lpszPosn = lpszString + lstrlen(lpszString);
	while (lpszPosn > lpszString && IS_SPACE(*(lpszPosn - 1))) {
		lpszPosn--;
	}
	*lpszPosn = TEXT('\0');
}

// returns a pointer to the arguments in a cmdline string
// or NULL if nor args
// Note: Assumes that spaces in LFNs are quoted

LPTSTR WINAPI PathGetArgs(LPCTSTR pszPath)
{
	BOOL fInQuotes = FALSE;
    if (!pszPath)
		return NULL;

	while (*pszPath)
    {
		if (*pszPath == TEXT('"')) {
			fInQuotes = !fInQuotes;
		} else if (!fInQuotes && IS_SPACE(*pszPath)) {
			pszPath++;
			while (IS_SPACE(*pszPath)) {
				pszPath++;
			}
			break;
		}
		pszPath++;
	}
    return (LPTSTR)pszPath;
}

// removes args from a cmdline
void WINAPI PathRemoveArgs(LPTSTR pszPath)
{
	LPTSTR pArgs = PathGetArgs(pszPath);
	if (pArgs && *pArgs) {
		while (pArgs > pszPath && IS_SPACE(*(pArgs-1))) {
			pArgs--;
		}
		*pArgs = TEXT('\0');
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产自产在线| 成人中文字幕在线| 国产午夜精品福利| 91行情网站电视在线观看高清版| 日本欧美肥老太交大片| 最新成人av在线| 日韩精品中文字幕在线一区| 91影视在线播放| 韩国午夜理伦三级不卡影院| 亚洲国产精品久久艾草纯爱| 欧美国产一区视频在线观看| 91精品国产麻豆国产自产在线| 99精品久久99久久久久| 美女网站一区二区| 亚洲一区二区欧美日韩| 中文欧美字幕免费| 欧美第一区第二区| 欧美日韩国产精品自在自线| 成人精品一区二区三区四区| 免费观看日韩电影| 久久综合久色欧美综合狠狠| 欧美日韩不卡视频| 亚洲精品福利视频网站| 在线看一区二区| 久久精品国产久精国产| 亚洲电影你懂得| 中文字幕一区二区三区在线不卡| 精品免费视频一区二区| 91麻豆精品国产自产在线 | 精品在线亚洲视频| 视频精品一区二区| 亚洲国产精品久久久久秋霞影院 | 欧洲日韩一区二区三区| 成人国产一区二区三区精品| 精品一区二区三区av| 奇米888四色在线精品| 亚洲123区在线观看| 亚洲国产视频直播| 亚洲午夜免费视频| 亚洲一二三四在线观看| 一区二区三区在线免费视频| 国产精品一区二区在线播放| 国产精品久久久久影院| 在线视频国内自拍亚洲视频| 99久久99精品久久久久久| 成人激情免费网站| 成人的网站免费观看| 成人aa视频在线观看| 成人不卡免费av| 91丝袜呻吟高潮美腿白嫩在线观看| av资源网一区| 91丨九色丨蝌蚪富婆spa| 色婷婷综合久色| 欧美性生活大片视频| 欧美日韩美少妇| 日韩一二三区不卡| 欧美本精品男人aⅴ天堂| 精品国精品自拍自在线| 国产午夜精品一区二区三区四区| 国产欧美久久久精品影院| 国产精品网站在线| 日韩理论电影院| 亚洲一区二区视频在线| 五月婷婷综合网| 精品在线你懂的| 成人美女在线观看| 91黄色免费网站| 欧美丰满少妇xxxxx高潮对白| 免播放器亚洲一区| 一区二区三区在线影院| 日日夜夜免费精品| 水蜜桃久久夜色精品一区的特点| 青青草97国产精品免费观看| 国内久久精品视频| 97久久精品人人做人人爽50路| 日本韩国精品在线| 欧美成人一区二区三区片免费 | 蜜桃视频一区二区| 国产高清不卡二三区| 色婷婷av一区二区三区之一色屋| 欧美男男青年gay1069videost| 日韩精品一区二区三区三区免费| 中日韩av电影| 丝袜亚洲另类欧美| 大陆成人av片| 欧美高清视频一二三区| 国产日韩欧美高清在线| 亚洲图片欧美色图| 国产99精品国产| 欧美色图免费看| 日本一区二区三区高清不卡| 亚洲观看高清完整版在线观看 | 欧美艳星brazzers| 精品久久久久香蕉网| 亚洲欧美日韩一区| 狠狠色综合日日| 欧洲精品在线观看| 久久夜色精品国产欧美乱极品| 亚洲精品视频观看| 国产精品小仙女| 69久久夜色精品国产69蝌蚪网| 亚洲国产高清在线| 裸体健美xxxx欧美裸体表演| a级高清视频欧美日韩| 欧美www视频| 亚洲高清视频的网址| 成人夜色视频网站在线观看| 在线成人免费视频| 亚洲欧洲性图库| 久久69国产一区二区蜜臀| 色婷婷久久一区二区三区麻豆| 精品免费一区二区三区| 亚洲国产wwwccc36天堂| 成人av电影免费在线播放| 欧美一级专区免费大片| 一区二区不卡在线视频 午夜欧美不卡在| 韩国女主播成人在线观看| 欧美亚洲国产一区二区三区| 国产精品久久久久四虎| 精品一区免费av| 777午夜精品免费视频| 亚洲乱码中文字幕综合| 成人av午夜电影| 久久精品视频一区| 老鸭窝一区二区久久精品| 欧美亚洲动漫制服丝袜| 国产精品国产三级国产普通话蜜臀| 激情文学综合网| 日韩免费一区二区三区在线播放| 亚洲成人一区二区| 色乱码一区二区三区88| 国产精品国产精品国产专区不蜜| 捆绑调教一区二区三区| 日韩一级片在线播放| 视频一区欧美日韩| 精品视频1区2区3区| 亚洲一区二区在线观看视频| 91小视频在线| 最新国产成人在线观看| 99re热这里只有精品免费视频| 欧美—级在线免费片| 国产激情一区二区三区| 久久久久久久久久久黄色| 国产高清亚洲一区| 国产亚洲欧美色| 成人免费毛片app| 中文字幕av不卡| www.激情成人| 中文字幕一区二区三中文字幕| 成人午夜视频免费看| 国产精品毛片无遮挡高清| 成人ar影院免费观看视频| 中文字幕日韩精品一区| 一本久道久久综合中文字幕| 一区二区三区中文在线| 欧美日韩另类一区| 男男gaygay亚洲| 精品免费一区二区三区| 国产精品18久久久久久久久久久久| 久久久99久久精品欧美| 成人一级片在线观看| 自拍偷在线精品自拍偷无码专区| 色综合咪咪久久| 五月综合激情网| 精品成a人在线观看| 成人午夜在线免费| 一区二区三区欧美久久| 欧美老女人在线| 国产在线精品视频| 国产精品国产三级国产三级人妇 | 亚洲三级在线看| 欧美无砖专区一中文字| 免费观看久久久4p| 久久久激情视频| 99精品久久免费看蜜臀剧情介绍| 亚洲一区二区三区在线看| 欧美一级爆毛片| 成人av片在线观看| 亚洲丶国产丶欧美一区二区三区| 日韩欧美成人午夜| 国产91丝袜在线18| 午夜一区二区三区在线观看| 日韩美女在线视频| 色婷婷综合在线| 久久成人免费电影| 国产精品欧美久久久久无广告| 91电影在线观看| 国内精品视频666| 亚洲日本在线a| 欧美成人精品高清在线播放| 99久久精品99国产精品| 麻豆精品精品国产自在97香蕉| 国产欧美视频一区二区三区| 欧美日韩在线播放一区| 国产在线播放一区三区四| 一区二区三区在线不卡| 久久人人爽人人爽| 欧美日韩成人高清| 国产91色综合久久免费分享| 日韩av一区二区三区四区|