Microsoft.VisualStudio.Project.ConfigProvider.GetCfgs C# (CSharp) Method

GetCfgs() public method

Returns the per-configuration objects for this object.
public GetCfgs ( uint celt, IVsCfg a, uint actual, uint flags ) : int
celt uint Number of configuration objects to be returned or zero, indicating a request for an unknown number of objects.
a IVsCfg On input, pointer to an interface array or a null reference. On output, this parameter points to an array of IVsCfg interfaces belonging to the requested configuration objects.
actual uint The number of configuration objects actually returned or a null reference, if this information is not necessary.
flags uint Flags that specify settings for project configurations, or a null reference (Nothing in Visual Basic) if no additional flag settings are required. For valid prgrFlags values, see __VSCFGFLAGS.
return int
        public virtual int GetCfgs(uint celt, IVsCfg[] a, uint[] actual, uint[] flags)
        {
            if(flags != null)
                flags[0] = 0;

            int i = 0;
            string[] configList = GetPropertiesConditionedOn(ProjectFileConstants.Configuration);
            string[] platformList = GetPlatformsFromProject();

            if (a != null)
            {
                foreach (string configName in configList)
                {
                    foreach (string platform in platformList)
                    {
                        a[i] = this.GetProjectConfiguration(configName, platform);

                        i++;
                        if (i == celt)
                            break;
                    }

                    if (i == celt)
                        break;
                }
            }
            else
            {
                i = configList.Length * platformList.Length;
            }

            if(actual != null)
                actual[0] = (uint)i;

            return VSConstants.S_OK;
        }