Thema: Delphi Storage Streams

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#1

Storage Streams

  Alt 10. Nov 2002, 15:42
Hi ,

hoffentlich kann mir jemand von Euch ja auf die Sprünge helfen. Folgender Code-Abschnitt:

Delphi-Quellcode:
const
  cStagingLiveVersion: LongInt = $03000100;
  FMTID_SummaryInformation: TGUID = '{F29F85E0-4FF9-1068-AB91-08002B27B3D9}';

type
  TPropSpecArray = array of TPropSpec;
  PPropSpecArray = ^TPropSpecArray;
  
  TPropVariantArray = array of TPropVariant;
  PPropVariantArray = ^TPropVariantArray;

var
  Package: IStorage;
  OS: TOleStream;
  Stm: IStream;
  Writer: TWriter;
  PSS: IPropertySetStorage;
  PS: IPropertyStorage;
  PSA: TPropSpecArray;
  PVA: TPropVariantArray;
begin
  if not SUCCEEDED(StgOpenStorage(PWideChar(GetPackageName), nil,
      STGM_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, Package)) then
    OleCheck(StgCreateDocFile(PWideChar(GetPackageName), STGM_CREATE or
        STGM_READWRITE or STGM_SHARE_EXCLUSIVE, 0, Package));

  PSS := Package as IPropertySetStorage;
  [color=#f60000]OleCheck(PSS.Open(FMTID_SummaryInformation, STGM_WRITE or
      STGM_SHARE_EXCLUSIVE, PS));[/color]

  SetLength(PSA, 1);
  SetLength(PVA, 1);
  try
    PSA[0].ulKind := PRSPEC_PROPID;
    PSA[0].propID := PIDSI_TITLE;
    PVA[0].vt := VT_LPSTR;
    PVA[0].pszVal := 'Content Ace v3 - Staging Package Item';
  
    OleCheck(PS.WriteMultiple(1, @PSA[0], @PVA[0], 2));
  finally
    SetLength(PSA, 0);
    SetLength(PVA, 0);
  end;
macht mir Probleme. Ich komme nicht über die rot-markierte Zeile hinaus. Die Idee stammt aus dem Buch Delphi COM Programming von Eric Harmon.

Wer hat eine Idee

......

P.S. Eine vernünftige Fehlermeldung kann ich nicht liefern, da COM mir sagt, ich soll mich an meinen Systemadministrator wenden ... Aber ich weiss es auch nicht.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat