ISyncMgrSyncItem::GetItemID method (syncmgr.h)
Gets the unique ID of a sync item.
Syntax
HRESULT GetItemID(
[out] LPWSTR *ppszItemID
);
Parameters
[out] ppszItemID
Type: LPWSTR*
When this method returns, contains a pointer to a buffer containing the item's ID. This string is of maximum length MAX_SYNCMGR_ID including the terminating null character.
Return value
Type: HRESULT
If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
Remarks
The ID retrieved by this method cannot change. Typically, the ID is in the form of a GUID string. However, this is not a requirement. The ID can be any string that is unique in the context of the handler.
If GetItemID fails or an empty string is returned in ppszItemID, the sync item is not shown in the handler's folder and Sync Center will not attempt to synchronize it.
The ID retrieved by this method is available in the folder UI as the System.Sync.ItemID (PKEY_Sync_HandlerID) property.
The item is responsible for allocating the string buffer pointed to by ppszComment through CoTaskMemAlloc. Sync Center deallocates the string buffer through CoTaskMemFree.
In older Sync Manager implementations, this data was retrieved through the SYNCMGRITEM structure.
Examples
The following example shows an implementation of this method.
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;
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps only] |
Minimum supported server | Windows Server 2008 [desktop apps only] |
Target Platform | Windows |
Header | syncmgr.h |