Einzelnen Beitrag anzeigen

Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#7

Re: IPropertyStorage und Properties auslesen

  Alt 20. Okt 2005, 15:09
So, ich habs jetzt geschafft
Es schien deswegen nicht zu funktionieren, weil ganz einfach die Property VolumeName nicht gesetzt war und somit einen leeren BSTR enthielt. Da hab ich natürlich gedacht, ich hab was falsch gemacht
Also hab ich mal zum Test einen eigenen VolumeName angegeben, und siehe da: Beim Auslesen krieg ich ihn wieder zu sehen *g*

An die Nachwelt: Hier mein funktionierender Code
Delphi-Quellcode:
  aJDMaster.GetJolietProperties(pPropStg);
  pPropStg.Enum(penumprop);

  while (pEnumProp.Next(1, sps, @fetched) = S_OK) do
  begin
    ZeroMemory(@propSpec, sizeof(TPropSpec));
    ZeroMemory(@PropVar, sizeof(TPropVariant));
    propSpec.ulkind := PRSPEC_PROPID;
    propSpec.propid := sps.propid;
    hr2 := pPropstg.ReadMultiple(1, @propSpec, @propvar);
    if sps.lpwstrName = 'VolumeNamethen
    begin
     propvar.bstrVal := 'MEINECD';
     pPropStg.WriteMultiple(1, @propspec, @propvar, sps.propid);
     if propvar.vt = VT_BSTR then
      if propvar.bstrVal <> 'then
       ShowMessage(propvar.bstrVal)
      else
       ShowMessage('CD hat keinen VolumeNamen');
    end;
  end;
Entschuldigt bitte den u.U. chaotisch wirkendenden Code, aber der ist ja nur da, um zu sehen/zeigen, dass/ob es klappt
Julian J. Pracht
  Mit Zitat antworten Zitat