AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Storage Streams

Ein Thema von sakura · begonnen am 10. Nov 2002 · letzter Beitrag vom 10. Nov 2002
Antwort Antwort
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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 10. Nov 2002, 15:51
Moin sakura,

wo ist GetPackageName deklariert?
Das kann ich irgendwie nicht so recht finden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3
  Alt 10. Nov 2002, 15:52


Lokale Procedure, welche lediglich den Dateinamen für das Package zurückliefert.

z.B.: 'C:\Temp\Package.dat'
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 10. Nov 2002, 16:05
Moin sakura,

bei mir meckert er immer: STG_E_FILENOTFOUND (80030002)
(an der gleichen Stelle)

Welche Art Package meinst Du?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5
  Alt 10. Nov 2002, 16:21
Mit Package meine ich diese Storage Streams - in diesen Dateien kann man wunderbar verschiedene Elemente getrennt voneinander speichern. Intern sind diese "ähnlich" einem eigenem Dateisystem. Word benutzt auch dieses Format zum Speichern von Dokumenten.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6
  Alt 10. Nov 2002, 16:40
Ich habe jetzt sichergestellt, dass die gewünschte Datei existiert - aber der gleiche Fehler kommt noch immer.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz