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 |
---|---|
|
Nenhuma conversão é necessária ou uma conversão foi concluída com êxito. |
|
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 |