IVsCfgProvider2.GetCfgs(UInt32, IVsCfg[], UInt32[], UInt32[]) 方法

定义

返回此对象的每个配置的对象。

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

中要返回的配置对象数或为零,表示请求的对象数目未知。

rgpcfg
IVsCfg[]

[in,out,size_is (celt) ]输入时,指向接口数组或的指针 null 。 在输出时,此参数指向 IVsCfg 属于请求的配置对象的接口数组。

pcActual
UInt32[]

[out,optional]指向实际返回的配置对象数的指针 null ,如果不需要此信息,则为。

prgfFlags
UInt32[]

[out,optional]指定项目配置设置的标志; null 如果不需要其他标志设置,则为。 有关有效值 prgrFlags ,请参阅 __VSCFGFLAGS

返回

Int32

如果该方法成功,则它会返回 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 不得为 nullE_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);

适用于