PHTEST.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. #include <windows.h>
  11. #include "phtest.h"
  12. #include "proghelp.h"
  13. LONG  APIENTRY MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LONG lParam);
  14. DWORD GFlags;
  15. DWORD type;
  16. HANDLE hKey;
  17. int WINAPI WinMain(
  18. HINSTANCE hInstance,
  19. HINSTANCE hPrevInstance,
  20. LPSTR lpCmdLine,
  21. INT nCmdShow)
  22. {
  23.     DialogBox(hInstance,
  24.             MAKEINTRESOURCE(DID_PHTEST),
  25.             NULL,
  26.             (DLGPROC)MainWndProc);
  27.     return(TRUE);
  28. }
  29. LONG  APIENTRY MainWndProc(
  30. HWND hwnd,
  31. UINT message,
  32. WPARAM wParam,
  33. LONG lParam)
  34. {
  35.     TCHAR szT[100];
  36.     switch (message) {
  37.     case WM_INITDIALOG:
  38.         if (!ConnectToProgman()) {
  39.             PostMessage(hwnd, WM_CLOSE, 0, 0);
  40.             return(0);
  41.         }
  42.         return(IDEF_EXECTEXT);
  43.     case WM_COMMAND:
  44.         switch (LOWORD(wParam)) {
  45.         case IDOK:
  46.             GetDlgItemText(hwnd, IDEF_EXECTEXT, szT, sizeof(szT));
  47.             if (!ProgmanExecuteString(szT)) {
  48.                 MessageBeep(0);
  49.             }
  50.         }
  51.         break;
  52.     case WM_CLOSE:
  53.         ShowWindow(hwnd, SW_HIDE);
  54.         if (!DisconnectFromProgman()) {
  55.             /*
  56.              * Progman is not done yet - we need to wait around for the
  57.              * transactions to complete before closing down so just
  58.              * keep posting WM_CLOSE to ourselves to allow DDEML's DDE
  59.              * messages to finish.
  60.              */
  61.             Sleep(100);
  62.             PostMessage(hwnd, WM_CLOSE, 0, 0);
  63.             return(0);
  64.         };
  65.         EndDialog(hwnd, 0);
  66.         break;
  67.     }
  68.     return(0);
  69. }