Función CoGetInstanceFromFile (objbase.h)
Crea un nuevo objeto e lo inicializa a partir de un archivo mediante IPersistFile::Load.
Sintaxis
HRESULT CoGetInstanceFromFile(
[in, optional] COSERVERINFO *pServerInfo,
[in, optional] CLSID *pClsid,
[in, optional] IUnknown *punkOuter,
[in] DWORD dwClsCtx,
[in] DWORD grfMode,
[in] OLECHAR *pwszName,
[in] DWORD dwCount,
[in, out] MULTI_QI *pResults
);
Parámetros
[in, optional] pServerInfo
Puntero a una estructura COSERVERINFO que especifica el equipo en el que se va a crear una instancia del objeto y la configuración de autenticación que se va a usar. Este parámetro puede ser NULL, en cuyo caso se crea una instancia del objeto en el equipo actual, en el equipo especificado en el valor del Registro RemoteServerName para la clase, o en el equipo donde reside el archivo pwszName si se especifica el valor ActivateAtStorage para la clase o no hay ninguna información del Registro local.
[in, optional] pClsid
Puntero al identificador de clase del objeto que se va a crear. Este parámetro puede ser NULL, en cuyo caso hay una llamada a GetClassFile, usando pwszName como parámetro para obtener la clase del objeto al que se va a crear una instancia.
[in, optional] punkOuter
Cuando no es NULL, indica que la instancia se está creando como parte de un agregado y punkOuter se va a usar como puntero al control IUnknown de la nueva instancia. La agregación no se admite entre procesos ni entre equipos. Al crear una instancia de un objeto fuera del proceso, se devolverá CLASS_E_NOAGGREGATION si punkOuter no es NULL.
[in] dwClsCtx
Valores de la enumeración CLSCTX .
[in] grfMode
Especifica cómo se va a abrir el archivo. Consulte Constantes STGM.
[in] pwszName
Archivo usado para inicializar el objeto con IPersistFile::Load. Este parámetro no puede ser NULL.
[in] dwCount
Número de estructuras en pResults. Este parámetro debe ser mayor que 0.
[in, out] pResults
Matriz de estructuras de MULTI_QI . Cada estructura tiene tres miembros: el identificador de una interfaz solicitada (pIID), la ubicación para devolver el puntero de interfaz (pItf) y el valor devuelto de la llamada a QueryInterface (hr).
Valor devuelto
Esta función puede devolver el valor devuelto estándar E_INVALIDARG, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
La función recuperó todas las interfaces correctamente. |
|
Al menos una, pero no todas las interfaces solicitadas en la matriz pResults se recuperaron correctamente. El miembro hr de cada una de las estructuras de MULTI_QI indica con S_OK o E_NOINTERFACE si se devolvió la interfaz específica. |
|
Ninguna de las interfaces solicitadas en la matriz pResults se recuperó correctamente. |
Comentarios
CoGetInstanceFromFile crea un nuevo objeto e inicializa a partir de un archivo mediante IPersistFile::Load. El resultado de esta función es similar a crear una instancia con una llamada a CoCreateInstanceEx, seguida de una llamada de inicialización a IPersistFile::Load, con las siguientes diferencias importantes:
- Esta función requiere menos recorridos de ida y vuelta de red al crear instancias de un objeto en un equipo remoto.
- En caso de que dwClsCtx esté establecido en CLSCTX_REMOTE_SERVER y pServerInfo sea NULL, si la clase está registrada con la sub-clave ActivateAtStorage o no tiene información del Registro asociada, esta función creará una instancia de un objeto en el equipo donde reside pwszName , lo que proporciona el menor tráfico de red posible.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | objbase.h |
Library | Ole32.lib |
Archivo DLL | ComBase.dll |