name	shell
type	win16

  1 pascal   RegOpenKey(long ptr ptr) RegOpenKey
  2 pascal   RegCreateKey(long ptr ptr) RegCreateKey
  3 pascal   RegCloseKey(long) RegCloseKey
  4 pascal   RegDeleteKey(long ptr) RegDeleteKey
  5 pascal   RegSetValue(long ptr long ptr long) RegSetValue
  6 pascal   RegQueryValue(long ptr ptr ptr) RegQueryValue
  7 pascal   RegEnumKey(long long ptr long) RegEnumKey
  9 pascal16 DragAcceptFiles(word word) DragAcceptFiles
 11 pascal16 DragQueryFile(word s_word ptr s_word) DragQueryFile
 12 pascal16 DragFinish(word) DragFinish
 13 pascal16 DragQueryPoint(word ptr) DragQueryPoint
 20 pascal16 ShellExecute(word ptr ptr ptr ptr s_word) ShellExecute 
 21 pascal16 FindExecutable(ptr ptr ptr) FindExecutable
 22 pascal16 ShellAbout(word ptr ptr word) ShellAbout
 33 pascal16 AboutDlgProc(word word word long) AboutDlgProc
 34 pascal16 ExtractIcon(word ptr s_word) ExtractIcon
 36 pascal16 ExtractAssociatedIcon(word ptr ptr) ExtractAssociatedIcon
 37 pascal   DoEnvironmentSubst(ptr word) DoEnvironmentSubst
 38 pascal   FindEnvironmentString(ptr) FindEnvironmentString
 39 pascal16 InternalExtractIcon(word ptr s_word word) InternalExtractIcon
 40 stub ExtractIconEx
 98 stub SHL3216_THUNKDATA16
 99 stub SHL1632_THUNKDATA16

#100   4  0550  HERETHARBETYGARS exported, shared data
#101   8  010e  FINDEXEDLGPROC exported, shared data
#101 DLLENTRYPOINT #win95 SHELL.DLL

102 pascal16 RegisterShellHook(ptr) RegisterShellHook
103 pascal16 ShellHookProc() ShellHookProc

#  157 RESTARTDIALOG
#  166 PICKICONDLG

262 pascal16 DriveType(long) GetDriveType

#  263 SH16TO32DRIVEIOCTL
#  264 SH16TO32INT2526
#  300 SHGETFILEINFO
#  400 SHFORMATDRIVE
#  401 SHCHECKDRIVE
#  402 _RUNDLLCHECKDRIVE

# 8 WEP 
#32 WCI
