enumeración LOCATION_REPORT_STATUS (locationapi.h)
[La API de ubicación de Win32 está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. En su lugar, use la API Windows.Devices.Geolocation . ]
Define el estado posible para los nuevos informes de un tipo de informe determinado.
Syntax
typedef enum LOCATION_REPORT_STATUS {
REPORT_NOT_SUPPORTED = 0,
REPORT_ERROR = 1,
REPORT_ACCESS_DENIED = 2,
REPORT_INITIALIZING = 3,
REPORT_RUNNING = 4
} ;
Constantes
REPORT_NOT_SUPPORTED Valor: 0 La API no admite el tipo de informe solicitado. No hay proveedores de ubicación del tipo solicitado instalados. |
REPORT_ERROR Valor: 1 Se produjo un error al crear el informe o los proveedores de ubicación para el tipo solicitado no pueden proporcionar datos. Los proveedores de ubicación podrían no estar disponibles actualmente o los proveedores de ubicación no pueden obtener datos. Por ejemplo, este estado puede producirse cuando un sensor GPS está en interior y no hay satélites en la vista. |
REPORT_ACCESS_DENIED Valor: 2 No se han concedido permisos para acceder a este tipo de informe. Llame a ILocation::RequestPermissions. |
REPORT_INITIALIZING Valor: 3 Se está inicializando el informe. |
REPORT_RUNNING Valor: 4 El informe se está ejecutando. Hay disponibles nuevos datos de ubicación para el tipo de informe solicitado. |
Comentarios
Estos valores representan el estado de los nuevos informes. Los informes más recientes permanecen disponibles a través de ILocation::GetReport, independientemente del estado notificado. Si el estado es REPORT_RUNNING, los datos de un informe son nuevos. De lo contrario, ILocation::GetReport proporciona datos almacenados en caché si los datos almacenados en caché están disponibles.
Ejemplos
En el ejemplo de código siguiente se muestra cómo recuperar los valores de LOCATION_REPORT_STATUS de ILocation::GetReportStatus.
// Get the status of this report type
if (SUCCEEDED(spLocation->GetReportStatus(IID_ILatLongReport, &status)))
{
bool fIsNotRunning = true;
switch (status)
{
case REPORT_RUNNING:
// If the status for the current report is running,
// then do not print any additional message.
// Otherwise, print a message indicating that reports may contain cached data.
fIsNotRunning = false;
break;
case REPORT_NOT_SUPPORTED:
wprintf(L"\nThere is no sensor installed for this report type.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
}
if (true == fIsNotRunning)
{
wprintf(L"Location reports returned from GetReport contain cached data.\n");
}
}
El código siguiente es una implementación de ejemplo de la función de devolución de llamada ILocationEvents::OnStatusChanged. Esta implementación imprime mensajes cuando hay un cambio en el estado de los informes de latitud y longitud.
// This is called when the status of a report type changes.
// The LOCATION_REPORT_STATUS enumeration is defined in LocApi.h in the SDK
STDMETHODIMP CLocationEvents::OnStatusChanged(REFIID reportType, LOCATION_REPORT_STATUS status)
{
if (IID_ILatLongReport == reportType)
{
switch (status)
{
case REPORT_NOT_SUPPORTED:
wprintf(L"\nNo devices detected.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
case REPORT_RUNNING:
wprintf(L"\nRunning.\n");
break;
}
}
else if (IID_ICivicAddressReport == reportType)
{
}
return S_OK;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio],Windows 7 |
Servidor mínimo compatible | No se admite ninguno |
Encabezado | locationapi.h |