Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает объект и инициализирует его из файла с помощью 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 |