Condividi tramite


Funzione OleConvertOLESTREAMToIStorage (ole2.h)

La funzione OleConvertOLESTREAMToIStorage converte l'oggetto specificato dal modello di archiviazione OLE 1 in un oggetto di archiviazione strutturato OLE 2 senza specificare i dati di presentazione.

Nota Si tratta di una delle diverse funzioni di compatibilità.
 

Sintassi

HRESULT OleConvertOLESTREAMToIStorage(
  [in]  LPOLESTREAM          lpolestream,
  [out] LPSTORAGE            pstg,
  [in]  const DVTARGETDEVICE *ptd
);

Parametri

[in] lpolestream

Puntatore a un flusso che contiene la rappresentazione permanente dell'oggetto nel formato di archiviazione OLE 1.

[out] pstg

Puntatore all'interfaccia IStorage nell'oggetto di archiviazione strutturato OLE 2.

[in] ptd

Puntatore alla struttura DVTARGETDEVICE che specifica il dispositivo di destinazione per il quale viene eseguito il rendering dell'oggetto OLE 1.

Valore restituito

Questa funzione supporta il valore restituito standard E_INVALIDARG, oltre ai seguenti:

Commenti

Questa funzione converte un oggetto OLE 1 in un oggetto di archiviazione strutturata OLE 2. Utilizzare questa funzione per aggiornare gli oggetti OLE 1 agli oggetti OLE 2 quando una nuova versione dell'applicazione oggetto supporta OLE 2.

Nella voce, il parametro lpolestm deve essere creato e posizionato esattamente come per una chiamata di funzione OleLoadFromStream . All'uscita, il parametro lpolestm viene posizionato esattamente come in uscita da una funzione OleLoadFromStream e il parametro pstg contiene la rappresentazione permanente senza commit dell'oggetto di archiviazione OLE 2.

Per gli oggetti OLE 1 che utilizzano dati nativi per la presentazione, la funzione OleConvertOLESTREAMToIStorage restituisce CONVERT10_S_NO_PRESENTATION. Quando riceve questo valore restituito, i chiamanti devono chiamare IOleObject::Update per ottenere i dati della presentazione in modo che possano essere scritti nell'archiviazione.

Le applicazioni che non usano le risorse di memorizzazione nella cache predefinite OLE, ma usano le risorse di conversione, possono usare una funzione alternativa , OleConvertOLESTREAMToIStorageEx, che può specificare i dati della presentazione da convertire. Nella funzione OleConvertOLESTREAMToIStorageEx i dati della presentazione letti dalla struttura OLESTREAM vengono passati e l'oggetto di archiviazione OLE 2 appena creato non contiene un flusso di presentazione.

La procedura seguente descrive il processo di conversione tramite OleConvertOLESTREAMToIStorage.

Conversione di un oggetto OLE 1 in un oggetto di archiviazione OLE 2

  1. Creare un oggetto IStorage radice chiamando la funzione StgCreateDocfile (..., &pstg).
  2. Aprire il file OLE 1 (usando OpenFile o un'altra tecnica OLE 1).
  3. Leggere dal file, utilizzando la procedura OLE 1 per la lettura dei file, fino a quando non viene trovato un oggetto OLE.
  4. Allocare un oggetto IStorage dalla radice IStorage creata nel passaggio 1.
    pstg->lpVtbl->CreateStorage(...&pStgChild); 
    hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); 
    hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
    
  5. Ripetere il passaggio 3 fino a quando il file non viene letto completamente.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ole2.h
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

TYMED