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

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

?? fileview.cpp

?? File viewer under wince,list all files.
?? CPP
字號:
//======================================================================
// FileView - A Windows CE file viewer
//
// Written for the book Programming Windows CE
// Copyright (C) 2003 Douglas Boling
//======================================================================
#include <windows.h>				 // For all that Windows stuff
#include <commctrl.h>				 // Command bar includes
#include <commdlg.h>				 // Common dialog includes

#include "FileView.h"				 // Program-specific stuff

#define BUFFSIZE   16384

//----------------------------------------------------------------------
// Global data
//
const TCHAR szAppName[] = TEXT ("FileView");
extern TCHAR szViewerCls[];
HINSTANCE hInst;					 // Program instance handle

HANDLE g_hFile=INVALID_HANDLE_VALUE; // Handle to the opened file
PBYTE g_pBuff = 0;					 // Pointer to file data buffer 

// Message dispatch table for MainWindowProc
const struct decodeUINT MainMessages[] = {
	WM_CREATE, DoCreateMain,
	WM_SIZE, DoSizeMain,
	WM_COMMAND, DoCommandMain,
	WM_DESTROY, DoDestroyMain,
};
// Command message dispatch for MainWindowProc
const struct decodeCMD MainCommandItems[] = {
	IDM_OPEN, DoMainCommandOpen,
	IDM_EXIT, DoMainCommandExit,
	IDM_ABOUT, DoMainCommandAbout,
};
//======================================================================
// Program entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
					LPWSTR lpCmdLine, int nCmdShow) {
	HWND hwndMain;
	MSG msg;

	// Initialize this instance.
	hwndMain = InitInstance (hInstance, lpCmdLine, nCmdShow);
	if (hwndMain == 0) return 0x10;

	// Application message loop
	while (GetMessage (&msg, NULL, 0, 0)) {
		TranslateMessage (&msg);
		DispatchMessage (&msg);
	}
	// Instance cleanup
	return TermInstance (hInstance, msg.wParam);
}
//----------------------------------------------------------------------
// InitInstance - Instance initialization
// 
HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow){
	HWND hWnd;
	WNDCLASS wc;
	INITCOMMONCONTROLSEX icex;

#if defined(WIN32_PLATFORM_PSPC)
	// If Pocket PC, allow only one instance of the application.
	HWND hWnd = FindWindow (szAppName, NULL);
	if (hWnd) {
		SetForegroundWindow ((HWND)(((DWORD)hWnd) | 0x01));    
		return 0;
	}
#endif	  
	// Save program instance handle in global variable.
	hInst = hInstance;

	// Register application main window class.
	wc.style = 0;							  // Window style
	wc.lpfnWndProc = MainWndProc;			  // Callback function
	wc.cbClsExtra = 0;						  // Extra class data
	wc.cbWndExtra = 0;						  // Extra window data
	wc.hInstance = hInstance;				  // Owner handle
	wc.hIcon = NULL,						  // Application icon
	wc.hCursor = LoadCursor (NULL, IDC_ARROW);// Default cursor
	wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
	wc.lpszMenuName =  NULL;				  // Menu name
	wc.lpszClassName = szAppName;			  // Window class name
	if (RegisterClass (&wc) == 0) return 0;

	// Load the command bar common control class.
	icex.dwSize = sizeof (INITCOMMONCONTROLSEX);
	icex.dwICC = ICC_BAR_CLASSES;
	InitCommonControlsEx (&icex);

	// Create main window.
	hWnd = CreateWindow (szAppName, TEXT ("FileView"),
						 WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,
						 CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL,		   
						 hInstance, NULL);		  
	if (!IsWindow (hWnd)) return 0; // Fail code if window not created.

	// Standard show and update calls
	ShowWindow (hWnd, nCmdShow);
	UpdateWindow (hWnd);
	return hWnd;
}
//----------------------------------------------------------------------
// TermInstance - Program cleanup
//
int TermInstance (HINSTANCE hInstance, int nDefRC) {

	if (g_hFile != INVALID_HANDLE_VALUE)
		CloseHandle (g_hFile);				  // Close the opened file.
	if (g_pBuff)
		LocalFree (g_pBuff);				  // Free buffer.
	return nDefRC;
}
//======================================================================
// Message handling procedures for MainWindow
//----------------------------------------------------------------------
// MainWndProc - Callback function for application window.
//
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam, 
							  LPARAM lParam) {
	INT i;
	//
	// Search message list to see if we need to handle this
	// message.  If in list, call function.
	//
	for (i = 0; i < dim(MainMessages); i++) {
		if (wMsg == MainMessages[i].Code)
			return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
	}
	return DefWindowProc (hWnd, wMsg, wParam, lParam);
}
//----------------------------------------------------------------------
// DoCreateMain - Process WM_CREATE message for window.
//
LRESULT DoCreateMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
					  LPARAM lParam) {
	HWND hwndCB, hwndChild;
	LPCREATESTRUCT lpcs;

	// Convert lParam into pointer to create structure.
	lpcs = (LPCREATESTRUCT) lParam;

	// Create a minimal command bar that has only a menu and an 
	// exit button.
	hwndCB = CommandBar_Create (hInst, hWnd, IDC_CMDBAR);
	// Insert the menu.
	CommandBar_InsertMenubar (hwndCB, hInst, ID_MENU, 0);
	// Add exit button to command bar. 
	CommandBar_AddAdornments (hwndCB, 0, 0);

	hwndChild = CreateWindowEx (0,TEXT("edit"), TEXT(""), WS_VISIBLE | 
								WS_CHILD | ES_MULTILINE | WS_VSCROLL | 
								WS_HSCROLL, 0, 0, lpcs->cx, lpcs->cy, 
								hWnd, (HMENU)ID_VIEWER, hInst, 0);

	// Destroy frame if window not created.
	if (!IsWindow (hwndChild)) {
		DestroyWindow (hWnd);
		return 0;
	}
	// Allocate a buffer.
	g_pBuff = (PBYTE)LocalAlloc (LMEM_FIXED, BUFFSIZE);
	if (!g_pBuff) {
		MessageBox (NULL, TEXT ("Not enough memory"),
					TEXT ("Error"), MB_OK);
		return 0;
	}
	return 0;
}
//----------------------------------------------------------------------
// DoSizeMain - Process WM_SIZE message for window.
// 
LRESULT DoSizeMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam){
	RECT rect;

	// Adjust the size of the client rect to take into account
	// the command bar height.
	GetClientRect (hWnd, &rect);
	rect.top += CommandBar_Height (GetDlgItem (hWnd, IDC_CMDBAR));

	SetWindowPos (GetDlgItem (hWnd, ID_VIEWER), NULL, rect.left, 
				  rect.top, (rect.right - rect.left), 
				  rect.bottom - rect.top, SWP_NOZORDER);
	return 0;
}
//----------------------------------------------------------------------
// DoCommandMain - Process WM_COMMAND message for window.
// 
LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
					   LPARAM lParam) {
	WORD idItem, wNotifyCode;
	HWND hwndCtl;
	INT i;

	// Parse the parameters.
	idItem = (WORD) LOWORD (wParam);
	wNotifyCode = (WORD) HIWORD (wParam);
	hwndCtl = (HWND) lParam;

	// Call routine to handle control message.
	for (i = 0; i < dim(MainCommandItems); i++) {
		if (idItem == MainCommandItems[i].Code)
			return (*MainCommandItems[i].Fxn)(hWnd, idItem, hwndCtl, 
											  wNotifyCode);
	}
	return 0;
}
//----------------------------------------------------------------------
// DoDestroyMain - Process WM_DESTROY message for window.
//
LRESULT DoDestroyMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
					   LPARAM lParam) {
	PostQuitMessage (0);
	return 0;
}
//======================================================================
// Command handler routines
//----------------------------------------------------------------------
// DoMainCommandOpen - Process File Open command.
//
LPARAM DoMainCommandOpen (HWND hWnd, WORD idItem, HWND hwndCtl, 
						  WORD wNotifyCode) {
	TCHAR szFileName[MAX_PATH];
	HWND hwndViewer;
	DWORD cBytes;
	LPTSTR pXLateBuff = 0;
	int lFileSize, i;
	BOOL fUnicode = TRUE;
	HANDLE hFileTmp;

	hwndViewer = GetDlgItem (hWnd, ID_VIEWER);

	// Ask the user for the file name
	if (MyGetFileName (hWnd, szFileName, dim(szFileName)) == 0)
		return 0;

	// Open the file.
	hFileTmp = CreateFile (szFileName, GENERIC_READ,
						   FILE_SHARE_READ, NULL, OPEN_EXISTING, 
						   FILE_ATTRIBUTE_NORMAL, NULL);
	if (hFileTmp == INVALID_HANDLE_VALUE) {
		MessageBox (hWnd, TEXT("Couldn't open file"), szAppName, MB_OK);
		return 0;
	}
	if (g_hFile) {
		CloseHandle (g_hFile);
		// clear the edit box 
		SendMessage (hwndViewer, EM_SETSEL, 0, -1);
		SendMessage (hwndViewer, EM_REPLACESEL, 0, (LPARAM)TEXT(""));
	}
	g_hFile = hFileTmp;
	// Get the size of the file
	lFileSize = (int)GetFileSize (g_hFile, NULL);
	// See if file > 2Gig
	if (lFileSize < 0) return 0;

	if (!ReadFile (g_hFile, g_pBuff, BUFFSIZE-1, &cBytes, NULL))
		return 0;

	// Trivial check to see if file Unicode.  Assumes english 
	for (i = 0; (i < 16) && (i < (int)cBytes); i++) {
		if (*((TCHAR *)g_pBuff+i) > 0x100)
			fUnicode = FALSE;
	}
	if (!fUnicode) {
		pXLateBuff = (LPTSTR)LocalAlloc (LPTR, BUFFSIZE*sizeof (TCHAR));
		if (pXLateBuff == 0) return 0;
	}

	while (lFileSize > 0) {
		// Remove any selection
		SendMessage (hwndViewer, EM_SETSEL, (WPARAM)-1, 0);
		*(g_pBuff+cBytes) = 0;
		lFileSize -= cBytes;
		if (!fUnicode) {
			mbstowcs (pXLateBuff, (char *)g_pBuff, cBytes+1);
			SendMessage (hwndViewer, EM_REPLACESEL, 0, 
						 (LPARAM)pXLateBuff);
		} else
			SendMessage (hwndViewer, EM_REPLACESEL, 0, (LPARAM)g_pBuff);

		if (!ReadFile (g_hFile, g_pBuff, BUFFSIZE-1, &cBytes, NULL))
			break;
	}
	if (pXLateBuff) LocalFree ((HLOCAL)pXLateBuff);
	// Scroll the control to the top of the file
	SendMessage (hwndViewer, EM_SETSEL, 0, 0);
	SendMessage (hwndViewer, EM_SCROLLCARET, 0, 0);
	return 0;
}
//----------------------------------------------------------------------
// DoMainCommandExit - Process Program Exit command.
//
LPARAM DoMainCommandExit (HWND hWnd, WORD idItem, HWND hwndCtl, 
						  WORD wNotifyCode) {

	SendMessage (hWnd, WM_CLOSE, 0, 0);
	return 0;
}
//----------------------------------------------------------------------
// DoMainCommandAbout - Process the Help | About menu command.
//
LPARAM DoMainCommandAbout(HWND hWnd, WORD idItem, HWND hwndCtl, 
						  WORD wNotifyCode) {

	// Use DialogBox to create a modal dialog.
	DialogBox (hInst, TEXT ("aboutbox"), hWnd, AboutDlgProc);
	return 0;
}
//======================================================================
// About Dialog procedure
//
BOOL CALLBACK AboutDlgProc (HWND hWnd, UINT wMsg, WPARAM wParam, 
							LPARAM lParam) {
	switch (wMsg) {
		case WM_COMMAND:
			switch (LOWORD (wParam)) {
				case IDOK:
				case IDCANCEL:
					EndDialog (hWnd, 0);
					return TRUE;
			}
		break;
	}
	return FALSE;
}
//----------------------------------------------------------------------
// MyGetFileName - Returns a filename using the common dialog
//
INT MyGetFileName (HWND hWnd, LPTSTR szFileName, INT nMax) {
	OPENFILENAME of;
	const LPTSTR pszOpenFilter = TEXT ("All Documents (*.*)\0*.*\0\0");

	szFileName[0] = '\0';				  // Initial filename
	memset (&of, 0, sizeof (of));		  // Initial file open structure

	of.lStructSize = sizeof (of);
	of.hwndOwner = hWnd;
	of.lpstrFile = szFileName;
	of.nMaxFile = nMax;
	of.lpstrFilter = pszOpenFilter;
	of.Flags = 0;

	if (GetOpenFileName (&of))
		return lstrlen (szFileName);
	else
		return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频黄频大全不卡视频在线播放| 久久久久国色av免费看影院| 尤物视频一区二区| 91在线视频播放地址| 亚洲三级在线播放| 欧美视频完全免费看| 五月激情丁香一区二区三区| 欧美一区二区三区视频免费播放| 美女脱光内衣内裤视频久久网站 | 蜜臀av一区二区在线观看| 777午夜精品视频在线播放| 另类中文字幕网| 国产日韩v精品一区二区| 成人小视频在线| 亚洲人成亚洲人成在线观看图片 | 在线视频你懂得一区二区三区| 亚洲国产精品影院| 精品国产乱码久久久久久1区2区 | 国产精品一级在线| 最新高清无码专区| 欧美军同video69gay| 国内不卡的二区三区中文字幕| 欧美国产在线观看| 欧美三级日韩在线| 国产九色精品成人porny| 亚洲女子a中天字幕| 337p亚洲精品色噜噜狠狠| 国产在线精品不卡| 亚洲黄色免费电影| 亚洲大片免费看| 日韩女优视频免费观看| 波多野结衣亚洲| 日韩精品亚洲专区| 中文字幕永久在线不卡| 欧美一区二区三区性视频| 成人福利在线看| 日本成人在线不卡视频| 国产精品麻豆视频| 欧美一二三四在线| 一本久道久久综合中文字幕 | 日韩欧美一区在线| 99综合电影在线视频| 日韩av成人高清| 国产精品美女一区二区| 日韩一区二区三区视频在线 | 国模冰冰炮一区二区| 亚洲黄色录像片| 国产人成亚洲第一网站在线播放| 欧美日韩亚洲综合在线| 99久久亚洲一区二区三区青草| 老司机午夜精品| 亚洲国产精品欧美一二99| 中文字幕av不卡| 欧美v国产在线一区二区三区| 欧美亚洲国产一区二区三区va| 成人一区二区三区视频在线观看| 免费日韩伦理电影| 亚洲电影一级黄| 亚洲乱码一区二区三区在线观看| 国产日韩精品一区二区三区| 日韩亚洲欧美成人一区| 欧美日韩免费视频| 日本精品免费观看高清观看| 成人一级片网址| 国产精品夜夜嗨| 激情综合网av| 激情欧美日韩一区二区| 蜜桃视频一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲国产精品一区二区久久| 一区二区在线电影| 亚洲欧美色一区| 日韩一区中文字幕| 亚洲日本一区二区| 一区二区在线观看不卡| 亚洲激情成人在线| 亚洲一区二区av在线| 亚洲自拍偷拍av| 亚洲二区视频在线| 日韩精品视频网站| 欧美aⅴ一区二区三区视频| 天堂av在线一区| 日韩精品国产精品| 久久超碰97人人做人人爱| 久久精品久久久精品美女| 老鸭窝一区二区久久精品| 激情欧美一区二区| 国产精品69久久久久水密桃 | 国产欧美视频一区二区| 久久先锋影音av| 26uuu国产一区二区三区 | 国产日韩欧美麻豆| 国产精品看片你懂得| 中文字幕亚洲在| 亚洲一区二区欧美日韩| 婷婷开心激情综合| 美国毛片一区二区三区| 国产一区欧美日韩| 99精品欧美一区二区三区综合在线| 99精品视频中文字幕| 精品视频在线免费看| 欧美精品久久久久久久多人混战| 7777精品伊人久久久大香线蕉超级流畅 | 7777精品伊人久久久大香线蕉| 3atv在线一区二区三区| 久久久一区二区三区| 亚洲欧美一区二区视频| 亚洲成va人在线观看| 蜜臀av一区二区| 成人av资源网站| 欧美高清视频www夜色资源网| 日韩欧美成人一区| 国产精品久久久久久久午夜片| 一区二区三区欧美亚洲| 激情久久五月天| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩国产中文| 欧美激情中文不卡| 日日夜夜一区二区| 成人黄页毛片网站| 日韩一区二区三区电影在线观看| 日本一区二区电影| 日韩激情视频网站| 99精品国产视频| 日韩一区二区麻豆国产| 国产精品久久久久永久免费观看 | 午夜精品福利在线| 床上的激情91.| 91精品国产综合久久精品| 欧美国产精品中文字幕| 日韩精品乱码av一区二区| www.视频一区| 日韩欧美另类在线| 亚洲美女淫视频| 国产精品自在在线| 91麻豆精品国产91久久久使用方法 | 亚洲国产精品一区二区久久| 国产精品亚洲人在线观看| 欧美日韩一本到| 国产精品久久久久影院老司| 久久99国产精品免费| 欧美在线看片a免费观看| 欧美国产日韩精品免费观看| 蜜臀va亚洲va欧美va天堂| 色吧成人激情小说| 国产精品私房写真福利视频| 欧美日韩高清在线| 1000部国产精品成人观看| 国产一区免费电影| 欧美变态凌虐bdsm| 日韩中文字幕亚洲一区二区va在线| 96av麻豆蜜桃一区二区| 中文在线免费一区三区高中清不卡| 蜜桃视频在线一区| 91麻豆精品国产综合久久久久久| 一区二区三区不卡视频| 99久久国产综合精品女不卡| 日本一区二区动态图| 国产激情一区二区三区桃花岛亚洲| 欧美一级黄色片| 午夜伦欧美伦电影理论片| 欧美羞羞免费网站| 亚洲美女偷拍久久| 色婷婷精品久久二区二区蜜臂av| 久久久无码精品亚洲日韩按摩| 久久99国产精品免费| 日韩欧美视频一区| 麻豆国产欧美日韩综合精品二区| 欧美日本视频在线| 日韩不卡在线观看日韩不卡视频| 欧洲日韩一区二区三区| 亚洲一区电影777| 欧洲国内综合视频| 午夜精品久久久| 91精品国产91久久综合桃花| 日本不卡1234视频| 欧美α欧美αv大片| 国产麻豆日韩欧美久久| 久久精品免费在线观看| 高清不卡在线观看| 国产精品无码永久免费888| 不卡的电影网站| 亚洲另类春色校园小说| 欧美吻胸吃奶大尺度电影| 日产国产欧美视频一区精品 | 九九视频精品免费| 国产日本亚洲高清| 99精品久久久久久| 亚洲午夜影视影院在线观看| 欧美一区二区三区在| 精品一区中文字幕| 国产精品网曝门| 91精品福利视频| 日本美女一区二区三区| 久久综合色综合88| 99久久久久久99| 午夜成人免费视频| 久久免费看少妇高潮| 色综合久久久网| 秋霞影院一区二区|