Функция CoGetInstanceFromFile (objbase.h)
Создает объект и инициализирует его из файла с помощью IPersistFile::Load.
Синтаксис
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
);
Параметры
[in, optional] pServerInfo
Указатель на структуру COSERVERINFO , указывающий компьютер, на котором создается экземпляр объекта, и используемый параметр проверки подлинности. Этот параметр может иметь значение NULL. В этом случае экземпляр объекта создается на текущем компьютере, на компьютере, указанном в значении реестра RemoteServerName для класса, или на компьютере, где находится файл pwszName , если значение ActivateAtStorage указано для класса или нет сведений локального реестра.
[in, optional] pClsid
Указатель на идентификатор класса создаваемого объекта. Этот параметр может иметь значение NULL. В этом случае выполняется вызов GetClassFile, использующий pwszName в качестве параметра для получения класса объекта, экземпляр которого необходимо создать.
[in, optional] punkOuter
Если значение не равно NULL, указывает, что экземпляр создается как часть статистического выражения, а punkOuter будет использоваться в качестве указателя на управляющий IUnknown нового экземпляра. Агрегирование не поддерживается между процессами или компьютерами. При создании экземпляра объекта вне процесса CLASS_E_NOAGGREGATION будет возвращено, если punkOuter имеет значение, отличное от NULL.
[in] dwClsCtx
Значения из перечисления CLSCTX .
[in] grfMode
Указывает способ открытия файла. См. раздел Константы STGM.
[in] pwszName
Файл, используемый для инициализации объекта с помощью IPersistFile::Load. Этот параметр не может иметь значение NULL.
[in] dwCount
Количество структур в pResults. Этот параметр должен быть больше 0.
[in, out] pResults
Массив структур MULTI_QI . Каждая структура имеет три элемента: идентификатор запрошенного интерфейса (pIID), расположение для возврата указателя интерфейса (pItf) и возвращаемое значение вызова QueryInterface (hr).
Возвращаемое значение
Эта функция может возвращать стандартное возвращаемое значение E_INVALIDARG, а также следующие значения.
Код возврата | Описание |
---|---|
|
Функция успешно извлекла все интерфейсы. |
|
По крайней мере один, но не все интерфейсы, запрошенные в массиве pResults , были успешно получены. Элемент hr каждой из MULTI_QI структур указывает с помощью S_OK или E_NOINTERFACE, был ли возвращен определенный интерфейс. |
|
Ни один из интерфейсов, запрошенных в массиве pResults , не был успешно извлечен. |
Комментарии
CoGetInstanceFromFile создает объект и инициализирует его из файла с помощью IPersistFile::Load. Результат этой функции аналогичен созданию экземпляра с вызовом CoCreateInstanceEx, за которым следует инициализирующий вызов IPersistFile::Load со следующими важными различиями:
- При создании экземпляра объекта на удаленном компьютере эта функция требует меньшего количества сетевых круговых путей.
- Если для dwClsCtx задано значение CLSCTX_REMOTE_SERVER, а pServerInfo имеет значение NULL, если класс зарегистрирован с помощью подключа ActivateAtStorage или не содержит связанных сведений реестра, эта функция создаст экземпляр объекта на компьютере, где находится pwszName , обеспечивая минимальный сетевой трафик.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objbase.h |
Библиотека | Ole32.lib |
DLL | ComBase.dll |