IDefaultLocation::SetReport 方法 (locationapi.h)
[Win32 位置 API 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 Windows.Devices.Geolocation API。 ]
設定預設位置。
語法
HRESULT SetReport(
[in] REFIID reportType,
[in] ILocationReport *pLocationReport
);
參數
[in] reportType
REFIID ,代表使用 pLocationReport 傳遞之報表類型的介面識別碼。
[in] pLocationReport
ILocationReport 實例的指標,其中包含預設位置提供者的位置報表。
傳回值
可能的值包括 (但不限於) 下表中的這些值。
傳回值 | 描述 |
---|---|
|
已成功設定位置報告。 |
|
位置報表包含無效的數據。 當公民地址報告未包含有效的IS0 3166兩個字母國家或地區代碼,或當緯度/經度報表不包含介於 -90 到90之間的緯度,或不包含 -180 到180之間的經度時,就會發生這種情況。 |
|
用戶沒有設定預設位置的許可權。 |
備註
ILocationReport 是特定位置報表類型的基底介面。 您用於 pLocationReport 的實際介面必須符合您透過 reportType 指定的類型。
請注意,reportType 指定的類型必須是 ICivicAddressReport 或 ILatLongReport 的 IID。
緯度/經度報表中提供的緯度和經度必須對應至地球的位置。 否則,這個方法會傳回 HRESULT 錯誤值。
注意 如果下列兩個條件成立,應用程式就不會收到 來自 OnLocationChanged 的預期位置變更事件。 首先,應用程式會在 LOCALSERVICE、SYSTEM 或 NETWORKSERVICE 使用者帳戶的內容中以服務的形式執行。 其次,當用戶選取 控制台 中的預設位置,或應用程式呼叫 IDefaultLocation::SetReport 時,位置變更事件會產生變更預設位置。
範例
下列範例示範如何使用公民位址報告來設定預設位置。
// 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");
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式],Windows 7 |
最低支援的伺服器 | 都不支援 |
目標平台 | Windows |
標頭 | locationapi.h |
Dll | LocationAPI.dll |