From 79bb1d9ccc5d21a04c3ae0567436163534a03e4c Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <[email protected]>
Date: Thu, 21 Sep 2023 16:44:53 +0000
Subject: [PATCH] headers: Add portabledeviceapi.idl

Required for chromium/components/storage_monitor/portable_device_watcher_win.h

Signed-off-by: Biswapriyo Nath <[email protected]>
---
 mingw-w64-headers/Makefile.am                 |   1 +
 .../include/portabledeviceapi.idl             | 697 ++++++++++++++++++
 2 files changed, 698 insertions(+)
 create mode 100644 mingw-w64-headers/include/portabledeviceapi.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 3190813..3b8dff5 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -200,6 +200,7 @@ IDL_SRCS = \
   include/objidlbase.idl \
   include/oleidl.idl \
   include/optary.idl \
+  include/portabledeviceapi.idl \
   include/portabledevicetypes.idl \
   include/propidl.idl \
   include/propsys.idl \
diff --git a/mingw-w64-headers/include/portabledeviceapi.idl 
b/mingw-w64-headers/include/portabledeviceapi.idl
new file mode 100644
index 0000000..742c093
--- /dev/null
+++ b/mingw-w64-headers/include/portabledeviceapi.idl
@@ -0,0 +1,697 @@
+/**
+  *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;
+    }
+}
-- 
2.42.0

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to