共用方式為


ISyncMgrSyncItem::GetItemID 方法 (syncmgr.h)

取得同步專案的唯一標識符。

語法

HRESULT GetItemID(
  [out] LPWSTR *ppszItemID
);

參數

[out] ppszItemID

類型: LPWSTR*

當這個方法傳回時,包含包含專案標識符之緩衝區的指標。 此字串長度上限MAX_SYNCMGR_ID包括終止 Null 字元。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

這個方法所擷取的標識碼無法變更。 一般而言,標識碼的格式為 GUID 字串。 不過,這不是必要專案。 標識元可以是處理程序內容中唯一的任何字串。

如果 GetItemID 失敗,或在 ppszItemID 中傳回空字串,則同步處理專案不會顯示在處理程式的資料夾中,而且同步中心不會嘗試進行同步處理。

這個方法所擷取的標識碼可在資料夾 UI 中使用,作為 System.Sync.ItemID (PKEY_Sync_HandlerID) 屬性。

項目負責透過 CoTaskMemAlloc 配置 ppszComment 所指向的字串緩衝區。 同步中心會透過 CoTaskMemFree 解除分配字串緩衝區。

在較舊的同步管理員實作中,此數據是透過 SYNCMGRITEM 結構擷取。

範例

下列範例示範這個方法的實作。

STDMETHODIMP CMyDeviceSyncItem::GetItemID(__out LPWSTR *ppszItemID)
{
    HRESULT hr = S_OK;
    *ppszName = NULL;

    // Generate the string version of the ID.
    if (_pszItemID == NULL)
    {
        LPOLESTR pszItemID = NULL;
        hr = StringFromCLSID(_guidItemID, &_pszItemID);
    }

    if (SUCCEEDED(hr))
    {
        // Duplicate the item ID string for the caller.
        hr = SHCoAllocString(_pszItemID, ppszItemID);
    } 

    return hr;
}

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 syncmgr.h