IGlobalOptions 接口 (objidl.h)
设置和查询组件对象模型 (COM) 运行时的全局属性。
继承
IGlobalOptions 接口继承自 IUnknown 接口。 IGlobalOptions 还具有以下类型的成员:
方法
IGlobalOptions 接口包含以下方法。
IGlobalOptions::Query IGlobalOptions::Query 方法 (objidl.h) 查询 COM 运行时的指定全局属性。 |
IGlobalOptions::Set IGlobalOptions::Set 方法 (objidl.h) 设置 COM 运行时的指定全局属性。 |
注解
可以使用此接口设置和查询 COM 运行时的以下全局属性。
属性 | 值 |
---|---|
COMGLB_APPID | 进程的 AppID。 这是 Windows XP 上唯一支持的属性。 |
COMGLB_EXCEPTION_HANDLING |
COMGLB_EXCEPTION_HANDLING 属性的可能值为:
注意 即使禁用了 COM 运行时异常处理,如果进程中有另一个处理异常的应用程序级异常处理程序,则异常可能不会传播到 WER。
|
COMGLB_RPC_THREADPOOL_SETTING |
Set 方法中 COMGLB_RPC_THREADPOOL_SETTING 属性的可能值为:
COMGLB_RPC_THREADPOOL_SETTING 属性可用于更改 RPC 线程池行为。 更改默认行为将产生性能损失,因为这会导致 RPC 使用额外的线程。 因此,更改此设置时应小心谨慎。 建议仅出于应用程序兼容性原因更改此设置。
注意 在进程中初始化 COM 后,必须立即设置此属性。 如果在执行导致 COM 初始化 RPC 通道的任何操作后设置了此属性, (例如封送或取消封送对象引用) , 则 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 |
标头 | objidl.h (包括 ObjIdl.h) |