次の方法で共有


ISyncMgrSyncItem::GetItemID メソッド (syncmgr.h)

同期項目の一意の ID を取得します。

構文

HRESULT GetItemID(
  [out] LPWSTR *ppszItemID
);

パラメーター

[out] ppszItemID

種類: LPWSTR*

このメソッドが戻るときに、 には、項目の ID を含むバッファーへのポインターが含まれます。 この文字列は、終端の null 文字を含む最大長MAX_SYNCMGR_IDです。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

注釈

このメソッドによって取得された ID は変更できません。 通常、ID は GUID 文字列の形式です。 ただし、これは要件ではありません。 ID には、ハンドラーのコンテキストで一意の任意の文字列を指定できます。

GetItemID が失敗した場合、または空の文字列が ppszItemID で返された場合、同期項目はハンドラーのフォルダーに表示されず、同期センターは同期を試みません。

このメソッドによって取得された ID は、フォルダー UI で System.Sync.ItemID (PKEY_Sync_HandlerID) プロパティとして使用できます。

項目は、CoTaskMemAlloc を介して ppszComment が指す文字列バッファーを割り当てる役割を担います。 Sync Center は 、CoTaskMemFree を介して文字列バッファーの割り当てを解除します。

以前の Sync Manager 実装では、このデータは 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