Compartilhar via


Função OleDoAutoConvert (ole2.h)

Converte automaticamente um objeto em uma nova classe se a conversão automática para essa classe de objeto for definida no Registro.

Sintaxe

HRESULT OleDoAutoConvert(
  [in]  LPSTORAGE pStg,
  [out] LPCLSID   pClsidNew
);

Parâmetros

[in] pStg

Um ponteiro para a interface IStorage no objeto de armazenamento a ser convertido.

[out] pClsidNew

Um ponteiro para o novo CLSID para o objeto que está sendo convertido. Se não houver conversão automática, isso poderá ser o mesmo que a classe original.

Retornar valor

Essa função pode retornar os valores de retorno padrão E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, bem como os valores a seguir.

Código de retorno Descrição
S_OK
Nenhuma conversão é necessária ou uma conversão foi concluída com êxito.
REGDB_E_KEYMISSING
A função não pode ler uma chave do Registro.
 

Essa função também pode retornar qualquer um dos valores de erro retornados pela função OleGetAutoConvert . Ao acessar objetos de armazenamento e fluxo, consulte os métodos IStorage::OpenStorage e IStorage::OpenStream para obter possíveis erros. Quando não for possível determinar o CLSID existente ou quando não for possível atualizar o objeto de armazenamento com novas informações, consulte a interface IStream para obter outros valores de retorno de erro.

Comentários

OleDoAutoConvert converterá automaticamente um objeto se a conversão automática tiver sido especificada anteriormente no registro pela função OleSetAutoConvert . A conversão de objeto significa que o objeto está permanentemente associado a um novo CLSID. A conversão automática normalmente é especificada pelo programa de instalação para uma nova versão de um aplicativo de objeto, de modo que os objetos criados por suas versões mais antigas possam ser atualizados automaticamente.

O objeto de armazenamento deve estar no estado descarregado quando OleDoAutoConvert for chamado.

Um aplicativo de contêiner que dá suporte à conversão de objeto deve chamar OleDoAutoConvert sempre que carregar um objeto. Se o contêiner usar a função auxiliar OleLoad , ele não precisará chamar OleDoAutoConvert explicitamente porque OleLoad a chama internamente.

OleDoAutoConvert primeiro determina se alguma conversão é necessária chamando a função OleGetAutoConvert , que, se nenhuma conversão for necessária, retornará S_OK. Se o objeto exigir conversão, OleDoAutoConvert modificará e converterá o objeto de armazenamento ativando o novo aplicativo de objeto. O novo aplicativo de objeto lê o formato de dados existente, mas salva o objeto no novo formato nativo para o aplicativo de objeto.

Se o objeto a ser convertido automaticamente for um objeto OLE 1, a cadeia de caracteres ItemName será armazenada em um fluxo chamado "\1Ole10ItemName". Se esse fluxo não existir, o nome do item do objeto será NULL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

OleGetAutoConvert

OleSetAutoConvert