CoGetInstanceFromFile
9/8/2008
Essa função cria um novo objeto e inicializa-lo de usar um arquivo IPersistFile::Load.
Syntax
HRESULT CoGetInstanceFromFile(
COSERVERINFO* pServerInfo,
CLSID* pclsid,
IUnknown* punkOuter,
DWORD dwClsCtx,
DWORD grfMode,
OLECHAR* szName,
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 szName arquivo reside se a ActivateAtStorage nomeado - valor é especificada para a classe no Registro ou não há nenhum local informações Registro.
- pclsid
[no] Ponteiro para a classe do objeto para criar. Pode ser NULL, no qual maiúsculas e minúsculas há um chamar para GetClassFile, usando szName como seu parâmetro para a classe de objeto a serem get instanciado.
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.
- grfMode
[no] Sinalizadores que especificam como o arquivo é a ser aberto. Os valores são tirados do STGM enumeração.
- szName
[no] Arquivo para inicializar o objeto com IPersistFile::Load. Pode não ser NULL.
- cmq
[no] Número de estruturas MULTI_QI in rgmqResults. Deve ser maior que zero.
- rgmqResults
[no] 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 Indica com S_OK ou E_NOINTERFACE se ou não a interface específica foi retornado.
- E_NOINTERFACE
Nenhum das interfaces solicitadas na rgmqResults matriz foram recuperadas com êxito.
Remarks
CoGetInstanceFromFile Cria um novo objeto e inicializa-lo de usar um arquivo IPersistFile::Load. O resultado desta função é semelhante ao criar uma instância com um chamar para CoCreateInstanceEx, seguido por um chamar inicializar para IPersistFile::Load, com a seguinte distinções importantes:
- Rede menos arredondar viagens são exigido por essa função ao instanciar um objeto em um máquina remota.
- Na maiúsculas e minúsculas onde dwClsCtx é definido como CLSCTX_REMOTE_SERVER e pServerInfo é NULL, se a classe estiver registrado com o ActivateAtStorage Sub-Key ou não associado tem informações Registro, essa função será criar instância um objeto sobre a máquina onde szName reside, fornecendo o mínimo possível tráfego de rede.
Por exemplo, se szName especificado "\\myserver\users\johndo\file", o objeto pode ser instanciado na "MyServer" máquina e o objeto poderia acessar o arquivo 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 |