Compartilhar via


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

Define o local padrão.

Sintaxe

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

Parâmetros

[in] reportType

REFIID que representa a ID da interface do tipo de relatório que é passado usando pLocationReport.

[in] pLocationReport

Ponteiro para a instância ILocationReport que contém o relatório de localização do provedor de localização padrão.

Retornar valor

Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Valor retornado Descrição
S_OK
O relatório de localização foi definido com êxito.
E_INVALIDARG
O relatório de localização contém dados inválidos. Isso pode ocorrer quando um relatório de endereço cívico não contém um código de país ou região de duas letras is0 3166 válido ou quando um relatório de latitude/longitude não contém uma latitude entre -90 e 90 ou não contém uma longitude entre -180 e 180.
E_ACCESSDENIED
O usuário não tem permissão para definir o local padrão.

Comentários

ILocationReport é a interface base de tipos de relatório de localização específicos. A interface real usada para pLocationReport deve corresponder ao tipo especificado por meio de reportType.

Observe que o tipo especificado por reportType deve ser o IID de ICivicAddressReport ou ILatLongReport.

A latitude e a longitude fornecidas em um relatório de latitude/longitude devem corresponder a um local no globo. Caso contrário, esse método retornará um valor de erro HRESULT .

Nota Um aplicativo não receberá o evento de alteração de local esperado de OnLocationChanged se ambas as condições a seguir forem verdadeiras. Primeiro, o aplicativo é executado como um serviço, no contexto da conta de usuário LOCALSERVICE, SYSTEM ou NETWORKSERVICE. Em segundo lugar, o evento de alteração de local resulta da alteração do local padrão, manualmente quando o usuário seleciona Local Padrão no Painel de Controle ou programaticamente quando um aplicativo chama IDefaultLocation::SetReport.
 

Exemplos

O exemplo a seguir mostra como definir o local padrão usando um relatório de endereço cívico.

            // 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 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

Confira também

IDefaultLocation