Compartilhar via


CoTreatAsClass

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função estabelece ou remove uma emulação, nos quais objetos de uma classe são tratados como objetos de uma classe diferente.

Syntax

STDAPI CoTreatAsClass(
  REFCLSID clsidOld,
  REFCLSID clsidNew
);

Parameters

  • clsidOld
    [no] CLSID do objeto a ser emulado.
  • clsidNew
    [no] CLSID do objeto que deve emular o original objeto. Isso substitui qualquer emulação existente para clsidOld. Pode ser CLSID_NULL, em que maiúsculas e minúsculas qualquer emulação existente para clsidOld é removido.

Return Value

Essa função suporta o padrão valor de retorno E_INVALIDARG, bem como o seguinte:

  • S_OK
    A emulação foi estabelecida ou removida com êxito.
  • REGDB_E_CLASSNOTREG
    O clsidOld parâmetro não está corretamente registrado no banco de dados registro.
  • REGDB_E_READREGDB
    Erro ao ler do banco de dados de registro.
  • REGDB_E_WRITEREGDB
    Erro ao gravar para banco de dados de registro.

Remarks

Essa função define o TreatAs entrada no Registro para o objeto especificado, permitindo que o objeto a ser emulado por outro aplicativo. Emulação permite que um aplicativo para aberto e editar um objeto de um formato diferente, mantendo o original formato do objeto.

Após essa entrada é definida, como qualquer função sempre CoGetClassObject Especifica original do objeto (CLSIDclsidOld), ele é encaminhado de forma transparente para o novo (CLSIDclsidNew), assim, iniciando o aplicativo associado com o TreatAs CLSID.

Quando o objeto é salvo, ele pode ser salvos em seu formato nativo, que pode resultar em perda de edições não com suporte pelo original formato.

O aplicativo irá chamar CoTreatAsClass Nas duas situações se ela der suporte a emulação:

  • Em resposta a uma solicitação usuário final (até uma caixa diálogo conversão) que um objeto especificado ser tratado como um objeto de uma classe diferente (um objeto criado em um aplicativo ser executar em outro aplicativo, mantendo o original informações formato).
  • Em um programa instalação, para registrar que uma classe de objetos ser tratado como objetos de uma classe diferente.

Um exemplo de maiúsculas e minúsculas a primeira é que um usuário final pode desejar para editar uma planilha eletrônica criada por um aplicativo usando um aplicativo diferente que pode ler e gravação de formato planilha eletrônica do original aplicativo.

Para um aplicativo que ofereça suporte a emulação, CoTreatAsClass pode ser chamado para implementar uma opção TREAT As em uma caixa diálogo conversão.

Um exemplo do uso de CoTreatAsClass Em uma instalação programa seria em um versão atualizada de um aplicativo.

Quando o aplicativo é atualizado, os objetos criados com a versão anterior podem ser ativados e tratados como objetos da nova versão, mantendo as informações formato anterior. Isso daria o usuário a opção para converter ao salvar, ou para salvar no formato anterior, possivelmente perder informações formato não disponível na versão anterior.

Um resultado da configuração uma emulação é que enumeração verbo, as in o IOleObject::EnumVerbs implementação método no manipulador de usar como padrão, opera nos verbos de clsidNew em vez de clsidOld.

Para garantir que informações de emulação existente é removida quando você instalar um aplicativo, seus programas instalação deve chamar CoTreatAsClass, configuração de clsidNew parâmetro para CLSID_NULL para remover qualquer emulação existente para as classes instalar.

Se não houver nenhuma CLSID atribuído à AutoTreatAs chave no Registro, configuração clsidNew e clsidOld para o mesmo valor remove o TreatAs entrada, portanto, não há emulação. Se houver um CLSID atribuído à AutoTreatAs chave, CLSID atribuído para a chave TreatAs.

O CoTreatAsClass função não valida se um apropriado entrada Registro para clsidNew Atualmente existe.

Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.

Requirements

Header objbase.h
Library ole32.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

COM Functions
CoGetTreatAsClass