Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Usando Enumerações, você pode obter uma lista de todas as entidades par específicas que correspondem aos critérios.
Para obter uma enumeração e recuperar os resultados
Obtenha um identificador para a enumeração. Chame uma função PeerEnum, por exemplo, chame a função PeerGraphEnumRecords Peer Graphing. As funções PeerEnum criam a enumeração e retornam um identificador para essa enumeração para o aplicativo de chamada. Esse identificador deve ser usado para recuperar os resultados.
Opcionalmente, obtenha o número de entidades na enumeração. Chame uma função GetItemCount, por exemplo, chame PeerGraphGetItemCount ou PeerGetItemCount.
Nota
Você pode usar o valor retornado pela função GetItemCount para determinar o número de itens disponíveis para recuperação.
Recuperar um grupo de resultados. Chame uma função GetNextItem, por exemplo, chame PeerGraphGetNextItem.
Nota
Quando um aplicativo chama uma função GetNextItem, ele especifica o número de entidades a serem retornadas e, em seguida, a função retorna um ponteiro para uma matriz de ponteiros para as entidades e o número de entidades, que é sempre menor ou igual ao número especificado. Um aplicativo pode precisar chamar essa função muitas vezes até que o número de entidades retornadas seja menor do que o número solicitado.
Depois que os dados não forem necessários, libere o ponteiro para os dados. Chame uma função FreeData, por exemplo, chame PeerGraphFreeData ou PeerFreeData.
Nota
Para obter mais informações, consulte liberandode dados par.
Depois que o aplicativo não precisar do identificador para a enumeração, libere-o. Chame uma função EndEnumeration, por exemplo, chamePeerEndEnumerationou PeerGraphEndEnumeration.
Exemplo de uma Enumeração
O snippet de código a seguir mostra como enumerar por meio de identidades disponíveis.
#include <p2p.h>
#include <stdio.h>
#pragma comment(lib, "p2p.lib")
//-----------------------------------------------------------------------------
// Function: EnumIdentities
//
// Purpose: Demonstrate how to enumerate identities.
//
// Returns: HRESULT
//
HRESULT EnumIdentities(void)
{
HPEERENUM hPeerEnum = NULL;
HRESULT hr = PeerEnumIdentities(&hPeerEnum);
if (SUCCEEDED(hr))
{
ULONG cIdentities = 0;
hr = PeerGetItemCount(hPeerEnum, &cIdentities);
if (SUCCEEDED(hr))
{
ULONG i;
for (i = 0; i < cIdentities; i++)
{
ULONG cItem = 1; // process one result at a time
PEER_NAME_PAIR ** ppNamePair = NULL; // pointer to an array of pointers
hr = PeerGetNextItem(hPeerEnum, &cItem, (PVOID**) &ppNamePair);
if (SUCCEEDED(hr) && (1 == cItem))
{
wprintf(L"%s [%s]\r\n", (*ppNamePair)->pwzFriendlyName, (*ppNamePair)->pwzPeerName);
PeerFreeData(ppNamePair);
}
}
}
PeerEndEnumeration(hPeerEnum);
}
return hr;
}