Método IVsCfgProvider.GetCfgs (UInt32, IVsCfg[], UInt32[], UInt32 )

 

Publicado: abril de 2016

Retorna os objetos por configuração para este objeto.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int GetCfgs(
    uint celt,
    IVsCfg[] rgpcfg,
    uint[] pcActual,
    uint[] prgfFlags
)
int GetCfgs(
    unsigned int celt,
    array<IVsCfg^>^ rgpcfg,
    array<unsigned int>^ pcActual,
    array<unsigned int>^ prgfFlags
)
abstract GetCfgs : 
        celt:uint32 *
        rgpcfg:IVsCfg[] *
        pcActual:uint32[] *
        prgfFlags:uint32[] -> int
Function GetCfgs (
    celt As UInteger,
    rgpcfg As IVsCfg(),
    pcActual As UInteger(),
    prgfFlags As UInteger()
) As Integer

Parâmetros

  • celt
    [in] Número de objetos de configuração a ser retornado ou igual a zero, indicando uma solicitação para um número desconhecido de objetos.
  • rgpcfg
    [in, out, size_is(celt)] Na entrada, ponteiro para uma matriz de interface ou null.Na saída, este parâmetro aponta para uma matriz de IVsCfg interfaces pertencentes aos objetos configuração solicitada.
  • pcActual
    [out, opcional] Ponteiro para o número de objetos de configuração realmente retornado ou null, se essa informação não é necessária.
  • prgfFlags
    [out, opcional] Sinalizadores que especificam as configurações para configurações de projeto, ou null se nenhuma configuração de sinalizador adicional é necessária.Para válido prgrFlags valores, consulte__VSCFGFLAGS

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De vsshell.idl:

HRESULT IVsCfgProvider::GetCfgs(
   [in] ULONG celt,
   [in, out, size_is(celt)] IVsCfg *rgpcfg[],
   [out, optional] ULONG *pcActual,
   [out, optional] VSCFGFLAGS *prgfFlags
);

Se a pcActual parâmetro é um endereço válido e o celt parâmetro for definido como zero, o número de objetos de configuração é retornado em pcActual.O número de objetos retornados é menor ou igual ao valor de celt.Se o número total de objetos de configuração é menor que o valor de celt, e em seguida, todos os objetos de configuração são retornados.Se o número total de objetos for maior que celt, o número de objetos retornados é limitado a celt e *pcActual for definido como celt na saída.

Se celt for diferente de zero, rgpcfg não deve ser null ou E_POINTER é retornado.

Normalmente, as chamadas são feitas a GetCfgs da seguinte maneira.O chamador especificar 0 para a contagem de objetos e null para o ponteiro de interface do array.GetCfgsRetorna o número de objetos de configuração no conteúdo do pcActual, informações que podem ser usadas pelo chamador para alocar espaço para a matriz de interface.Uma segunda chamada para GetCfgs é feita com o conjunto de contagem de objeto e o ponteiro de matriz, apontando para um endereço válido.O exemplo de código a seguir ilustra essa seqüência de chamada:

hr = pIVsCfgProvider->GetCfgs(0, null, &cExpected, null);

prgpcfgs = ::CoTaskMemAlloc(cExpected * sizeof(IVsCfg *));

hr = pIVsCfgProvider->GetCfgs(cExpected, prgpcfgs, &cActual, null);

Exemplos

Um padrão de extremamente comum é a seguinte aparência (omitindo verificações de erro para facilitar a leitura):

hr = pIVsCfgProvider->GetCfgs(0, null, &cExpected, null);

prgpcfgs = ::CoTaskMemAlloc(cExpected * sizeof(IVsCfg *));

hr = pIVsCfgProvider->GetCfgs(cExpected, prgpcfgs, &cActual, NULL);

Consulte também

Interface IVsCfgProvider
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo