// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. //! Mappings for the contents of PortableDeviceApi.h use shared::guiddef::REFGUID; use shared::minwindef::{BYTE, DWORD, ULONG}; use um::objidlbase::IStream; use um::portabledevicetypes::{ IPortableDeviceKeyCollection, IPortableDevicePropVariantCollection, IPortableDeviceValues, }; use um::propkeydef::REFPROPERTYKEY; use um::unknwnbase::{IUnknown, IUnknownVtbl}; use um::winnt::{HRESULT, LPCWSTR, LPWSTR, WCHAR}; // 328 RIDL!{#[uuid(0xa1567595, 0x4c2f, 0x4574, 0xa6, 0xfa, 0xec, 0xef, 0x91, 0x7b, 0x9a, 0x40)] interface IPortableDeviceManager(IPortableDeviceManagerVtbl): IUnknown(IUnknownVtbl) { fn GetDevices( pPnPDeviceIDs: *mut LPWSTR, pcPnPDeviceIDs: *mut DWORD, ) -> HRESULT, fn RefreshDeviceList() -> HRESULT, fn GetDeviceFriendlyName( pszPnPDeviceID: LPCWSTR, pDeviceFriendlyName: *mut WCHAR, pcchDeviceFriendlyName: *mut DWORD, ) -> HRESULT, fn GetDeviceDescription( pszPnPDeviceID: LPCWSTR, pDeviceDescription: *mut WCHAR, pcchDeviceDescription: *mut DWORD, ) -> HRESULT, fn GetDeviceManufacturer( pszPnPDeviceID: LPCWSTR, pDeviceManufacturer: *mut WCHAR, pcchDeviceManufacturer: *mut DWORD, ) -> HRESULT, fn GetDeviceProperty( pszPnPDeviceID: LPCWSTR, pszDevicePropertyName: LPCWSTR, pData: *mut BYTE, pcbData: *mut DWORD, pdwType: *mut DWORD, ) -> HRESULT, fn GetPrivateDevices( pPnPDeviceIDs: *mut LPWSTR, pcPnPDeviceIDs: *mut DWORD, ) -> HRESULT, }} RIDL!{#[uuid(0x625e2df8, 0x6392, 0x4cf0, 0x9a, 0xd1, 0x3c, 0xfa, 0x5f, 0x17, 0x77, 0x5c)] interface IPortableDevice(IPortableDeviceVtbl): IUnknown(IUnknownVtbl) { fn Open( pszPnPDeviceID: LPCWSTR, pClientInfo: *mut IPortableDeviceValues, ) -> HRESULT, fn SendCommand( dwFlags: DWORD, pParameters: *mut IPortableDeviceValues, ppResults: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn Content( ppContent: *mut *mut IPortableDeviceContent, ) -> HRESULT, fn Capabilities( ppCapabilities: *mut *mut IPortableDeviceCapabilities, ) -> HRESULT, fn Cancel() -> HRESULT, fn Close() -> HRESULT, fn Advise( dwFlags: DWORD, pCallback: *mut IPortableDeviceEventCallback, pParameters: *mut IPortableDeviceValues, ppszCookie: *mut LPWSTR, ) -> HRESULT, fn Unadvise( pszCookie: LPCWSTR, ) -> HRESULT, fn GetPnPDeviceID( ppszPnPDeviceID: *mut LPWSTR, ) -> HRESULT, }} RIDL!{#[uuid(0x6a96ed84, 0x7c73, 0x4480, 0x99, 0x38, 0xbf, 0x5a, 0xf4, 0x77, 0xd4, 0x26)] interface IPortableDeviceContent(IPortableDeviceContentVtbl): IUnknown(IUnknownVtbl) { fn EnumObjects( dwFlags: DWORD, pszParentObjectID: LPCWSTR, pFilter: *mut IPortableDeviceValues, ppEnum: *mut *mut IEnumPortableDeviceObjectIDs, ) -> HRESULT, fn Properties( ppProperties: *mut *mut IPortableDeviceProperties, ) -> HRESULT, fn Transfer( ppResources: *mut *mut IPortableDeviceResources, ) -> HRESULT, fn CreateObjectWithPropertiesOnly( pValues: *mut IPortableDeviceValues, ppszObjectID: *mut LPWSTR, ) -> HRESULT, fn CreateObjectWithPropertiesAndData( pValues: *mut IPortableDeviceValues, ppData: *mut *mut IStream, pdwOptimalWriteBufferSize: *mut DWORD, ppszCookie: *mut LPWSTR, ) -> HRESULT, fn Delete( dwOptions: DWORD, pObjectIDs: *mut IPortableDevicePropVariantCollection, ppResults: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetObjectIDsFromPersistentUniqueIDs( pPersistentUniqueIDs: *mut IPortableDevicePropVariantCollection, ppObjectIDs: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn Cancel() -> HRESULT, fn Move( pObjectIDs: *mut IPortableDevicePropVariantCollection, pszDestinationFolderObjectID: LPCWSTR, ppResults: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn Copy( pObjectIDs: *mut IPortableDevicePropVariantCollection, pszDestinationFolderObjectID: LPCWSTR, ppResults: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, }} RIDL!{#[uuid(0x9b4add96, 0xf6bf, 0x4034, 0x87, 0x08, 0xec, 0xa7, 0x2b, 0xf1, 0x05, 0x54)] interface IPortableDeviceContent2(IPortableDeviceContent2Vtbl): IPortableDeviceContent(IPortableDeviceContentVtbl) { fn UpdateObjectWithPropertiesAndData( pszObjectID: LPCWSTR, pProperties: *mut IPortableDeviceValues, ppData: *mut *mut IStream, pdwOptimalWriteBufferSize: *mut DWORD, ) -> HRESULT, }} RIDL!{#[uuid(0x10ece955, 0xcf41, 0x4728, 0xbf, 0xa0, 0x41, 0xee, 0xdf, 0x1b, 0xbf, 0x19)] interface IEnumPortableDeviceObjectIDs(IEnumPortableDeviceObjectIDsVtbl): IUnknown(IUnknownVtbl) { fn Next( cObjects: ULONG, pObjIDs: *mut LPWSTR, pcFetched: *mut ULONG, ) -> HRESULT, fn Skip( cObjects: ULONG, ) -> HRESULT, fn Reset() -> HRESULT, fn Clone( ppEnum: *mut *mut IEnumPortableDeviceObjectIDs, ) -> HRESULT, fn Cancel() -> HRESULT, }} RIDL!{#[uuid(0x7f6d695c, 0x03df, 0x4439, 0xa8, 0x09, 0x59, 0x26, 0x6b, 0xee, 0xe3, 0xa6)] interface IPortableDeviceProperties(IPortableDevicePropertiesVtbl): IUnknown(IUnknownVtbl) { fn GetSupportedProperties( pszObjectID: LPCWSTR, ppKeys: *mut *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn GetPropertyAttributes( pszObjectID: LPCWSTR, Key: REFPROPERTYKEY, ppAttributes: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn GetValues( pszObjectID: LPCWSTR, pKeys: *mut IPortableDeviceKeyCollection, ppValues: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn SetValues( pszObjectID: LPCWSTR, pValues: *mut IPortableDeviceValues, ppResults: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn Delete( pszObjectID: LPCWSTR, pKeys: *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn Cancel() -> HRESULT, }} RIDL!{#[uuid(0xfd8878ac, 0xd841, 0x4d17, 0x89, 0x1c, 0xe6, 0x82, 0x9c, 0xdb, 0x69, 0x34)] interface IPortableDeviceResources(IPortableDeviceResourcesVtbl): IUnknown(IUnknownVtbl) { fn GetSupportedResources( pszObjectID: LPCWSTR, ppKeys: *mut *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn GetResourceAttributes( pszObjectID: LPCWSTR, Key: REFPROPERTYKEY, ppResourceAttributes: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn GetStream( pszObjectID: LPCWSTR, Key: REFPROPERTYKEY, dwMode: DWORD, pdwOptimalBufferSize: *mut DWORD, ppStream: *mut *mut IStream, ) -> HRESULT, fn Delete( pszObjectID: LPCWSTR, pKeys: *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn Cancel() -> HRESULT, fn CreateResource( pResourceAttributes: *mut IPortableDeviceValues, ppData: *mut *mut IStream, pdwOptimalWriteBufferSize: *mut DWORD, ppszCookie: *mut LPWSTR, ) -> HRESULT, }} RIDL!{#[uuid(0x2c8c6dbf, 0xe3dc, 0x4061, 0xbe, 0xcc, 0x85, 0x42, 0xe8, 0x10, 0xd1, 0x26)] interface IPortableDeviceCapabilities(IPortableDeviceCapabilitiesVtbl): IUnknown(IUnknownVtbl) { fn GetSupportedCommands( ppCommands: *mut *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn GetCommandOptions( Command: REFPROPERTYKEY, ppOptions: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn GetFunctionalCategories( ppCategories: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetFunctionalObjects( Category: REFGUID, ppObjectIDs: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetSupportedContentTypes( Category: REFGUID, ppContentTypes: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetSupportedFormats( ContentType: REFGUID, ppFormats: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetSupportedFormatProperties( Format: REFGUID, ppKeys: *mut *mut IPortableDeviceKeyCollection, ) -> HRESULT, fn GetFixedPropertyAttributes( Format: REFGUID, Key: REFPROPERTYKEY, ppAttributes: *mut *mut IPortableDeviceValues, ) -> HRESULT, fn Cancel() -> HRESULT, fn GetSupportedEvents( ppEvents: *mut *mut IPortableDevicePropVariantCollection, ) -> HRESULT, fn GetEventOptions( Event: REFGUID, ppOptions: *mut *mut IPortableDeviceValues, ) -> HRESULT, }} RIDL!{#[uuid(0xa8792a31, 0xf385, 0x493c, 0xa8, 0x93, 0x40, 0xf6, 0x4e, 0xb4, 0x5f, 0x6e)] interface IPortableDeviceEventCallback(IPortableDeviceEventCallbackVtbl): IUnknown(IUnknownVtbl) { fn OnEvent( pEventParameters: *mut IPortableDeviceValues, ) -> HRESULT, }} DEFINE_GUID!{LIBID_PortableDeviceApiLib, 0x1f001332, 0x1a57, 0x4934, 0xbe, 0x31, 0xaf, 0xfc, 0x99, 0xf4, 0xee, 0x0a} DEFINE_GUID!{CLSID_PortableDevice, 0x728a21c5, 0x3d9e, 0x48d7, 0x98, 0x10, 0x86, 0x48, 0x48, 0xf0, 0xf4, 0x04} RIDL!{#[uuid(0x728a21c5, 0x3d9e, 0x48d7, 0x98, 0x10, 0x86, 0x48, 0x48, 0xf0, 0xf4, 0x04)] class PortableDevice;} DEFINE_GUID!{CLSID_PortableDeviceManager, 0x0af10cec, 0x2ecd, 0x4b92, 0x95, 0x81, 0x34, 0xf6, 0xae, 0x06, 0x37, 0xf3} RIDL!{#[uuid(0x0af10cec, 0x2ecd, 0x4b92, 0x95, 0x81, 0x34, 0xf6, 0xae, 0x06, 0x37, 0xf3)] class PortableDeviceManager;} DEFINE_GUID!{CLSID_PortableDeviceService, 0xef5db4c2, 0x9312, 0x422c, 0x91, 0x52, 0x41, 0x1c, 0xd9, 0xc4, 0xdd, 0x84} RIDL!{#[uuid(0xef5db4c2, 0x9312, 0x422c, 0x91, 0x52, 0x41, 0x1c, 0xd9, 0xc4, 0xdd, 0x84)] class PortableDeviceService;} DEFINE_GUID!{CLSID_PortableDeviceDispatchFactory, 0x43232233, 0x8338, 0x4658, 0xae, 0x01, 0x0b, 0x4a, 0xe8, 0x30, 0xb6, 0xb0} RIDL!{#[uuid(0x43232233, 0x8338, 0x4658, 0xae, 0x01, 0x0b, 0x4a, 0xe8, 0x30, 0xb6, 0xb0)] class PortableDeviceDispatchFactory;} DEFINE_GUID!{CLSID_PortableDeviceFTM, 0xf7c0039a, 0x4762, 0x488a, 0xb4, 0xb3, 0x76, 0x0e, 0xf9, 0xa1, 0xba, 0x9b} RIDL!{#[uuid(0xf7c0039a, 0x4762, 0x488a, 0xb4, 0xb3, 0x76, 0x0e, 0xf9, 0xa1, 0xba, 0x9b)] class PortableDeviceFTM;} DEFINE_GUID!{CLSID_PortableDeviceServiceFTM, 0x1649b154, 0xc794, 0x497a, 0x9b, 0x03, 0xf3, 0xf0, 0x12, 0x13, 0x02, 0xf3} RIDL!{#[uuid(0x1649b154, 0xc794, 0x497a, 0x9b, 0x03, 0xf3, 0xf0, 0x12, 0x13, 0x02, 0xf3)] class PortableDeviceServiceFTM;} DEFINE_GUID!{CLSID_PortableDeviceWebControl, 0x186dd02c, 0x2dec, 0x41b5, 0xa7, 0xd4, 0xb5, 0x90, 0x56, 0xfa, 0xde, 0x51} RIDL!{#[uuid(0x186dd02c, 0x2dec, 0x41b5, 0xa7, 0xd4, 0xb5, 0x90, 0x56, 0xfa, 0xde, 0x51)] class PortableDeviceWebControl;}