Compartir a través de


Método IDefaultLocation::SetReport (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 . ]

Establece la ubicación predeterminada.

Sintaxis

HRESULT SetReport(
  [in] REFIID          reportType,
  [in] ILocationReport *pLocationReport
);

Parámetros

[in] reportType

REFIID que representa el identificador de interfaz del tipo de informe que se pasa mediante pLocationReport.

[in] pLocationReport

Puntero a la instancia de ILocationReport que contiene el informe de ubicación del proveedor de ubicación predeterminado.

Valor devuelto

Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Valor devuelto Descripción
S_OK
El informe de ubicación se estableció correctamente.
E_INVALIDARG
El informe de ubicación contiene datos no válidos. Esto puede ocurrir cuando un informe de direcciones civiles no contiene un código de país o región de dos letras IS0 3166 válido, o cuando un informe de latitud y longitud no contiene una latitud entre -90 y 90 o no contiene una longitud entre -180 y 180.
E_ACCESSDENIED
El usuario no tiene permiso para establecer la ubicación predeterminada.

Comentarios

ILocationReport es la interfaz base de tipos de informe de ubicación específicos. La interfaz real que use para pLocationReport debe coincidir con el tipo que especifique mediante reportType.

Tenga en cuenta que el tipo especificado por reportType debe ser el IID de ICivicAddressReport o ILatLongReport.

La latitud y la longitud proporcionadas en un informe de latitud y longitud deben corresponder a una ubicación del globo. De lo contrario, este método devuelve un valor de error HRESULT .

Nota Una aplicación no recibe el evento de cambio de ubicación esperado de OnLocationChanged si se cumplen las dos condiciones siguientes. En primer lugar, la aplicación se ejecuta como un servicio, en el contexto de la cuenta de usuario LOCALSERVICE, SYSTEM o NETWORKSERVICE. En segundo lugar, el evento de cambio de ubicación se produce al cambiar la ubicación predeterminada manualmente cuando el usuario selecciona Ubicación predeterminada en Panel de control o mediante programación cuando una aplicación llama a IDefaultLocation::SetReport.
 

Ejemplos

En el ejemplo siguiente se muestra cómo establecer la ubicación predeterminada mediante un informe de direcciones civiles.

            // set the civic address fields of the Default Location
            hr = spDefaultLocation->SetReport(IID_ICivicAddressReport, spCivicAddressReport);
            if (E_INVALIDARG == hr)
            {
                wprintf(L"The civic address report has invalid data. ");
                wprintf(L"Country/region must be a valid ISO-3166 2-letter or 3-letter code.\n");
            }
            else if (E_ACCESSDENIED == hr)
            {
                wprintf(L"Administrator privilege required.\n");
            }

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio],Windows 7
Servidor mínimo compatible No se admite ninguno
Plataforma de destino Windows
Encabezado locationapi.h
Archivo DLL LocationAPI.dll

Consulte también

IDefaultLocation