¹C«È:  µù¥U | µn¿ý | ·j¯Á | À°§U | VIPÃÙ§U¥»¯¸ | ¥ZµnÃÙ§U¼s§i | ³]¬°­º­¶ | ¥[¤J¦¬Âà | ÁcÅ餤¤å

 

your gf Ú»­ø¨ì¤ù ¥î¼äóa ¤£¯à³X°ÝSOPCAST­¶­± ¶Â¦â­I´º ¤ÑÀs¤K³¡·tª÷Ä_ ¸Ý¥Ponline©xºô ¤p¤t¬ü ½u¤WH°Êµe §K¶O§Y®É³ø»ù ªá¼Ë¤Ö¦~¤Ö¤k¢ê¢ü ¤Ó»×¥ß§Ó¶Ç ¤H¶¡¤¿¾¹º©µe Hebe·s¾v«¬ Media calssic I miss you³¯¬f¦t seed H LostPlanet¯}¸Ñ ¤Ñ°ó¨pªA³Ü¤ôµ{¦¡ ¤Ñ¥~2 online ¯]®ü®á®³¤p©j¥þ®M

 




·j¯Á¿ï¶µ ¯Á¤Þ¨t²Î¤u¨ãµ¡
 
¼ÐÃD: Win32·J½s±Ðµ{¥|
http://manyway.net ÃÙ§Uºô¯¸¸ü¤J¤¤...
chan0006
ºaÅA²z¨Æ
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
¹q¸£¦a±a°Ï¥D

ºaÅA¾±³¹ ¥Ø«e¨S¦³¾±³¹

UID¡G 460360

©Ê§O¡G ¨k

ºëµØ¡G 3 ½g

¿n¤À¡G 2593 ÂI

©«¤l¡G 1863 ½g

  ¤j ¤¤ ¤p
µoªí©ó 2006-11-24 13:34  ¸ê®Æ  ­Ó¤HªÅ¶¡  ¥D­¶ µu®ø®§  ¥[¬°¦n¤Í  ²K¥[ chan0006 ¬°MSN¦n¤Í ³q¹LMSN©M chan0006 ¥æ½Í QQ

Win32·J½s±Ðµ{¥| ±z¬O²Ä 302­ÓÂsÄýªÌ

¦³Ãöµøµ¡ªº°ò¥»ª¾ÃÑ
    µøµ¡¬O¿Ã¹õ¤Wªº¯x§Î°Ï°ì¡C¤@­Óµøµ¡¥i¥H±qÁä½L©ÎªÌ·Æ¹«±µ¨ü¥Î¤áªº¿é¤J¡A¨Ã¦b¨ä¤º³¡Åã¥Ü¹Ï§Î¿é¥X¡C¤@­ÓÀ³¥Îµ{¦¡µøµ¡³q±`¥]§tµ{¦¡ªº¼ÐÃD±ø¡B¥\¯àªí¡BÃ䮨¡A±²¶b¡C¨ä¤¤¡A¹ï¸Ü¤è¶ô¤]¬O¤@ºØµøµ¡¡C¤£¦Pªº¬O¡A¹ï¸Ü¤è¶ôªí­±³q±`¥]§t´X­Ó¨ä¥Lµøµ¡¡AºÙ¤§¬°¡§¤lµøµ¡¡¨¡C³o¨Ç¤lµøµ¡ªº§Î¦¡¦³À£¤J«ö¶s¡B³æ¿ï«ö¶s¡B®Ö¨ú¤è¶ô¡B¤å¥»¿é¤J°Ï°ì¡B¦Cªí®Ø©M±²¶bµ¥¡C ¥Î¤á±N³o¨Çµøµ¡¬Ý¦¨¿Ã¹õ¤Wªºª«¥ó¡A¥i¥H³q¹L«ö¤U¤@­Ó«ö¶s©ÎªÌºu°Ê¤@­Ó±²¶b»P³o¨Çª«¥óª½±µ¥æ¤¬¡C
    µøµ¡¥H¡§®ø®§¡¨ªº§Î¦¡±µ¦¬µøµ¡ªº¿é¤J¡Aµøµ¡¤]¥Î®ø®§»P¨ä¥Lµøµ¡³q°T¡C¤ñ¦p¦bµ{¦¡µøµ¡ªº¤j¤p§ïÅܮɡA¦r³B²z¾¹·|­«·s®æ¦¡¤Æ¨ä¤¤ªº¤å¥»¡Cµøµ¡¤j¤p§ïÅܪº²Ó¸`¬O¥Ñ§@·~¨t²Î³B²zªº¡A¦ýµ{¦¡¯à°÷¦^À³³o­Ó¨t²Î¥\¯à¡C·í¥Î¤á§ïÅܵøµ¡ªº¤j¤p®É¡AWindowsµ¹µ{¦¡µo°e¤@±ø®ø®§«ü¥X·sµøµ¡ªº¤j¤p¡CµM«á¡Aµ{¦¡´N¥i¥H½Õ¾ãµøµ¡¤¤ªº¤º®e¡A¥H¦^À³¤j¤pªºÅܤơCµ{¦¡³Ð«Øªº¨C¤@­Óµøµ¡³£¦³¬ÛÃöªºµøµ¡¹Lµ{¡C¤]´N¬Oµ¹³o­Óµøµ¡«ü©w¤@­Ó¤lµ{¦¡¡]µøµ¡¹Lµ{¡^¡AWindows³q¹L½Õ¥Î¥¦¨Óµ¹µøµ¡µo°e®ø®§¡Cµøµ¡¹Lµ{¦A®Ú¾Ú¦¹®ø®§¶i¦æ³B²z¡AµM«á±N±±¨îªð¦^µ¹Windows¡C
    µøµ¡¦b¡§µøµ¡Ãþ¡¨ªº°ò¦¤W³Ð«Øªº¡CWindows©w¸q¤F½T¬Ùªºµøµ¡¹Lµ{¡A¦pªG§A¹ï©Ò¦³ªº®ø®§³£ÅýWindows¦Û¤v³B²z¡A¨º»ò§A´N¯à±o¨ì¤@­Ó¼Ð·Çªºµøµ¡¡A¦P¼Ë¡A§A¤]¥i¥H¿ï¾Ü³B²z¦Û¤v·P¿³½ìªº®ø®§¡A³o¼Ë¡A¬Û·í©ó²£¥Í¤F¤£¦Pªº¤lÃþ¡A¤]´N§Î¦¨¤F¤£¦PªºÀ³¥Îµ{¦¡¡C¦P¼Ë¡A¤lµøµ¡¤]¬O°ò©ó¦P¤@­Óµøµ¡Ãþ¡A¨Ã¥B¨Ï¥Î¦P¤@­Óµøµ¡¹Lµ{¡C¨Ò¦p¡A©Ò¦³Windows µ{¦¡¤¤ªº©Ò¦³«ö¶s³£°ò©ó¦P¤@µøµ¡Ãþ¡C³o­Óµøµ¡Ãþ¦³¤@­Ó³B²z©Ò¦³«ö¶s®ø®§ªºµøµ¡¹Lµ{¡A¦ý¬O¡A¦pªG§A«ö¦Û¤vªº³]·Q³]­p¤@­Ó«ö¶s¡A¦p·Q§â«ö¶sªºªí­±´«¦¨ÂI°}¹Ï¡A§A´N¥i¥H¦Û¤v³B²z«ö¶sµøµ¡ªº WM_PAINT ®ø®§¡A·í Windows »Ý­nµe«ö¶sªí­±ªº®É­Ô¡A§A´N¥i¥HÀH¦Û¤vªº·N«ä¥hµe¡C
    Windowsµ{¦¡¶}©l°õ¦æ«á¡AWindows¬°¸Óµ{¦¡³Ð«Ø¤@­Ó¡§®ø®§¦î¦C¡¨¡C³o­Ó®ø®§¦î¦C¥Î¨Ó¦s©ñ¸Óµ{¦¡¥i¯à³Ð«Øªº¦UºØ¤£¦Pµøµ¡ªº®ø®§¡Cµ{¦¡¤¤¦³¤@¬q¥N½X¡A¥s°µ¡§®ø®§°j°é¡¨¡A ¥¦¥Î¨Ó±q¦î¦C¤¤¨ú¥X®ø®§¡A¨Ã¥B±N¥¦­Ìµo°eµ¹¬ÛÀ³ªºµøµ¡¹Lµ{¡C¦b¨S¦³®ø®§µo¥Íªº®É­Ô¡A§Aªºµ{¦¡¹ê»Ú¤W´N¦b®ø®§°j°é¤¤Âà°é¤l¡C
    ³Ð«Ø¤@­Óµøµ¡ªº¹Lµ{¦p¤U¡G
¨ú±oµ{¦¡ªº¹ê¨Ò±±¨î½X(hInstance)
µù¥Uµøµ¡Ãþ¡A¹ê»Ú¤W´N¬O¬°§Aªºµøµ¡«ü©w³B²z®ø®§ªº¹Lµ{¡A©w¸q´å¼Ð¡Aµøµ¡­·®æ¡AÃC¦âµ¥°Ñ¼Æ
³Ð«Øµ¡¤f
Åã¥Üµøµ¡
µM«á¶i¤J®ø®§°j°é¡A¤]´N¬O¤£°±¦aÀË´ú¦³µL®ø®§¡A¨Ã§â¥¦µo°eµ¹µøµ¡¶iµ{¥h³B²z¡C
³Ð«Ø¤@­Óµøµ¡ªº¥N½X¦b¤£¦Pªºµ{¦¡¤¤¹ê»Ú¤W¬O´X¥G¤@¼Ò¤@¼Ëªº¡A©Ò¥H§A½s¤@­Ó·sªºµ{¦¡®É¥i¥H§â³o¤@¬q«þ¨Ó«þ¥h¡Aµy·L­×§ï¤@¤U´N¦æ¡Aµ{¦¡ªº¤j³¡¤À¥N½X¹ê»Ú¤W¬O¥Î¦bµøµ¡¹Lµ{¤¤¡A¦]¬°³o¤~¬O¤£¦Pµ{¦¡ªº¤£¦P¤§³B¡Cµ¡¤f¹Lµ{ªº½sµ{­nÂI¦p¤U¡G

±qWindows¶Çµ¹µ¡¤f¹Lµ{ªº°Ñ¼Æ uMsg ±o¨ì®ø®§Ãþ«¬¡A¨ÃÂà¨ì¤£¦Pªº¤ÀªK¥h³B²z¡C
¹ï¦Û¤v¤w¸g³B²zªº®ø®§¡Aªð¦^ Windows ®É¥²¶·¦beax ¤¤ªð¦^0¡C
¦Û¤v¤£³B²zªº®ø®§¡A¥²¶·½Õ¥Î DefWindowProc ³B²z¡A¨Ã§âªð¦^­È¶Ç¦^Windows¡A§_«h¡AWindows·|µLªkÅã¥Ü¡C
uMsg °Ñ¼Æ¤¤«ü©wªº®ø®§¦³280¦hºØ¡A¹ê»Ú¤W§Ú­Ì»Ý­n³B²zªº¥u¦³­«­nªº´XºØ¡A¦«Å¶Ç0250ows¦b³Ð«Øªº®É­Ô·|µo°e WM_CREATE ®ø®§¡A§Ú­Ì´N¥i¥H¦b³o®É­Ôªì©l¤Æ¡A¤À°t°O¾ÐÅéµ¥µ¥¡A¦Ó°h¥X®É·|µo°e WM_CLOSE¡A§Ú­Ì´N¥i¥H¶i¦æÄÀ©ñ°O¾ÐÅéµ¥²M°£¤u§@¡A·íWindows¤Wªº¥\¯àªí©Î«ö¶s³Q«ö¤U®Éµo°e WM_COMMAND ®ø®§µ¥µ¥¡A¨ãÅé¥i¥H°Ñ¦Ò Win32 Programmer's Reference¡C¤U­±¡A§Ú­Ì¨Ó¬Ý¤@­Ó³Ð«Øµøµ¡ªºÂ²³æµ{¦¡¡C

¤@­Ó³Ð«Øµøµ¡ªºµ{¦¡

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Programmed by ù¶³±l, bigluo@telekbird.com.cn
; Website: http://asm.yeah.net
; LuoYunBin's Win32 ASM page (ù¶³±lªº½sµ{¼Ö¶é)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  .386
  .model flat, stdcall
  option casemap :none   ; case sensitive

include  windows.inc
include  user32.inc
include  kernel32.inc
include  comctl32.inc
include  comdlg32.inc
include  gdi32.inc

includelib user32.lib
includelib kernel32.lib
includelib comctl32.lib
includelib comdlg32.lib
includelib gdi32.lib

IDI_MAIN equ  1000  ;icon
IDM_MAIN equ  4000  ;menu
IDM_EXIT equ  4001

  .data?
hInstance dd  ?
hWinMain dd  ?
hMenu  dd  ?
szBuffer db 256 dup (?)

  .data
szClassName db "Windows Template",0
szCaptionMain db 'µøµ¡½d¥»',0

  .code
start:
  call _WinMain
  invoke ExitProcess,NULL

_WinMain proc
  local @stWcMain:WNDCLASSEX
  local @stMsg:MSG

  invoke InitCommonControls
  invoke GetModuleHandle,NULL
  mov hInstance,eax
  invoke LoadIcon,hInstance,IDI_MAIN
  mov hIcon,eax
  invoke LoadMenu,hInstance,IDM_MAIN
  mov hMenu,eax
;*************** µù¥Uµøµ¡Ãþ *****************************************
  invoke LoadCursor,0,IDC_ARROW
  mov @stWcMain.hCursor,eax
  mov @stWcMain.cbSize,sizeof WNDCLASSEX
  mov @stWcMain.hIconSm,0
  mov @stWcMain.style,CS_HREDRAW or CS_VREDRAW
  mov @stWcMain.lpfnWndProc,offset WndMainProc
  mov @stWcMain.cbClsExtra,0
  mov @stWcMain.cbWndExtra,0
  mov eax,hInstance
  mov @stWcMain.hInstance,eax
  mov @stWcMain.hIcon,0
  mov @stWcMain.hbrBackground,COLOR_WINDOW + 1
  mov @stWcMain.lpszClassName,offset szClassName
  mov @stWcMain.lpszMenuName,0
  invoke RegisterClassEx,addr @stWcMain
;*************** «Ø¥ß¿é¥Xµøµ¡ ***************************************
  invoke CreateWindowEx,WS_EX_CLIENTEDGE,\
   offset szClassName,offset szCaptionMain,\
   WS_OVERLAPPEDWINDOW OR WS_VSCROLL OR WS_HSCROLL,\
   0,0,550,300,\
   NULL,hMenu,hInstance,NULL

  invoke ShowWindow,hWinMain,SW_SHOWNORMAL
  invoke UpdateWindow,hWinMain
;*************** ®ø®§°j°é *******************************************
  .while TRUE
   invoke GetMessage,addr @stMsg,NULL,0,0
   .break .if eax == 0
   invoke TranslateMessage,addr @stMsg
   invoke DispatchMessage,addr @stMsg
  .endw
  ret

_WinMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WndMainProc proc uses ebx edi esi, \
  hWndWORD,uMsgWORD,wParamWORD,lParam:DWORD

  mov eax,uMsg
  .if eax == WM_CREATE
   mov eax,hWnd
   mov hWinMain,eax
   call _Init
;********************************************************************
  .elseif eax == WM_COMMAND
     .if lParam == 0
   mov eax,wParam
   .if ax == IDM_EXIT
    call _Quit
   .endif
     .endif
;********************************************************************
  .elseif eax == WM_CLOSE
   call _Quit
;********************************************************************
  .else
   invoke DefWindowProc,hWnd,uMsg,wParam,lParam
   ret
  .endif
  xor eax,eax
  ret

WndMainProc endp
_Init  proc
  invoke SendMessage,hWinMain,WM_SETICON,ICON_SMALL,hIcon
  ret
_Init  endp
;********************************************************************
_Quit  proc

  invoke DestroyWindow,hWinMain
  invoke PostQuitMessage,NULL
  ret

_Quit  endp
;********************************************************************
  end start

µøµ¡µ{¦¡ªº¤ÀªR
    Åý§Ú­Ì¨Ó²³æ¤ÀªR¤@¤U³o­Óµ{¦¡¡A­º¥ýµ{¦¡½Õ¥Î _WinMain¡A¦b_WinMain ¤¤©w¸q¤F¨â­Ó§½³¡ÅÜ¼Æ @stMsg ©M @stWinMain¡A¸ê®ÆÃþ«¬¤À§O¬O MSG ©M WNDCLASSEXµ²ºc¡A¦b°Ñ¦Ò¤â¥U¤¤¡A¥i¥H¬Ý¨ìWNDCLASSEX©w¸q¤F¤@­Óµøµ¡ªº©Ò¦³°Ñ¼Æ¡A¦p¨Ï¥Îªº¥\¯àªí¡B´å¼Ð¡BÃC¦â¡Bµøµ¡¹Lµ{µ¥¡A±µ¤U¨Óªº¤@¤j°ï mov «ü¥O¹ê»Ú¤W´N¬O¦b¶ñ¼g³o­Ó¸ê®Æµ²ºc¡A¶ñ¼g§¹¦¨«á¡A³Ì­«­nªº¨â¥y¬O mov @stWcMain.lpfnWndProc,offset WndMainProc ©w¸q¤F³B²z®ø®§ªºµøµ¡¹Lµ{¡A mov @stWcMain.lpszClassName,offset szClassName ©w¸q¤F§A­n³Ð«ØªºÃþªº¦WºÙ¡AµM«á´N¬O¨Ï¥Î RegisterClassEx µù¥U³o­Óµøµ¡Ãþ¡Aª`·N¡A³o®É­Ôµøµ¡¨Ã¨S¦³³Ð«Ø¡A§A¥u¤£¹L¬O©w¸q¦n¤F¤@­Ó¤lÃþ¡A±µ¤U¥h§A­n¥Î§A©w¸qªºÃþ¥h³Ð«Ø¤@­Óµøµ¡¡C¤]´N¬O¨Ï¥Î CreateWindowEx ¨ç¼Æ¥h³Ð«Ø¥¦¡C¦b¤â¥U¤¤¡ACreateWindowEx ¬O³o¼Ë©w¸qªº¡G
HWND CreateWindowEx(
DWORD dwExStyle, // extended window style
LPCTSTR lpClassName, // pointer to registered class name
LPCTSTR l«Å¶Ç0250owName, // pointer to window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
HMENU hMenu, // handle to menu, or child-window identifier
HINSTANCE hInstance, // handle to application instance
LPVOID lpParam // pointer to window-creation data );

¨ä¤¤ªº°Ñ¼Æ dwExStyle ¬Oµøµ¡ªº­·®æ¡AlpClassName ´N¬O§Ú­Ì¦Û¤v©w¸qªºÃþªº¦W¦r¡C¦pªG¤j®a­n³Ð«Ø¤@­Ó¤w¸g©w¸q¦nªºÃþ¡A¦p RichEdit Ãþµ¥µ¥¡A¥u­n§â lpClassName «ü¦V "RichEdit32" ¦r¦ê´N¦æ¤F¡A·íµM³o®É´N¤£¥Î RegisterClass ¥H¤Î½s¼g¦Û¤vªºµøµ¡¹Lµ{¤F¡C°õ¦æ CreateWindowEx «á¡A±o¨ì¤@­Óªð¦^­È´N¬Oµøµ¡±±¨î½X¡A³o­Ó­È¦b¥H«á¬O­n¸g±`¥Î¨ì¤F¡A©Ò¥H­n¥ý«O¦s¤U¨Ó¡C³o®Éµøµ¡¨Ã¨S¦³¦b¿Ã¹õ¤WÅã¥Ü¥X¨Ó¡A¦Ó¬O³B©óÁôÂꬺA¡A§Ú­Ì­n¥Î ShowWindow ¨ÓÅã¥Ü¥Xµøµ¡¨Ã¥ÎUpdateWindow ¨Óøµøµ¡ªº¤º®e¡C
    µøµ¡Åã¥Ü¥X¨Ó«á¡Aµ{¦¡´N¶i¤J¤@­Ó°j°é----®ø®§°j°é¡A«e­±§Ú¤w¸g»¡¹L¡A§@¥Î¬O¤£°±¦a±µ¦¬ Windows ®ø®§¨Öµo°eµ¹µøµ¡¹Lµ{¥h³B²z¡CGetMessage ±q®ø®§¦î¦C¤¤¨ú¥X¤@±ø®ø®§¡A¦pªG¨ú±oªº®ø®§¤£¬O WM_QUIT¡A¨º»ò GetMessage ªð¦^¤@­Ó«D¹s­È¡A§_«hªð¦^¹s¡A³o®É­Ô°j°éµ²§ô¡Aµ{¦¡°õ¦æ ExitProcess°h¦^§@·~¨t²Î¡CTranslateMessage ±N®ø®§¶i¦æ¤@¨ÇÁä½LÂà´«¡A¥Î©ó³B²z¤@¨Ç§Ö±¶Áä¡ADispatchMessage ±N³B²z«áªº®ø®§µo¦^ Windows¡A¥ÑWindows½Õ¥Îµøµ¡¶iµ{¶i¦æ³B²z¡A·íµøµ¡¶iµ{³B²z§¹ªð¦^«á¡Aµ{¦¡¤~±q DispatchMessage ªð¦^¡A±q¦Ó¶}©l¤U¤@­Ó GetMessage ½Õ¥Î¡C³o¨Ç¨çªº°Ñ¼Æ¥i¥H°Ñ¦Ò¤â¥U¡C

µøµ¡¹Lµ{ªº¤ÀªR
    µ¡¤f¹Lµ{¦³¥|­Ó°Ñ¼Æ¡AhWnd ¬O¥»µ¡¤fªº±±¨î½X¡A©M³Ð«Øµ¡¤f®Éªð¦^ªº­È¬Û¦P¡AuMsg ¬O¥»¦¸½Õ¥Îªº®ø®§Ãþ«¬¡AwParam ©MlParam¬O®ø®§ªº°Ñ¼Æ¡A¨ä§t¸q©M¼Æ­È®Ú¾Ú®ø®§ªº¤£¦P¦Ó¤£¦P¡C¦b¥»µ{¦¡¤¤¡A§Ú­Ì³B²z WM_CREATE,WM_COMMAND ©M WM_QUIT ®ø®§¡AµM«áªð¦^0¡A¹ï¤£³B²zªº®ø®§¡A¨Ï¥Î invoke DefWindowProc,hWnd,uMsg,wParam,lParam ¨Ó³B²z¨Ãª½±µ¥Î ret ±Nªð¦^­È¶Ç¦^ Windows¡C¦b¦^À³ WM_CLOSE ®ø®§®É¡A§Ú­Ì¥Î DestroyWindow ²M°£µøµ¡¨Ã¥ÎPostQuitMessage ²£¥Í¤@±ø WM_QUIT ®ø®§¡A±q¦Ó¨Ïµ{¦¡¦b ®ø®§°j°é½Õ¥ÎGetMessage ®Éªð¦^0¡A¥Hµ²§ô®ø®§°j°é¨Ãµ²§ôµ{¦¡¡C





〓¤¤°ê¶Â«ÈÁp·ù¡]CHU¡^〓«e®Ö¤ß¦¨­û¡A²{¬°ºaÅA·|­û
〓¤¤°ê¶Â«ÈÁp·ù¡]CHU¡^〓ºôµ¸¹q¤lÂø»x¡m¯x°}¡n½s¿è
­·°ó§Þ³N¤u§@«Ç
³»³¡

 



¥»¯¸³]³Æ¾¹§÷¥Ñ Many Way (HK) Limited ÃÙ§U´£¨Ñ
·í«e®É°Ï GMT+8, ²{¦b®É¶¡¬O 2008-10-14 00:10

Advertisting Agency

Audit and Analytics

Partner Companies

Powered by Discuz! 5.5.0¢x0.065869 (s), 7 queries, Copyright © 2008 HK-PUB.COM All Rights Reserved. ¥»¯¸Án©ú - ¼s§i¬d¸ß - ²M°£ Cookies - Ápô§Ú­Ì - ¤j²³½×¾Â - Archiver - WAP