ISelectionContainer.GetObjects 方法
返回任何当前选定的对象或可选的对象。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function GetObjects ( _
dwFlags As UInteger, _
cObjects As UInteger, _
<OutAttribute> apUnkObjects As Object() _
) As Integer
int GetObjects(
uint dwFlags,
uint cObjects,
Object[] apUnkObjects
)
参数
- dwFlags
类型:System.UInt32
[in] 标记指定对象的类型返回。如果设置为 GETOBJS_ALL, ISelectionContainer::GetObjects 返回所有可选的对象。如果设置为 GETOBJS_SELECTED,只有当前选定的对象返回。
- cObjects
类型:System.UInt32
[in] 指定要返回的对象的请求的数目。
- apUnkObjects
类型:array<System.Object[]
[in] 支持 IDispatch 接口到要选择的数组的指针指针或可选的对象。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
COM 签名
从 designer.idl:
HRESULT ISelectionContainer::GetObjects(
[in] DWORD dwFlags,
[in] ULONG cObjects,
[out, size_is(cObjects)] IUnknown ** apUnkObjects
);
若要使用 GetObjects,调用方必须首先调用与适当类型的 CountObjects (或选择或可选) 确定对象数,然后将与该范围的数组并向其传递到 apUnkObjects 参数的 GetObjects 。
由于 GetObjects 用于填充 " 属性 " 窗口中,返回的对象必须提供对要显示的属性。有时, GetObjects 返回指向扩展对象而不是对象。扩展对象具有不直接属于所选对象的属性,但可能会影响其外观或行为。例如,因此,如果选定的对象是在窗体,窗体设计器的按钮,实现 GetObjects 的 VSPackage 对象可能包括属性 (在 " 属性 " 窗口的 X 和 Y 坐标位置。在这种情况下, GetObjects 将返回指向窗体而不是所选按钮。
由于返回的对象支持 IDispatch 接口,环境可以获取信息直接从它们。例如,预定义的调度标识符 (dispid) 可以传递给 IDispatch::Invoke 获取对象名。predeclared Dispid 为负确保它们不冲突使用用户定义的标识符。
下表描述一些此信息以及从中获取的位置。
信息 |
获取 |
---|---|
对象名 |
使用 DISPID_NAME 调度标识符的IDispatch::Invoke |
对象索引 |
使用 DISPID_OBJECT 调度标识符的IDispatch::Invoke |
对象类型 |
IProvideClassInfo::QueryInterface |
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。