IPortableDeviceServiceCapabilities::GetInheritedServices method (portabledeviceapi.h)

The GetInheritedServices method retrieves the services having the specified inheritance type.


HRESULT GetInheritedServices(
  [in]  const DWORD                          dwInheritanceType,
  [out] IPortableDevicePropVariantCollection **ppServices


[in] dwInheritanceType

The type of inherited services to retrieve.

[out] ppServices

The IPortableDevicePropVariantCollection interface that receives the list of services. If no inherited services are found, an empty collection is returned.

Return value

If the method succeeds, it returns S_OK. Any other HRESULT value indicates that the call failed.


Currently, device services may only inherit by implementing an abstract service. This is analogous to how a class implements methods of an abstract interface or a virtual class in object-oriented programming. By implementing an abstract service, a device service will support all formats, properties, and method behavior that the abstract service describes. For instance, a Contacts service may implement the Anchor Sync abstract service, where the device stores markers indicating which contacts were updated since the last synchronization with the PC.

Possible values for the dwInheritanceType parameter are those defined in the WPD_SERVICE_INHERITANCE_TYPES enumeration. (For Windows 7, only the WPD_SERVICE_INHERITANCE_IMPLEMENTATION enumeration constant is supported.)

If the value of the dwInheritanceType parameter is WPD_SERVICE_INHERITANCE_IMPLEMENTATION, each item in the collection specified by the ppServices parameter has variant type VT_CLSID.


Minimum supported client Windows 7 [desktop apps | UWP apps]
Minimum supported server None supported
Target Platform Windows
Header portabledeviceapi.h

See also

IPortableDeviceServiceCapabilities Interface