Compartilhar via


CoGetInstanceFromIStorage

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função cria um novo objeto e inicializa-lo de um objeto armazenamento através um chamar interno para IPersistStorage::Load.

Syntax

HRESULT CoGetInstanceFromIStorage(
  COSERVERINFO* pServerInfo,
  CLSID* pclsid,
  IUnknown* punkOuter,
  DWORD dwClsCtx,
  IStorage* pstg,
  ULONG cmq,
  MULTI_QI* rgmqResults
);

Parameters

  • pServerInfo
    [no] Ponteiro para um COSERVERINFO estrutura que especifica a máquina na qual o objeto criar instância e a configuração autenticação a ser usado.

    Pode ser NULL, no qual maiúsculas e minúsculas o objeto é instanciado (1) on o atual máquina, (2) at a máquina especificada na RemoteServerName nomeado-valor para a classe no Registro ou (3) na máquina onde o objeto armazenamento apontado pelo pstg Encontra se a classe é registrado ActivateAtStorage especificado ou não local tem informações Registro.

  • pclsid
    [no] Ponteiro para o identificador classe (CLSID) do objeto a ser criado. Pode ser NULL, no qual maiúsculas e minúsculas há um chamar para IStorage::STAT Para localizar a classe do objeto.
  • punkOuter
    [no] Quando não-NULL, indica a instância está sendo criada como parte de um agregado, e punkOuter Deve ser usado como o ponteiro para controlar instância de nova IUnknown.

    Agregação não está com suporte cruzado - processo ou cruzado - máquina. Ao instanciar um objeto out of processo, CLASS_E_NOAGGREGATION será retornado se punkOuter não-NULL.

  • dwClsCtx
    [no] Valores extraídos o CLSCTX enumeração.
  • pstg
    [no] Ponteiro para armazenamento para inicializar o objeto com IPersistStorage::Load. Pode não ser NULL.
  • cmq
    Número de MULTI_QI estruturas no rgmqResults. Deve ser maior que zero.
  • rgmqResults
    Matriz de MULTI_QI estruturas. Cada estrutura possui três membros: o identificador para um (interface solicitadapIID), a localidade para Retornar (ponteiro de interfacepItf) e a valor de retorno do chamar para Falha de QueryInterface (hr).

Return Value

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

  • S_OK
    Indica sucesso.
  • CO_S_NOTALLINTERFACES
    Pelo menos um, mas não todos as interfaces solicitadas na rgmqResults matriz foram recuperadas com êxito. O hr campo de cada um de MULTI_QI estruturas no rgmqResults Com S_OK ou E_NOINTERFACE indica se o ponteiro interface específica foi recuperado.
  • E_NOINTERFACE
    Nenhum das interfaces solicitadas na rgmqResults matriz foram recuperadas com êxito.

Remarks

CoGetInstanceFromIStorage Cria um novo objeto e inicializa-lo de um objeto armazenamento através um chamar para IPersistStorage::Load. Essa função é semelhante ao criar uma instância usando CoCreateInstanceEx seguido por um chamar para IPersistStorage::Load, com a seguinte distinções importantes:

  • Rede menos arredondar viagens são exigido por essa função ao instanciar remotamente.
  • Na maiúsculas e minúsculas onde dwClsCtx é definido como CLSCTX_REMOTE_SERVER e pServerInfo é NULL, se a classe estiver registrado com o ActivateAtStorage nomeado valor ou não associado tem informações Registro, essa função será criar instância um objeto na mesma máquina onde o objeto armazenamento apontado pelo pstg reside, fornecendo o mínimo possível tráfego de rede.
    Por exemplo, se pstg foram obtidos por um chamar para StgCreateDocfile, especificando "\\myserver\users\johndo\file", o objeto pode ser instanciado na "MyServer" máquina e o objeto poderia acessar o objeto armazenamento diretamente.

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