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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? enumprot.c

?? 網(wǎng)絡(luò)當(dāng)前運(yùn)行協(xié)議枚取程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// 
// EnumProt.c - Display WSAPROTOCOL_INFO information
//			    for all available protocols

// This define causes windows.h
// to include winsock2.h instead
// of winsock.h
#define _WIN32_WINNT 0x0400

#include <windows.h>
#include <winsock2.h>
#include <commctrl.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>

#include "resource.h"
#include "EnumProt.h"

////////////////////////////////////////////////////////////

// Application name
char gszAppName[]  = {"Enumerate Protocols"};

// Window class name
char gszAppClass[] = {"EnumProtClass"};

// Instance handle
HINSTANCE ghInst;

////////////////////////////////////////////////////////////

//
// WinMain()
//
int APIENTRY WinMain(
					  HINSTANCE hInstance,
					  HINSTANCE hPrevInstance,
					  LPSTR lpCmdLine,
					  int nCmdShow
	                 )
{

	// WINSOCK_VERSION is currently defined
	// as MAKEWORD(2,2) in winsock2.h
	WORD wVersionRequested = WINSOCK_VERSION;
	WSADATA wsaData;
	MSG msg;         
	int nRet;

	//
	// Look for WinSock2              
	//
	nRet = WSAStartup(wVersionRequested, &wsaData);
	if (nRet || (wsaData.wVersion != wVersionRequested))
	{
		MessageBox(NULL, "WinSock2 not available", 
						 gszAppName,
						 MB_OK|MB_ICONERROR);
		WSACleanup();
		return 1;
	}

	//
	// Load common control DLL
	//
	InitCommonControls();

	//
	// Register Window class
	//
	if (!InitApplication(hInstance))
		return (FALSE);     

	//
	// Create the ListView window
	//
	if (!InitInstance(hInstance, nCmdShow))
		return (FALSE);

	//
	// Dispatch messages
	//
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg); 
	}

	//
	// Release WinSock
	//
	WSACleanup();
	return (msg.wParam);  
}

////////////////////////////////////////////////////////////

//
// InitApplication()
// Register the window class
//
BOOL InitApplication(HANDLE hInstance)
{
	WNDCLASS  wc;
	
	wc.style = 0;                     
	wc.lpfnWndProc = (WNDPROC)MainWndProc; 
	wc.cbClsExtra = 0;              
	wc.cbWndExtra = 0;              
	wc.hInstance = hInstance;       
	wc.hIcon = LoadIcon(hInstance, 
						MAKEINTRESOURCE(IDI_ICON));
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground = GetStockObject(WHITE_BRUSH); 
	wc.lpszMenuName =  MAKEINTRESOURCE(IDR_MENU);
	wc.lpszClassName = gszAppClass;
	return (RegisterClass(&wc));
}

////////////////////////////////////////////////////////////

//
// InitInstance()
// Create main window
//
BOOL InitInstance(HANDLE hInstance, int nCmdShow) 
{
	HWND hWnd;

	ghInst = hInstance;

	hWnd = CreateWindow(
						gszAppClass,           
						gszAppName,
						WS_OVERLAPPEDWINDOW,
						CW_USEDEFAULT, 
						CW_USEDEFAULT, 
						CW_USEDEFAULT, 
						CW_USEDEFAULT,
						NULL,               
						NULL,               
						hInstance,          
						NULL);

	if (!hWnd)
		return (FALSE);

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd); 
	return (TRUE);      

}

////////////////////////////////////////////////////////////

//
// MainWndProc()
// Process Windows messages
//
LONG APIENTRY MainWndProc(HWND hWnd, 
						  UINT message, 
						  UINT wParam,
						  LONG lParam
						  )
{
	// Handle to the tree control
	static HWND hWndTree;		

	switch (message) 
	{
		case WM_CREATE:
			//
			// Create the tree view control
			//
			hWndTree = CreateTreeControl(hWnd);
			if (hWndTree == NULL)
				MessageBox(hWnd, 
						   "Error creating TreeView",
						   gszAppName,
						   MB_OK|MB_ICONERROR);
			//
			// Add all protocols to TreeView
			//
			AddAllProtocols(hWndTree);
			break;          

        case WM_SIZE:
			//
			// Resize the TreeView along with the window
			//
            MoveWindow(hWndTree, 
					   0, 
					   0, 
					   LOWORD(lParam), 
					   HIWORD(lParam), 
					   TRUE);
            break;

		case WM_COMMAND:
			switch( LOWORD( wParam ))
			{
				case IDM_EXIT:
					PostQuitMessage(0);
					break;
				case IDM_ABOUT:
					DialogBox(ghInst, 
							  MAKEINTRESOURCE(IDD_ABOUT), 
							  hWnd, 
							  (DLGPROC)About);
					break;
				default:
					return (DefWindowProc(hWnd, 
										  message, 
										  wParam, 
										  lParam));
			}
			break;

		case WM_DESTROY:
			PostQuitMessage(0);
			break;

		default:
			return (DefWindowProc(hWnd, message, wParam, lParam));
	}
	return (0);
}

////////////////////////////////////////////////////////////

//
// CreateTreeControl()
// Setup TreeView common control
//
HWND CreateTreeControl(HWND hWndParent)
{
	HWND hwndTree;
	RECT rect;

	// Get the size and position of the parent window.
	GetClientRect(hWndParent, &rect);

	// Create the tree view control
	hwndTree = CreateWindowEx(0L,
							  WC_TREEVIEW,
							  "",
							  WS_VISIBLE | WS_CHILD |	 
							  WS_BORDER | TVS_HASLINES | 
							  TVS_HASBUTTONS |			 
							  TVS_LINESATROOT,
							  0, 
							  0,
							  rect.right - rect.left, 
							  rect.bottom - rect.top - 15,
							  hWndParent,
							  (HMENU)ID_TREEVIEW,
							  ghInst,
							  NULL);
	return (hwndTree);
}

////////////////////////////////////////////////////////////

//
// AddAllProtocols()
// Call WSAEnumProtocols()
// and add info to TreeControl
//
void AddAllProtocols(HWND hWndTree)
{
	LPBYTE pBuf;
	DWORD dwLen;
	int nRet;
	int nCount;
	LPWSAPROTOCOL_INFO pInfo;
	HTREEITEM hParent;
	HTREEITEM hParent2;
	HTREEITEM hParent3;

	//
	// Determine needed buffer size by
	// intentionally generating an error.
	//
	dwLen = 0;
	nRet = WSAEnumProtocols(NULL,
						   NULL,
						   &dwLen);
	if (nRet == SOCKET_ERROR)
	{
		// Look for the expected error
		if (WSAGetLastError() != WSAENOBUFS)
		{
			ShowWinsockError(WSAGetLastError());
			return;
		}
	}

	//
	// dwLen should now contain the needed buffer size
	// Check to see that it's at least the
	// size of 1 WSAPROTOCOL_INFO structure
	//
	if (dwLen < sizeof(WSAPROTOCOL_INFO))
	{
		MessageBox(NULL, "Internal error",
						 gszAppName,
						 MB_OK|MB_ICONERROR);
		return;
	}

	// Add 1 byte just to be paranoid
	dwLen++;
	pBuf = malloc(dwLen);
	if (pBuf == NULL)
	{
		MessageBox(NULL, 
				   "Couldn't allocate protocol buffer",
				   gszAppName,
				   MB_OK|MB_ICONERROR);
		return;
	}

	//
	// Make the "real" call
	//
	nRet = WSAEnumProtocols(NULL, 
						   (LPWSAPROTOCOL_INFO)pBuf, 
						   &dwLen);
	if (nRet == SOCKET_ERROR)
	{
		free(pBuf);
		ShowWinsockError(WSAGetLastError());
		return;
	}

	//
	// Loop through the protocols
	// nRet contains the number of 
	// protocols returned
	//
	pInfo = (LPWSAPROTOCOL_INFO)pBuf;	
	for(nCount = 0; nCount < nRet; nCount++)
	{
		// Each protocol begins at the root
		// of the tree view control
		hParent = AddTreeItem(hWndTree, 
							  TVI_ROOT, 
							  pInfo->szProtocol);

		// Service flags are added one step down
		hParent2 = AddTreeItem(hWndTree, 
							   hParent, 
							   "Service Flags");

		//
		// Helper macro for adding service flags
		//
		#define ADDSF(f, s1, s2)				\
			AddTreeItem(hWndTree,				\
				hParent2,						\
				(pInfo->dwServiceFlags1 & f) ?	\
				s1 : s2)

		ADDSF(XP1_CONNECTIONLESS, 
			"Connectionless",
			"Connection-oriented");

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区免费在线观看| 国产一区二区伦理| 亚洲不卡一区二区三区| 国产精品日日摸夜夜摸av| 久久综合色婷婷| 精品国产髙清在线看国产毛片| 91精品国产91综合久久蜜臀| 6080yy午夜一二三区久久| 欧美日韩国产综合视频在线观看 | 蜜臀av一级做a爰片久久| 视频一区视频二区在线观看| 欧美aa在线视频| 国产在线麻豆精品观看| 综合婷婷亚洲小说| 亚洲另类春色国产| 亚洲精品成人在线| 亚洲v日本v欧美v久久精品| 婷婷综合久久一区二区三区| 日韩国产精品久久| 久久99久久久久| 国产成人精品免费网站| 91丝袜美女网| 欧美日韩一区二区三区视频| 日韩欧美中文一区二区| 久久亚洲二区三区| 国产精品久久毛片a| 亚洲综合男人的天堂| 日本欧美肥老太交大片| 国产精品一二三四五| 91天堂素人约啪| 日韩一区二区三区免费看| 久久久精品蜜桃| 亚洲毛片av在线| 美国十次综合导航| 成人av网站在线观看| 欧美日韩精品一区二区三区蜜桃 | 色婷婷精品大在线视频| 一区二区三区波多野结衣在线观看| 一区二区三区蜜桃| 久久精品国产久精国产爱| 高清国产一区二区| 欧美日韩mp4| 国产无一区二区| 亚洲一区二区美女| 国产一区中文字幕| 欧美吻胸吃奶大尺度电影| 久久久亚洲精华液精华液精华液 | 国产一区二区三区四区在线观看 | 亚洲欧洲精品天堂一级| 免费人成网站在线观看欧美高清| 成人av在线影院| 欧美一卡2卡三卡4卡5免费| 中文一区在线播放| 奇米精品一区二区三区在线观看一| 国产精品一区2区| 欧美福利视频导航| 亚洲少妇最新在线视频| 国精品**一区二区三区在线蜜桃 | 亚洲综合丁香婷婷六月香| 国模大尺度一区二区三区| 欧美日韩激情一区| 国产精品久久久久永久免费观看| 免费美女久久99| 欧美优质美女网站| 国产精品久久久久精k8| 国产一区二区精品久久91| 欧美巨大另类极品videosbest| 中文字幕成人av| 久色婷婷小香蕉久久| 欧美日韩中字一区| 综合精品久久久| 国产成人午夜电影网| 日韩一区二区三区在线视频| 亚洲午夜久久久久久久久电影院| 成人av在线看| 久久精品人人做人人综合| 奇米一区二区三区av| 欧美三级韩国三级日本三斤| 国产精品美女久久久久aⅴ国产馆| 精品影视av免费| 欧美高清视频不卡网| 亚洲一区二区成人在线观看| aa级大片欧美| 国产精品第13页| 成人av在线资源网| 欧美高清视频一二三区 | 久久精品人人做人人综合| bt欧美亚洲午夜电影天堂| 欧美一卡2卡三卡4卡5免费| 亚洲aaa精品| 欧美午夜不卡视频| 亚洲一区二区三区四区的| 91最新地址在线播放| 国产精品久久三区| 不卡av免费在线观看| 国产精品久久久久天堂| 成人污视频在线观看| 国产人妖乱国产精品人妖| 国产传媒久久文化传媒| 国产视频一区不卡| 国产裸体歌舞团一区二区| 精品国产电影一区二区| 国产一区二区福利| 欧美国产日产图区| 成人高清免费在线播放| 国产亲近乱来精品视频| 成人av资源网站| 中文字幕亚洲一区二区va在线| 波多野结衣一区二区三区| 1024精品合集| 欧美亚洲禁片免费| 日韩欧美一区中文| 亚洲一二三级电影| 欧美性一二三区| 婷婷综合五月天| 欧美一二三区在线观看| 国产在线精品一区在线观看麻豆| 久久亚洲综合av| a4yy欧美一区二区三区| 一区二区三区在线观看视频| 欧美日韩一区二区三区四区五区| 日本v片在线高清不卡在线观看| 日韩欧美精品三级| 国产一区二区三区四区五区入口| 国产精品久久久久三级| 欧美在线不卡视频| 蜜桃av一区二区| 国产日韩欧美精品一区| 91日韩精品一区| 日本午夜精品视频在线观看| 久久午夜电影网| 色哟哟欧美精品| 日本视频一区二区三区| 国产亚洲一二三区| 欧美亚洲另类激情小说| 久久91精品国产91久久小草| 国产精品你懂的在线欣赏| 欧美三级中文字| 国产精品一区二区三区网站| 亚洲女女做受ⅹxx高潮| 日韩一区二区在线观看视频| 成人午夜视频在线| 91在线视频网址| 91国产丝袜在线播放| 亚洲高清久久久| 精品福利一二区| 一本色道久久综合精品竹菊| 日韩国产在线一| 国产精品天美传媒沈樵| 欧美日韩精品电影| 成人综合在线网站| 亚洲成人免费看| 欧美激情一区二区三区不卡| 欧美日韩在线播放| 豆国产96在线|亚洲| 午夜精品久久久久久久蜜桃app| 国产亚洲欧美激情| 欧美性大战xxxxx久久久| 高清视频一区二区| 奇米色一区二区| 一区二区日韩电影| 久久精品男人天堂av| 欧美精品粉嫩高潮一区二区| 成人国产精品免费| 久久国产精品色婷婷| 亚洲在线视频免费观看| 久久精品这里都是精品| 69p69国产精品| 91精品1区2区| 成人在线视频一区二区| 日韩和欧美一区二区三区| 亚洲精品美腿丝袜| 中文字幕欧美日本乱码一线二线| 在线播放中文一区| 91久久精品日日躁夜夜躁欧美| 国产91丝袜在线18| 亚洲男女一区二区三区| 欧美电影免费观看高清完整版 | 欧美在线免费观看亚洲| 国产成人精品一区二| 美女在线观看视频一区二区| 亚洲高清免费视频| 一区二区三区不卡视频在线观看| 亚洲国产成人午夜在线一区| 久久人人爽爽爽人久久久| 91精品视频网| 欧美日韩在线综合| 日本高清不卡一区| 91影视在线播放| 本田岬高潮一区二区三区| 国产美女娇喘av呻吟久久 | 日韩欧美电影在线| 777午夜精品免费视频| 欧美性色黄大片手机版| 色中色一区二区| 99久久精品免费观看| 99精品视频在线观看免费| youjizz久久| 91碰在线视频| 日本高清不卡aⅴ免费网站|