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

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

?? winsockcomm0.cpp

?? wince下EVC編譯通過的客戶端程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// WinsockComm.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "WinsockComm.h"
#include <commctrl.h>

// Vincent added codes here
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <winsock2.h>
#include <Winuser.h>
#include <Pwinreg.h>
//#include <Pkfuncs.h>
#include <Iphlpapi.h>
#include <IpTypes.h>


#include <Ws2tcpip.h>
#define DEFAULT_FAMILY  AF_UNSPEC
#define DEFAULT_SOCKTYPE SOCK_STREAM
#define DEFAULT_PORT  "1234"
#define BUFFER_SIZE   23    // length of "WinCE Echo Test Packet"

char pBuf[] = "WinCE Echo Test Packet";


#define TIMEOUT_SECS        2
#define TIMEOUT_USECS        0








#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE			hInst;			// The current instance
HWND				hwndCB;			// The command bar handle

// Forward declarations of functions included in this code module:
ATOM				MyRegisterClass	(HINSTANCE, LPTSTR);
BOOL				InitInstance	(HINSTANCE, int);
LRESULT CALLBACK	WndProc			(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About			(HWND, UINT, WPARAM, LPARAM);

// Vincent added codes here
LRESULT CALLBACK	DoDemo			(HWND, UINT, WPARAM, LPARAM);
BOOL GetLANinfo(HWND hDlg);
IP_ADAPTER_INFO gStrucAdpInfo[4];





void
Print(
    TCHAR *pFormat, 
...);
DWORD ServerThread (PVOID pArg);
int _tmainClient(void);

char * serverIP;

char * ConvertUnicodeToAscii(LPCWSTR p,int l);


HANDLE hReadThread = INVALID_HANDLE_VALUE;




int WINAPI WinMain(	HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPTSTR    lpCmdLine,
					int       nCmdShow)
{
	MSG msg;
	HACCEL hAccelTable;

	// Perform application initialization:
	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINSOCKCOMM);

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return msg.wParam;
}

//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    It is important to call this function so that the application 
//    will get 'well formed' small icons associated with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
{
	WNDCLASS	wc;

    wc.style			= CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc		= (WNDPROC) WndProc;
    wc.cbClsExtra		= 0;
    wc.cbWndExtra		= 0;
    wc.hInstance		= hInstance;
    wc.hIcon			= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINSOCKCOMM));
    wc.hCursor			= 0;
    wc.hbrBackground	= (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName		= 0;
    wc.lpszClassName	= szWindowClass;

	return RegisterClass(&wc);
}

//
//  FUNCTION: InitInstance(HANDLE, int)
//
//  PURPOSE: Saves instance handle and creates main window
//
//  COMMENTS:
//
//    In this function, we save the instance handle in a global variable and
//    create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
	HWND	hWnd;
	TCHAR	szTitle[MAX_LOADSTRING];			// The title bar text
	TCHAR	szWindowClass[MAX_LOADSTRING];		// The window class name

	hInst = hInstance;		// Store instance handle in our global variable
	// Initialize global strings
	LoadString(hInstance, IDC_WINSOCKCOMM, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance, szWindowClass);

	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	if (!hWnd)
	{	
		return FALSE;
	}

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);
	if (hwndCB)
		CommandBar_Show(hwndCB, TRUE);

	return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	// Vincent to mark all
	/*
	HDC hdc;
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	TCHAR szHello[MAX_LOADSTRING];
	*/

	switch (message) 
	{
		case WM_COMMAND:
			// Vincent to mark all
			/*
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			switch (wmId)
			{
				case IDM_HELP_ABOUT:
				   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
				   break;
				case IDM_FILE_EXIT:
				   DestroyWindow(hWnd);
				   break;
				default:
				   return DefWindowProc(hWnd, message, wParam, lParam);
			}
			*/
			break;
		case WM_CREATE:
			// Vincent to mark all
			/*
			hwndCB = CommandBar_Create(hInst, hWnd, 1);			
			CommandBar_InsertMenubar(hwndCB, hInst, IDM_MENU, 0);
			CommandBar_AddAdornments(hwndCB, 0, 0);
			*/
			// Vincent added codes here
   		    DialogBox(hInst, (LPCTSTR)IDD_DIALOG_DEMO, hWnd, (DLGPROC)DoDemo);
		    DestroyWindow(hWnd);

			break;
		case WM_PAINT:
			// Vincent to mark all
			/*
			RECT rt;
			hdc = BeginPaint(hWnd, &ps);
			GetClientRect(hWnd, &rt);
			LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
			DrawText(hdc, szHello, _tcslen(szHello), &rt, 
				DT_SINGLELINE | DT_VCENTER | DT_CENTER);
			EndPaint(hWnd, &ps);
			*/
			break;
		case WM_DESTROY:
			// Vincent to mark all
			/*
			CommandBar_Destroy(hwndCB);
			PostQuitMessage(0);
			*/
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for the About box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	RECT rt, rt1;
	int DlgWidth, DlgHeight;	// dialog width and height in pixel units
	int NewPosX, NewPosY;

	switch (message)
	{
		case WM_INITDIALOG:
			// trying to center the About dialog
			if (GetWindowRect(hDlg, &rt1)) {
				GetClientRect(GetParent(hDlg), &rt);
				DlgWidth	= rt1.right - rt1.left;
				DlgHeight	= rt1.bottom - rt1.top ;
				NewPosX		= (rt.right - rt.left - DlgWidth)/2;
				NewPosY		= (rt.bottom - rt.top - DlgHeight)/2;
				
				// if the About box is larger than the physical screen 
				if (NewPosX < 0) NewPosX = 0;
				if (NewPosY < 0) NewPosY = 0;
				SetWindowPos(hDlg, 0, NewPosX, NewPosY,
					0, 0, SWP_NOZORDER | SWP_NOSIZE);
			}
			return TRUE;

		case WM_COMMAND:
			if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

// ================================
// Vincent added all codes below
// ================================
LRESULT CALLBACK DoDemo(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	RECT rt, rt1;
	int DlgWidth, DlgHeight;	// dialog width and height in pixel units
	int NewPosX, NewPosY;
	TCHAR tchBuffer[20];
	UINT  cntText;

    DWORD dwTStat;


	switch (message)
	{
		case WM_INITDIALOG:
			// trying to center the About dialog
			if (GetWindowRect(hDlg, &rt1)) {
				GetClientRect(GetParent(hDlg), &rt);
				DlgWidth	= rt1.right - rt1.left;
				DlgHeight	= rt1.bottom - rt1.top ;
				NewPosX		= (rt.right - rt.left - DlgWidth)/2;
				NewPosY		= (rt.bottom - rt.top - DlgHeight)/2;
				
				// if the About box is larger than the physical screen 
				if (NewPosX < 0) NewPosX = 0;
				if (NewPosY < 0) NewPosY = 0;
				SetWindowPos(hDlg, 0, NewPosX, NewPosY,
					0, 0, SWP_NOZORDER | SWP_NOSIZE);
			}
			return TRUE;

		case WM_COMMAND:
			if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			else if (LOWORD(wParam) == IDC_BUTTON_OPEN)
			{
				if (!GetLANinfo(hDlg))
				{
					MessageBox(hDlg, TEXT("Get IP Failed"), TEXT("LAN info"), MB_OK);
					return FALSE;
				}
				// Get Server IP
				cntText = GetDlgItemText(hDlg, IDC_EDIT_IP, tchBuffer, sizeof(tchBuffer));
				serverIP = ConvertUnicodeToAscii(tchBuffer, cntText);
				wsprintf(tchBuffer, TEXT("%hs"), serverIP);
				MessageBox(hDlg, tchBuffer, TEXT("DoServerStartUp"), MB_OK);
				// Create Server Thread to listen
		        if (!GetExitCodeThread (hReadThread, &dwTStat) || (dwTStat != STILL_ACTIVE))
				{
					hReadThread = CreateThread (NULL, 0, ServerThread, hDlg, 0, &dwTStat);
					if (hReadThread)
						CloseHandle (hReadThread);
				}
			}
			else if (LOWORD(wParam) == IDC_BUTTON_CLIENT)
			{
			}
			else if (LOWORD(wParam) == IDC_BUTTON_TEST)
			{
//				if (!_tmain())
				if (!_tmainClient())
				{
					MessageBox(hDlg, TEXT("_tmain ok"), TEXT("DoClientStartUp"), MB_OK);
					return FALSE;
				}
				else
				{
					MessageBox(hDlg, TEXT("_tmain Failed"), TEXT("DoClientStartUp"), MB_OK);
					return FALSE;
				}
			}
			else
			{
			}
			break;
	}
    return FALSE;
}

BOOL GetLANinfo(HWND hDlg)
{
	ULONG uLong;
	DWORD dw;
	uLong=sizeof(gStrucAdpInfo);
	TCHAR strBuffer[100];

	if ((dw=GetAdaptersInfo(gStrucAdpInfo, &uLong))==ERROR_SUCCESS)
	{
		wsprintf(strBuffer, TEXT("IP Address : %hs"), gStrucAdpInfo[0].IpAddressList.IpAddress.String);
		SetDlgItemText(hDlg, IDC_STATIC_IP, strBuffer);
	}
	else
	{
		return 0;
	}
	return 1;
}

//======================================================================================

void
Print(
    TCHAR *pFormat, 
...)
{
    va_list ArgList;
    TCHAR Buffer[256];
    va_start (ArgList, pFormat);
    (void)wvsprintf (Buffer, pFormat, ArgList);
#ifndef UNDER_CE
    _putts(Buffer);
#else
    OutputDebugString(Buffer);
#endif

    va_end(ArgList);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区www | 色婷婷国产精品久久包臀| 国产精品午夜免费| 91精品国产丝袜白色高跟鞋| 日本va欧美va精品| 东方aⅴ免费观看久久av| 欧美放荡的少妇| 亚洲欧洲99久久| 精品综合免费视频观看| 欧美日韩精品免费| 亚洲黄一区二区三区| 国产九九视频一区二区三区| 欧美日韩dvd在线观看| 一区二区三区四区乱视频| 国产成人免费视| 日韩欧美一级片| 亚洲第四色夜色| 在线观看www91| 亚洲欧美日韩系列| voyeur盗摄精品| 久久九九99视频| 国内精品写真在线观看| 日韩写真欧美这视频| 日韩精品一级中文字幕精品视频免费观看 | 国产欧美日韩麻豆91| 卡一卡二国产精品| 777xxx欧美| 奇米888四色在线精品| 9191久久久久久久久久久| 亚洲v日本v欧美v久久精品| 色婷婷久久久综合中文字幕| 亚洲视频免费在线观看| 色综合久久综合网| 一区二区不卡在线视频 午夜欧美不卡在| 99久久亚洲一区二区三区青草| 中文字幕第一页久久| av亚洲产国偷v产偷v自拍| 国产欧美精品国产国产专区| aaa欧美大片| 亚洲精品久久7777| 欧美三级三级三级爽爽爽| 午夜免费久久看| 日韩欧美国产不卡| 国产一区二区主播在线| 国产亚洲一本大道中文在线| 国产盗摄视频一区二区三区| 中文字幕av一区 二区| 99久久精品99国产精品| 亚洲午夜久久久久中文字幕久| 欧美日韩国产免费一区二区| 久久99精品国产| 中文子幕无线码一区tr| 91蜜桃婷婷狠狠久久综合9色| 亚洲午夜免费电影| 欧美精品一区二区三区高清aⅴ | 国产精品久久久久精k8| 色综合欧美在线视频区| 三级欧美韩日大片在线看| 精品久久久久久无| 成人18精品视频| 日产国产高清一区二区三区| 久久理论电影网| 在线免费观看日本一区| 毛片av一区二区三区| 中文字幕一区二区三区在线不卡| 欧美三级视频在线| 国产麻豆91精品| 亚洲一区二区三区三| 久久这里都是精品| 欧美日韩一卡二卡三卡| 国产福利电影一区二区三区| 亚洲va韩国va欧美va精品| 久久亚洲一区二区三区四区| 91丨国产丨九色丨pron| 久久国内精品自在自线400部| 亚洲人成人一区二区在线观看| 在线播放一区二区三区| av电影天堂一区二区在线 | 日韩精品一区二区三区视频| 91小视频在线观看| 精品亚洲国内自在自线福利| 亚洲精品伦理在线| 久久久久久黄色| 欧美一区二区三区的| 一道本成人在线| 国产福利一区二区三区视频| 日本中文字幕一区| 亚洲最新视频在线观看| 国产色91在线| 精品国产污污免费网站入口| 欧美群妇大交群中文字幕| 99re成人精品视频| 成人免费视频网站在线观看| 久久精品国产精品亚洲综合| 日韩成人一级片| 午夜精品久久久久久久久| 亚洲天堂免费在线观看视频| 欧美国产精品一区二区三区| 欧美精品一区二区三区蜜臀| 日韩一区二区电影网| 欧美肥大bbwbbw高潮| 欧美日韩高清一区二区| 91国模大尺度私拍在线视频| 91免费版在线| 91亚洲精品一区二区乱码| 成人午夜电影网站| 成人黄色一级视频| 懂色中文一区二区在线播放| 国产自产高清不卡| 韩国视频一区二区| 国产精品综合二区| 国产精品一区二区男女羞羞无遮挡 | 一个色妞综合视频在线观看| 亚洲精品乱码久久久久久| 一区二区久久久久久| 一区二区三区色| 亚洲综合激情网| 亚洲国产综合色| 婷婷亚洲久悠悠色悠在线播放| 亚洲444eee在线观看| 五月天亚洲婷婷| 日本网站在线观看一区二区三区| 偷窥国产亚洲免费视频| 久久精品二区亚洲w码| 久久成人免费网站| 国产福利不卡视频| 99久久婷婷国产| 色婷婷亚洲综合| 欧美一区二区在线看| 日韩三级在线观看| 亚洲国产精品二十页| 亚洲色图20p| 午夜精品久久久| 精一区二区三区| 波波电影院一区二区三区| 91啪在线观看| 欧美日韩精品福利| 久久久久久一二三区| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成a人片在线观看中文| 日韩精品一卡二卡三卡四卡无卡| 精油按摩中文字幕久久| 不卡视频免费播放| 欧美另类高清zo欧美| 久久新电视剧免费观看| 亚洲色图视频网| 免费av成人在线| eeuss鲁片一区二区三区在线看| 欧美日韩综合不卡| 久久久精品综合| 亚洲一区二区欧美日韩| 极品销魂美女一区二区三区| 91香蕉视频mp4| 日韩你懂的电影在线观看| 国产精品嫩草99a| 日韩综合在线视频| 成人在线综合网| 日韩欧美一级二级三级| 亚洲人成网站色在线观看| 免费黄网站欧美| 91久久香蕉国产日韩欧美9色| 日韩精品在线网站| 亚洲国产日韩综合久久精品| 国产成人h网站| 在线成人av影院| 亚洲少妇屁股交4| 国产精品99久久久久久久vr| 欧美三级午夜理伦三级中视频| 国产精品美女久久久久久久网站| 蜜桃视频在线一区| 欧美日韩一区二区三区四区五区| 欧美韩日一区二区三区| 日本不卡一区二区三区高清视频| 91免费视频网| 国产日韩欧美综合一区| 美国精品在线观看| 欧美日韩夫妻久久| 一区二区三区自拍| 不卡视频在线观看| 亚洲国产精品成人综合| 精品一区二区成人精品| 欧美精品欧美精品系列| 亚洲一区在线视频| 97久久超碰精品国产| 国产精品三级电影| 国产激情精品久久久第一区二区| 7777精品伊人久久久大香线蕉的| 亚洲一区在线观看免费| 91网站黄www| 中文字幕一区在线观看| 成人av资源在线观看| 欧美国产精品v| 成人手机在线视频| 国产精品美女久久久久久久| 国产精品一二二区| 国产欧美一区二区三区在线老狼| 国产福利一区在线| 国产拍欧美日韩视频二区| 国产99精品视频| 中文字幕欧美国产|