// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, 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, IPortableDevic
eValues,
};
use um::propkeydef::REFPROPERTYKEY;
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::winnt::{HRESULT, LPCWSTR, LPWSTR, WCHAR};
// 328
RIDL!{#[ uuid(0 xa1567595, 0 x4c2f, 0 x4574, 0 xa6, 0 xfa, 0 xec, 0 xef, 0 x91, 0 x7b, 0 x9a, 0 x40)]
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(0 x625e2df8, 0 x6392, 0 x4cf0, 0 x9a, 0 xd1, 0 x3c, 0 xfa, 0 x5f, 0 x17, 0 x77, 0 x5c)]
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(0 x6a96ed84, 0 x7c73, 0 x4480, 0 x99, 0 x38, 0 xbf, 0 x5a, 0 xf4, 0 x77, 0 xd4, 0 x26)]
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(0 x9b4add96, 0 xf6bf, 0 x4034, 0 x87, 0 x08, 0 xec, 0 xa7, 0 x2b, 0 xf1, 0 x05, 0 x54)]
interface IPortableDeviceContent2(IPortableDeviceContent2Vtbl):
IPortableDeviceContent(IPortableDeviceContentVtbl) {
fn UpdateObjectWithPropertiesAndData(
pszObjectID: LPCWSTR,
pProperties: *mut IPortableDeviceValues,
ppData: *mut *mut IStream,
pdwOptimalWriteBufferSize: *mut DWORD,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x10ece955, 0 xcf41, 0 x4728, 0 xbf, 0 xa0, 0 x41, 0 xee, 0 xdf, 0 x1b, 0 xbf, 0 x19)]
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(0 x7f6d695c, 0 x03df, 0 x4439, 0 xa8, 0 x09, 0 x59, 0 x26, 0 x6b, 0 xee, 0 xe3, 0 xa6)]
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(0 xfd8878ac, 0 xd841, 0 x4d17, 0 x89, 0 x1c, 0 xe6, 0 x82, 0 x9c, 0 xdb, 0 x69, 0 x34)]
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(0 x2c8c6dbf, 0 xe3dc, 0 x4061, 0 xbe, 0 xcc, 0 x85, 0 x42, 0 xe8, 0 x10, 0 xd1, 0 x26)]
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(0 xa8792a31, 0 xf385, 0 x493c, 0 xa8, 0 x93, 0 x40, 0 xf6, 0 x4e, 0 xb4, 0 x5f, 0 x6e)]
interface IPortableDeviceEventCallback(IPortableDeviceEventCallbackVtbl): IUnknown(IUnknownVtbl) {
fn OnEvent(
pEventParameters: *mut IPortableDeviceValues,
) -> HRESULT,
}}
DEFINE_GUID!{LIBID_PortableDeviceApiLib,
0 x1f001332, 0 x1a57, 0 x4934, 0 xbe, 0 x31, 0 xaf, 0 xfc, 0 x99, 0 xf4, 0 xee, 0 x0a}
DEFINE_GUID!{CLSID_PortableDevice,
0 x728a21c5, 0 x3d9e, 0 x48d7, 0 x98, 0 x10, 0 x86, 0 x48, 0 x48, 0 xf0, 0 xf4, 0 x04}
RIDL!{#[ uuid(0 x728a21c5, 0 x3d9e, 0 x48d7, 0 x98, 0 x10, 0 x86, 0 x48, 0 x48, 0 xf0, 0 xf4, 0 x04)]
class PortableDevice;}
DEFINE_GUID!{CLSID_PortableDeviceManager,
0 x0af10cec, 0 x2ecd, 0 x4b92, 0 x95, 0 x81, 0 x34, 0 xf6, 0 xae, 0 x06, 0 x37, 0 xf3}
RIDL!{#[ uuid(0 x0af10cec, 0 x2ecd, 0 x4b92, 0 x95, 0 x81, 0 x34, 0 xf6, 0 xae, 0 x06, 0 x37, 0 xf3)]
class PortableDeviceManager;}
DEFINE_GUID!{CLSID_PortableDeviceService,
0 xef5db4c2, 0 x9312, 0 x422c, 0 x91, 0 x52, 0 x41, 0 x1c, 0 xd9, 0 xc4, 0 xdd, 0 x84}
RIDL!{#[ uuid(0 xef5db4c2, 0 x9312, 0 x422c, 0 x91, 0 x52, 0 x41, 0 x1c, 0 xd9, 0 xc4, 0 xdd, 0 x84)]
class PortableDeviceService;}
DEFINE_GUID!{CLSID_PortableDeviceDispatchFactory,
0 x43232233, 0 x8338, 0 x4658, 0 xae, 0 x01, 0 x0b, 0 x4a, 0 xe8, 0 x30, 0 xb6, 0 xb0}
RIDL!{#[ uuid(0 x43232233, 0 x8338, 0 x4658, 0 xae, 0 x01, 0 x0b, 0 x4a, 0 xe8, 0 x30, 0 xb6, 0 xb0)]
class PortableDeviceDispatchFactory;}
DEFINE_GUID!{CLSID_PortableDeviceFTM,
0 xf7c0039a, 0 x4762, 0 x488a, 0 xb4, 0 xb3, 0 x76, 0 x0e, 0 xf9, 0 xa1, 0 xba, 0 x9b}
RIDL!{#[ uuid(0 xf7c0039a, 0 x4762, 0 x488a, 0 xb4, 0 xb3, 0 x76, 0 x0e, 0 xf9, 0 xa1, 0 xba, 0 x9b)]
class PortableDeviceFTM;}
DEFINE_GUID!{CLSID_PortableDeviceServiceFTM,
0 x1649b154, 0 xc794, 0 x497a, 0 x9b, 0 x03, 0 xf3, 0 xf0, 0 x12, 0 x13, 0 x02, 0 xf3}
RIDL!{#[ uuid(0 x1649b154, 0 xc794, 0 x497a, 0 x9b, 0 x03, 0 xf3, 0 xf0, 0 x12, 0 x13, 0 x02, 0 xf3)]
class PortableDeviceServiceFTM;}
DEFINE_GUID!{CLSID_PortableDeviceWebControl,
0 x186dd02c, 0 x2dec, 0 x41b5, 0 xa7, 0 xd4, 0 xb5, 0 x90, 0 x56, 0 xfa, 0 xde, 0 x51}
RIDL!{#[ uuid(0 x186dd02c, 0 x2dec, 0 x41b5, 0 xa7, 0 xd4, 0 xb5, 0 x90, 0 x56, 0 xfa, 0 xde, 0 x51)]
class PortableDeviceWebControl;}
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-27)
¤
*© Formatika GbR, Deutschland