//--------------------------------------------------------------------------- // //--------------------------------------------------------------------------- #define STRICT #define _INC_OLE #include #include #include #include #include #include #include #include #include #include #include //--------------------------------------------------------------------------- // Global to the app. #define CCHSZSHORT 32 #define CCHSZNORMAL 256 #define MAXGROUPNAMELEN 30 // from progman extern HINSTANCE g_hinst; extern TCHAR g_szStartGroup[MAXGROUPNAMELEN + 1]; extern HKEY g_hkeyGrpConv; extern const TCHAR c_szGroups[]; extern const TCHAR c_szNULL[]; extern const TCHAR c_szSettings[]; extern BOOL g_fDoingCommonGroups; extern BOOL g_fDoProgmanDde; extern BOOL g_fShowUI; #define REGSTR_PATH_EXPLORER_SHELLFOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders") // This version of grpconv has to work on win95 and NT4, as well as memphis and NT5. // Therefore, we have to undef a few things that get #defined to the xxxA and xxxW // functions so the binary will link to the old shell32.nt4 and shell32.w95 libs. #undef IsLFNDrive WINSHELLAPI BOOL WINAPI IsLFNDrive(LPCTSTR pszPath); #undef SHGetSpecialFolderPath WINSHELLAPI BOOL WINAPI SHGetSpecialFolderPath(HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate); #undef PathFindFileName LPTSTR WINAPI PathFindFileName(LPCTSTR pPath); #undef PathAppend BOOL WINAPI PathAppend(LPTSTR pPath, LPNCTSTR pMore); #undef PathFileExists BOOL WINAPI PathFileExists(LPCTSTR lpszPath); #undef PathGetArgs LPTSTR WINAPI PathGetArgs(LPCTSTR pszPath); #undef PathUnquoteSpaces void WINAPI PathUnquoteSpaces(LPTSTR lpsz); #undef ILCreateFromPath LPITEMIDLIST WINAPI ILCreateFromPath(LPCTSTR pszPath); #undef PathRemoveFileSpec BOOL WINAPI PathRemoveFileSpec(LPTSTR pFile); #undef PathFindExtension WINSHELLAPI LPTSTR WINAPI PathFindExtension(LPCTSTR pszPath); #undef PathAddBackslash LPTSTR WINAPI PathAddBackslash(LPTSTR lpszPath); #undef PathIsRoot BOOL WINAPI PathIsRoot(LPCTSTR pPath); #undef PathCombine LPTSTR WINAPI PathCombine(LPTSTR lpszDest, LPCTSTR lpszDir, LPNCTSTR lpszFile); #undef PathGetDriveNumber int WINAPI PathGetDriveNumber(LPNCTSTR lpsz); #undef PathRemoveBlanks void WINAPI PathRemoveBlanks(LPTSTR lpszString); #undef PathIsUNC BOOL WINAPI PathIsUNC(LPTSTR pszPath); // from shlguidp.h DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9, 0x2f, 0x0, 0xa0, 0xc9, 0x3, 0x12, 0xe1); #ifndef UNICODE // The current headers will #define this to IID_IShellLinkA if // unicode is not defined. This will prevent us from linking to // the win95 shell32.lib (iedev\lib\chicago\*\shell32.w95) and // so we just define it here for the ANSI case. #undef IID_IShellLink DEFINE_SHLGUID(IID_IShellLink, 0x000214EEL, 0, 0); #endif