     DLL.
================================================================================

--------------------------------------------------------[  DLL]-----
CALL $[? ][--cd --nrcd --c --ret:RetName] DLLPath|*DllHandle[, FuncName][, [#]Param1][, ...[, [#]Param20
CALL $[? ][--cd --nrcd --c] --ret:* DLLPath, FuncName, [RetVarName][, [#]Param1][, ...[, [#]Param20
CALL $--ret:RetName [--cd --nrcd ], -LoadLibrary,[^]DLLPath // Dll ^:AutoFree
CALL $--ret:RetName [&DllMemVar], -LoadLibrary, *[FileName]#SrcID[|Cat] // MEM Dll AutoFree
CALL $--ret:RetName, -GetProcAddress, *DllHandle, FuncName //  
CALL $[--ret:RetName], -FreeLibrary, *DllHandle // DllHandle

$	 "$"     DLL
?	  ,    RetVarName
--cd	     
--rcd	     ;  DLL
	    PECMD.
--nrcd	       ( 	)
--c	  C.    *,    
	 DLL (  ),   
	 .    DLLPath,   FuncName 
	.  FuncName ,   "DllRegisterServer".
DLLPath    *DllHandle  **MemDllHandle    
#	 DLLPath   #, FuncName -    
@	   
#	   
Param	  20   (100   C); - 
	 UNICODE
--co     DLL ( ),   
--nco	 DLL ( ),    
--1	     
--bool	API  BOOL on succ
--sret	  int
*[FileName]#SrcID  DLL      ,   
	 *[ ]#  (  CMPS)

-------------------------------------------------------------[ dll32]-----
CALL $--win [--qd@ --cd --nrcd --ret:RetVarName] DLLPath, FName, CMDParam

--qd	     , #integer, *PE_VarName, $string,
	= .
--qd#/--qd*/--qd$/--qd@/--qd=/--qd~     integer/PE_VarName
	str/NarrowStr/UTF8Str  ;
--m	  DLL (  CMPS)  
DLLPath	  DLL,   *[FileName]#SrcID (  CMPS);
	  *num
FName	 
CMDParam    

--------------------------------------------------------------------------------
CALL $--cpl CPLPath, //   , CPLPath   
	 .cpl, : CALL $--cpl imdisk.cpl
CALL <LeadChar><WinClsName:WinRealName> [CMDLineParam] //  
	.
CALL --mem VarName [*] [CMDLineParam] //    
	.

-------------------------------------------[ ,  _SUB]-----
CALL @-sub[:@-#LxTyWwHh]] [LeadChar]<WinName> [CMDLineParam] // 

@-sub[:@-#LxTyWwHh]]     :
		@	     
		-	 
		#	 
		LxTyWwHh    , :L210T150W170H50
LeadChar  ,      :
   @	 ,  _SUB;      : CALL @
   @*	   _SUB,     
	;        
   @-	  _SUB       
	,        
   @~	  _SUB   ,    
   @+	  _SUB   ,    ,
	          
   @^	 @*,       , 
	   ,   
$	    ,   - ;
	  :    , %0, %1, %2, ...%n
	   SubProcName/WinName,   N1, N2,...Nn
%#	  
%*	  ,   %1
%~0, %~1, %~2, ...%~n      
%@	  ,   %0

-------------------------------------------------------[ ]-----
CALL [LeadChar]<SName/WinName> [CMDLineParam]
CALL * <SName> [CMDLineParam] // THIS (    )

LeadChar	,     
SName		  (WinName - Windows )
CMDLineParam	,  

      ,   :
	CALL @WIN1 a b c    WIN1 a b c      
Call of THIS -      ,   
	   &&  .

---------------------------------------------------------[ ]-----
CALL @--popmenu[:x.y] <WinName> [ParamList]

x.y	 .  ,     .
	WM_MENUSELECT    .

--------------------------------------------------------------------------------
   CALL       ,  
   . . _SUB  _END.
     DLL:   DLL    PASCAL,
   --c (  ,    ).
             CALL @,
   ().
       "KILL \",   - 
"ENVI @FuncName=Name1"  "KILL \Name1".
%&&__LastWinID% -      
%&__WinID%	-    .

******************************************************************[]*****
CALL @--  //   Windows.
CALL @  //   Windows,     
	Windows     .
CALL $SHELL32.DLL, DllInstall, #1, U  //  DLL
FIND MEM>127, CALL EXPLORER_SHELL!CALL CMD_SHELL  // 
	-DllRegisterServer	 DLL
	-DllUnregisterServer	 DLL    
CALL $--cpl imdisk.cpl,  // imdisk.cpl
CALL $--win imdisk.cpl,RunDLL_MountFileW,D:\Test.iso  //  
CALL $--win --qd@ imdisk.cpl,RunDLL_MountFile,D:\Grun2.iso
CALL $--win advpack.dll,LaunchINFSectionW,Driver.inf,DefaultInstall
ENVI^ Alias *opt SevenZip=CALL $**m **ret:*  *#5,SevenZip,
CALL $--co SHELL32.DLL,DllInstall,U
CALL $SHELL32.DLL,DllInstall,U
CALL $? --ret:* .,WndProc1_, &&WndProc1Addr
CALL $? --ret:&&addr kernel32.dll,Wow64RevertWow64FsRedirection,
CALL $? --ret:* kernel32.dll,Wow64DisableWow64FsRedirection, &&p
CALL $? --ret:* IPHLPApi.DLL,IcmpCreateFile, &&hIcmpFileAddr
CALL @-sub:@#L210T10W170H50:CALL1 -WIN2 // 
CALL @-sub:@-L210T70W170H80:CALL2 -WIN2 // 
CALL @-sub:@L210T150W170H50:CALL3 -WIN2 //  
CALL @--popmenu MyMenu1
