ISyncMgrSyncItem::GetItemID 方法 (syncmgr.h)
获取同步项的唯一 ID。
语法
HRESULT GetItemID(
[out] LPWSTR *ppszItemID
);
参数
[out] ppszItemID
类型: LPWSTR*
此方法返回时,包含指向包含项 ID 的缓冲区的指针。 此字符串的最大长度MAX_SYNCMGR_ID包括终止 null 字符。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
此方法检索的 ID 无法更改。 通常,ID 采用 GUID 字符串的形式。 但这不是必须要求。 ID 可以是处理程序上下文中唯一的任何字符串。
如果 GetItemID 失败或在 ppszItemID 中返回空字符串,则同步项目不会显示在处理程序的 文件夹中,并且同步中心不会尝试同步它。
此方法检索到的 ID 在文件夹 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 |