// no wrappers are needed on non-x86 since this is only for win9x interop #ifdef _X86_ #define _SHELL32_ #define PathCleanupSpec _AorW_PathCleanupSpec #define SHCLSIDFromString _use_GUIDFromString_instead #define SHCLSIDFromStringA _use_GUIDFromStringA_instead #define SHILCreateFromPath _AorW_SHILCreateFromPath #define SHSimpleIDListFromPath _AorW_SHSimpleIDListFromPath #define GetFileNameFromBrowse _AorW_GetFileNameFromBrowse #define PathQualify _AorW_PathQualify #define PathProcessCommand _AorW_PathProcessCommand #define Win32DeleteFile _AorW_Win32DeleteFile #define PathYetAnotherMakeUniqueName _AorW_PathYetAnotherMakeUniqueName #define PathResolve _AorW_PathResolve #define Shell_GetCachedImageIndex _AorW_Shell_GetCachedImageIndex #define SHRunControlPanel _AorW_SHRunControlPanel #define PickIconDlg _AorW_PickIconDlg #define SHCreateDirectory _AorW_SHCreateDirectory // The following functions were originally only TCHAR versions // in Win95, but now have A/W versions. Since we still need to // run on Win95, we need to treat them as TCHAR versions and // undo the A/W #define #ifdef ILCreateFromPath #undef ILCreateFromPath #endif #define ILCreateFromPath _AorW_ILCreateFromPath #ifdef SHGetSpecialFolderPath #undef SHGetSpecialFolderPath #endif #define SHGetSpecialFolderPath _AorW_SHGetSpecialFolderPath #ifdef IsLFNDrive #undef IsLFNDrive #endif #define IsLFNDrive _AorW_IsLFNDrive #ifdef UNICODE // Wrapper needed only on UNICODE build #undef ShellAbout #define ShellAbout _AorW_ShellAbout #endif // Define the prototypes for each of these forwarders... #ifdef __cplusplus extern "C" { /* Assume C declarations for C++ */ #endif /* __cplusplus */ extern int _WorA_Shell_GetCachedImageIndex(LPCWSTR pszIconPath, int iIconIndex, UINT uIconFlags); extern int _AorW_Shell_GetCachedImageIndex(LPCTSTR pszIconPath, int iIconIndex, UINT uIconFlags); extern int _AorW_SHRunControlPanel(LPCTSTR pszOrig_cmdline, HWND errwnd); extern LPITEMIDLIST _AorW_ILCreateFromPath(LPCTSTR pszPath); extern int _AorW_PathCleanupSpec(LPCTSTR pszDir, LPTSTR pszSpec); extern void _AorW_PathQualify(LPTSTR pszDir); extern LONG WINAPI _AorW_PathProcessCommand(LPCTSTR lpSrc, LPTSTR lpDest, int iDestMax, DWORD dwFlags); extern BOOL _AorW_SHGetSpecialFolderPath(HWND hwndOwner, LPTSTR pszPath, int nFolder, BOOL fCreate); extern HRESULT _AorW_SHILCreateFromPath(LPCTSTR pszPath, LPITEMIDLIST *ppidl, DWORD *rgfInOut); extern LPITEMIDLIST _AorW_SHSimpleIDListFromPath(LPCTSTR pszPath); extern BOOL WINAPI _AorW_GetFileNameFromBrowse(HWND hwnd, LPTSTR szFilePath, UINT cchFilePath, LPCTSTR szWorkingDir, LPCTSTR szDefExt, LPCTSTR szFilters, LPCTSTR szTitle); extern BOOL _AorW_Win32DeleteFile(LPCTSTR lpszFileName); extern BOOL _AorW_PathYetAnotherMakeUniqueName(LPTSTR pszUniqueName, LPCTSTR pszPath, LPCTSTR pszShort, LPCTSTR pszFileSpec); extern BOOL _AorW_PathResolve(LPTSTR lpszPath, LPCTSTR dirs[], UINT fFlags); extern BOOL _AorW_IsLFNDrive(LPTSTR lpszPath); extern int _AorW_PickIconDlg(HWND hwnd, LPTSTR pszIconPath, UINT cchIconPath, int * piIconIndex); extern int _AorW_SHCreateDirectory(HWND hwnd, LPCTSTR pszPath); extern int _AorW_ShellAbout(HWND hWnd, LPCTSTR szApp, LPCTSTR szOtherStuff, HICON hIcon); // // This is the "RunOn95" section, which thunks UNICODE functions // back down to ANSI so we can run on Win95 in browser-only mode. // #ifdef UNICODE #define ILCreateFromPathA _ILCreateFromPathA #define ILCreateFromPathW ILCreateFromPath extern LPITEMIDLIST _ILCreateFromPathA(LPCSTR pszPath); #else #define ILCreateFromPathA ILCreateFromPath #define ILCreateFromPathW _ILCreateFromPathW extern LPITEMIDLIST _ILCreateFromPathW(LPCWSTR pszPath); #endif #define OpenRegStream SHOpenRegStream // shlwapi.dll // // Miracle of miracles - We don't need to wrap SHStartNetConnectionDialogW // because Win9x/IE4 actually implements the thunk! // // // You cannot send these messages because Win95 doesn't understand them. // #undef BFFM_SETSELECTIONW #undef BFFM_SETSTATUSTEXTW #ifdef __cplusplus } #endif /* __cplusplus */ #endif // _X86_