blob: 7d45155465ecef2b073d0616dd9a2cf64a023e1d [file] [log] [blame]
/**
*This file has no copyright assigned and is placed in the Public Domain.
*This file is part of the mingw-w64 runtime package.
*No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
import "propidl.idl";
import "wtypes.idl";
import "portabledevicetypes.idl";
interface IPortableDeviceManager;
interface IPortableDevice;
interface IPortableDeviceContent;
interface IPortableDeviceContent2;
interface IEnumPortableDeviceObjectIDs;
interface IPortableDeviceProperties;
interface IPortableDeviceResources;
interface IPortableDeviceCapabilities;
interface IPortableDeviceEventCallback;
interface IPortableDeviceDataStream;
interface IPortableDevicePropertiesBulk;
interface IPortableDevicePropertiesBulkCallback;
interface IPortableDeviceServiceManager;
interface IPortableDeviceService;
interface IPortableDeviceServiceCapabilities;
interface IPortableDeviceServiceMethods;
interface IPortableDeviceServiceMethodCallback;
interface IPortableDeviceDispatchFactory;
interface IPortableDeviceServiceActivation;
interface IPortableDeviceServiceOpenCallback;
[
object,
uuid(a1567595-4c2f-4574-a6fa-ecef917b9a40),
pointer_default(unique)
]
interface IPortableDeviceManager : IUnknown
{
HRESULT GetDevices(
[in, out, unique] LPWSTR *device_ids,
[in, out] DWORD *device_ids_count);
HRESULT RefreshDeviceList();
HRESULT GetDeviceFriendlyName(
[in] LPCWSTR device_id,
[in, out, unique] WCHAR *device_friendly_name,
[in, out] DWORD *device_friendly_name_size);
HRESULT GetDeviceDescription(
[in] LPCWSTR device_id,
[in, out, unique] WCHAR *device_description,
[in, out] DWORD *device_description_size);
HRESULT GetDeviceManufacturer(
[in] LPCWSTR device_id,
[in, out, unique] WCHAR *device_manufacturer,
[in, out] DWORD *device_manufacturer_size);
HRESULT GetDeviceProperty(
[in] LPCWSTR device_id,
[in] LPCWSTR device_property_name,
[in, out, unique] BYTE *data,
[in, out, unique] DWORD *data_size,
[in, out, unique] DWORD *type);
HRESULT GetPrivateDevices(
[in, out, unique] LPWSTR *device_ids,
[in, out] DWORD *device_ids_count);
}
[
object,
uuid(625e2df8-6392-4cf0-9ad1-3cfa5f17775c),
pointer_default(unique)
]
interface IPortableDevice : IUnknown
{
HRESULT Open(
[in] LPCWSTR device_id,
[in] IPortableDeviceValues *client_info);
HRESULT SendCommand(
[in] const DWORD flags,
[in] IPortableDeviceValues *parameters,
[out] IPortableDeviceValues **results);
HRESULT Content(
[out] IPortableDeviceContent **content);
HRESULT Capabilities(
[out] IPortableDeviceCapabilities **capabilities);
HRESULT Cancel();
HRESULT Close();
HRESULT Advise(
[in] const DWORD flags,
[in] IPortableDeviceEventCallback *callback,
[in, unique] IPortableDeviceValues *parameters,
[out] LPWSTR *cookie);
HRESULT Unadvise(
[in] LPCWSTR cookie);
HRESULT GetPnPDeviceID(
[out] LPWSTR *device_id);
}
[
object,
uuid(6a96ed84-7c73-4480-9938-bf5af477d426),
pointer_default(unique)
]
interface IPortableDeviceContent : IUnknown
{
HRESULT EnumObjects(
[in] const DWORD flags,
[in] LPCWSTR parent_object_id,
[in, unique] IPortableDeviceValues *filter,
[out] IEnumPortableDeviceObjectIDs **enum_device_object);
HRESULT Properties(
[out] IPortableDeviceProperties **device_properties);
HRESULT Transfer(
[out] IPortableDeviceResources **resources);
HRESULT CreateObjectWithPropertiesOnly(
[in] IPortableDeviceValues *values,
[in, out, unique] LPWSTR *object_id);
HRESULT CreateObjectWithPropertiesAndData(
[in] IPortableDeviceValues *values,
[out] IStream **data,
[in, out, unique] DWORD *optimal_write_buffer_size,
[in, out, unique] LPWSTR *cookie);
HRESULT Delete(
[in] const DWORD options,
[in] IPortableDevicePropVariantCollection *object_ids,
[in, out, unique] IPortableDevicePropVariantCollection **results);
HRESULT GetObjectIDsFromPersistentUniqueIDs(
[in] IPortableDevicePropVariantCollection *persistent_unique_ids,
[out] IPortableDevicePropVariantCollection **object_ids);
HRESULT Cancel();
HRESULT Move(
[in] IPortableDevicePropVariantCollection *object_ids,
[in] LPCWSTR destination_folder_object_id,
[in, out, unique] IPortableDevicePropVariantCollection **results);
HRESULT Copy(
[in] IPortableDevicePropVariantCollection *object_ids,
[in] LPCWSTR destination_folder_object_id,
[in, out, unique] IPortableDevicePropVariantCollection **results);
}
[
object,
uuid(9b4add96-f6bf-4034-8708-eca72bf10554),
pointer_default(unique)
]
interface IPortableDeviceContent2 : IPortableDeviceContent
{
HRESULT UpdateObjectWithPropertiesAndData(
[in] LPCWSTR object_id,
[in] IPortableDeviceValues *device_properties,
[out] IStream **data,
[in, out, unique] DWORD *optimal_write_buffer_size);
}
[
object,
uuid(10ece955-cf41-4728-bfa0-41eedf1bbf19),
pointer_default(unique)
]
interface IEnumPortableDeviceObjectIDs : IUnknown
{
HRESULT Next(
[in] ULONG objects,
[out, size_is(objects), length_is(*fetched)] LPWSTR *obj_ids,
[in, out, unique] ULONG *fetched);
HRESULT Skip(
[in] ULONG objects);
HRESULT Reset();
HRESULT Clone(
[out] IEnumPortableDeviceObjectIDs **enum_device_object);
HRESULT Cancel();
}
[
object,
uuid(7f6d695c-03df-4439-a809-59266beee3a6),
pointer_default(unique)
]
interface IPortableDeviceProperties : IUnknown
{
HRESULT GetSupportedProperties(
[in] LPCWSTR object_id,
[out] IPortableDeviceKeyCollection **keys);
HRESULT GetPropertyAttributes(
[in] LPCWSTR object_id,
[in] REFPROPERTYKEY key,
[out] IPortableDeviceValues **attributes);
HRESULT GetValues(
[in] LPCWSTR object_id,
[in, unique] IPortableDeviceKeyCollection *keys,
[out] IPortableDeviceValues **values);
HRESULT SetValues(
[in] LPCWSTR object_id,
[in] IPortableDeviceValues *values,
[out] IPortableDeviceValues **results);
HRESULT Delete(
[in] LPCWSTR object_id,
[in] IPortableDeviceKeyCollection *keys);
HRESULT Cancel();
}
[
object,
uuid(fd8878ac-d841-4d17-891c-e6829cdb6934),
pointer_default(unique)
]
interface IPortableDeviceResources : IUnknown
{
HRESULT GetSupportedResources(
[in] LPCWSTR object_id,
[out] IPortableDeviceKeyCollection **keys);
HRESULT GetResourceAttributes(
[in] LPCWSTR object_id,
[in] REFPROPERTYKEY key,
[out] IPortableDeviceValues **resource_attributes);
HRESULT GetStream(
[in] LPCWSTR object_id,
[in] REFPROPERTYKEY key,
[in] const DWORD mode,
[in, out, unique] DWORD *optimal_buffer_size,
[out] IStream **stream);
HRESULT Delete(
[in] LPCWSTR object_id,
[in] IPortableDeviceKeyCollection *keys);
HRESULT Cancel();
HRESULT CreateResource(
[in] IPortableDeviceValues *resource_attributes,
[out] IStream **data,
[in, out, unique] DWORD *optimal_write_buffer_size,
[in, out, unique] LPWSTR *cookie);
}
[
object,
uuid(2c8c6dbf-e3dc-4061-becc-8542e810d126),
pointer_default(unique)
]
interface IPortableDeviceCapabilities : IUnknown
{
HRESULT GetSupportedCommands(
[out] IPortableDeviceKeyCollection **commands);
HRESULT GetCommandOptions(
[in] REFPROPERTYKEY command,
[out] IPortableDeviceValues **options);
HRESULT GetFunctionalCategories(
[out] IPortableDevicePropVariantCollection **categories);
HRESULT GetFunctionalObjects(
[in] REFGUID category,
[out] IPortableDevicePropVariantCollection **object_ids);
HRESULT GetSupportedContentTypes(
[in] REFGUID category,
[out] IPortableDevicePropVariantCollection **content_types);
HRESULT GetSupportedFormats(
[in] REFGUID content_type,
[out] IPortableDevicePropVariantCollection **formats);
HRESULT GetSupportedFormatProperties(
[in] REFGUID format,
[out] IPortableDeviceKeyCollection **keys);
HRESULT GetFixedPropertyAttributes(
[in] REFGUID format,
[in] REFPROPERTYKEY key,
[out] IPortableDeviceValues **attributes);
HRESULT Cancel();
HRESULT GetSupportedEvents(
[out] IPortableDevicePropVariantCollection **events_collection);
HRESULT GetEventOptions(
[in] REFGUID event_id,
[out] IPortableDeviceValues **options);
}
[
object,
uuid(a8792a31-f385-493c-a893-40f64eb45f6e),
pointer_default(unique)
]
interface IPortableDeviceEventCallback : IUnknown
{
HRESULT OnEvent(
[in] IPortableDeviceValues *event_parameters);
}
[
object,
uuid(88e04db3-1012-4d64-9996-f703a950d3f4),
pointer_default(unique)
]
interface IPortableDeviceDataStream : IStream
{
HRESULT GetObjectID(
[out] LPWSTR *object_id);
HRESULT Cancel();
}
[
object,
uuid(5e98025f-bfc4-47a2-9a5f-bc900a507c67),
pointer_default(unique)
]
interface IPortableDeviceUnitsStream : IUnknown
{
[local]
HRESULT SeekInUnits(
[in] LARGE_INTEGER dlib_move,
[in] WPD_STREAM_UNITS units,
[in] DWORD origin,
[out, optional] ULARGE_INTEGER *lib_new_position);
[call_as(SeekInUnits)]
HRESULT RemoteSeekInUnits(
[in] LARGE_INTEGER dlib_move,
[in] WPD_STREAM_UNITS units,
[in] DWORD origin,
[out] ULARGE_INTEGER *lib_new_position);
HRESULT Cancel();
}
[
object,
uuid(482b05c0-4056-44ed-9e0f-5e23b009da93),
pointer_default(unique)
]
interface IPortableDevicePropertiesBulk : IUnknown
{
HRESULT QueueGetValuesByObjectList(
[in] IPortableDevicePropVariantCollection *object_ids,
[in] IPortableDeviceKeyCollection *keys,
[in] IPortableDevicePropertiesBulkCallback *callback,
[out] GUID *context);
HRESULT QueueGetValuesByObjectFormat(
[in] REFGUID guid_object_format,
[in] LPCWSTR parent_object_id,
[in] const DWORD depth,
[in] IPortableDeviceKeyCollection *keys,
[in] IPortableDevicePropertiesBulkCallback *callback,
[out] GUID *context);
HRESULT QueueSetValuesByObjectList(
[in] IPortableDeviceValuesCollection *object_values,
[in] IPortableDevicePropertiesBulkCallback *callback,
[out] GUID *context);
HRESULT Start([in] REFGUID context);
HRESULT Cancel([in] REFGUID context);
}
[
object,
uuid(9deacb80-11e8-40e3-a9f3-f557986a7845),
pointer_default(unique)
]
interface IPortableDevicePropertiesBulkCallback : IUnknown
{
HRESULT OnStart(
[in] REFGUID context);
HRESULT OnProgress(
[in] REFGUID context,
[in] IPortableDeviceValuesCollection *results);
HRESULT OnEnd(
[in] REFGUID context,
[in] HRESULT hr_status);
}
[
object,
uuid(a8abc4e9-a84a-47a9-80b3-c5d9b172a961),
pointer_default(unique)
]
interface IPortableDeviceServiceManager : IUnknown
{
HRESULT GetDeviceServices(
[in] LPCWSTR device_id,
[in] REFGUID guid_service_category,
[in, out, unique] LPWSTR *services,
[in, out] DWORD *services_count);
HRESULT GetDeviceForService(
[in] LPCWSTR service_id,
[out] LPWSTR *device_id);
}
[
object,
uuid(d3bd3a44-d7b5-40a9-98b7-2fa4d01dec08),
pointer_default(unique)
]
interface IPortableDeviceService : IUnknown
{
HRESULT Open(
[in] LPCWSTR service_id,
[in] IPortableDeviceValues *client_info);
HRESULT Capabilities(
[out] IPortableDeviceServiceCapabilities **capabilities);
HRESULT Content(
[out] IPortableDeviceContent2 **content);
HRESULT Methods(
[out] IPortableDeviceServiceMethods **service_methods);
HRESULT Cancel();
HRESULT Close();
HRESULT GetServiceObjectID(
[out] LPWSTR *service_object_id);
HRESULT GetPnPServiceID(
[out] LPWSTR *service_id);
HRESULT Advise(
[in] const DWORD flags,
[in] IPortableDeviceEventCallback *callback,
[in, unique] IPortableDeviceValues *parameters,
[out] LPWSTR *cookie);
HRESULT Unadvise(
[in] LPCWSTR cookie);
HRESULT SendCommand(
[in] const DWORD flags,
[in] IPortableDeviceValues *parameters,
[out] IPortableDeviceValues **results);
}
[
object,
uuid(24dbd89d-413e-43e0-bd5b-197f3c56c886),
pointer_default(unique)
]
interface IPortableDeviceServiceCapabilities : IUnknown
{
HRESULT GetSupportedMethods(
[out] IPortableDevicePropVariantCollection **supported_methods);
HRESULT GetSupportedMethodsByFormat(
[in] REFGUID format,
[out] IPortableDevicePropVariantCollection **supported_methods);
HRESULT GetMethodAttributes (
[in] REFGUID method,
[out] IPortableDeviceValues **attributes);
HRESULT GetMethodParameterAttributes(
[in] REFGUID method,
[in] REFPROPERTYKEY parameter,
[out] IPortableDeviceValues **attributes);
HRESULT GetSupportedFormats(
[out] IPortableDevicePropVariantCollection **formats);
HRESULT GetFormatAttributes(
[in] REFGUID format,
[out] IPortableDeviceValues **attributes);
HRESULT GetSupportedFormatProperties(
[in] REFGUID format,
[out] IPortableDeviceKeyCollection **keys);
HRESULT GetFormatPropertyAttributes(
[in] REFGUID format,
[in] REFPROPERTYKEY property,
[out] IPortableDeviceValues **attributes);
HRESULT GetSupportedEvents(
[out] IPortableDevicePropVariantCollection **events);
HRESULT GetEventAttributes(
[in] REFGUID event_id,
[out] IPortableDeviceValues **attributes);
HRESULT GetEventParameterAttributes(
[in] REFGUID event_id,
[in] REFPROPERTYKEY parameter,
[out] IPortableDeviceValues **attributes);
HRESULT GetInheritedServices(
[in] const DWORD inheritance_type,
[out] IPortableDevicePropVariantCollection **services);
HRESULT GetFormatRenderingProfiles(
[in] REFGUID format,
[out] IPortableDeviceValuesCollection **rendering_profiles);
HRESULT GetSupportedCommands(
[out] IPortableDeviceKeyCollection **commands);
HRESULT GetCommandOptions(
[in] REFPROPERTYKEY command,
[out] IPortableDeviceValues **options);
HRESULT Cancel();
}
[
object,
uuid(e20333c9-fd34-412d-a381-cc6f2d820df7),
pointer_default(unique)
]
interface IPortableDeviceServiceMethods : IUnknown
{
HRESULT Invoke(
[in] REFGUID method_id,
[in, unique] IPortableDeviceValues *parameters,
[in, out, unique] IPortableDeviceValues **results);
HRESULT InvokeAsync(
[in] REFGUID method_id,
[in, unique] IPortableDeviceValues *parameters,
[in, unique] IPortableDeviceServiceMethodCallback *callback);
HRESULT Cancel(
[in, unique] IPortableDeviceServiceMethodCallback *callback);
}
[
object,
uuid(c424233c-afce-4828-a756-7ed7a2350083),
pointer_default(unique)
]
interface IPortableDeviceServiceMethodCallback : IUnknown
{
HRESULT OnComplete(
[in] HRESULT hr_status,
[in] IPortableDeviceValues *results);
}
[
object,
uuid(e56b0534-d9b9-425c-9b99-75f97cb3d7c8),
pointer_default(unique)
]
interface IPortableDeviceServiceActivation : IUnknown
{
HRESULT OpenAsync(
[in] LPCWSTR service_id,
[in] IPortableDeviceValues *client_info,
[in] IPortableDeviceServiceOpenCallback *callback);
HRESULT CancelOpenAsync();
}
[
object,
uuid(bced49c8-8efe-41ed-960b-61313abd47a9),
pointer_default(unique)
]
interface IPortableDeviceServiceOpenCallback : IUnknown
{
HRESULT OnComplete(
[in] HRESULT hr_status);
}
[
object,
local,
uuid(5e1eafc3-e3d7-4132-96fa-759c0f9d1e0f)
]
interface IPortableDeviceDispatchFactory : IUnknown
{
HRESULT GetDeviceDispatch(
[in] LPCWSTR device_id,
[out] IDispatch **device_dispatch);
}
[
object,
dual,
local,
nonextensible,
uuid(94fc7953-5ca1-483a-8aee-df52e7747d00)
]
interface IPortableDeviceWebControl: IDispatch
{
HRESULT GetDeviceFromId(
[in] BSTR device_id,
[out, retval] IDispatch **device);
HRESULT GetDeviceFromIdAsync(
[in] BSTR device_id,
[in] IDispatch *completion_handler,
[in, unique] IDispatch *error_handler);
}
[
uuid(1f001332-1a57-4934-be31-affc99f4ee0a),
version(1.0)
]
library PortableDeviceApiLib
{
[
uuid(728a21c5-3d9e-48d7-9810-864848f0f404)
]
coclass PortableDevice
{
[default] interface IPortableDevice;
}
[
uuid(0af10cec-2ecd-4b92-9581-34f6ae0637f3)
]
coclass PortableDeviceManager
{
[default] interface IPortableDeviceManager;
}
[
uuid(ef5db4c2-9312-422c-9152-411cd9c4dd84)
]
coclass PortableDeviceService
{
[default] interface IPortableDeviceService;
}
[
uuid(43232233-8338-4658-ae01-0b4ae830b6b0)
]
coclass PortableDeviceDispatchFactory
{
[default] interface IPortableDeviceDispatchFactory;
}
[
uuid(f7c0039a-4762-488a-b4b3-760ef9a1ba9b)
]
coclass PortableDeviceFTM
{
[default] interface IPortableDevice;
}
[
uuid(1649b154-c794-497a-9b03-f3f0121302f3)
]
coclass PortableDeviceServiceFTM
{
[default] interface IPortableDeviceService;
}
[
uuid(186dd02c-2dec-41b5-a7d4-b59056fade51)
]
coclass PortableDeviceWebControl
{
[default] interface IPortableDeviceWebControl;
}
}