Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает экземпляр определенного класса на определенном компьютере из контейнера приложения.
Синтаксис
HRESULT CoCreateInstanceFromApp(
[in] REFCLSID Clsid,
[in, optional] IUnknown *punkOuter,
[in] DWORD dwClsCtx,
[in, optional] PVOID reserved,
[in] DWORD dwCount,
[in, out] MULTI_QI *pResults
);
Параметры
[in] Clsid
ИДЕНТИФИКАТОР CLSID создаваемого объекта.
[in, optional] punkOuter
Если этот параметр не равен NULL, указывает, что экземпляр создается как часть статистического выражения, а punkOuter будет использоваться в качестве управляемого IUnknown нового экземпляра. Агрегирование в настоящее время не поддерживается в нескольких процессах или на нескольких компьютерах. При создании экземпляра объекта вне процесса CLASS_E_NOAGGREGATION будет возвращено, если punkOuter имеет значение, отличное от NULL.
[in] dwClsCtx
Значение из перечисления CLSCTX .
[in, optional] reserved
Зарезервировано для последующего использования.
[in] dwCount
Количество структур в pResults. Это значение должно быть больше 0.
[in, out] pResults
Массив структур MULTI_QI . Каждая структура имеет три элемента: идентификатор запрошенного интерфейса (pIID), расположение для возврата указателя интерфейса (pItf) и возвращаемое значение вызова QueryInterface (hr).
Возвращаемое значение
Эта функция может возвращать стандартное возвращаемое значение E_INVALIDARG, а также следующие значения.
| Код возврата | Описание |
|---|---|
|
Указывает на успешное завершение. |
|
Указанный класс не зарегистрирован в базе данных регистрации или класс не поддерживается в контейнере приложения. Также может указывать на то, что тип сервера, запрошенный в перечислении CLSCTX , не зарегистрирован или значения для типов серверов в реестре повреждены. |
|
Этот класс не может быть создан как часть статистического выражения. |
|
По крайней мере один, но не все интерфейсы, запрошенные в массиве pResults , были успешно получены. Элемент hr каждой из структур MULTI_QI в pResults указывает с S_OK или E_NOINTERFACE, был ли возвращен определенный интерфейс. |
|
Ни один из интерфейсов, запрошенных в массиве pResults , не был успешно извлечен. |
Комментарии
Функция CoCreateInstanceFromApp аналогична функции CoCreateInstanceEx со следующими отличиями.
- Функция CoCreateInstanceFromApp считывает регистрации классов только из контекстов приложений и из куста реестра HKLM\SOFTWARE\Classes\CLSID.
- Предоставляются только встроенные классы, поддерживаемые в контейнере приложения. Попытки активировать неподдерживаемые классы, включая все классы, установленные сторонним кодом, а также многие классы Windows, приводят к ошибке REGDB_E_CLASSNOTREG.
- Функция CoCreateInstanceFromApp доступна для приложений Магазина Windows. Классические приложения могут вызывать эту функцию, но имеют те же ограничения, что и приложения Магазина Windows.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
| Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
| Целевая платформа | Windows |
| Header | combaseapi.h |
| Библиотека | Combase.lib |
| DLL | Combase.dll |