⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialogs.c

📁 g729 coding ipaddressing
💻 C
📖 第 1 页 / 共 4 页
字号:
        			GetWindowText(hDlg, tbuf + strlen(tbuf), (sizeof tbuf) - strlen(tbuf));
        		} else
#endif        		 
        		{
	        		GetWindowText(hDlg, tbuf, sizeof tbuf);
	        		strcat(tbuf, " - ");
	        		strcat(tbuf, d->szHost);
	        	}
        		SetWindowText(hDlg, tbuf);
				CheckDlgButton(hDlg, IDC_DEBUG, d->debugging);
				CheckDlgButton(hDlg, IDC_LOOPBACK, d->loopback);
				SetDlgItemText(hDlg, IDC_CP_DESKEY, d->desKeyString);
				SetDlgItemText(hDlg, IDC_CP_IDEAKEY, d->ideaKeyString);
				SetDlgItemText(hDlg, IDC_CP_BLOWFISHKEY, d->blowfishKeyString);
				SetDlgItemText(hDlg, IDC_CP_AESKEY, d->aesKeyString);
				CheckDlgButton(hDlg, IDC_CP_AES_HEX, d->aesKeyHex);
				SetDlgItemText(hDlg, IDC_CP_OTPFILE, d->otpFileName);
	        	if (pk_package == GPG) {
	        		SetWindowText(GetDlgItem(hDlg, IDC_CP_PGP), rstring(IDS_T_GPG_USER_NAMES));
	        	}
				SetDlgItemText(hDlg, IDC_CP_PGPUSERS, d->opgpUserList);
				CheckDlgButton(hDlg, IDC_SAVE_KEYS, d->saveKeys);
#define Crypple(x)	ShowWindow(GetDlgItem(hDlg, x), SW_HIDE)
#ifdef CRYPTO
				Crypple(IDC_CP_NOCRYPTO1);
				Crypple(IDC_CP_NOCRYPTO2);
				Crypple(IDC_CP_NOCRYPTO3);
#define SFonly(x) EnableWindow(GetDlgItem(hDlg, x), protocolSent == PROTOCOL_SPEAKFREE)
				SFonly(IDC_CP_AES);
				SFonly(IDC_CP_AESKEY);
				SFonly(IDC_CP_AES_HEX);
				SFonly(IDC_CP_IDEA);
				SFonly(IDC_CP_IDEAKEY);
				SFonly(IDC_CP_BLOWFISH);
				SFonly(IDC_CP_BLOWFISHKEY);
				SFonly(IDC_CP_KEYFILE);
				SFonly(IDC_CP_OTPFILE);
				SFonly(IDC_CP_PGP);
				SFonly(IDC_CP_PGPUSERS);
				SFonly(IDC_CP_PATENT);
				SFonly(IDC_OTP_BROWSE);
#undef SFonly				
#else
				Crypple(IDC_CP_AES);
				Crypple(IDC_CP_AESKEY);
				Crypple(IDC_CP_AES_HEX);
				Crypple(IDC_CP_DES);
				Crypple(IDC_CP_DESKEY);
				Crypple(IDC_CP_IDEA);
				Crypple(IDC_CP_IDEAKEY);
				Crypple(IDC_CP_BLOWFISH);
				Crypple(IDC_CP_BLOWFISHKEY);
				Crypple(IDC_CP_KEYFILE);
				Crypple(IDC_CP_OTPFILE);
				Crypple(IDC_CP_PGP);
				Crypple(IDC_CP_PGPUSERS);
				Crypple(IDC_CP_PATENT);
				Crypple(IDC_SAVE_KEYS);
				Crypple(IDC_OTP_BROWSE);
#endif
#undef Crypple
#ifdef IP_MAX_MEMBERSHIPS
				EnableWindow(GetDlgItem(hDlg, IDC_CP_MULTI_SCOPE),
					IN_MULTICAST(d->inetSock.sin_addr.s_addr));
				EnableWindow(GetDlgItem(hDlg, IDC_CP_MULTI_LABEL),
					IN_MULTICAST(d->inetSock.sin_addr.s_addr));
				if (IN_MULTICAST(d->inetSock.sin_addr.s_addr)) {
					SetDlgItemInt(hDlg, IDC_CP_MULTI_SCOPE, d->multicast_scope, FALSE);
				}
#else
				EnableWindow(GetDlgItem(hDlg, IDC_CP_MULTI_SCOPE), FALSE);
				EnableWindow(GetDlgItem(hDlg, IDC_CP_MULTI_LABEL), FALSE);
#endif					
			}
            break;

        case WM_COMMAND:
            switch ((short) WM_COMMAND_ID(wParam)) {
                case IDOK:
#ifdef IP_MAX_MEMBERSHIPS                
                	if (GetDlgItemInt(hDlg, IDC_CP_MULTI_SCOPE, NULL, FALSE) > 255) {
                		MessageBox(hDlg, rstring(IDS_T_MULTICAST_SCOPE_ERR),
                			NULL, MB_ICONEXCLAMATION | MB_OK);
                		return TRUE;
                	}
#endif                	
                	d->debugging = IsDlgButtonChecked(hDlg, IDC_DEBUG);
                	d->loopback = IsDlgButtonChecked(hDlg, IDC_LOOPBACK);
					GetDlgItemText(hDlg, IDC_CP_DESKEY, d->desKeyString, sizeof d->desKeyString);
					GetDlgItemText(hDlg, IDC_CP_IDEAKEY, d->ideaKeyString, sizeof d->ideaKeyString);
					GetDlgItemText(hDlg, IDC_CP_BLOWFISHKEY, d->blowfishKeyString, sizeof d->blowfishKeyString);
					GetDlgItemText(hDlg, IDC_CP_AESKEY, d->aesKeyString, sizeof d->aesKeyString);
                	d->aesKeyHex = IsDlgButtonChecked(hDlg, IDC_CP_AES_HEX);
					GetDlgItemText(hDlg, IDC_CP_OTPFILE, d->otpFileName, sizeof d->otpFileName);
					GetDlgItemText(hDlg, IDC_CP_PGPUSERS, d->opgpUserList, sizeof d->opgpUserList);
					d->multicast_scope = GetDlgItemInt(hDlg, IDC_CP_MULTI_SCOPE, NULL, FALSE);
                	d->saveKeys = IsDlgButtonChecked(hDlg, IDC_SAVE_KEYS);
                	if (!makeInternalEncryptionKeys(GetParent(hDlg), d)) {
                		break;
                	}
	                EndDialog(hDlg, TRUE);
                    break;

                case IDCANCEL:
                    EndDialog(hDlg, FALSE);
                    break;

#ifdef CRYPTO                    
                case IDC_OTP_BROWSE:
			     	{
			     		OPENFILENAME ofn;
			     		char szString[MAX_PATH];
			
			            memset(&ofn, 0, sizeof(ofn));
						ofn.lStructSize = sizeof(OPENFILENAME);
						ofn.hwndOwner = hDlg;
						ofn.lpstrFilter = rfilter(IDS_T_KEY_FILE_FILTER);
						ofn.lpstrCustomFilter = NULL;
						strcpy(szString, "");
						ofn.lpstrFile = (LPSTR) szString;
						ofn.nMaxFile = sizeof(szString);
						ofn.lpstrInitialDir = NULL;
						ofn.lpstrTitle = rstring(IDS_T_OPEN_KEY_FILE_TITLE);
						ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_SHOWHELP;
						fileHelpKey = rstring(IDS_HELP_KEY_FILE);
						if (GetOpenFileName((LPOPENFILENAME) &ofn)) {
							SetDlgItemText(hDlg, IDC_CP_OTPFILE, szString);
							strcpy(d->otpFileName, szString);
						}
					}
					break;
#endif					
		        	
                case ID_HELP:
                	displayHelpTopic(IDS_HELP_CONNPROP);
                	break;

                default:
                    break;
            }
            break;
        	
        default:
        	if (message == fileOpenHelpButton && fileHelpKey != NULL) {
            	displayHelpTopicString(fileHelpKey);
        	}
        	break;	    	
    }
    return FALSE;
}

//	CONNECTIONPROPERTIES  --  Set properties for an open connection

VOID connectionProperties(HWND hwnd, LPCLIENT_DATA d)
{
    clientData = d;
    DialogBox(hInst, MAKEINTRESOURCE(IDD_CONNECTION_PROPERTIES), hwnd, CP_proc);
    return;
}

//	GENKEYDLGPROC  --  Session key generator dialogue procedure

BOOL CALLBACK genKeyDlgProc(HWND hwnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
    switch (nMessage) {
        case WM_INITDIALOG:
        	{
        		char key[256];

        		sessionKeyGenerate(key, FALSE);
				SetDlgItemText(hwnd, IDE_KEY, key);
			}
			break;
				
        case WM_COMMAND:
        	switch ((short) WM_COMMAND_ID(wParam)) {
        	
		    	case IDOK:
		        EndDialog(hwnd, TRUE);
		        break;

		    	case IDC_NEW_KEY:
			    	{
		        		char key[256];
		        		
		        		sessionKeyGenerate(key, FALSE);
						SetDlgItemText(hwnd, IDE_KEY, key);
						SendMessage(GetDlgItem(hwnd, IDE_KEY), EM_SETSEL, 0,
							strlen(key) + 1);
						SetFocus(GetDlgItem(hwnd, IDE_KEY));
					}
					break;
		        	
                case ID_HELP:
                	displayHelpTopic(IDS_HELP_KEYGEN);
                	break;
			}
    }
    return FALSE;
}

//	GENKEYDIALOGUE  --  Generate session key dialogue

VOID genKeyDialogue(HWND hwnd)
{
    DialogBox(hInst, MAKEINTRESOURCE(IDD_GEN_KEY), hwnd, genKeyDlgProc);
}

//	RANT1_DLGPROC  --  First serial I/O rant dialogue procedure

BOOL CALLBACK rant1_DlgProc(HWND hwnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
#ifdef MODEM
    switch (nMessage) {
        case WM_COMMAND:
		    if (WM_COMMAND_ID(wParam) == IDOK) {
		        EndDialog(hwnd, TRUE);
		    } else if (WM_COMMAND_ID(wParam) == IDCANCEL) {
		        EndDialog(hwnd, FALSE);
		    }
        	break;
    }
#endif    
    return FALSE;
}

//	RANT1DIALOGUE  --  First serial I/O rant dialogue

int rant1Dialogue(HWND hwndParent)
{
    int result;

    result = DialogBox(hInst, MAKEINTRESOURCE(IDD_MODEM_RANT), hwndParent, rant1_DlgProc);
    return result;
}

//	RANT2_DLGPROC  --  Second serial I/O rant dialogue procedure

BOOL CALLBACK rant2_DlgProc(HWND hwnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
#ifdef MODEM
    switch (nMessage) {
        case WM_INITDIALOG:
        	CheckDlgButton(hwnd, IDC_RANT, modemShowRant);
        	break;
        
        case WM_COMMAND:
		    if (WM_COMMAND_ID(wParam) == IDOK) {
		    	modemShowRant = IsDlgButtonChecked(hwnd, IDC_RANT);
		        EndDialog(hwnd, TRUE);
		    } else if (WM_COMMAND_ID(wParam) == IDCANCEL) {
		        EndDialog(hwnd, FALSE);
		    }
        	break;
    }
#endif    
    return FALSE;
}

//	RANT2DIALOGUE  --  Second serial I/O rant dialogue

int rant2Dialogue(HWND hwndParent)
{
    int result;

    result = DialogBox(hInst, MAKEINTRESOURCE(IDD_MODEM_RANT_2), hwndParent, rant2_DlgProc);
    return result;
}

//	MODEMDLGPROC  --  Modem setup dialogue procedure

BOOL CALLBACK modemDlgProc(HWND hwnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
#ifdef MODEM
#ifndef CBR_28800
#define CBR_28800	0xFF1A 			// Missing in 3.1 windows.h
#endif
	static WORD baudRates[] = { CBR_9600, CBR_14400, CBR_19200, CBR_28800,
								CBR_38400, CBR_56000, CBR_128000,
 								CBR_256000 };
 	static char *baudNames[] = { "9600", "14400", "19200", "28800", "38400",
 								 "56000", "128000", "256000", NULL };
    switch (nMessage) {
        case WM_INITDIALOG:
        	{
        		WORD i, n;
        		HWND ctl = GetDlgItem(hwnd, IDD_MODEM_BAUD_RATE);
				WORD ncom = LOWORD(EscapeCommFunction(NULL, GETMAXCOM)) + 1;
        		
        		CheckDlgButton(hwnd, IDC_MODEM_ENABLE, modemEnable);
				SetDlgItemText(hwnd, IDC_MODEM_INIT_STRING, modemInitString);

        		for (i = 0; baudNames[i] != NULL; i++) {
					n = LOWORD(SendMessage(ctl, CB_ADDSTRING, NULL,
					                       (LPARAM) (LPSTR) baudNames[i]));
					SendMessage(ctl, CB_SETITEMDATA, (WPARAM) n,
									(LPARAM) (LONG) baudRates[i]);
								
					if (strcmp(baudNames[i], baudrate) == 0) {
						SendMessage(ctl, CB_SETCURSEL, (WPARAM) n, NULL);
					}
        		}
        		
        		ctl = GetDlgItem(hwnd, IDD_MODEM_PORT);
        		for (i = 0; i < ncom; i++) {
					char comn[12];
					
					wsprintf(comn, Format(32), i + 1);
					n = LOWORD(SendMessage(ctl, CB_ADDSTRING, NULL,
					                               (LPARAM) (LPSTR) comn));
					SendMessage(ctl, CB_SETITEMDATA, (WPARAM) n,
					           (LPARAM) (LONG) i + 1);
								
					if (strcmp(comn, commport) == 0) {
						SendMessage(ctl, CB_SETCURSEL, (WPARAM) n, NULL);
					}
        		}
			}
			break;
				
        case WM_COMMAND:
		    switch ((short) WM_COMMAND_ID(wParam)) {
		    	case IDOK:
		    		{
				    	DWORD i;
				    	
				    	closeModem(hwnd);
		                modemEnable = IsDlgButtonChecked(hwnd, IDC_MODEM_ENABLE);
		                GetDlgItemText(hwnd, IDC_MODEM_INIT_STRING,
		                				modemInitString, sizeof modemInitString);
		                				
		                i = SendDlgItemMessage(hwnd, IDD_MODEM_BAUD_RATE,
		                		CB_GETCURSEL, 0, 0);
		                if (i != CB_ERR) {
		                	SendDlgItemMessage(hwnd, IDD_MODEM_BAUD_RATE, CB_GETLBTEXT,
		                		(WPARAM) i, (LPARAM) (LPCSTR) baudrate);	
		                }
		                 
		                i = SendDlgItemMessage(hwnd, IDD_MODEM_PORT,
		                		CB_GETCURSEL, 0, 0);
		                if (i != CB_ERR) {
		                	SendDlgItemMessage(hwnd, IDD_MODEM_PORT, CB_GETLBTEXT,
		                		(WPARAM) i, (LPARAM) (LPCSTR) commport);	
		                }
		                if (modemEnable) {
					    	if (!openModem(hwnd)) {
					    		modemEnable = FALSE;
					    	}
		                } 
				        EndDialog(hwnd, TRUE);
				    }
				    break;
				    
		    	case IDCANCEL:
				    EndDialog(hwnd, FALSE);
				    break;
				
				case IDC_MODEM_ENABLE:
					if (modemShowRant && ((WORD)
							SendMessage(GetDlgItem(hwnd, IDC_MODEM_ENABLE),
	    						BM_GETCHECK, 0, 0L))) {
	    				if (rant1Dialogue(hwnd)) {
	    					if (rant2Dialogue(hwnd)) {
	    						break;
	    					} else {
	    						CheckDlgButton(hwnd, IDC_MODEM_ENABLE, FALSE);
	    					}
	    				} else {
	    					CheckDlgButton(hwnd, IDC_MODEM_ENABLE, FALSE);
	    				}
	    			}
					break;
					    
                case ID_HELP:
                	displayHelpTopic(IDS_HELP_MODEM_CONFIG);
                	break;
		    }
    }
#endif    
    return FALSE;
}

//	MODEMRANT  --  Display rant about lousy serial I/O support on Windows

void modemRant(HWND hwnd)
{
#ifdef MODEM
	if (rant1Dialogue(hwnd)) {
		rant2Dialogue(hwnd);
	}
#endif	
}

//	MODEMSETUPDIALOGUE  --  Modem setup dialogue

VOID modemSetupDialogue(HWND hwnd)
{
    DialogBox(hInst, MAKEINTRESOURCE(IDD_MODEM_SETTINGS), hwnd, modemDlgProc);
}

//	MULTICASTDLGPROC  --  Multicast group membership dialogue procedure

BOOL CALLBACK multicastDlgProc(HWND hwnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
#ifdef IP_MAX_MEMBERSHIPS
    switch (nMessage) {
        case WM_INITDIALOG:
        	{
        		int i;
        		HWND ctl = GetDlgItem(hwnd, IDC_MC_GROUPS);
        	
        		for (i = 0; i < multiMemberships; i++) {
        			char mcline[MAX_HOST + 24];
        			
        			if (multiName[i] == NULL) {
        				strcpy(mcline, inet_ntoa(multiAddr[i])); 
        			} else {
        				wsprintf(mcline, Format(33), multiName[i],
        					(LPSTR) inet_ntoa(multiAddr[i]));
        			}
					SendMessage(ctl, LB_ADDSTRING, 0,
						(LPARAM) (LPSTR) mcline);
        		}
        		SendMessage(ctl, LB_SETCURSEL, multiMemberships > 0 ? 0 : -1, 0L);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -