IVsCfgProvider2.GetCfgs(UInt32, IVsCfg[], UInt32[], UInt32[]) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回此对象的每个配置的对象。
int GetCfgs(unsigned int celt, std::Array <Microsoft::VisualStudio::Shell::Interop::IVsCfg const &> const & rgpcfg, std::Array <unsigned int> const & pcActual, std::Array <unsigned int> const & prgfFlags);
public int GetCfgs (uint celt, Microsoft.VisualStudio.Shell.Interop.IVsCfg[] rgpcfg, uint[] pcActual, uint[] prgfFlags);
abstract member GetCfgs : uint32 * Microsoft.VisualStudio.Shell.Interop.IVsCfg[] * uint32[] * uint32[] -> int
Public Function GetCfgs (celt As UInteger, rgpcfg As IVsCfg(), Optional pcActual As UInteger(), Optional prgfFlags As UInteger()) As Integer
参数
- celt
- UInt32
中要返回的配置对象数或为零,表示请求的对象数目未知。
- pcActual
- UInt32[]
[out,optional]指向实际返回的配置对象数的指针 null ,如果不需要此信息,则为。
- prgfFlags
- UInt32[]
[out,optional]指定项目配置设置的标志; null 如果不需要其他标志设置,则为。 有关有效值 prgrFlags ,请参阅 __VSCFGFLAGS
返回
如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。
实现
注解
COM 签名
从 vsshell80:
HRESULT IVsCfgProvider2::GetCfgs(
[in] ULONG celt,
[in, out, size_is(celt)] IVsCfg *rgpcfg[],
[out, optional] ULONG *pcActual,
[out, optional] VSCFGFLAGS *prgfFlags
);
如果 pcActual 参数是有效的地址,并且 celt 参数设置为0,则会在中返回配置对象的数目 pcActual 。 返回的对象数小于或等于的值 celt 。 如果配置对象的总数小于的值 celt ,则返回所有的配置对象。 如果对象的总数大于,则返回的 celt 对象数限制为, celt 而 * pcActual 在输出时设置为 celt 。
如果 celt 为非零,则 rgpcfg 不得为 null 或 E_POINTER 返回。
通常,调用如下所示 GetCfgs 。 调用方为对象计数和 null 接口数组指针指定0。 GetCfgs 返回的内容中配置对象的数目 pcActual ,调用方可以使用该信息为接口数组分配空间。 对的第二次调用 GetCfgs 使用对象计数集和指向有效地址的数组指针进行。 下面的代码示例演示了此调用序列:
hr = pIVsCfgProvider->GetCfgs(0, null, &cExpected, null);
prgpcfgs = ::CoTaskMemAlloc(cExpected * sizeof(IVsCfg *));
hr = pIVsCfgProvider->GetCfgs(cExpected, prgpcfgs, &cActual, null);