Funzione OleDoAutoConvert (ole2.h)
Converte automaticamente un oggetto in una nuova classe se la conversione automatica per tale classe oggetto è impostata nel Registro di sistema.
Sintassi
HRESULT OleDoAutoConvert(
[in] LPSTORAGE pStg,
[out] LPCLSID pClsidNew
);
Parametri
[in] pStg
Puntatore all'interfaccia IStorage nell'oggetto di archiviazione da convertire.
[out] pClsidNew
Puntatore al nuovo CLSID per l'oggetto da convertire. Se non è stata eseguita alcuna conversione automatica, potrebbe essere uguale alla classe originale.
Valore restituito
Questa funzione può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, nonché i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Non è necessaria alcuna conversione o la conversione è stata completata correttamente. |
|
La funzione non può leggere una chiave dal Registro di sistema. |
Questa funzione può anche restituire uno dei valori di errore restituiti dalla funzione OleGetAutoConvert . Quando si accede agli oggetti di archiviazione e flusso, vedere i metodi IStorage::OpenStorage e IStorage::OpenStream per individuare eventuali errori. Quando non è possibile determinare il CLSID esistente o quando non è possibile aggiornare l'oggetto di archiviazione con nuove informazioni, vedere l'interfaccia IStream per altri valori restituiti dagli errori.
Commenti
OleDoAutoConvert converte automaticamente un oggetto se la conversione automatica è stata specificata in precedenza nel Registro di sistema dalla funzione OleSetAutoConvert . La conversione dell'oggetto indica che l'oggetto è associato in modo permanente a un nuovo CLSID. La conversione automatica viene in genere specificata dal programma di installazione per una nuova versione di un'applicazione oggetto, in modo che gli oggetti creati dalle versioni precedenti possano essere aggiornati automaticamente.
L'oggetto di archiviazione deve trovarsi nello stato di scaricamento quando viene chiamato OleDoAutoConvert .
Un'applicazione contenitore che supporta la conversione di oggetti deve chiamare OleDoAutoConvert ogni volta che carica un oggetto. Se il contenitore usa la funzione helper OleLoad , non è necessario chiamare in modo esplicito OleDoAutoConvert perché OleLoad lo chiama internamente.
OleDoAutoConvert determina innanzitutto se è richiesta una conversione chiamando la funzione OleGetAutoConvert , che, se non è necessaria alcuna conversione, restituisce S_OK. Se l'oggetto richiede la conversione, OleDoAutoConvert modifica e converte l'oggetto di archiviazione attivando la nuova applicazione oggetto. La nuova applicazione oggetto legge il formato dati esistente, ma salva l'oggetto nel nuovo formato nativo per l'applicazione oggetto.
Se l'oggetto da convertire automaticamente è un oggetto OLE 1, la stringa ItemName viene archiviata in un flusso denominato "\1Ole10ItemName". Se il flusso non esiste, il nome dell'elemento dell'oggetto è NULL.
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 |