shstub.asm
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 6k
Category:

Windows Kernel

Development Platform:

Visual C++

  1.         page    ,132
  2. ;-----------------------------Module-Header-----------------------------;
  3. ; Module Name:  SHSTUB.ASM
  4. ;-----------------------------------------------------------------------;
  5. ?PLM=1      ; PASCAL Calling convention is DEFAULT
  6. ?WIN=1      ; Windows calling convention
  7.         .286p
  8.         .xlist
  9.         include cmacros.inc
  10.         .list
  11. ifndef SEGNAME
  12.     SEGNAME equ <_TEXT>
  13. endif
  14. createSeg %SEGNAME, CodeSeg, word, public, CODE
  15. ;-----------------------------------------------------------------------;
  16. ;   data seg
  17. ;
  18. sBegin  Data
  19.         DB  16 dup (0)          ; reserved param area
  20. sEnd    Data
  21. public  __acrtused
  22.         __acrtused = 1
  23. ;-----------------------------------------------------------------------;
  24. sBegin  CodeSeg
  25.         assumes cs,CodeSeg
  26.         externFP    LocalInit           ; in KERNEL
  27.         externFP    FreeLibrary         ; in KERNEL
  28. ;;      externFP    LibMain             ; C code to do DLL init
  29.         externNP    LoadShell16         ; in SHINIT.C
  30. ;--------------------------Private-Routine-----------------------------;
  31. ;
  32. ; LibEntry - called when DLL is loaded
  33. ;
  34. ; Entry:
  35. ;       CX    = size of heap
  36. ;       DI    = module handle
  37. ;       DS    = automatic data segment
  38. ;       ES:SI = address of command line (not used)
  39. ;
  40. ; Returns:
  41. ;       AX = TRUE if success
  42. ; Error Returns:
  43. ;       AX = FALSE if error (ie fail load process)
  44. ; Registers Preserved:
  45. ;       SI,DI,DS,BP
  46. ; Registers Destroyed:
  47. ;       AX,BX,CX,DX,ES,FLAGS
  48. ; Calls:
  49. ;       None
  50. ; History:
  51. ;
  52. ;       06-27-89 -by-  Todd Laney [ToddLa]
  53. ;       Created.
  54. ;-----------------------------------------------------------------------;
  55. cProc   LibEntry,<FAR,PUBLIC,NODATA>,<>
  56. cBegin
  57.         ;
  58.         ; Push frame for LibMain (hModule,cbHeap,lpszCmdLine)
  59.         ;
  60. ;;      push    di
  61. ;;      push    cx
  62. ;;      push    es
  63. ;;      push    si
  64.         ;
  65.         ; Init the local heap (if one is declared in the .def file)
  66.         ;
  67.         jcxz no_heap
  68.         cCall   LocalInit,<0,0,cx>
  69. no_heap:
  70. ;;      cCall   LibMain
  71.         mov     ax,1
  72. cEnd
  73. sEnd    CodeSeg
  74. ;-----------------------------------------------------------------------;
  75. ; RTL STUF
  76. ;-----------------------------------------------------------------------;
  77.     include rtl.inc
  78. ;;  RTL_PROC REGOPENKEY                     ,SHELL16 ,1       , LoadShell16 ,Y
  79. ;;  RTL_PROC REGCREATEKEY                   ,SHELL16 ,2       , LoadShell16 ,Y
  80. ;;  RTL_PROC REGCLOSEKEY                    ,SHELL16 ,3       , LoadShell16 ,Y
  81. ;;  RTL_PROC REGDELETEKEY                   ,SHELL16 ,4       , LoadShell16 ,Y
  82. ;;  RTL_PROC REGSETVALUE                    ,SHELL16 ,5       , LoadShell16 ,Y
  83. ;;  RTL_PROC REGQUERYVALUE                  ,SHELL16 ,6       , LoadShell16 ,Y
  84. ;;  RTL_PROC REGENUMKEY                     ,SHELL16 ,7       , LoadShell16 ,Y
  85. ;;  RTL_PROC DRAGACCEPTFILES                ,SHELL16 ,9       , LoadShell16 ,Y
  86. ;;  RTL_PROC DRAGQUERYFILE                  ,SHELL16 ,11      , LoadShell16 ,Y
  87. ;;  RTL_PROC DRAGFINISH                     ,SHELL16 ,12      , LoadShell16 ,Y
  88. ;;  RTL_PROC DRAGQUERYPOINT                 ,SHELL16 ,13      , LoadShell16 ,Y
  89. ;;  RTL_PROC DRAGQUERYINFO                  ,SHELL16 ,11      , LoadShell16 ,Y
  90.     RTL_PROC SHELLEXECUTE                   ,SHELL16 ,20      , LoadShell16 ,Y
  91.     RTL_PROC FINDEXECUTABLE                 ,SHELL16 ,21      , LoadShell16 ,Y
  92.     RTL_PROC SHELLABOUT                     ,SHELL16 ,22      , LoadShell16 ,Y
  93.     RTL_PROC EXTRACTICON                    ,SHELL16 ,34      , LoadShell16 ,Y
  94.     RTL_PROC EXTRACTASSOCIATEDICON          ,SHELL16 ,36      , LoadShell16 ,Y
  95. ;;  RTL_PROC DOENVIRONMENTSUBST             ,SHELL16 ,37      , LoadShell16 ,Y
  96. ;;  RTL_PROC FINDENVIRONMENTSTRING          ,SHELL16 ,38      , LoadShell16 ,Y
  97.     RTL_PROC INTERNALEXTRACTICON            ,SHELL16 ,39      , LoadShell16 ,Y
  98.     RTL_PROC REGISTERSHELLHOOK              ,SHELL16 ,102     , LoadShell16 ,Y
  99.     RTL_PROC RESTARTDIALOG                  ,SHELL16 ,157     , LoadShell16 ,Y
  100.     RTL_PROC PARSEFIELD                     ,SHELL16 ,163     , LoadShell16 ,Y
  101.     RTL_PROC ADDCOMMAS                      ,SHELL16 ,164     , LoadShell16 ,Y
  102.     RTL_PROC PICKICONDLG                    ,SHELL16 ,166     , LoadShell16 ,Y
  103.     RTL_PROC PATHISROOT                     ,SHELL16 ,170     , LoadShell16 ,Y
  104.     RTL_PROC PATHBUILDROOT                  ,SHELL16 ,171     , LoadShell16 ,Y
  105.     RTL_PROC PATHREMOVEBACKSLASH            ,SHELL16 ,172     , LoadShell16 ,Y
  106.     RTL_PROC PATHADDBACKSLASH               ,SHELL16 ,173     , LoadShell16 ,Y
  107.     RTL_PROC PATHREMOVEBLANKS               ,SHELL16 ,174     , LoadShell16 ,Y
  108.     RTL_PROC PATHFINDFILENAME               ,SHELL16 ,175     , LoadShell16 ,Y
  109.     RTL_PROC PATHREMOVEFILESPEC             ,SHELL16 ,176     , LoadShell16 ,Y
  110.     RTL_PROC PATHAPPEND                     ,SHELL16 ,177     , LoadShell16 ,Y
  111.     RTL_PROC PATHCOMBINE                    ,SHELL16 ,178     , LoadShell16 ,Y
  112.     RTL_PROC PATHCOMMONPREFIX               ,SHELL16 ,179     , LoadShell16 ,Y
  113.     RTL_PROC PATHSETDLGITEMPATH             ,SHELL16 ,189     , LoadShell16 ,Y
  114.     RTL_PROC PATHGETARGS                    ,SHELL16 ,1120    , LoadShell16 ,Y
  115.     RTL_PROC PATHGETSHORTNAME               ,SHELL16 ,1121    , LoadShell16 ,Y
  116.     RTL_PROC PATHGETLONGNAME                ,SHELL16 ,1122    , LoadShell16 ,Y
  117.     RTL_PROC DRIVETYPE                      ,SHELL16 ,262     , LoadShell16 ,Y
  118.     RTL_PROC INVALIDATEDRIVETYPE            ,SHELL16 ,263     , LoadShell16 ,Y
  119.     RTL_PROC ISNETDRIVE                     ,SHELL16 ,264     , LoadShell16 ,Y
  120.     RTL_PROC _SHELLMESSAGEBOX               ,SHELL16 ,350     , LoadShell16 ,Y
  121.     RTL_PROC GETFILENAMEFROMBROWSE          ,SHELL16 ,901     , LoadShell16 ,Y
  122. end LibEntry