--- mstools/samples/ddeml/client/dialog.c 2018/08/09 18:20:38 1.1 +++ mstools/samples/ddeml/client/dialog.c 2018/08/09 18:25:39 1.1.1.4 @@ -1,3 +1,14 @@ + +/******************************************************************************\ +* This is a part of the Microsoft Source Code Samples. +* Copyright (C) 1993 Microsoft Corporation. +* All rights reserved. +* This source code is only intended as a supplement to +* Microsoft Development Tools and/or WinHelp documentation. +* See these sources for detailed information regarding the +* Microsoft samples programs. +\******************************************************************************/ + /*************************************************************************** * * * MODULE : dialog.c * @@ -28,21 +39,21 @@ CHAR szT[MAX_NAME]; // temp buf for ****************************************************************************/ INT FAR DoDialog( LPSTR lpTemplateName, -WNDPROC lpDlgProc, +DLGPROC lpDlgProc, LONG param, BOOL fRememberFocus) { - DWORD wRet; + INT iRet; HWND hwndFocus; if (fRememberFocus) hwndFocus = GetFocus(); lpDlgProc = MakeProcInstance(lpDlgProc, hInst); - wRet = DialogBoxParam(hInst, lpTemplateName, hwndFrame, (DLGPROC)lpDlgProc, param); + iRet = DialogBoxParam(hInst, lpTemplateName, hwndFrame, lpDlgProc, param); FreeProcInstance(lpDlgProc); if (fRememberFocus) SetFocus(hwndFocus); - return wRet; + return iRet; } @@ -68,7 +79,7 @@ LPARAM lParam; break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: EndDialog(hwnd, 0); @@ -130,7 +141,7 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: GetDlgItemText(hwnd, IDEF_APPLICATION, szT, MAX_NAME); if (!strcmp(szT, szWild)) @@ -155,7 +166,7 @@ LPARAM lParam) // count the existing conversations and allocate aHwnd cHwnd = 0; - hConv = NULL; + hConv = 0; while (hConv = DdeQueryNextServer((HCONVLIST)pmci->hConv, hConv)) cHwnd++; aHwnd = (HWND *)MyAlloc(cHwnd * sizeof(HWND)); @@ -163,7 +174,7 @@ LPARAM lParam) // save all the old conversation windows into aHwnd. pHwnd = aHwnd; - hConv = NULL; + hConv = 0; while (hConv = DdeQueryNextServer((HCONVLIST)pmci->hConv, hConv)) { DdeQueryConvInfo(hConv, QID_SYNC, &ci); *pHwnd++ = (HWND)ci.hUser; @@ -181,7 +192,7 @@ LPARAM lParam) // fixup windows corresponding to the new conversations. pmci->hConv = hConv; - hConv = NULL; + hConv = 0; while (hConv = DdeQueryNextServer((HCONVLIST)pmci->hConv, hConv)) { DdeQueryConvInfo(hConv, QID_SYNC, &ci); // preserve corresponding window by setting its list @@ -205,7 +216,7 @@ LPARAM lParam) // create any new windows needed - hConv = NULL; + hConv = 0; while (hConv = DdeQueryNextServer((HCONVLIST)pmci->hConv, hConv)) { DdeQueryConvInfo(hConv, QID_SYNC, &ci); if (ci.hUser) { @@ -322,15 +333,15 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDCH_EXECUTE: SetDlgItemText(hwnd, IDEF_ITEM, ""); case IDCH_REQUEST: case IDCH_ADVISE: case IDCH_UNADVISE: case IDCH_POKE: - EnableWindow(GetDlgItem(hwnd, IDEF_ITEM), GET_WM_COMMAND_ID(wParam, lParam) != IDCH_EXECUTE); - EnableWindow(GetDlgItem(hwnd, IDTX_ITEM), GET_WM_COMMAND_ID(wParam, lParam) != IDCH_EXECUTE); + EnableWindow(GetDlgItem(hwnd, IDEF_ITEM), LOWORD(wParam) != IDCH_EXECUTE); + EnableWindow(GetDlgItem(hwnd, IDTX_ITEM), LOWORD(wParam) != IDCH_EXECUTE); break; case IDOK: @@ -347,9 +358,9 @@ LPARAM lParam) } } - if (GET_WM_COMMAND_ID(wParam, lParam) == IDBN_OPTIONS) { + if (LOWORD(wParam) == IDBN_OPTIONS) { DoDialog(MAKEINTRESOURCE(IDD_ADVISEOPTS), - (WNDPROC)AdvOptsDlgProc, (LONG)pxact, TRUE); + (DLGPROC)AdvOptsDlgProc, (LONG)pxact, TRUE); return 0; } @@ -370,7 +381,7 @@ LPARAM lParam) } GetDlgItemText(hwnd, IDEF_ITEM, szT, MAX_NAME); - pxact->hszItem = DdeCreateStringHandle(idInst, szT, NULL); + pxact->hszItem = DdeCreateStringHandle(idInst, szT, 0); pxact->hDdeData = 0; /* @@ -378,7 +389,7 @@ LPARAM lParam) */ if (pxact->wType == XTYP_POKE || pxact->wType == XTYP_EXECUTE) { if (!DoDialog(MAKEINTRESOURCE(IDD_TEXTENTRY), - (WNDPROC)TextEntryDlgProc, (DWORD)(LPSTR)pxact, + (DLGPROC)TextEntryDlgProc, (DWORD)(LPSTR)pxact, TRUE)) return 0; } @@ -459,11 +470,11 @@ LPARAM lParam) EnableWindow(GetDlgItem(hwnd, IDCH_NODATA), FALSE); EnableWindow(GetDlgItem(hwnd, IDCH_ACKREQ), FALSE); } - SendMessage(hwnd, WM_COMMAND, GET_WM_COMMAND_MPS(IDCH_ASYNC, 0, 0)); // enable async checkboxes + SendMessage(hwnd, WM_COMMAND, (WPARAM)MAKELONG(IDCH_ASYNC, 0), (LONG)(0)); // enable async checkboxes break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDCH_ASYNC: { BOOL fEnable; @@ -484,7 +495,7 @@ LPARAM lParam) } if (!(pxact->fsOptions & XOPT_ASYNC)) pxact->ulTimeout = (DWORD)GetDlgItemInt(hwnd, IDEF_TIMEOUT, - &i, FALSE); + (BOOL *)&i, FALSE); // fall through case IDCANCEL: EndDialog(hwnd, 0); @@ -548,7 +559,7 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: case IDBN_GENHUGE: fOwned = IsDlgButtonChecked(hwnd, IDCH_MAKEOWNED); @@ -573,7 +584,7 @@ LPARAM lParam) } GetDlgItemText(hwnd, IDEF_DATA, pData, (DWORD)cb); DdeUnaccessData(pxact->hDdeData); - if (GET_WM_COMMAND_ID(wParam, lParam) == IDBN_GENHUGE) { + if (LOWORD(wParam) == IDBN_GENHUGE) { CHAR szT[40]; /* @@ -582,7 +593,7 @@ LPARAM lParam) * this string and create a randomly generated huge block * of text data and place it into pxact->hDdeData. */ - _fmemcpy(szT, pData, min((DWORD)cb, 40)); + memcpy(szT, pData, min((DWORD)cb, 40)); szT[39] = '\0'; if (sscanf(szT, "%ld", &length) == 1) { DdeFreeDataHandle(pxact->hDdeData); @@ -612,8 +623,8 @@ LPARAM lParam) * the user has chosen to use an existing owned data for sending * to the server. */ - id = DoDialog(MAKEINTRESOURCE(IDD_HDATAVIEW), (WNDPROC)ViewHandleDlgProc, - (DWORD)pxact, TRUE); + id = DoDialog(MAKEINTRESOURCE(IDD_HDATAVIEW), (DLGPROC)ViewHandleDlgProc, + (LONG)pxact, TRUE); switch (id) { case IDCANCEL: @@ -669,7 +680,7 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: // use selectted handle case IDBN_DELETE: // delete selected handle case IDBN_VIEW: // view selected handle @@ -678,9 +689,9 @@ LPARAM lParam) SendDlgItemMessage(hwnd, IDLB_HANDLES, LB_GETTEXT, itm, (LONG)(LPSTR)szT); sscanf(szT, "[%d]", &i); pxact->hDdeData = aOwned[i].hData; - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: // use selectted handle - EndDialog(hwnd, GET_WM_COMMAND_ID(wParam, lParam)); + EndDialog(hwnd, LOWORD(wParam)); break; case IDBN_DELETE: // delete selected handle @@ -692,7 +703,7 @@ LPARAM lParam) break; case IDBN_VIEW: // view selected handle - EndDialog(hwnd, GET_WM_COMMAND_ID(wParam, lParam)); + EndDialog(hwnd, LOWORD(wParam)); } } break; @@ -724,7 +735,7 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: wDelay = (DWORD)GetDlgItemInt(hwnd, IDEF_VALUE, NULL, FALSE); case IDCANCEL: @@ -768,7 +779,7 @@ LPARAM lParam) break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: DefTimeout = GetDlgItemInt(hwnd, IDEF_VALUE, NULL, FALSE); case IDCANCEL: @@ -789,7 +800,7 @@ LPARAM lParam) BOOL APIENTRY ContextDlgProc( -HWND hwnd, +HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) @@ -803,11 +814,13 @@ LPARAM lParam) SetDlgItemInt(hwnd, IDEF_CODEPAGE, CCFilter.iCodePage, TRUE); SetDlgItemInt(hwnd, IDEF_LANG, CCFilter.dwLangID, FALSE); SetDlgItemInt(hwnd, IDEF_SECURITY, CCFilter.dwSecurity, FALSE); + CheckRadioButton(hwnd, IDRB_IL_ANON, IDRB_IL_DELEGATE, + IDRB_IL_ANON + (int)CCFilter.qos.ImpersonationLevel); return(1); break; case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) { + switch (LOWORD(wParam)) { case IDOK: CCFilter.wFlags = (WORD)GetDlgItemInt(hwnd, IDEF_FLAGS, &fSuccess, FALSE); if (!fSuccess) return(0); @@ -819,6 +832,15 @@ LPARAM lParam) if (!fSuccess) return(0); CCFilter.dwSecurity = (DWORD)GetDlgItemInt(hwnd, IDEF_SECURITY, &fSuccess, FALSE); if (!fSuccess) return(0); + if (IsDlgButtonChecked(hwnd, IDRB_IL_ANON)) { + CCFilter.qos.ImpersonationLevel = SecurityAnonymous; + } else if (IsDlgButtonChecked(hwnd, IDRB_IL_ID)) { + CCFilter.qos.ImpersonationLevel = SecurityIdentification; + } else if (IsDlgButtonChecked(hwnd, IDRB_IL_IMP)) { + CCFilter.qos.ImpersonationLevel = SecurityImpersonation; + } else if (IsDlgButtonChecked(hwnd, IDRB_IL_DELEGATE)) { + CCFilter.qos.ImpersonationLevel = SecurityDelegation; + } // fall through case IDCANCEL: EndDialog(hwnd, 0); @@ -840,10 +862,9 @@ DWORD delay) delay = GetCurrentTime() + delay; while (GetCurrentTime() < delay) { - if (PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE)) { + if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } } } -