;
; SHELL32 API definitions for NASM.
;
; (C) G-RoM in 1999/2002

Extern _CheckEscapesA@8
Extern _CheckEscapesW@8
Extern _CommandLineToArgvW@8
Extern _DoEnvironmentSubstA@8
Extern _DoEnvironmentSubstW@8
Extern _DragAcceptFiles@8
Extern _DragFinish@4
Extern _DragQueryFile@16
Extern _DragQueryFileA@16
Extern _DragQueryFileAorW@24
Extern _DragQueryFileW@16
Extern _DragQueryPoint@8
Extern _DuplicateIcon@8
Extern _ExtractAssociatedIconA@12
Extern _ExtractAssociatedIconExA@16
Extern _ExtractAssociatedIconExW@16
Extern _ExtractAssociatedIconW@12
Extern _ExtractIconA@12
Extern _ExtractIconEx@20
Extern _ExtractIconExA@20
Extern _ExtractIconExW@20
Extern _ExtractIconResInfoA@20
Extern _ExtractIconResInfoW@20
Extern _ExtractIconW@12
Extern _ExtractVersionResource16W@8
Extern _FMTID_InternetSite
Extern _FMTID_Intshcut
Extern _FindExeDlgProc@16
Extern _FindExecutableA@12
Extern _FindExecutableW@12
Extern _FreeIconList@8
Extern _IID_IBriefcaseStg
Extern _IID_ICommDlgBrowser
Extern _IID_IContextMenu
Extern _IID_IContextMenu2
Extern _IID_IDelayedRelease
Extern _IID_IEnumIDList
Extern _IID_IExtractIconA
Extern _IID_IExtractIconW
Extern _IID_IFileViewerA
Extern _IID_IFileViewerSite
Extern _IID_IFileViewerW
Extern _IID_INewShortcutHookA
Extern _IID_INewShortcutHookW
Extern _IID_IPersistFolder
Extern _IID_IPropSheetPage
Extern _IID_IRemoteComputerA
Extern _IID_IRemoteComputerW
Extern _IID_IShellBrowser
Extern _IID_IShellCopyHookA
Extern _IID_IShellCopyHookW
Extern _IID_IShellDetails
Extern _IID_IShellExecuteHookA
Extern _IID_IShellExecuteHookW
Extern _IID_IShellExtInit
Extern _IID_IShellFolder
Extern _IID_IShellIcon
Extern _IID_IShellLinkA
Extern _IID_IShellLinkW
Extern _IID_IShellPropSheetExt
Extern _IID_IShellView
Extern _IID_IShellView2
Extern _InternalExtractIconListA@12
Extern _InternalExtractIconListW@12
Extern _RealShellExecuteA@40
Extern _RealShellExecuteExA@44
Extern _RealShellExecuteExW@44
Extern _RealShellExecuteW@40
Extern _RegenerateUserEnvironment@8
Extern _SheChangeDirA@4
Extern _SheChangeDirExA@4
Extern _SheChangeDirExW@4
Extern _SheChangeDirW@4
Extern _SheConvertPathW@12
Extern _SheFullPathA@12
Extern _SheFullPathW@12
Extern _SheGetCurDrive@0
Extern _SheGetDirA@8
Extern _SheGetDirExW@12
Extern _SheGetDirW@8
Extern _SheGetPathOffsetW@4
Extern _SheRemoveQuotesA@4
Extern _SheRemoveQuotesW@4
Extern _SheSetCurDrive@4
Extern _SheShortenPathA@8
Extern _SheShortenPathW@8
Extern _ShellAboutA@16
Extern _ShellAboutW@16
Extern _ShellExecuteA@24
Extern _ShellExecuteEx@4
Extern _ShellExecuteExA@4
Extern _ShellExecuteExW@4
Extern _ShellExecuteW@24
Extern _ShellHookProc@12
Extern _Shell_NotifyIcon@8
Extern _Shell_NotifyIconA@8
Extern _Shell_NotifyIconW@8
Extern _StrChrA@8
Extern _StrChrIA@8
Extern _StrChrIW@8
Extern _StrChrW@8
Extern _StrCmpNA@12
Extern _StrCmpNIA@12
Extern _StrCmpNIW@12
Extern _StrCmpNW@12
Extern _StrCpyNA@12
Extern _StrCpyNW@12
Extern _StrNCmpA@12
Extern _StrNCmpIA@12
Extern _StrNCmpIW@12
Extern _StrNCmpW@12
Extern _StrNCpyA@12
Extern _StrNCpyW@12
Extern _StrRChrA@12
Extern _StrRChrIA@12
Extern _StrRChrIW@12
Extern _StrRChrW@12
Extern _StrRStrA@12
Extern _StrRStrIA@12
Extern _StrRStrIW@12
Extern _StrRStrW@12
Extern _StrStrA@8
Extern _StrStrIA@8
Extern _StrStrIW@8
Extern _StrStrW@8
Extern _WOWShellExecute@28

%define CheckEscapesA                 _CheckEscapesA@8
%define CheckEscapesW                 _CheckEscapesW@8
%define CommandLineToArgvW            _CommandLineToArgvW@8
%define DoEnvironmentSubstA           _DoEnvironmentSubstA@8
%define DoEnvironmentSubstW           _DoEnvironmentSubstW@8
%define DragAcceptFiles               _DragAcceptFiles@8
%define DragFinish                    _DragFinish@4
%define DragQueryFile                 _DragQueryFile@16
%define DragQueryFileA                _DragQueryFileA@16
%define DragQueryFileAorW             _DragQueryFileAorW@24
%define DragQueryFileW                _DragQueryFileW@16
%define DragQueryPoint                _DragQueryPoint@8
%define DuplicateIcon                 _DuplicateIcon@8
%define ExtractAssociatedIconA        _ExtractAssociatedIconA@12
%define ExtractAssociatedIconExA      _ExtractAssociatedIconExA@16
%define ExtractAssociatedIconExW      _ExtractAssociatedIconExW@16
%define ExtractAssociatedIconW        _ExtractAssociatedIconW@12
%define ExtractIconA                  _ExtractIconA@12
%define ExtractIconEx                 _ExtractIconEx@20
%define ExtractIconExA                _ExtractIconExA@20
%define ExtractIconExW                _ExtractIconExW@20
%define ExtractIconResInfoA           _ExtractIconResInfoA@20
%define ExtractIconResInfoW           _ExtractIconResInfoW@20
%define ExtractIconW                  _ExtractIconW@12
%define ExtractVersionResource16W     _ExtractVersionResource16W@8
%define FMTID_InternetSite            _FMTID_InternetSite
%define FMTID_Intshcut                _FMTID_Intshcut
%define FindExeDlgProc                _FindExeDlgProc@16
%define FindExecutableA               _FindExecutableA@12
%define FindExecutableW               _FindExecutableW@12
%define FreeIconList                  _FreeIconList@8
%define IID_IBriefcaseStg             _IID_IBriefcaseStg
%define IID_ICommDlgBrowser           _IID_ICommDlgBrowser
%define IID_IContextMenu              _IID_IContextMenu
%define IID_IContextMenu2             _IID_IContextMenu2
%define IID_IDelayedRelease           _IID_IDelayedRelease
%define IID_IEnumIDList               _IID_IEnumIDList
%define IID_IExtractIconA             _IID_IExtractIconA
%define IID_IExtractIconW             _IID_IExtractIconW
%define IID_IFileViewerA              _IID_IFileViewerA
%define IID_IFileViewerSite           _IID_IFileViewerSite
%define IID_IFileViewerW              _IID_IFileViewerW
%define IID_INewShortcutHookA         _IID_INewShortcutHookA
%define IID_INewShortcutHookW         _IID_INewShortcutHookW
%define IID_IPersistFolder            _IID_IPersistFolder
%define IID_IPropSheetPage            _IID_IPropSheetPage
%define IID_IRemoteComputerA          _IID_IRemoteComputerA
%define IID_IRemoteComputerW          _IID_IRemoteComputerW
%define IID_IShellBrowser             _IID_IShellBrowser
%define IID_IShellCopyHookA           _IID_IShellCopyHookA
%define IID_IShellCopyHookW           _IID_IShellCopyHookW
%define IID_IShellDetails             _IID_IShellDetails
%define IID_IShellExecuteHookA        _IID_IShellExecuteHookA
%define IID_IShellExecuteHookW        _IID_IShellExecuteHookW
%define IID_IShellExtInit             _IID_IShellExtInit
%define IID_IShellFolder              _IID_IShellFolder
%define IID_IShellIcon                _IID_IShellIcon
%define IID_IShellLinkA               _IID_IShellLinkA
%define IID_IShellLinkW               _IID_IShellLinkW
%define IID_IShellPropSheetExt        _IID_IShellPropSheetExt
%define IID_IShellView                _IID_IShellView
%define IID_IShellView2               _IID_IShellView2
%define InternalExtractIconListA      _InternalExtractIconListA@12
%define InternalExtractIconListW      _InternalExtractIconListW@12
%define RealShellExecuteA             _RealShellExecuteA@40
%define RealShellExecuteExA           _RealShellExecuteExA@44
%define RealShellExecuteExW           _RealShellExecuteExW@44
%define RealShellExecuteW             _RealShellExecuteW@40
%define RegenerateUserEnvironment     _RegenerateUserEnvironment@8
%define SheChangeDirA                 _SheChangeDirA@4
%define SheChangeDirExA               _SheChangeDirExA@4
%define SheChangeDirExW               _SheChangeDirExW@4
%define SheChangeDirW                 _SheChangeDirW@4
%define SheConvertPathW               _SheConvertPathW@12
%define SheFullPathA                  _SheFullPathA@12
%define SheFullPathW                  _SheFullPathW@12
%define SheGetCurDrive                _SheGetCurDrive@0
%define SheGetDirA                    _SheGetDirA@8
%define SheGetDirExW                  _SheGetDirExW@12
%define SheGetDirW                    _SheGetDirW@8
%define SheGetPathOffsetW             _SheGetPathOffsetW@4
%define SheRemoveQuotesA              _SheRemoveQuotesA@4
%define SheRemoveQuotesW              _SheRemoveQuotesW@4
%define SheSetCurDrive                _SheSetCurDrive@4
%define SheShortenPathA               _SheShortenPathA@8
%define SheShortenPathW               _SheShortenPathW@8
%define ShellAboutA                   _ShellAboutA@16
%define ShellAboutW                   _ShellAboutW@16
%define ShellExecuteA                 _ShellExecuteA@24
%define ShellExecuteEx                _ShellExecuteEx@4
%define ShellExecuteExA               _ShellExecuteExA@4
%define ShellExecuteExW               _ShellExecuteExW@4
%define ShellExecuteW                 _ShellExecuteW@24
%define ShellHookProc                 _ShellHookProc@12
%define Shell_NotifyIcon              _Shell_NotifyIcon@8
%define Shell_NotifyIconA             _Shell_NotifyIconA@8
%define Shell_NotifyIconW             _Shell_NotifyIconW@8
%define StrChrA                       _StrChrA@8
%define StrChrIA                      _StrChrIA@8
%define StrChrIW                      _StrChrIW@8
%define StrChrW                       _StrChrW@8
%define StrCmpNA                      _StrCmpNA@12
%define StrCmpNIA                     _StrCmpNIA@12
%define StrCmpNIW                     _StrCmpNIW@12
%define StrCmpNW                      _StrCmpNW@12
%define StrCpyNA                      _StrCpyNA@12
%define StrCpyNW                      _StrCpyNW@12
%define StrNCmpA                      _StrNCmpA@12
%define StrNCmpIA                     _StrNCmpIA@12
%define StrNCmpIW                     _StrNCmpIW@12
%define StrNCmpW                      _StrNCmpW@12
%define StrNCpyA                      _StrNCpyA@12
%define StrNCpyW                      _StrNCpyW@12
%define StrRChrA                      _StrRChrA@12
%define StrRChrIA                     _StrRChrIA@12
%define StrRChrIW                     _StrRChrIW@12
%define StrRChrW                      _StrRChrW@12
%define StrRStrA                      _StrRStrA@12
%define StrRStrIA                     _StrRStrIA@12
%define StrRStrIW                     _StrRStrIW@12
%define StrRStrW                      _StrRStrW@12
%define StrStrA                       _StrStrA@8
%define StrStrIA                      _StrStrIA@8
%define StrStrIW                      _StrStrIW@8
%define StrStrW                       _StrStrW@8
%define WOWShellExecute               _WOWShellExecute@28
