home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / LordLucifer / win32asm / files / win32asm.exe / Win32ASM / Win32Proto / W32PAbout.asm < prev    next >
Encoding:
Assembly Source File  |  1997-11-10  |  4.2 KB  |  146 lines

  1.     Page 60,190
  2.     TITLE W32PAbout - Windows 95 prototype - "About" dialog handling.
  3.  
  4.                 .586
  5.                 .MODEL FLAT,STDCALL
  6.  
  7.                 .NOLISTMACRO
  8.                 .NOLIST
  9.  
  10. UniCode         = 0
  11.                 INCLUDE INSTR32.MAC
  12.                 INCLUDE WIN32INC.EQU
  13.  
  14.                 INCLUDE WIN32RES.EQU
  15.                 INCLUDE WIN32.MAC
  16.  
  17.                 INCLUDE USER32.EQU
  18.  
  19.                 INCLUDE W32PROTO.EQU
  20.                 .LIST
  21.  
  22. ; External references.
  23.  
  24.                 EXTRN hInst:DWORD       ;Our process instance.
  25.  
  26. ; Forward references (ML can't handle them for INVOKE/PROTOs. Phooey.)
  27.  
  28. AboutDlgProc    PROTO
  29.  
  30.                 PAGE
  31. ; ==================================================================
  32. ; Global Data section.
  33. ; ==================================================================
  34.  
  35.                 .DATA
  36.  
  37.  
  38. ; ==========================================================================
  39. ; Received an ID_HELP_ABOUT menu command in the main window.
  40. ; Invoke About dialog box.
  41. ; ==========================================================================
  42.  
  43.                 .CODE
  44.  
  45. WinProcCMD_ID_HELP_ABOUT PROC PUBLIC,
  46.                            hWnd:DWORD,
  47.                            wMsg:DWORD,
  48.                            wParam:DWORD,
  49.                            lParam:DWORD
  50.  
  51.     INVOKE DialogBoxParam,
  52.              hInst,                     ;Process instance,
  53.              IDD_ABOUTBOX,              ;"About" box template resource,
  54.              hWnd,                      ;owner window,
  55.              OFFSET AboutDlgProc,       ;dialog box procedure,
  56.              0                          ;lparam for WM_DIALOGBOX message.
  57.     XOR EAX,EAX
  58.     RET
  59.  
  60.     UnusedParm wMsg
  61.     UnusedParm wParam
  62.     UnusedParm lParam
  63.  
  64. WinProcCMD_ID_HELP_ABOUT ENDP
  65.  
  66.  
  67. ; ==========================================================================
  68. ; AboutProc dispatcher.
  69. ; Called after we called DialogBoxParam above.
  70. ; ==========================================================================
  71.  
  72. AboutDlgProc PROC
  73.  
  74.     MOV EAX,ESPwMsg                     ;Get wMsg parm, and dispatch it.
  75.  
  76.     CALLBACK AboutProc
  77.     MSGCHAIN WM_COMMAND,AboutDlgProcCMD
  78.     CALLBACKDEFAULT None                ;NO defproc for dialogs, NEVER EVER!
  79.                                         ;Dialogs just return FALSE!
  80. AboutDlgProc ENDP
  81.  
  82.  
  83.  
  84. ; ==========================================================================
  85. ; AboutProc Command dispatcher.
  86. ; ==========================================================================
  87.  
  88. AboutDlgProcCMD PROC
  89.  
  90.     SUB EAX,EAX                         ;Get wMsg parm, and dispatch it.
  91.     MOV AX,WORD PTR ESPwParam
  92.  
  93.     CALLBACK AboutDlgProcCMD
  94.     MESSAGE IDOK
  95.     MESSAGE IDCANCEL
  96.     CALLBACKDEFAULT None                ;NO defproc for dialogs, NEVER EVER!
  97.                                         ;Dialogs just return FALSE!
  98. AboutDlgProcCMD ENDP
  99.  
  100.  
  101. ; ==========================================================================
  102. ; About Dialog Message processing procedures.
  103. ; Must return with EAX = Error code.
  104. ; ==========================================================================
  105.  
  106.  
  107. ; ==========================================================================
  108. ; Received a WM_COMMAND message.
  109. ; End dialog anyway, param could be either OK or Cancel.
  110. ; ==========================================================================
  111.  
  112. AboutDlgProcCMD_IDCANCEL PROC,
  113.                            hWnd:DWORD,
  114.                            wMsg:DWORD,
  115.                            wParam:DWORD,
  116.                            lParam:DWORD
  117.  
  118.     INVOKE AboutDlgProcCMD_IDOK,
  119.              hWnd,
  120.              wMsg,
  121.              wParam,
  122.              lParam
  123.     RET
  124.  
  125. AboutDlgProcCMD_IDCANCEL ENDP
  126.  
  127. AboutDlgProcCMD_IDOK PROC,
  128.                        hWnd:DWORD,
  129.                        wMsg:DWORD,
  130.                        wParam:DWORD,
  131.                        lParam:DWORD
  132.  
  133.     INVOKE EndDialog,                   ;End the dialog
  134.              hWnd,
  135.              wParam                     ;pass wParam as retcode.
  136.     MOV EAX,TRUE                        ;In any case, ret True (Msg processed).
  137.     RET
  138.  
  139.     UnusedParm wMsg
  140.     UnusedParm lParam
  141.  
  142. AboutDlgProcCMD_IDOK ENDP
  143.  
  144.  
  145.     END
  146.