Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает и запрашивает глобальные свойства среды выполнения COM.
Наследование
Интерфейс IGlobalOptions наследуется от интерфейса IUnknown . IGlobalOptions также имеет следующие типы элементов:
Методы
Интерфейс IGlobalOptions содержит следующие методы.
|
IGlobalOptions::Query Метод IGlobalOptions::Query (objidlbase.h) запрашивает указанное глобальное свойство среды выполнения COM. |
|
IGlobalOptions::Set Метод IGlobalOptions::Set (objidlbase.h) задает указанное глобальное свойство среды выполнения COM. |
Комментарии
С помощью этого интерфейса можно задать и запросить следующие глобальные свойства среды выполнения COM.
| Свойство | Значения |
|---|---|
| COMGLB_APPID | AppID для процесса. Это единственное поддерживаемое свойство в Windows XP. |
| COMGLB_EXCEPTION_HANDLING |
Возможные значения свойства COMGLB_EXCEPTION_HANDLING:
Примечание Даже если обработка исключений среды выполнения COM отключена, исключения могут не распространяться на WER, если в процессе, обрабатывающем исключение, есть другой обработчик исключений уровня приложения.
|
| COMGLB_RPC_THREADPOOL_SETTING |
Возможные значения свойства COMGLB_RPC_THREADPOOL_SETTING в методе Set :
Свойство COMGLB_RPC_THREADPOOL_SETTING можно использовать для изменения поведения пула потоков RPC. Изменение поведения по умолчанию приведет к снижению производительности, так как это приведет к использованию RPC дополнительного потока. Поэтому при изменении этого параметра следует проявлять осторожность. Рекомендуется изменять этот параметр только для обеспечения совместимости приложений.
Примечание Это свойство должно быть задано сразу после инициализации COM в процессе. Если это свойство задано после выполнения каких-либо операций, вызывающих инициализацию канала RPC COM (например, маршалинг или отмена ссылок на объекты), метод Set завершится ошибкой.
|
| COMGLB_RO_SETTINGS |
Возможные значения свойства COMGLB_RO_SETTINGS:
|
| COMGLB_UNMARSHALING_POLICY |
Возможные значения свойства COMGLB_UNMARSHALING_POLICY:
|
Для приложений, которые обнаруживают сбои и другие исключения, которые могут создаваться при выполнении входящих COM-вызовов, например при вызове на локальном сервере или при выполнении метода IDropTarget::D rop , важно задать COMGLB_EXCEPTION_HANDLING COMGLB_EXCEPTION_DONOT_HANDLE отключить поведение COM перехвата исключений. Если это не сделать, это может привести к повреждению состояния процесса, например блокировки, удерживаемые при возникновении этих исключений, будут отменены, а процесс может перейти в несогласованное состояние.
Все такие приложения должны выполнять этот код при запуске.
IGlobalOptions *pGlobalOptions;
hr = CoCreateInstance(CLSID_GlobalOptions, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pGlobalOptions));
if (SUCCEEDED(hr))
{
hr = pGlobalOptions->Set(COMGLB_EXCEPTION_HANDLING, COMGLB_EXCEPTION_DONOT_HANDLE);
pGlobalOptions->Release();
}
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
| Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
| Целевая платформа | Windows |
| Header | objidlbase.h (включая ObjIdl.h) |