Compartilhar via


Método ILocation::GetReport (locationapi.h)

[A API de Localização do Win32 está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Em vez disso, use a API Windows.Devices.Geolocation . ]

Recupera um relatório de localização.

Sintaxe

HRESULT GetReport(
  [in]  REFIID          reportType,
  [out] ILocationReport **ppLocationReport
);

Parâmetros

[in] reportType

REFIID que especifica o tipo de relatório a ser recuperado.

[out] ppLocationReport

Endereço de um ponteiro para ILocationReport que recebe o relatório de localização especificado.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_ACCESSDENIED
O provedor de localização tem permissões desabilitadas e os dados de relatório não podem ser recuperados.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
reportType é diferente de IID_ILatLongReport ou IID_ICivicAddressReport.
HRESULT_FROM_WIN32(ERROR_NO_DATA)
Nenhum dado está disponível. Isso pode ser devido a um erro ou devido ao provedor estar indisponível.
E_POINTER
ppLocationReport é NULL.
E_INVALIDARG
reportType é IID_ILatLongReport e o valor de latitude ou longitude está fora dos limites.
E_FAIL
O sensor subjacente é NULL ou desconectado.
E_OUTOFMEMORY
Sem memória.

Comentários

ILocationReport é a interface base para tipos de relatório de localização específicos. Chame QueryInterface para recuperar um ponteiro para o tipo de relatório correto.

Quando GetReport é chamado, isso pode resultar em uma notificação sendo exibida na barra de tarefas e um evento de Atividade de Localização sendo conectado Visualizador de Eventos, se for o primeiro uso de localização do aplicativo.

Nota Quando um aplicativo é iniciado pela primeira vez ou quando um novo sensor de localização está habilitado, GetReportStatus pode relatar uma status de REPORT_RUNNING pouco antes do novo relatório de localização estar disponível. Portanto, uma chamada inicial para GetReport pode retornar um erro (ERROR_NO_DATA) ou um valor que não seja do sensor de localização esperado, mesmo que GetReportStatus indique uma status de REPORT_RUNNING. Consulte GetReportStatus para obter uma descrição de uma solução alternativa para esse problema.
 

Exemplos

O exemplo a seguir chama GetReport para relatórios de latitude/longitude e demonstra como chamar QueryInterface para recuperar um ponteiro para o tipo de relatório especificado.

CComPtr<ILocationReport> spLocationReport; // This is our location report object
CComPtr<ILatLongReport> spLatLongReport; // This is our LatLong report object

// Get the current latitude/longitude location report,
hr = spLocation->GetReport(IID_ILatLongReport, &spLocationReport);
// then get a pointer to the ILatLongReport interface by calling QueryInterface
if (SUCCEEDED(hr))
{
    hr = spLocationReport->QueryInterface(&spLatLongReport);
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho], Windows 7
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Windows
Cabeçalho locationapi.h
DLL LocationAPI.dll