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
