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

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

?? mcbmain.c

?? brew平臺下解析XML的
?? C
?? 第 1 頁 / 共 5 頁
字號:
		}
       /*
        *********************************************************************
        * If we failed to load the file.
        *********************************************************************
        */
        else 
		{	
			TreeView_DeleteAllItems(hWndTree);

			McbSETSTATUS(hWnd, _T("Failed to read the file"), 0);
		}
	}

	return nResult;

}/* McbGetFileNameAndLoadXML */

/**
 ****************************************************************************
 * <P> Obtain a filename from the punter and attempt to save XML into it. 
 * </P>
 *
 * @methodName  McbGetFileNameAndSaveXML
 *
 * @param       lpszXML
 * @param       hWnd		
 * @param       hWndRich		
 * @param       hWndStatus		
 * @param       *pOptions		
 *
 * @return      int
 *
 * @exception   none
 *
 * @author      Martyn C Brown
 *
 * @changeHistory  
 *	4th February  	2002	 - 	(V1.0) Creation (MCB)
 ****************************************************************************
 */
int McbGetFileNameAndSaveXML(LPTSTR lpszXML, HWND hWnd, HWND hWndRich, 
							HWND hWndStatus, McbOptions *pOptions)
{
	int nResult = FALSE;
	
	TCHAR szFile[_MAX_PATH+1];
	TCHAR szFileTitle[_MAX_PATH+1];
	TCHAR szStartDir[_MAX_PATH+1];
	TCHAR szDrive[_MAX_DRIVE+1];   
	TCHAR szDir[_MAX_DIR+1];
	TCHAR szExt[_MAX_EXT+1];   
	TCHAR szFname[_MAX_FNAME+1];

	OPENFILENAME openName;

	if (lpszXML)
	{
        openName.lStructSize = sizeof(OPENFILENAME);
        openName.hwndOwner = hWnd;
        openName.hInstance = g_hInst;

        openName.lpstrFilter = _T("XML Files (*.xml)\0*.xml\0Text Files (*.txt)")
            _T("\0*.txt\0All Files (*.*)\0*.*\0\0");

        openName.lpstrCustomFilter = NULL;
        openName.nMaxCustFilter = 0;
        openName.nFilterIndex = pOptions->nFilterIndex;
        openName.lpstrFile = szFile;
        openName.nMaxFile = _MAX_PATH;
        openName.lpstrFileTitle = szFileTitle;
        openName.nMaxFileTitle = _MAX_PATH;
        openName.lpstrInitialDir = NULL;
        openName.lpstrTitle = _T("Save XML file");
        openName.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | 
            OFN_NOREADONLYRETURN | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST;
        openName.nFileOffset = 0;
        openName.nFileExtension = 0;
        openName.lpstrDefExt = NULL;
        openName.lCustData = 0;
        openName.lpfnHook = NULL;
        openName.lpTemplateName = NULL;

        if (*pOptions->szLastFile)
        {
            _tsplitpath(pOptions->szLastFile, szDrive, szDir, szFname, szExt);

            _tcscpy(szStartDir, szDrive);
            _tcscpy(szStartDir + _tcslen(szDrive), szDir);
        
            openName.lpstrInitialDir = szStartDir;

            _tcscpy(szFile, szFname);
            _tcscpy(szFile + _tcslen(szFname), szExt);
        }
        else
        {
            szFile[0] = 0;
        }

       /*
        *********************************************************************
        * Obtain the file name and attempt to save it
        *********************************************************************
        */
        if (GetSaveFileName(&openName))
        {
            if (McbSaveFile(szFile, lpszXML))
            {
               /*
                *************************************************************
                * Cache the options.
                *************************************************************
                */
				pOptions->nFilterIndex = openName.nFilterIndex;
				_tcscpy(pOptions->szLastFile, szFile);

                McbSETSTATUS(hWnd, _T("Saved"), 0);
            }
            else
            {
                McbSETSTATUS(hWnd, _T("Failed to write to file"), 0);
            }
        }
	}

	return nResult;

}/* McbGetFileNameAndSaveXML */

/**
 ****************************************************************************
 * <P> Processes messages for the main window. </P>
 *
 * @methodName  CALLBACK McbWndProc
 *
 * @param       hWnd		
 * @param       message		
 * @param       wParam		
 * @param       lParam		
 *
 * @return      LRESULT
 *
 * @exception   none
 *
 * @author      Martyn C Brown
 *
 * @changeHistory  
 *	3rd February  	2002	 - 	(V1.0) Creation (MCB)
 ****************************************************************************
 */
LRESULT CALLBACK McbWndProc(HWND hWnd, UINT msg, WPARAM wParam, 
						   LPARAM lParam)
{
	static HWND			hWndRich = NULL;		/* rich edit */
	static HWND			hWndStatus = NULL;		/* status bar */
	static HWND			hWndTree = NULL;		/* tree control */
	static HFONT		hFontArial = NULL;		/* main font */
	static HINSTANCE	hInstRichEdit = NULL;	/* rich edit dll */
	static HIMAGELIST	hImages = NULL;			/* Image list for the tree */
	static BOOL			bTreeUpdated = FALSE;

	int				wmId;
	int				wmEvent;
	PAINTSTRUCT		ps;
	HDC				hDC;
	RECT			rcWnd;
	RECT			rcTemp;
	int				nInit;
	DWORD			dwStyle;
	DWORD			dwExStyle;
	int				nWndHeight;
	int				nWndWidth;
	int				nX;
	TEXTMETRIC		txtMet;
	BOOL			bRedraw;
	LOGFONT			logFont;
	LPTSTR			lpszText;
	LPTSTR			lpszText2;
	LPTSTR			lpszFile;
	NMHDR			*pNmh;
	NM_TREEVIEW		*pNmtv;
	TV_ITEM			tvItem;
	CHARRANGE		range;
	HDROP			hDrop;
	UINT			cch;

	switch (msg) 
	{
       /*
        *********************************************************************
        * The window procedure receives this message after the window is 
		* created, but before the window becomes visible. The message is sent 
		* before the CreateWindowEx or CreateWindow function returns.
		* Within here we are going to create all the required resources.
        *********************************************************************
        */
		case WM_CREATE:
			{
				nInit = FALSE;

               /*
                *************************************************************
                * Load options from file.
                *************************************************************
                */
				McbGetOptionsFileName(g_szOptFile);
				McbArchiveOptions(g_szOptFile, &g_options, FALSE);

               /*
                *************************************************************
                * Load the DLL which services common controls for the tree
				* control
                *************************************************************
                */
                InitCommonControls();

               /*
                *************************************************************
                * Create the tree view control
                *************************************************************
                */
				dwStyle = WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASBUTTONS 
					| TVS_HASLINES | TVS_LINESATROOT;

				dwExStyle = 0;

                hWndTree = CreateWindowEx(dwExStyle, WC_TREEVIEW, NULL, 
					dwStyle, 0, 0, 0, 0, hWnd, (HMENU)IDC_TREE, g_hInst, 
					NULL);

				if (hWndTree)
				{
                   /*
                    *********************************************************
                    * Create the status bar
                    *********************************************************
                    */
					dwStyle = WS_CHILD | WS_VISIBLE;

                    hWndStatus = CreateStatusWindow(dwStyle, NULL, hWnd, 0);

					if (hWndStatus)
					{
                       /*
                        *****************************************************
                        * Load the dll for the rich edit 
                        *****************************************************
                        */
#define McbRICHEDIT	_T("RICHED32.DLL")
						hInstRichEdit = LoadLibrary(McbRICHEDIT);

                       /*
                        *****************************************************
                        * Create rich edit box
                        *****************************************************
                        */
                        dwStyle = WS_VISIBLE | WS_CHILD | WS_BORDER | 
							WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL |
							ES_MULTILINE;
 
                        hWndRich = CreateWindowEx(dwExStyle, _T("RICHEDIT"), 
							NULL, dwStyle, 0, 0, 0, 0, hWnd, 
							(HMENU)IDC_RICHEDIT, g_hInst, NULL);

						if (hWndRich)
						{
                           /*
                            *************************************************
                            * Enable drag and drop notifications.
                            *************************************************
                            */
							DragAcceptFiles(hWnd, TRUE);

                           /*
                            *************************************************
                            * Create font
                            *************************************************
                            */
                            hDC = GetDC(hWnd);
                            GetTextMetrics(hDC, &txtMet);
                            ReleaseDC(hWnd, hDC);

							logFont.lfHeight =			txtMet.tmHeight;	   
							logFont.lfWidth =			
								txtMet.tmAveCharWidth;  
							logFont.lfEscapement =		0;                      
							logFont.lfOrientation =		0;                      
							logFont.lfWeight =			FW_NORMAL;              
							logFont.lfItalic =			txtMet.tmItalic;        
							logFont.lfUnderline =		txtMet.tmUnderlined;    
							logFont.lfStrikeOut =		txtMet.tmStruckOut;     
							logFont.lfCharSet =			txtMet.tmCharSet;       
							logFont.lfOutPrecision =	OUT_DEFAULT_PRECIS;     
							logFont.lfClipPrecision =	CLIP_DEFAULT_PRECIS;    
							logFont.lfQuality =			DEFAULT_QUALITY;        
							logFont.lfPitchAndFamily =	
								txtMet.tmPitchAndFamily;

							_tcscpy(logFont.lfFaceName, _T("Arial"));

                            hFontArial = CreateFontIndirect(&logFont);                

							if (hFontArial)
							{                    
                               /*
                                *********************************************
                                * Associate the font with the edit window.
                                *********************************************
                                */
                                bRedraw = FALSE;

                                SendMessage(hWndRich, WM_SETFONT, 
									(WPARAM)hFontArial, 
									MAKELPARAM(bRedraw, 0));  

                               /*
                                *********************************************
                                * Attempt to load the last file
                                *********************************************
                                */
								lpszText = McbLoadFile(g_options.szLastFile);

								if (lpszText)
								{
									SetWindowText(hWndRich, lpszText);

									if (McbParseXMLIntoTree(hWndRich, 
										hWndStatus, hWndTree, lpszText))
									{
										bTreeUpdated = TRUE;
									}

									free(lpszText);
								}
								
                               /*
                                *********************************************
                                * Create the image list from the bitmap
                                *********************************************
                                */
								hImages = ImageList_LoadImage(g_hInst, 
									MAKEINTRESOURCE(IDB_BMPIMAGELIST),
									12, 5, RGB(0, 0, 0), IMAGE_BITMAP, 
									LR_DEFAULTCOLOR);

								if (hImages)
								{
                                   /*
                                    *****************************************
                                    * Associate the image list with the 
                                    * tree-view control. 
                                    *****************************************
                                    */
                                    TreeView_SetImageList(hWndTree, hImages, 
										TVSIL_NORMAL);
                                    
                                    nInit = TRUE;
								}
							}
						}
					}
				}

				if (nInit == FALSE)
				{
                   /*
                    *********************************************************
                    * Terminate by sending a destroy message back to self.
                    *********************************************************
                    */
                    PostMessage(hWnd, WM_DESTROY, 0, 0);
				}
			}
			break;

       /*
        *********************************************************************
        * Window resize message.  Scale the controls and graphics here.
        *********************************************************************
        */
		case WM_SIZE:
			{
               /*
                *************************************************************
                * Obtain the status window sizes
                *************************************************************
                */
				GetClientRect(hWndStatus, &rcTemp);

               /*
                *************************************************************
                * Obtain the size of the main window, allowing for the size
				* of the status window
                *************************************************************
                */
				GetClientRect(hWnd, &rcWnd);

				rcWnd.bottom -= rcTemp.bottom;

				nWndHeight = rcWnd.bottom - rcWnd.top;
				nWndWidth = rcWnd.right - rcWnd.left;

               /*
                *************************************************************
                * Resize the windows
                *************************************************************
                */
				MoveWindow(hWndStatus, 0, nWndHeight, nWndWidth, rcTemp.top, 
					TRUE);

				if (g_options.bPanelsVertical) 
				{
					nX = (int)nWndWidth / 2;

					MoveWindow(hWndRich, 0, 0, nX, nWndHeight, TRUE);
					MoveWindow(hWndTree, nX, 0, nWndWidth - nX, nWndHeight, 
						TRUE);
				}
				else
				{
					nX = (int)nWndHeight / 2;

					MoveWindow(hWndRich, 0, 0, nWndWidth, nX, TRUE);
					MoveWindow(hWndTree, 0, nX, nWndWidth, nWndHeight - nX, 
						TRUE);
				}

				return DefWindowProc(hWnd, msg, wParam, lParam);
			}

       /*
        *********************************************************************
        * Drag and drop messages
        *********************************************************************
        */
		case WM_DROPFILES:
			{
				hDrop = (HDROP)wParam;

               /*
                *************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本高清dvd不卡在线观看| 成人91在线观看| 韩国一区二区三区| 国产一区免费电影| 成人app网站| 欧美日韩成人综合| 中文字幕av一区二区三区| 国产精品伦一区二区三级视频| 亚洲精品一二三| 美日韩一级片在线观看| 99麻豆久久久国产精品免费| 日本电影欧美片| 日韩美一区二区三区| 亚洲黄色av一区| 精品午夜一区二区三区在线观看| 国产成人午夜99999| 欧美日韩视频第一区| 亚洲天堂免费在线观看视频| 精品亚洲aⅴ乱码一区二区三区| 成人福利视频在线| 欧美mv日韩mv国产网站| 午夜av区久久| 欧美日韩视频在线观看一区二区三区 | 极品少妇xxxx精品少妇| 色噜噜狠狠成人中文综合| 26uuu精品一区二区三区四区在线| 亚洲女同一区二区| 成人网男人的天堂| 亚洲精品一区二区三区蜜桃下载| 午夜视频一区二区三区| 色婷婷狠狠综合| 一区二区三区国产精华| 成人午夜私人影院| 欧美激情艳妇裸体舞| av网站一区二区三区| 亚洲视频在线观看一区| 国产suv精品一区二区6| 中文一区二区在线观看| 亚洲一区二区三区国产| 777欧美精品| 久久精品久久久精品美女| 欧美精品久久久久久久久老牛影院| 亚洲自拍偷拍九九九| 欧美性感一区二区三区| 日本欧美一区二区三区乱码| 久久综合网色—综合色88| 成人av电影观看| 亚洲成av人影院| 久久影视一区二区| 91在线观看免费视频| 日本女人一区二区三区| 精品国产污污免费网站入口 | 884aa四虎影成人精品一区| 九九九精品视频| 亚洲欧美日韩久久| 日韩美女视频在线| 色婷婷久久久亚洲一区二区三区 | 精品国产髙清在线看国产毛片| 成人小视频在线| 麻豆精品久久久| 亚洲一区二区三区影院| 中文文精品字幕一区二区| 欧美精品一卡二卡| 91免费在线视频观看| 国产精品自拍在线| 裸体一区二区三区| 一区二区三区视频在线观看| 久久午夜国产精品| 欧美一区二区三区婷婷月色| 在线观看亚洲专区| 99久久免费国产| 国产成人三级在线观看| 麻豆国产欧美日韩综合精品二区| 午夜精品视频一区| 亚洲午夜久久久久久久久久久| 亚洲国产精品精华液ab| 亚洲国产精品成人综合色在线婷婷| 久久夜色精品国产噜噜av | 日本vs亚洲vs韩国一区三区 | 欧美亚洲自拍偷拍| 欧美午夜精品久久久久久超碰| 99精品偷自拍| 欧美怡红院视频| 欧美一区二区视频网站| 亚洲精品一区二区三区影院| 久久久久88色偷偷免费| 国产精品乱人伦| 又紧又大又爽精品一区二区| 水野朝阳av一区二区三区| 蜜臀av性久久久久蜜臀av麻豆 | 精品黑人一区二区三区久久| 精品乱人伦小说| 中文字幕一区在线观看| 亚洲福利国产精品| 久久国内精品视频| 91亚洲资源网| 欧美一级xxx| 中文字幕欧美一| 天天影视涩香欲综合网| 国产精品456露脸| 欧美日韩久久久| 国产婷婷色一区二区三区在线| 国产精品久久久久婷婷二区次| 亚洲精品一卡二卡| 国产精品一区二区在线看| 91一区一区三区| 国产日韩欧美在线一区| 亚瑟在线精品视频| 99精品欧美一区二区蜜桃免费| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 精品美女一区二区| 亚洲一区二区三区四区中文字幕| 丰满少妇久久久久久久| 日韩欧美电影一二三| 日韩成人一区二区| 欧美色网一区二区| 亚洲精品欧美激情| 91色视频在线| 日韩伦理av电影| 成人在线视频一区| 国产三级精品在线| 国产成人av福利| 国产欧美一区二区三区在线看蜜臀| 美女视频免费一区| 精品久久99ma| 国产精品一区二区在线看| 精品国产露脸精彩对白| 国产一区二区成人久久免费影院 | 另类小说图片综合网| 日韩欧美专区在线| 精品在线免费视频| 久久婷婷国产综合精品青草| 国产成人在线视频播放| 国产精品视频观看| 91蜜桃免费观看视频| 亚洲一区二区三区不卡国产欧美| 在线播放中文一区| 精品一区二区在线播放| 国产精品国产精品国产专区不蜜| 不卡的电视剧免费网站有什么| 亚洲欧美日韩国产一区二区三区| 欧美日韩国产高清一区二区| 久久不见久久见免费视频7| 国产欧美日韩在线看| 在线精品观看国产| 丰满少妇在线播放bd日韩电影| 亚洲综合图片区| 国产精品天美传媒| 欧美精品电影在线播放| 91亚洲精华国产精华精华液| 日本不卡高清视频| 有码一区二区三区| 中文字幕欧美激情| 精品少妇一区二区三区| 色成年激情久久综合| 国产精品456露脸| 免费在线观看成人| 日韩精品一区二区三区蜜臀| 91农村精品一区二区在线| 免费在线一区观看| 国产日韩影视精品| 欧美xxxxx牲另类人与| 一本久久a久久精品亚洲| 成人一区在线观看| 国产91精品欧美| 国产伦精一区二区三区| 国产乱码精品一区二区三区忘忧草 | 亚洲国产综合视频在线观看| 亚洲自拍另类综合| 亚洲一区二区视频在线观看| 亚洲色图欧美在线| 中文字幕国产一区| 国产精品美女久久久久久2018 | av不卡在线播放| 国产美女精品人人做人人爽| 国产中文字幕精品| 国产麻豆视频一区二区| 国产成人在线影院| 91免费版在线看| 欧美日韩国产欧美日美国产精品| 91久久奴性调教| 91精品国产乱码| 久久久久久**毛片大全| 综合av第一页| 日韩成人av影视| 国产精品资源在线观看| 97精品视频在线观看自产线路二| 91在线国产福利| 日韩精品专区在线影院重磅| 国产欧美日产一区| 天堂一区二区在线免费观看| 国产91精品欧美| 欧美喷潮久久久xxxxx| 久久精品日产第一区二区三区高清版| 中文字幕av在线一区二区三区| 亚洲一区二区视频| a亚洲天堂av| 国产日韩欧美一区二区三区综合| 亚洲国产综合视频在线观看| 成人黄色777网|