Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Usando enumerações, você pode obter uma lista de todas as entidades pares específicas que correspondem aos seus critérios.
Para obter uma enumeração e recuperar os resultados
Obtenha um identificador para a enumeração. Chame um função PeerEnum, por exemplo, chame o PeerGraphEnumRecords função Peer Graphing. As funções PeerEnum criam a enumeração e retornam um identificador para essa enumeração para o aplicativo chamador. Esse identificador deve ser usado para recuperar os resultados.
Opcionalmente, obtenha o número de entidades na enumeração. Chame um função GetItemCount, por exemplo, chame PeerGraphGetItemCount ou PeerGetItemCount.
Observação
Você pode usar o valor retornado pelo função GetItemCount para determinar o número de itens disponíveis para recuperação.
Recupere um grupo de resultados. Chame um função GetNextItem, por exemplo, chame PeerGraphGetNextItem.
Observação
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 um função FreeData, por exemplo, chame PeerGraphFreeData ou PeerFreeData.
Observação
Para obter mais informações, consulte liberando dados de mesmo nível.
Depois que o aplicativo não precisar do identificador para a enumeração, libere-o. Chame um função EndEnumeration, por exemplo, chame PeerEndEnumeration ou PeerGraphEndEnumeration.
Exemplo de uma enumeração
O trecho 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;
}