Показать сообщение отдельно
  #8  
Старый 10.09.2023, 23:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну не знаю. У меня работает - возвращает список гуидов.
Возможно, ты что-то с импортом функции напутал.
Код:
const
  CR_SUCCESS       = $00000000;
  CR_NO_SUCH_VALUE = $00000025;

function CM_Enumerate_Classes(ulClassIndex : Cardinal; var ClassGuid : TGUID; ulFlags : Cardinal) : DWORD; stdcall; external 'Cfgmgr32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  Idx : Integer;
  DevGUID : TGUID;
  iRet : DWORD;
begin
  Idx := 0;
  iRet := CM_Enumerate_Classes(Idx,DevGUID,0);
  While iRet = CR_SUCCESS Do
    Begin
      Memo1.Lines.Add(GUIDToString(DevGUID));
      Inc(Idx);
      iRet := CM_Enumerate_Classes(Idx,DevGUID,0);
    End;
  ShowMessage(Format('Last function return is %s',[IntToHex(iRet,2)]));
end;
Ответить с цитированием