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

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

?? enumprot.c

?? 網絡當前運行協議枚取程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
// 
// 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");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区中文字幕| 日韩一区二区三区视频在线| 91官网在线免费观看| 欧美一区二区三区在| 国产精品福利一区| 久久99九九99精品| 91久久精品国产91性色tv| 久久综合精品国产一区二区三区 | 亚洲精品伦理在线| 韩国在线一区二区| 欧美日韩三级一区二区| 日韩码欧中文字| 成人av网站免费| 精品99一区二区三区| 视频一区二区三区中文字幕| 91一区二区三区在线观看| 国产日韩欧美电影| 六月丁香婷婷久久| 日韩欧美一二三四区| 午夜精品福利在线| 欧美三级日韩三级| 一区二区三区在线视频免费观看| 成人午夜免费视频| 久久影院视频免费| 国产一区二区免费在线| 日韩三级在线免费观看| 国产在线看一区| 日韩视频免费直播| 日韩精品亚洲一区二区三区免费| 欧美性极品少妇| 亚洲精品成a人| 色婷婷精品大视频在线蜜桃视频| 中文字幕亚洲成人| 91在线视频在线| 成人免费在线视频| 欧美成人精品福利| 久久精品国产**网站演员| 日韩欧美一区二区久久婷婷| 久久99精品国产.久久久久久| 日韩精品一区二区三区四区| 蜜桃一区二区三区在线观看| 亚洲欧美另类图片小说| 精品无码三级在线观看视频| 欧美午夜寂寞影院| 亚洲成av人片观看| 欧美一区二区三区爱爱| 精品午夜久久福利影院| 国产香蕉久久精品综合网| 国产成人精品免费看| 日韩美女视频一区| 欧美在线综合视频| 日韩中文字幕av电影| 26uuu亚洲综合色欧美| 国产成人免费视频精品含羞草妖精| 国产午夜亚洲精品不卡| 99久久久免费精品国产一区二区| 亚洲精品美腿丝袜| 日韩三级在线免费观看| 国产精品18久久久| 一区二区三区日韩| 欧美一区二区三区视频在线| 国产精品综合一区二区三区| 中文字幕av在线一区二区三区| 972aa.com艺术欧美| 日本视频中文字幕一区二区三区| 精品毛片乱码1区2区3区| jizz一区二区| 日韩va欧美va亚洲va久久| 国产网站一区二区三区| 亚洲国产激情av| 在线亚洲欧美专区二区| 久久国产麻豆精品| 亚洲精品日韩综合观看成人91| 日韩三级免费观看| eeuss鲁片一区二区三区| 日韩av中文字幕一区二区| 国产欧美一区二区三区网站| 欧美视频在线一区二区三区| 国产在线视频一区二区| 亚洲色图第一区| 久久久不卡网国产精品一区| 欧美在线观看一区| 成人av在线播放网站| 日本在线播放一区二区三区| 亚洲日本在线看| 欧美精品一区视频| 制服丝袜成人动漫| 91丨国产丨九色丨pron| 国产老肥熟一区二区三区| 亚洲五码中文字幕| 国产精品白丝在线| 久久久久久久久久久久久夜| 欧美精品一级二级三级| 91香蕉视频在线| 国产91在线看| 久久9热精品视频| 一个色在线综合| 日本一二三不卡| 国产午夜久久久久| 精品人在线二区三区| 欧美精品视频www在线观看| av毛片久久久久**hd| 国产福利精品导航| 狠狠色狠狠色综合日日91app| 日本少妇一区二区| 婷婷中文字幕一区三区| 一区二区三区国产精华| 国产精品每日更新| 国产精品色在线观看| 久久久www免费人成精品| 日韩午夜在线影院| 欧美一区二区国产| 欧美一区二区三区四区视频| 中文字幕av一区二区三区| 久久美女艺术照精彩视频福利播放| 91精品国产综合久久福利| 欧美日韩亚洲高清一区二区| 欧美性生交片4| 欧美亚洲尤物久久| 欧美欧美欧美欧美| 6080亚洲精品一区二区| 欧美一级午夜免费电影| 精品国产乱码久久久久久久| 久久日一线二线三线suv| 亚洲精品一区二区三区蜜桃下载| 日韩精品一区二区三区视频| 欧美一区二区三区视频| 精品国产一区久久| 久久久一区二区三区捆绑**| 久久亚洲精品国产精品紫薇| 久久精品免费在线观看| 欧美国产日本韩| 亚洲免费三区一区二区| 亚洲国产视频在线| 麻豆精品久久精品色综合| 精品一区二区免费在线观看| 国产suv一区二区三区88区| 99亚偷拍自图区亚洲| 日本道在线观看一区二区| 欧美日韩免费观看一区三区| 7777精品伊人久久久大香线蕉| 日韩欧美激情在线| 国产精品私人影院| 亚洲gay无套男同| 国产精品99久久久久久似苏梦涵| 成人国产视频在线观看| 欧美丰满一区二区免费视频| 久久久av毛片精品| 亚洲一本大道在线| 国产精品自拍在线| 色婷婷av一区二区三区大白胸| 欧美高清激情brazzers| 欧美激情艳妇裸体舞| 亚洲电影视频在线| 成人中文字幕合集| 日韩一区二区精品在线观看| 日本一区二区综合亚洲| 亚洲福利视频导航| 国产成人在线色| 欧美日韩免费电影| 国产精品久久久久久久岛一牛影视 | 综合久久久久综合| 污片在线观看一区二区| 国产福利一区二区三区在线视频| 91在线观看成人| 日韩欧美国产高清| 亚洲图片欧美一区| 国产成人精品一区二| 欧美一区二区三区影视| 国产日产精品一区| 免费国产亚洲视频| 91福利视频网站| 日本一区二区免费在线| 视频在线观看一区| 色婷婷国产精品| 亚洲色图制服诱惑 | 一区二区成人在线视频| 精品亚洲成a人在线观看| 一本一道久久a久久精品| 国产亚洲女人久久久久毛片| 全国精品久久少妇| 欧美性大战久久久久久久蜜臀| 国产午夜精品久久久久久久 | 中文字幕一区视频| 韩国中文字幕2020精品| 51精品国自产在线| av在线一区二区三区| 国产欧美日韩在线观看| 国产一区二区美女诱惑| 日韩一区二区三区观看| 日韩高清在线观看| 欧美性色黄大片| 亚洲一级二级三级| 一本大道久久a久久精品综合| 欧美激情一区二区三区不卡 | 一区二区三区不卡在线观看| 99视频在线精品| 亚洲欧洲精品一区二区三区不卡| 国产河南妇女毛片精品久久久| 久久综合99re88久久爱|