共用方式為


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 實例的指標,其中包含預設位置提供者的位置報表。

傳回值

可能的值包括 (但不限於) 下表中的這些值。

傳回值 描述
S_OK
已成功設定位置報告。
E_INVALIDARG
位置報表包含無效的數據。 當公民地址報告未包含有效的IS0 3166兩個字母國家或地區代碼,或當緯度/經度報表不包含介於 -90 到90之間的緯度,或不包含 -180 到180之間的經度時,就會發生這種情況。
E_ACCESSDENIED
用戶沒有設定預設位置的許可權。

備註

ILocationReport 是特定位置報表類型的基底介面。 您用於 pLocationReport 的實際介面必須符合您透過 reportType 指定的類型。

請注意,reportType 指定的類型必須是 ICivicAddressReportILatLongReportIID

緯度/經度報表中提供的緯度和經度必須對應至地球的位置。 否則,這個方法會傳回 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

另請參閱

IDefaultLocation