Bonjour

J'utilise la fonction suivante (basée sur "SHGetSpecialFolderLocation") avec nValeur = CSIDL_SYSTEM (= 0x025) pour récupérer le répertoire système de Windows (qui est souvent "C:\\Windows\\System32")

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//-------------------------------------------------------------------
// Lit les répertoires spéciaux de Windows
//-------------------------------------------------------------------
char* Xdir::fnLireRepertoireSpecial(long nValeur)
{
  char szPath[MAX_PATH + 1];
  LPITEMIDLIST pidl;
 
  szPath[0] = 0;
  if (SHGetSpecialFolderLocation( 0, nValeur, &pidl ) == S_OK)
    SHGetPathFromIDList( pidl, &szPath[0] );
  return &szPath[0];
}// fnLireRepertoireSpecial
...et avec Windows 98 se, SHGetSpecialFolderLocation ne me renvoie pas S_OK parce que CSIDL_SYSTEM est un paramètre qui ne fonction qu'avec SHGetSpecialFolderLocation et sa DLL shell32.dll en version 5.0. Or sur Windows 98, elle est seulement en version 4.0.

Comment récupérer le répertoire système sur Windows 98 alors ?