zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

portabledeviceapi.h (154169B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/portabledeviceapi.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __portabledeviceapi_h__
     17 #define __portabledeviceapi_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IPortableDeviceManager_FWD_DEFINED__
     22 #define __IPortableDeviceManager_FWD_DEFINED__
     23 typedef interface IPortableDeviceManager IPortableDeviceManager;
     24 #ifdef __cplusplus
     25 interface IPortableDeviceManager;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IPortableDevice_FWD_DEFINED__
     30 #define __IPortableDevice_FWD_DEFINED__
     31 typedef interface IPortableDevice IPortableDevice;
     32 #ifdef __cplusplus
     33 interface IPortableDevice;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IPortableDeviceContent_FWD_DEFINED__
     38 #define __IPortableDeviceContent_FWD_DEFINED__
     39 typedef interface IPortableDeviceContent IPortableDeviceContent;
     40 #ifdef __cplusplus
     41 interface IPortableDeviceContent;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IPortableDeviceContent2_FWD_DEFINED__
     46 #define __IPortableDeviceContent2_FWD_DEFINED__
     47 typedef interface IPortableDeviceContent2 IPortableDeviceContent2;
     48 #ifdef __cplusplus
     49 interface IPortableDeviceContent2;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IEnumPortableDeviceObjectIDs_FWD_DEFINED__
     54 #define __IEnumPortableDeviceObjectIDs_FWD_DEFINED__
     55 typedef interface IEnumPortableDeviceObjectIDs IEnumPortableDeviceObjectIDs;
     56 #ifdef __cplusplus
     57 interface IEnumPortableDeviceObjectIDs;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IPortableDeviceProperties_FWD_DEFINED__
     62 #define __IPortableDeviceProperties_FWD_DEFINED__
     63 typedef interface IPortableDeviceProperties IPortableDeviceProperties;
     64 #ifdef __cplusplus
     65 interface IPortableDeviceProperties;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IPortableDeviceResources_FWD_DEFINED__
     70 #define __IPortableDeviceResources_FWD_DEFINED__
     71 typedef interface IPortableDeviceResources IPortableDeviceResources;
     72 #ifdef __cplusplus
     73 interface IPortableDeviceResources;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IPortableDeviceCapabilities_FWD_DEFINED__
     78 #define __IPortableDeviceCapabilities_FWD_DEFINED__
     79 typedef interface IPortableDeviceCapabilities IPortableDeviceCapabilities;
     80 #ifdef __cplusplus
     81 interface IPortableDeviceCapabilities;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IPortableDeviceEventCallback_FWD_DEFINED__
     86 #define __IPortableDeviceEventCallback_FWD_DEFINED__
     87 typedef interface IPortableDeviceEventCallback IPortableDeviceEventCallback;
     88 #ifdef __cplusplus
     89 interface IPortableDeviceEventCallback;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __IPortableDeviceDataStream_FWD_DEFINED__
     94 #define __IPortableDeviceDataStream_FWD_DEFINED__
     95 typedef interface IPortableDeviceDataStream IPortableDeviceDataStream;
     96 #ifdef __cplusplus
     97 interface IPortableDeviceDataStream;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IPortableDeviceUnitsStream_FWD_DEFINED__
    102 #define __IPortableDeviceUnitsStream_FWD_DEFINED__
    103 typedef interface IPortableDeviceUnitsStream IPortableDeviceUnitsStream;
    104 #ifdef __cplusplus
    105 interface IPortableDeviceUnitsStream;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IPortableDevicePropertiesBulk_FWD_DEFINED__
    110 #define __IPortableDevicePropertiesBulk_FWD_DEFINED__
    111 typedef interface IPortableDevicePropertiesBulk IPortableDevicePropertiesBulk;
    112 #ifdef __cplusplus
    113 interface IPortableDevicePropertiesBulk;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IPortableDevicePropertiesBulkCallback_FWD_DEFINED__
    118 #define __IPortableDevicePropertiesBulkCallback_FWD_DEFINED__
    119 typedef interface IPortableDevicePropertiesBulkCallback IPortableDevicePropertiesBulkCallback;
    120 #ifdef __cplusplus
    121 interface IPortableDevicePropertiesBulkCallback;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __IPortableDeviceServiceManager_FWD_DEFINED__
    126 #define __IPortableDeviceServiceManager_FWD_DEFINED__
    127 typedef interface IPortableDeviceServiceManager IPortableDeviceServiceManager;
    128 #ifdef __cplusplus
    129 interface IPortableDeviceServiceManager;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IPortableDeviceService_FWD_DEFINED__
    134 #define __IPortableDeviceService_FWD_DEFINED__
    135 typedef interface IPortableDeviceService IPortableDeviceService;
    136 #ifdef __cplusplus
    137 interface IPortableDeviceService;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IPortableDeviceServiceCapabilities_FWD_DEFINED__
    142 #define __IPortableDeviceServiceCapabilities_FWD_DEFINED__
    143 typedef interface IPortableDeviceServiceCapabilities IPortableDeviceServiceCapabilities;
    144 #ifdef __cplusplus
    145 interface IPortableDeviceServiceCapabilities;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IPortableDeviceServiceMethods_FWD_DEFINED__
    150 #define __IPortableDeviceServiceMethods_FWD_DEFINED__
    151 typedef interface IPortableDeviceServiceMethods IPortableDeviceServiceMethods;
    152 #ifdef __cplusplus
    153 interface IPortableDeviceServiceMethods;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IPortableDeviceServiceMethodCallback_FWD_DEFINED__
    158 #define __IPortableDeviceServiceMethodCallback_FWD_DEFINED__
    159 typedef interface IPortableDeviceServiceMethodCallback IPortableDeviceServiceMethodCallback;
    160 #ifdef __cplusplus
    161 interface IPortableDeviceServiceMethodCallback;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IPortableDeviceServiceActivation_FWD_DEFINED__
    166 #define __IPortableDeviceServiceActivation_FWD_DEFINED__
    167 typedef interface IPortableDeviceServiceActivation IPortableDeviceServiceActivation;
    168 #ifdef __cplusplus
    169 interface IPortableDeviceServiceActivation;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IPortableDeviceServiceOpenCallback_FWD_DEFINED__
    174 #define __IPortableDeviceServiceOpenCallback_FWD_DEFINED__
    175 typedef interface IPortableDeviceServiceOpenCallback IPortableDeviceServiceOpenCallback;
    176 #ifdef __cplusplus
    177 interface IPortableDeviceServiceOpenCallback;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IPortableDeviceDispatchFactory_FWD_DEFINED__
    182 #define __IPortableDeviceDispatchFactory_FWD_DEFINED__
    183 typedef interface IPortableDeviceDispatchFactory IPortableDeviceDispatchFactory;
    184 #ifdef __cplusplus
    185 interface IPortableDeviceDispatchFactory;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IPortableDeviceWebControl_FWD_DEFINED__
    190 #define __IPortableDeviceWebControl_FWD_DEFINED__
    191 typedef interface IPortableDeviceWebControl IPortableDeviceWebControl;
    192 #ifdef __cplusplus
    193 interface IPortableDeviceWebControl;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __PortableDevice_FWD_DEFINED__
    198 #define __PortableDevice_FWD_DEFINED__
    199 #ifdef __cplusplus
    200 typedef class PortableDevice PortableDevice;
    201 #else
    202 typedef struct PortableDevice PortableDevice;
    203 #endif /* defined __cplusplus */
    204 #endif /* defined __PortableDevice_FWD_DEFINED__ */
    205 
    206 #ifndef __PortableDeviceManager_FWD_DEFINED__
    207 #define __PortableDeviceManager_FWD_DEFINED__
    208 #ifdef __cplusplus
    209 typedef class PortableDeviceManager PortableDeviceManager;
    210 #else
    211 typedef struct PortableDeviceManager PortableDeviceManager;
    212 #endif /* defined __cplusplus */
    213 #endif /* defined __PortableDeviceManager_FWD_DEFINED__ */
    214 
    215 #ifndef __PortableDeviceService_FWD_DEFINED__
    216 #define __PortableDeviceService_FWD_DEFINED__
    217 #ifdef __cplusplus
    218 typedef class PortableDeviceService PortableDeviceService;
    219 #else
    220 typedef struct PortableDeviceService PortableDeviceService;
    221 #endif /* defined __cplusplus */
    222 #endif /* defined __PortableDeviceService_FWD_DEFINED__ */
    223 
    224 #ifndef __PortableDeviceDispatchFactory_FWD_DEFINED__
    225 #define __PortableDeviceDispatchFactory_FWD_DEFINED__
    226 #ifdef __cplusplus
    227 typedef class PortableDeviceDispatchFactory PortableDeviceDispatchFactory;
    228 #else
    229 typedef struct PortableDeviceDispatchFactory PortableDeviceDispatchFactory;
    230 #endif /* defined __cplusplus */
    231 #endif /* defined __PortableDeviceDispatchFactory_FWD_DEFINED__ */
    232 
    233 #ifndef __PortableDeviceFTM_FWD_DEFINED__
    234 #define __PortableDeviceFTM_FWD_DEFINED__
    235 #ifdef __cplusplus
    236 typedef class PortableDeviceFTM PortableDeviceFTM;
    237 #else
    238 typedef struct PortableDeviceFTM PortableDeviceFTM;
    239 #endif /* defined __cplusplus */
    240 #endif /* defined __PortableDeviceFTM_FWD_DEFINED__ */
    241 
    242 #ifndef __PortableDeviceServiceFTM_FWD_DEFINED__
    243 #define __PortableDeviceServiceFTM_FWD_DEFINED__
    244 #ifdef __cplusplus
    245 typedef class PortableDeviceServiceFTM PortableDeviceServiceFTM;
    246 #else
    247 typedef struct PortableDeviceServiceFTM PortableDeviceServiceFTM;
    248 #endif /* defined __cplusplus */
    249 #endif /* defined __PortableDeviceServiceFTM_FWD_DEFINED__ */
    250 
    251 #ifndef __PortableDeviceWebControl_FWD_DEFINED__
    252 #define __PortableDeviceWebControl_FWD_DEFINED__
    253 #ifdef __cplusplus
    254 typedef class PortableDeviceWebControl PortableDeviceWebControl;
    255 #else
    256 typedef struct PortableDeviceWebControl PortableDeviceWebControl;
    257 #endif /* defined __cplusplus */
    258 #endif /* defined __PortableDeviceWebControl_FWD_DEFINED__ */
    259 
    260 /* Headers for imported files */
    261 
    262 #include <propidl.h>
    263 #include <wtypes.h>
    264 #include <portabledevicetypes.h>
    265 
    266 #ifdef __cplusplus
    267 extern "C" {
    268 #endif
    269 
    270 #ifndef __IPortableDeviceManager_FWD_DEFINED__
    271 #define __IPortableDeviceManager_FWD_DEFINED__
    272 typedef interface IPortableDeviceManager IPortableDeviceManager;
    273 #ifdef __cplusplus
    274 interface IPortableDeviceManager;
    275 #endif /* __cplusplus */
    276 #endif
    277 
    278 #ifndef __IPortableDevice_FWD_DEFINED__
    279 #define __IPortableDevice_FWD_DEFINED__
    280 typedef interface IPortableDevice IPortableDevice;
    281 #ifdef __cplusplus
    282 interface IPortableDevice;
    283 #endif /* __cplusplus */
    284 #endif
    285 
    286 #ifndef __IPortableDeviceContent_FWD_DEFINED__
    287 #define __IPortableDeviceContent_FWD_DEFINED__
    288 typedef interface IPortableDeviceContent IPortableDeviceContent;
    289 #ifdef __cplusplus
    290 interface IPortableDeviceContent;
    291 #endif /* __cplusplus */
    292 #endif
    293 
    294 #ifndef __IPortableDeviceContent2_FWD_DEFINED__
    295 #define __IPortableDeviceContent2_FWD_DEFINED__
    296 typedef interface IPortableDeviceContent2 IPortableDeviceContent2;
    297 #ifdef __cplusplus
    298 interface IPortableDeviceContent2;
    299 #endif /* __cplusplus */
    300 #endif
    301 
    302 #ifndef __IEnumPortableDeviceObjectIDs_FWD_DEFINED__
    303 #define __IEnumPortableDeviceObjectIDs_FWD_DEFINED__
    304 typedef interface IEnumPortableDeviceObjectIDs IEnumPortableDeviceObjectIDs;
    305 #ifdef __cplusplus
    306 interface IEnumPortableDeviceObjectIDs;
    307 #endif /* __cplusplus */
    308 #endif
    309 
    310 #ifndef __IPortableDeviceProperties_FWD_DEFINED__
    311 #define __IPortableDeviceProperties_FWD_DEFINED__
    312 typedef interface IPortableDeviceProperties IPortableDeviceProperties;
    313 #ifdef __cplusplus
    314 interface IPortableDeviceProperties;
    315 #endif /* __cplusplus */
    316 #endif
    317 
    318 #ifndef __IPortableDeviceResources_FWD_DEFINED__
    319 #define __IPortableDeviceResources_FWD_DEFINED__
    320 typedef interface IPortableDeviceResources IPortableDeviceResources;
    321 #ifdef __cplusplus
    322 interface IPortableDeviceResources;
    323 #endif /* __cplusplus */
    324 #endif
    325 
    326 #ifndef __IPortableDeviceCapabilities_FWD_DEFINED__
    327 #define __IPortableDeviceCapabilities_FWD_DEFINED__
    328 typedef interface IPortableDeviceCapabilities IPortableDeviceCapabilities;
    329 #ifdef __cplusplus
    330 interface IPortableDeviceCapabilities;
    331 #endif /* __cplusplus */
    332 #endif
    333 
    334 #ifndef __IPortableDeviceEventCallback_FWD_DEFINED__
    335 #define __IPortableDeviceEventCallback_FWD_DEFINED__
    336 typedef interface IPortableDeviceEventCallback IPortableDeviceEventCallback;
    337 #ifdef __cplusplus
    338 interface IPortableDeviceEventCallback;
    339 #endif /* __cplusplus */
    340 #endif
    341 
    342 #ifndef __IPortableDeviceDataStream_FWD_DEFINED__
    343 #define __IPortableDeviceDataStream_FWD_DEFINED__
    344 typedef interface IPortableDeviceDataStream IPortableDeviceDataStream;
    345 #ifdef __cplusplus
    346 interface IPortableDeviceDataStream;
    347 #endif /* __cplusplus */
    348 #endif
    349 
    350 #ifndef __IPortableDevicePropertiesBulk_FWD_DEFINED__
    351 #define __IPortableDevicePropertiesBulk_FWD_DEFINED__
    352 typedef interface IPortableDevicePropertiesBulk IPortableDevicePropertiesBulk;
    353 #ifdef __cplusplus
    354 interface IPortableDevicePropertiesBulk;
    355 #endif /* __cplusplus */
    356 #endif
    357 
    358 #ifndef __IPortableDevicePropertiesBulkCallback_FWD_DEFINED__
    359 #define __IPortableDevicePropertiesBulkCallback_FWD_DEFINED__
    360 typedef interface IPortableDevicePropertiesBulkCallback IPortableDevicePropertiesBulkCallback;
    361 #ifdef __cplusplus
    362 interface IPortableDevicePropertiesBulkCallback;
    363 #endif /* __cplusplus */
    364 #endif
    365 
    366 #ifndef __IPortableDeviceServiceManager_FWD_DEFINED__
    367 #define __IPortableDeviceServiceManager_FWD_DEFINED__
    368 typedef interface IPortableDeviceServiceManager IPortableDeviceServiceManager;
    369 #ifdef __cplusplus
    370 interface IPortableDeviceServiceManager;
    371 #endif /* __cplusplus */
    372 #endif
    373 
    374 #ifndef __IPortableDeviceService_FWD_DEFINED__
    375 #define __IPortableDeviceService_FWD_DEFINED__
    376 typedef interface IPortableDeviceService IPortableDeviceService;
    377 #ifdef __cplusplus
    378 interface IPortableDeviceService;
    379 #endif /* __cplusplus */
    380 #endif
    381 
    382 #ifndef __IPortableDeviceServiceCapabilities_FWD_DEFINED__
    383 #define __IPortableDeviceServiceCapabilities_FWD_DEFINED__
    384 typedef interface IPortableDeviceServiceCapabilities IPortableDeviceServiceCapabilities;
    385 #ifdef __cplusplus
    386 interface IPortableDeviceServiceCapabilities;
    387 #endif /* __cplusplus */
    388 #endif
    389 
    390 #ifndef __IPortableDeviceServiceMethods_FWD_DEFINED__
    391 #define __IPortableDeviceServiceMethods_FWD_DEFINED__
    392 typedef interface IPortableDeviceServiceMethods IPortableDeviceServiceMethods;
    393 #ifdef __cplusplus
    394 interface IPortableDeviceServiceMethods;
    395 #endif /* __cplusplus */
    396 #endif
    397 
    398 #ifndef __IPortableDeviceServiceMethodCallback_FWD_DEFINED__
    399 #define __IPortableDeviceServiceMethodCallback_FWD_DEFINED__
    400 typedef interface IPortableDeviceServiceMethodCallback IPortableDeviceServiceMethodCallback;
    401 #ifdef __cplusplus
    402 interface IPortableDeviceServiceMethodCallback;
    403 #endif /* __cplusplus */
    404 #endif
    405 
    406 #ifndef __IPortableDeviceDispatchFactory_FWD_DEFINED__
    407 #define __IPortableDeviceDispatchFactory_FWD_DEFINED__
    408 typedef interface IPortableDeviceDispatchFactory IPortableDeviceDispatchFactory;
    409 #ifdef __cplusplus
    410 interface IPortableDeviceDispatchFactory;
    411 #endif /* __cplusplus */
    412 #endif
    413 
    414 #ifndef __IPortableDeviceServiceActivation_FWD_DEFINED__
    415 #define __IPortableDeviceServiceActivation_FWD_DEFINED__
    416 typedef interface IPortableDeviceServiceActivation IPortableDeviceServiceActivation;
    417 #ifdef __cplusplus
    418 interface IPortableDeviceServiceActivation;
    419 #endif /* __cplusplus */
    420 #endif
    421 
    422 #ifndef __IPortableDeviceServiceOpenCallback_FWD_DEFINED__
    423 #define __IPortableDeviceServiceOpenCallback_FWD_DEFINED__
    424 typedef interface IPortableDeviceServiceOpenCallback IPortableDeviceServiceOpenCallback;
    425 #ifdef __cplusplus
    426 interface IPortableDeviceServiceOpenCallback;
    427 #endif /* __cplusplus */
    428 #endif
    429 
    430 /*****************************************************************************
    431  * IPortableDeviceManager interface
    432  */
    433 #ifndef __IPortableDeviceManager_INTERFACE_DEFINED__
    434 #define __IPortableDeviceManager_INTERFACE_DEFINED__
    435 
    436 DEFINE_GUID(IID_IPortableDeviceManager, 0xa1567595, 0x4c2f, 0x4574, 0xa6,0xfa, 0xec,0xef,0x91,0x7b,0x9a,0x40);
    437 #if defined(__cplusplus) && !defined(CINTERFACE)
    438 MIDL_INTERFACE("a1567595-4c2f-4574-a6fa-ecef917b9a40")
    439 IPortableDeviceManager : public IUnknown
    440 {
    441     virtual HRESULT STDMETHODCALLTYPE GetDevices(
    442         LPWSTR *device_ids,
    443         DWORD *device_ids_count) = 0;
    444 
    445     virtual HRESULT STDMETHODCALLTYPE RefreshDeviceList(
    446         ) = 0;
    447 
    448     virtual HRESULT STDMETHODCALLTYPE GetDeviceFriendlyName(
    449         LPCWSTR device_id,
    450         WCHAR *device_friendly_name,
    451         DWORD *device_friendly_name_size) = 0;
    452 
    453     virtual HRESULT STDMETHODCALLTYPE GetDeviceDescription(
    454         LPCWSTR device_id,
    455         WCHAR *device_description,
    456         DWORD *device_description_size) = 0;
    457 
    458     virtual HRESULT STDMETHODCALLTYPE GetDeviceManufacturer(
    459         LPCWSTR device_id,
    460         WCHAR *device_manufacturer,
    461         DWORD *device_manufacturer_size) = 0;
    462 
    463     virtual HRESULT STDMETHODCALLTYPE GetDeviceProperty(
    464         LPCWSTR device_id,
    465         LPCWSTR device_property_name,
    466         BYTE *data,
    467         DWORD *data_size,
    468         DWORD *type) = 0;
    469 
    470     virtual HRESULT STDMETHODCALLTYPE GetPrivateDevices(
    471         LPWSTR *device_ids,
    472         DWORD *device_ids_count) = 0;
    473 
    474 };
    475 #ifdef __CRT_UUID_DECL
    476 __CRT_UUID_DECL(IPortableDeviceManager, 0xa1567595, 0x4c2f, 0x4574, 0xa6,0xfa, 0xec,0xef,0x91,0x7b,0x9a,0x40)
    477 #endif
    478 #else
    479 typedef struct IPortableDeviceManagerVtbl {
    480     BEGIN_INTERFACE
    481 
    482     /*** IUnknown methods ***/
    483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    484         IPortableDeviceManager *This,
    485         REFIID riid,
    486         void **ppvObject);
    487 
    488     ULONG (STDMETHODCALLTYPE *AddRef)(
    489         IPortableDeviceManager *This);
    490 
    491     ULONG (STDMETHODCALLTYPE *Release)(
    492         IPortableDeviceManager *This);
    493 
    494     /*** IPortableDeviceManager methods ***/
    495     HRESULT (STDMETHODCALLTYPE *GetDevices)(
    496         IPortableDeviceManager *This,
    497         LPWSTR *device_ids,
    498         DWORD *device_ids_count);
    499 
    500     HRESULT (STDMETHODCALLTYPE *RefreshDeviceList)(
    501         IPortableDeviceManager *This);
    502 
    503     HRESULT (STDMETHODCALLTYPE *GetDeviceFriendlyName)(
    504         IPortableDeviceManager *This,
    505         LPCWSTR device_id,
    506         WCHAR *device_friendly_name,
    507         DWORD *device_friendly_name_size);
    508 
    509     HRESULT (STDMETHODCALLTYPE *GetDeviceDescription)(
    510         IPortableDeviceManager *This,
    511         LPCWSTR device_id,
    512         WCHAR *device_description,
    513         DWORD *device_description_size);
    514 
    515     HRESULT (STDMETHODCALLTYPE *GetDeviceManufacturer)(
    516         IPortableDeviceManager *This,
    517         LPCWSTR device_id,
    518         WCHAR *device_manufacturer,
    519         DWORD *device_manufacturer_size);
    520 
    521     HRESULT (STDMETHODCALLTYPE *GetDeviceProperty)(
    522         IPortableDeviceManager *This,
    523         LPCWSTR device_id,
    524         LPCWSTR device_property_name,
    525         BYTE *data,
    526         DWORD *data_size,
    527         DWORD *type);
    528 
    529     HRESULT (STDMETHODCALLTYPE *GetPrivateDevices)(
    530         IPortableDeviceManager *This,
    531         LPWSTR *device_ids,
    532         DWORD *device_ids_count);
    533 
    534     END_INTERFACE
    535 } IPortableDeviceManagerVtbl;
    536 
    537 interface IPortableDeviceManager {
    538     CONST_VTBL IPortableDeviceManagerVtbl* lpVtbl;
    539 };
    540 
    541 #ifdef COBJMACROS
    542 #ifndef WIDL_C_INLINE_WRAPPERS
    543 /*** IUnknown methods ***/
    544 #define IPortableDeviceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    545 #define IPortableDeviceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
    546 #define IPortableDeviceManager_Release(This) (This)->lpVtbl->Release(This)
    547 /*** IPortableDeviceManager methods ***/
    548 #define IPortableDeviceManager_GetDevices(This,device_ids,device_ids_count) (This)->lpVtbl->GetDevices(This,device_ids,device_ids_count)
    549 #define IPortableDeviceManager_RefreshDeviceList(This) (This)->lpVtbl->RefreshDeviceList(This)
    550 #define IPortableDeviceManager_GetDeviceFriendlyName(This,device_id,device_friendly_name,device_friendly_name_size) (This)->lpVtbl->GetDeviceFriendlyName(This,device_id,device_friendly_name,device_friendly_name_size)
    551 #define IPortableDeviceManager_GetDeviceDescription(This,device_id,device_description,device_description_size) (This)->lpVtbl->GetDeviceDescription(This,device_id,device_description,device_description_size)
    552 #define IPortableDeviceManager_GetDeviceManufacturer(This,device_id,device_manufacturer,device_manufacturer_size) (This)->lpVtbl->GetDeviceManufacturer(This,device_id,device_manufacturer,device_manufacturer_size)
    553 #define IPortableDeviceManager_GetDeviceProperty(This,device_id,device_property_name,data,data_size,type) (This)->lpVtbl->GetDeviceProperty(This,device_id,device_property_name,data,data_size,type)
    554 #define IPortableDeviceManager_GetPrivateDevices(This,device_ids,device_ids_count) (This)->lpVtbl->GetPrivateDevices(This,device_ids,device_ids_count)
    555 #else
    556 /*** IUnknown methods ***/
    557 static inline HRESULT IPortableDeviceManager_QueryInterface(IPortableDeviceManager* This,REFIID riid,void **ppvObject) {
    558     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    559 }
    560 static inline ULONG IPortableDeviceManager_AddRef(IPortableDeviceManager* This) {
    561     return This->lpVtbl->AddRef(This);
    562 }
    563 static inline ULONG IPortableDeviceManager_Release(IPortableDeviceManager* This) {
    564     return This->lpVtbl->Release(This);
    565 }
    566 /*** IPortableDeviceManager methods ***/
    567 static inline HRESULT IPortableDeviceManager_GetDevices(IPortableDeviceManager* This,LPWSTR *device_ids,DWORD *device_ids_count) {
    568     return This->lpVtbl->GetDevices(This,device_ids,device_ids_count);
    569 }
    570 static inline HRESULT IPortableDeviceManager_RefreshDeviceList(IPortableDeviceManager* This) {
    571     return This->lpVtbl->RefreshDeviceList(This);
    572 }
    573 static inline HRESULT IPortableDeviceManager_GetDeviceFriendlyName(IPortableDeviceManager* This,LPCWSTR device_id,WCHAR *device_friendly_name,DWORD *device_friendly_name_size) {
    574     return This->lpVtbl->GetDeviceFriendlyName(This,device_id,device_friendly_name,device_friendly_name_size);
    575 }
    576 static inline HRESULT IPortableDeviceManager_GetDeviceDescription(IPortableDeviceManager* This,LPCWSTR device_id,WCHAR *device_description,DWORD *device_description_size) {
    577     return This->lpVtbl->GetDeviceDescription(This,device_id,device_description,device_description_size);
    578 }
    579 static inline HRESULT IPortableDeviceManager_GetDeviceManufacturer(IPortableDeviceManager* This,LPCWSTR device_id,WCHAR *device_manufacturer,DWORD *device_manufacturer_size) {
    580     return This->lpVtbl->GetDeviceManufacturer(This,device_id,device_manufacturer,device_manufacturer_size);
    581 }
    582 static inline HRESULT IPortableDeviceManager_GetDeviceProperty(IPortableDeviceManager* This,LPCWSTR device_id,LPCWSTR device_property_name,BYTE *data,DWORD *data_size,DWORD *type) {
    583     return This->lpVtbl->GetDeviceProperty(This,device_id,device_property_name,data,data_size,type);
    584 }
    585 static inline HRESULT IPortableDeviceManager_GetPrivateDevices(IPortableDeviceManager* This,LPWSTR *device_ids,DWORD *device_ids_count) {
    586     return This->lpVtbl->GetPrivateDevices(This,device_ids,device_ids_count);
    587 }
    588 #endif
    589 #endif
    590 
    591 #endif
    592 
    593 
    594 #endif  /* __IPortableDeviceManager_INTERFACE_DEFINED__ */
    595 
    596 /*****************************************************************************
    597  * IPortableDevice interface
    598  */
    599 #ifndef __IPortableDevice_INTERFACE_DEFINED__
    600 #define __IPortableDevice_INTERFACE_DEFINED__
    601 
    602 DEFINE_GUID(IID_IPortableDevice, 0x625e2df8, 0x6392, 0x4cf0, 0x9a,0xd1, 0x3c,0xfa,0x5f,0x17,0x77,0x5c);
    603 #if defined(__cplusplus) && !defined(CINTERFACE)
    604 MIDL_INTERFACE("625e2df8-6392-4cf0-9ad1-3cfa5f17775c")
    605 IPortableDevice : public IUnknown
    606 {
    607     virtual HRESULT STDMETHODCALLTYPE Open(
    608         LPCWSTR device_id,
    609         IPortableDeviceValues *client_info) = 0;
    610 
    611     virtual HRESULT STDMETHODCALLTYPE SendCommand(
    612         const DWORD flags,
    613         IPortableDeviceValues *parameters,
    614         IPortableDeviceValues **results) = 0;
    615 
    616     virtual HRESULT STDMETHODCALLTYPE Content(
    617         IPortableDeviceContent **content) = 0;
    618 
    619     virtual HRESULT STDMETHODCALLTYPE Capabilities(
    620         IPortableDeviceCapabilities **capabilities) = 0;
    621 
    622     virtual HRESULT STDMETHODCALLTYPE Cancel(
    623         ) = 0;
    624 
    625     virtual HRESULT STDMETHODCALLTYPE Close(
    626         ) = 0;
    627 
    628     virtual HRESULT STDMETHODCALLTYPE Advise(
    629         const DWORD flags,
    630         IPortableDeviceEventCallback *callback,
    631         IPortableDeviceValues *parameters,
    632         LPWSTR *cookie) = 0;
    633 
    634     virtual HRESULT STDMETHODCALLTYPE Unadvise(
    635         LPCWSTR cookie) = 0;
    636 
    637     virtual HRESULT STDMETHODCALLTYPE GetPnPDeviceID(
    638         LPWSTR *device_id) = 0;
    639 
    640 };
    641 #ifdef __CRT_UUID_DECL
    642 __CRT_UUID_DECL(IPortableDevice, 0x625e2df8, 0x6392, 0x4cf0, 0x9a,0xd1, 0x3c,0xfa,0x5f,0x17,0x77,0x5c)
    643 #endif
    644 #else
    645 typedef struct IPortableDeviceVtbl {
    646     BEGIN_INTERFACE
    647 
    648     /*** IUnknown methods ***/
    649     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    650         IPortableDevice *This,
    651         REFIID riid,
    652         void **ppvObject);
    653 
    654     ULONG (STDMETHODCALLTYPE *AddRef)(
    655         IPortableDevice *This);
    656 
    657     ULONG (STDMETHODCALLTYPE *Release)(
    658         IPortableDevice *This);
    659 
    660     /*** IPortableDevice methods ***/
    661     HRESULT (STDMETHODCALLTYPE *Open)(
    662         IPortableDevice *This,
    663         LPCWSTR device_id,
    664         IPortableDeviceValues *client_info);
    665 
    666     HRESULT (STDMETHODCALLTYPE *SendCommand)(
    667         IPortableDevice *This,
    668         const DWORD flags,
    669         IPortableDeviceValues *parameters,
    670         IPortableDeviceValues **results);
    671 
    672     HRESULT (STDMETHODCALLTYPE *Content)(
    673         IPortableDevice *This,
    674         IPortableDeviceContent **content);
    675 
    676     HRESULT (STDMETHODCALLTYPE *Capabilities)(
    677         IPortableDevice *This,
    678         IPortableDeviceCapabilities **capabilities);
    679 
    680     HRESULT (STDMETHODCALLTYPE *Cancel)(
    681         IPortableDevice *This);
    682 
    683     HRESULT (STDMETHODCALLTYPE *Close)(
    684         IPortableDevice *This);
    685 
    686     HRESULT (STDMETHODCALLTYPE *Advise)(
    687         IPortableDevice *This,
    688         const DWORD flags,
    689         IPortableDeviceEventCallback *callback,
    690         IPortableDeviceValues *parameters,
    691         LPWSTR *cookie);
    692 
    693     HRESULT (STDMETHODCALLTYPE *Unadvise)(
    694         IPortableDevice *This,
    695         LPCWSTR cookie);
    696 
    697     HRESULT (STDMETHODCALLTYPE *GetPnPDeviceID)(
    698         IPortableDevice *This,
    699         LPWSTR *device_id);
    700 
    701     END_INTERFACE
    702 } IPortableDeviceVtbl;
    703 
    704 interface IPortableDevice {
    705     CONST_VTBL IPortableDeviceVtbl* lpVtbl;
    706 };
    707 
    708 #ifdef COBJMACROS
    709 #ifndef WIDL_C_INLINE_WRAPPERS
    710 /*** IUnknown methods ***/
    711 #define IPortableDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    712 #define IPortableDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
    713 #define IPortableDevice_Release(This) (This)->lpVtbl->Release(This)
    714 /*** IPortableDevice methods ***/
    715 #define IPortableDevice_Open(This,device_id,client_info) (This)->lpVtbl->Open(This,device_id,client_info)
    716 #define IPortableDevice_SendCommand(This,flags,parameters,results) (This)->lpVtbl->SendCommand(This,flags,parameters,results)
    717 #define IPortableDevice_Content(This,content) (This)->lpVtbl->Content(This,content)
    718 #define IPortableDevice_Capabilities(This,capabilities) (This)->lpVtbl->Capabilities(This,capabilities)
    719 #define IPortableDevice_Cancel(This) (This)->lpVtbl->Cancel(This)
    720 #define IPortableDevice_Close(This) (This)->lpVtbl->Close(This)
    721 #define IPortableDevice_Advise(This,flags,callback,parameters,cookie) (This)->lpVtbl->Advise(This,flags,callback,parameters,cookie)
    722 #define IPortableDevice_Unadvise(This,cookie) (This)->lpVtbl->Unadvise(This,cookie)
    723 #define IPortableDevice_GetPnPDeviceID(This,device_id) (This)->lpVtbl->GetPnPDeviceID(This,device_id)
    724 #else
    725 /*** IUnknown methods ***/
    726 static inline HRESULT IPortableDevice_QueryInterface(IPortableDevice* This,REFIID riid,void **ppvObject) {
    727     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    728 }
    729 static inline ULONG IPortableDevice_AddRef(IPortableDevice* This) {
    730     return This->lpVtbl->AddRef(This);
    731 }
    732 static inline ULONG IPortableDevice_Release(IPortableDevice* This) {
    733     return This->lpVtbl->Release(This);
    734 }
    735 /*** IPortableDevice methods ***/
    736 static inline HRESULT IPortableDevice_Open(IPortableDevice* This,LPCWSTR device_id,IPortableDeviceValues *client_info) {
    737     return This->lpVtbl->Open(This,device_id,client_info);
    738 }
    739 static inline HRESULT IPortableDevice_SendCommand(IPortableDevice* This,const DWORD flags,IPortableDeviceValues *parameters,IPortableDeviceValues **results) {
    740     return This->lpVtbl->SendCommand(This,flags,parameters,results);
    741 }
    742 static inline HRESULT IPortableDevice_Content(IPortableDevice* This,IPortableDeviceContent **content) {
    743     return This->lpVtbl->Content(This,content);
    744 }
    745 static inline HRESULT IPortableDevice_Capabilities(IPortableDevice* This,IPortableDeviceCapabilities **capabilities) {
    746     return This->lpVtbl->Capabilities(This,capabilities);
    747 }
    748 static inline HRESULT IPortableDevice_Cancel(IPortableDevice* This) {
    749     return This->lpVtbl->Cancel(This);
    750 }
    751 static inline HRESULT IPortableDevice_Close(IPortableDevice* This) {
    752     return This->lpVtbl->Close(This);
    753 }
    754 static inline HRESULT IPortableDevice_Advise(IPortableDevice* This,const DWORD flags,IPortableDeviceEventCallback *callback,IPortableDeviceValues *parameters,LPWSTR *cookie) {
    755     return This->lpVtbl->Advise(This,flags,callback,parameters,cookie);
    756 }
    757 static inline HRESULT IPortableDevice_Unadvise(IPortableDevice* This,LPCWSTR cookie) {
    758     return This->lpVtbl->Unadvise(This,cookie);
    759 }
    760 static inline HRESULT IPortableDevice_GetPnPDeviceID(IPortableDevice* This,LPWSTR *device_id) {
    761     return This->lpVtbl->GetPnPDeviceID(This,device_id);
    762 }
    763 #endif
    764 #endif
    765 
    766 #endif
    767 
    768 
    769 #endif  /* __IPortableDevice_INTERFACE_DEFINED__ */
    770 
    771 /*****************************************************************************
    772  * IPortableDeviceContent interface
    773  */
    774 #ifndef __IPortableDeviceContent_INTERFACE_DEFINED__
    775 #define __IPortableDeviceContent_INTERFACE_DEFINED__
    776 
    777 DEFINE_GUID(IID_IPortableDeviceContent, 0x6a96ed84, 0x7c73, 0x4480, 0x99,0x38, 0xbf,0x5a,0xf4,0x77,0xd4,0x26);
    778 #if defined(__cplusplus) && !defined(CINTERFACE)
    779 MIDL_INTERFACE("6a96ed84-7c73-4480-9938-bf5af477d426")
    780 IPortableDeviceContent : public IUnknown
    781 {
    782     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
    783         const DWORD flags,
    784         LPCWSTR parent_object_id,
    785         IPortableDeviceValues *filter,
    786         IEnumPortableDeviceObjectIDs **enum_device_object) = 0;
    787 
    788     virtual HRESULT STDMETHODCALLTYPE Properties(
    789         IPortableDeviceProperties **device_properties) = 0;
    790 
    791     virtual HRESULT STDMETHODCALLTYPE Transfer(
    792         IPortableDeviceResources **resources) = 0;
    793 
    794     virtual HRESULT STDMETHODCALLTYPE CreateObjectWithPropertiesOnly(
    795         IPortableDeviceValues *values,
    796         LPWSTR *object_id) = 0;
    797 
    798     virtual HRESULT STDMETHODCALLTYPE CreateObjectWithPropertiesAndData(
    799         IPortableDeviceValues *values,
    800         IStream **data,
    801         DWORD *optimal_write_buffer_size,
    802         LPWSTR *cookie) = 0;
    803 
    804     virtual HRESULT STDMETHODCALLTYPE Delete(
    805         const DWORD options,
    806         IPortableDevicePropVariantCollection *object_ids,
    807         IPortableDevicePropVariantCollection **results) = 0;
    808 
    809     virtual HRESULT STDMETHODCALLTYPE GetObjectIDsFromPersistentUniqueIDs(
    810         IPortableDevicePropVariantCollection *persistent_unique_ids,
    811         IPortableDevicePropVariantCollection **object_ids) = 0;
    812 
    813     virtual HRESULT STDMETHODCALLTYPE Cancel(
    814         ) = 0;
    815 
    816     virtual HRESULT STDMETHODCALLTYPE Move(
    817         IPortableDevicePropVariantCollection *object_ids,
    818         LPCWSTR destination_folder_object_id,
    819         IPortableDevicePropVariantCollection **results) = 0;
    820 
    821     virtual HRESULT STDMETHODCALLTYPE Copy(
    822         IPortableDevicePropVariantCollection *object_ids,
    823         LPCWSTR destination_folder_object_id,
    824         IPortableDevicePropVariantCollection **results) = 0;
    825 
    826 };
    827 #ifdef __CRT_UUID_DECL
    828 __CRT_UUID_DECL(IPortableDeviceContent, 0x6a96ed84, 0x7c73, 0x4480, 0x99,0x38, 0xbf,0x5a,0xf4,0x77,0xd4,0x26)
    829 #endif
    830 #else
    831 typedef struct IPortableDeviceContentVtbl {
    832     BEGIN_INTERFACE
    833 
    834     /*** IUnknown methods ***/
    835     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    836         IPortableDeviceContent *This,
    837         REFIID riid,
    838         void **ppvObject);
    839 
    840     ULONG (STDMETHODCALLTYPE *AddRef)(
    841         IPortableDeviceContent *This);
    842 
    843     ULONG (STDMETHODCALLTYPE *Release)(
    844         IPortableDeviceContent *This);
    845 
    846     /*** IPortableDeviceContent methods ***/
    847     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
    848         IPortableDeviceContent *This,
    849         const DWORD flags,
    850         LPCWSTR parent_object_id,
    851         IPortableDeviceValues *filter,
    852         IEnumPortableDeviceObjectIDs **enum_device_object);
    853 
    854     HRESULT (STDMETHODCALLTYPE *Properties)(
    855         IPortableDeviceContent *This,
    856         IPortableDeviceProperties **device_properties);
    857 
    858     HRESULT (STDMETHODCALLTYPE *Transfer)(
    859         IPortableDeviceContent *This,
    860         IPortableDeviceResources **resources);
    861 
    862     HRESULT (STDMETHODCALLTYPE *CreateObjectWithPropertiesOnly)(
    863         IPortableDeviceContent *This,
    864         IPortableDeviceValues *values,
    865         LPWSTR *object_id);
    866 
    867     HRESULT (STDMETHODCALLTYPE *CreateObjectWithPropertiesAndData)(
    868         IPortableDeviceContent *This,
    869         IPortableDeviceValues *values,
    870         IStream **data,
    871         DWORD *optimal_write_buffer_size,
    872         LPWSTR *cookie);
    873 
    874     HRESULT (STDMETHODCALLTYPE *Delete)(
    875         IPortableDeviceContent *This,
    876         const DWORD options,
    877         IPortableDevicePropVariantCollection *object_ids,
    878         IPortableDevicePropVariantCollection **results);
    879 
    880     HRESULT (STDMETHODCALLTYPE *GetObjectIDsFromPersistentUniqueIDs)(
    881         IPortableDeviceContent *This,
    882         IPortableDevicePropVariantCollection *persistent_unique_ids,
    883         IPortableDevicePropVariantCollection **object_ids);
    884 
    885     HRESULT (STDMETHODCALLTYPE *Cancel)(
    886         IPortableDeviceContent *This);
    887 
    888     HRESULT (STDMETHODCALLTYPE *Move)(
    889         IPortableDeviceContent *This,
    890         IPortableDevicePropVariantCollection *object_ids,
    891         LPCWSTR destination_folder_object_id,
    892         IPortableDevicePropVariantCollection **results);
    893 
    894     HRESULT (STDMETHODCALLTYPE *Copy)(
    895         IPortableDeviceContent *This,
    896         IPortableDevicePropVariantCollection *object_ids,
    897         LPCWSTR destination_folder_object_id,
    898         IPortableDevicePropVariantCollection **results);
    899 
    900     END_INTERFACE
    901 } IPortableDeviceContentVtbl;
    902 
    903 interface IPortableDeviceContent {
    904     CONST_VTBL IPortableDeviceContentVtbl* lpVtbl;
    905 };
    906 
    907 #ifdef COBJMACROS
    908 #ifndef WIDL_C_INLINE_WRAPPERS
    909 /*** IUnknown methods ***/
    910 #define IPortableDeviceContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    911 #define IPortableDeviceContent_AddRef(This) (This)->lpVtbl->AddRef(This)
    912 #define IPortableDeviceContent_Release(This) (This)->lpVtbl->Release(This)
    913 /*** IPortableDeviceContent methods ***/
    914 #define IPortableDeviceContent_EnumObjects(This,flags,parent_object_id,filter,enum_device_object) (This)->lpVtbl->EnumObjects(This,flags,parent_object_id,filter,enum_device_object)
    915 #define IPortableDeviceContent_Properties(This,device_properties) (This)->lpVtbl->Properties(This,device_properties)
    916 #define IPortableDeviceContent_Transfer(This,resources) (This)->lpVtbl->Transfer(This,resources)
    917 #define IPortableDeviceContent_CreateObjectWithPropertiesOnly(This,values,object_id) (This)->lpVtbl->CreateObjectWithPropertiesOnly(This,values,object_id)
    918 #define IPortableDeviceContent_CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie) (This)->lpVtbl->CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie)
    919 #define IPortableDeviceContent_Delete(This,options,object_ids,results) (This)->lpVtbl->Delete(This,options,object_ids,results)
    920 #define IPortableDeviceContent_GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids) (This)->lpVtbl->GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids)
    921 #define IPortableDeviceContent_Cancel(This) (This)->lpVtbl->Cancel(This)
    922 #define IPortableDeviceContent_Move(This,object_ids,destination_folder_object_id,results) (This)->lpVtbl->Move(This,object_ids,destination_folder_object_id,results)
    923 #define IPortableDeviceContent_Copy(This,object_ids,destination_folder_object_id,results) (This)->lpVtbl->Copy(This,object_ids,destination_folder_object_id,results)
    924 #else
    925 /*** IUnknown methods ***/
    926 static inline HRESULT IPortableDeviceContent_QueryInterface(IPortableDeviceContent* This,REFIID riid,void **ppvObject) {
    927     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    928 }
    929 static inline ULONG IPortableDeviceContent_AddRef(IPortableDeviceContent* This) {
    930     return This->lpVtbl->AddRef(This);
    931 }
    932 static inline ULONG IPortableDeviceContent_Release(IPortableDeviceContent* This) {
    933     return This->lpVtbl->Release(This);
    934 }
    935 /*** IPortableDeviceContent methods ***/
    936 static inline HRESULT IPortableDeviceContent_EnumObjects(IPortableDeviceContent* This,const DWORD flags,LPCWSTR parent_object_id,IPortableDeviceValues *filter,IEnumPortableDeviceObjectIDs **enum_device_object) {
    937     return This->lpVtbl->EnumObjects(This,flags,parent_object_id,filter,enum_device_object);
    938 }
    939 static inline HRESULT IPortableDeviceContent_Properties(IPortableDeviceContent* This,IPortableDeviceProperties **device_properties) {
    940     return This->lpVtbl->Properties(This,device_properties);
    941 }
    942 static inline HRESULT IPortableDeviceContent_Transfer(IPortableDeviceContent* This,IPortableDeviceResources **resources) {
    943     return This->lpVtbl->Transfer(This,resources);
    944 }
    945 static inline HRESULT IPortableDeviceContent_CreateObjectWithPropertiesOnly(IPortableDeviceContent* This,IPortableDeviceValues *values,LPWSTR *object_id) {
    946     return This->lpVtbl->CreateObjectWithPropertiesOnly(This,values,object_id);
    947 }
    948 static inline HRESULT IPortableDeviceContent_CreateObjectWithPropertiesAndData(IPortableDeviceContent* This,IPortableDeviceValues *values,IStream **data,DWORD *optimal_write_buffer_size,LPWSTR *cookie) {
    949     return This->lpVtbl->CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie);
    950 }
    951 static inline HRESULT IPortableDeviceContent_Delete(IPortableDeviceContent* This,const DWORD options,IPortableDevicePropVariantCollection *object_ids,IPortableDevicePropVariantCollection **results) {
    952     return This->lpVtbl->Delete(This,options,object_ids,results);
    953 }
    954 static inline HRESULT IPortableDeviceContent_GetObjectIDsFromPersistentUniqueIDs(IPortableDeviceContent* This,IPortableDevicePropVariantCollection *persistent_unique_ids,IPortableDevicePropVariantCollection **object_ids) {
    955     return This->lpVtbl->GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids);
    956 }
    957 static inline HRESULT IPortableDeviceContent_Cancel(IPortableDeviceContent* This) {
    958     return This->lpVtbl->Cancel(This);
    959 }
    960 static inline HRESULT IPortableDeviceContent_Move(IPortableDeviceContent* This,IPortableDevicePropVariantCollection *object_ids,LPCWSTR destination_folder_object_id,IPortableDevicePropVariantCollection **results) {
    961     return This->lpVtbl->Move(This,object_ids,destination_folder_object_id,results);
    962 }
    963 static inline HRESULT IPortableDeviceContent_Copy(IPortableDeviceContent* This,IPortableDevicePropVariantCollection *object_ids,LPCWSTR destination_folder_object_id,IPortableDevicePropVariantCollection **results) {
    964     return This->lpVtbl->Copy(This,object_ids,destination_folder_object_id,results);
    965 }
    966 #endif
    967 #endif
    968 
    969 #endif
    970 
    971 
    972 #endif  /* __IPortableDeviceContent_INTERFACE_DEFINED__ */
    973 
    974 /*****************************************************************************
    975  * IPortableDeviceContent2 interface
    976  */
    977 #ifndef __IPortableDeviceContent2_INTERFACE_DEFINED__
    978 #define __IPortableDeviceContent2_INTERFACE_DEFINED__
    979 
    980 DEFINE_GUID(IID_IPortableDeviceContent2, 0x9b4add96, 0xf6bf, 0x4034, 0x87,0x08, 0xec,0xa7,0x2b,0xf1,0x05,0x54);
    981 #if defined(__cplusplus) && !defined(CINTERFACE)
    982 MIDL_INTERFACE("9b4add96-f6bf-4034-8708-eca72bf10554")
    983 IPortableDeviceContent2 : public IPortableDeviceContent
    984 {
    985     virtual HRESULT STDMETHODCALLTYPE UpdateObjectWithPropertiesAndData(
    986         LPCWSTR object_id,
    987         IPortableDeviceValues *device_properties,
    988         IStream **data,
    989         DWORD *optimal_write_buffer_size) = 0;
    990 
    991 };
    992 #ifdef __CRT_UUID_DECL
    993 __CRT_UUID_DECL(IPortableDeviceContent2, 0x9b4add96, 0xf6bf, 0x4034, 0x87,0x08, 0xec,0xa7,0x2b,0xf1,0x05,0x54)
    994 #endif
    995 #else
    996 typedef struct IPortableDeviceContent2Vtbl {
    997     BEGIN_INTERFACE
    998 
    999     /*** IUnknown methods ***/
   1000     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1001         IPortableDeviceContent2 *This,
   1002         REFIID riid,
   1003         void **ppvObject);
   1004 
   1005     ULONG (STDMETHODCALLTYPE *AddRef)(
   1006         IPortableDeviceContent2 *This);
   1007 
   1008     ULONG (STDMETHODCALLTYPE *Release)(
   1009         IPortableDeviceContent2 *This);
   1010 
   1011     /*** IPortableDeviceContent methods ***/
   1012     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
   1013         IPortableDeviceContent2 *This,
   1014         const DWORD flags,
   1015         LPCWSTR parent_object_id,
   1016         IPortableDeviceValues *filter,
   1017         IEnumPortableDeviceObjectIDs **enum_device_object);
   1018 
   1019     HRESULT (STDMETHODCALLTYPE *Properties)(
   1020         IPortableDeviceContent2 *This,
   1021         IPortableDeviceProperties **device_properties);
   1022 
   1023     HRESULT (STDMETHODCALLTYPE *Transfer)(
   1024         IPortableDeviceContent2 *This,
   1025         IPortableDeviceResources **resources);
   1026 
   1027     HRESULT (STDMETHODCALLTYPE *CreateObjectWithPropertiesOnly)(
   1028         IPortableDeviceContent2 *This,
   1029         IPortableDeviceValues *values,
   1030         LPWSTR *object_id);
   1031 
   1032     HRESULT (STDMETHODCALLTYPE *CreateObjectWithPropertiesAndData)(
   1033         IPortableDeviceContent2 *This,
   1034         IPortableDeviceValues *values,
   1035         IStream **data,
   1036         DWORD *optimal_write_buffer_size,
   1037         LPWSTR *cookie);
   1038 
   1039     HRESULT (STDMETHODCALLTYPE *Delete)(
   1040         IPortableDeviceContent2 *This,
   1041         const DWORD options,
   1042         IPortableDevicePropVariantCollection *object_ids,
   1043         IPortableDevicePropVariantCollection **results);
   1044 
   1045     HRESULT (STDMETHODCALLTYPE *GetObjectIDsFromPersistentUniqueIDs)(
   1046         IPortableDeviceContent2 *This,
   1047         IPortableDevicePropVariantCollection *persistent_unique_ids,
   1048         IPortableDevicePropVariantCollection **object_ids);
   1049 
   1050     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1051         IPortableDeviceContent2 *This);
   1052 
   1053     HRESULT (STDMETHODCALLTYPE *Move)(
   1054         IPortableDeviceContent2 *This,
   1055         IPortableDevicePropVariantCollection *object_ids,
   1056         LPCWSTR destination_folder_object_id,
   1057         IPortableDevicePropVariantCollection **results);
   1058 
   1059     HRESULT (STDMETHODCALLTYPE *Copy)(
   1060         IPortableDeviceContent2 *This,
   1061         IPortableDevicePropVariantCollection *object_ids,
   1062         LPCWSTR destination_folder_object_id,
   1063         IPortableDevicePropVariantCollection **results);
   1064 
   1065     /*** IPortableDeviceContent2 methods ***/
   1066     HRESULT (STDMETHODCALLTYPE *UpdateObjectWithPropertiesAndData)(
   1067         IPortableDeviceContent2 *This,
   1068         LPCWSTR object_id,
   1069         IPortableDeviceValues *device_properties,
   1070         IStream **data,
   1071         DWORD *optimal_write_buffer_size);
   1072 
   1073     END_INTERFACE
   1074 } IPortableDeviceContent2Vtbl;
   1075 
   1076 interface IPortableDeviceContent2 {
   1077     CONST_VTBL IPortableDeviceContent2Vtbl* lpVtbl;
   1078 };
   1079 
   1080 #ifdef COBJMACROS
   1081 #ifndef WIDL_C_INLINE_WRAPPERS
   1082 /*** IUnknown methods ***/
   1083 #define IPortableDeviceContent2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1084 #define IPortableDeviceContent2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1085 #define IPortableDeviceContent2_Release(This) (This)->lpVtbl->Release(This)
   1086 /*** IPortableDeviceContent methods ***/
   1087 #define IPortableDeviceContent2_EnumObjects(This,flags,parent_object_id,filter,enum_device_object) (This)->lpVtbl->EnumObjects(This,flags,parent_object_id,filter,enum_device_object)
   1088 #define IPortableDeviceContent2_Properties(This,device_properties) (This)->lpVtbl->Properties(This,device_properties)
   1089 #define IPortableDeviceContent2_Transfer(This,resources) (This)->lpVtbl->Transfer(This,resources)
   1090 #define IPortableDeviceContent2_CreateObjectWithPropertiesOnly(This,values,object_id) (This)->lpVtbl->CreateObjectWithPropertiesOnly(This,values,object_id)
   1091 #define IPortableDeviceContent2_CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie) (This)->lpVtbl->CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie)
   1092 #define IPortableDeviceContent2_Delete(This,options,object_ids,results) (This)->lpVtbl->Delete(This,options,object_ids,results)
   1093 #define IPortableDeviceContent2_GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids) (This)->lpVtbl->GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids)
   1094 #define IPortableDeviceContent2_Cancel(This) (This)->lpVtbl->Cancel(This)
   1095 #define IPortableDeviceContent2_Move(This,object_ids,destination_folder_object_id,results) (This)->lpVtbl->Move(This,object_ids,destination_folder_object_id,results)
   1096 #define IPortableDeviceContent2_Copy(This,object_ids,destination_folder_object_id,results) (This)->lpVtbl->Copy(This,object_ids,destination_folder_object_id,results)
   1097 /*** IPortableDeviceContent2 methods ***/
   1098 #define IPortableDeviceContent2_UpdateObjectWithPropertiesAndData(This,object_id,device_properties,data,optimal_write_buffer_size) (This)->lpVtbl->UpdateObjectWithPropertiesAndData(This,object_id,device_properties,data,optimal_write_buffer_size)
   1099 #else
   1100 /*** IUnknown methods ***/
   1101 static inline HRESULT IPortableDeviceContent2_QueryInterface(IPortableDeviceContent2* This,REFIID riid,void **ppvObject) {
   1102     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1103 }
   1104 static inline ULONG IPortableDeviceContent2_AddRef(IPortableDeviceContent2* This) {
   1105     return This->lpVtbl->AddRef(This);
   1106 }
   1107 static inline ULONG IPortableDeviceContent2_Release(IPortableDeviceContent2* This) {
   1108     return This->lpVtbl->Release(This);
   1109 }
   1110 /*** IPortableDeviceContent methods ***/
   1111 static inline HRESULT IPortableDeviceContent2_EnumObjects(IPortableDeviceContent2* This,const DWORD flags,LPCWSTR parent_object_id,IPortableDeviceValues *filter,IEnumPortableDeviceObjectIDs **enum_device_object) {
   1112     return This->lpVtbl->EnumObjects(This,flags,parent_object_id,filter,enum_device_object);
   1113 }
   1114 static inline HRESULT IPortableDeviceContent2_Properties(IPortableDeviceContent2* This,IPortableDeviceProperties **device_properties) {
   1115     return This->lpVtbl->Properties(This,device_properties);
   1116 }
   1117 static inline HRESULT IPortableDeviceContent2_Transfer(IPortableDeviceContent2* This,IPortableDeviceResources **resources) {
   1118     return This->lpVtbl->Transfer(This,resources);
   1119 }
   1120 static inline HRESULT IPortableDeviceContent2_CreateObjectWithPropertiesOnly(IPortableDeviceContent2* This,IPortableDeviceValues *values,LPWSTR *object_id) {
   1121     return This->lpVtbl->CreateObjectWithPropertiesOnly(This,values,object_id);
   1122 }
   1123 static inline HRESULT IPortableDeviceContent2_CreateObjectWithPropertiesAndData(IPortableDeviceContent2* This,IPortableDeviceValues *values,IStream **data,DWORD *optimal_write_buffer_size,LPWSTR *cookie) {
   1124     return This->lpVtbl->CreateObjectWithPropertiesAndData(This,values,data,optimal_write_buffer_size,cookie);
   1125 }
   1126 static inline HRESULT IPortableDeviceContent2_Delete(IPortableDeviceContent2* This,const DWORD options,IPortableDevicePropVariantCollection *object_ids,IPortableDevicePropVariantCollection **results) {
   1127     return This->lpVtbl->Delete(This,options,object_ids,results);
   1128 }
   1129 static inline HRESULT IPortableDeviceContent2_GetObjectIDsFromPersistentUniqueIDs(IPortableDeviceContent2* This,IPortableDevicePropVariantCollection *persistent_unique_ids,IPortableDevicePropVariantCollection **object_ids) {
   1130     return This->lpVtbl->GetObjectIDsFromPersistentUniqueIDs(This,persistent_unique_ids,object_ids);
   1131 }
   1132 static inline HRESULT IPortableDeviceContent2_Cancel(IPortableDeviceContent2* This) {
   1133     return This->lpVtbl->Cancel(This);
   1134 }
   1135 static inline HRESULT IPortableDeviceContent2_Move(IPortableDeviceContent2* This,IPortableDevicePropVariantCollection *object_ids,LPCWSTR destination_folder_object_id,IPortableDevicePropVariantCollection **results) {
   1136     return This->lpVtbl->Move(This,object_ids,destination_folder_object_id,results);
   1137 }
   1138 static inline HRESULT IPortableDeviceContent2_Copy(IPortableDeviceContent2* This,IPortableDevicePropVariantCollection *object_ids,LPCWSTR destination_folder_object_id,IPortableDevicePropVariantCollection **results) {
   1139     return This->lpVtbl->Copy(This,object_ids,destination_folder_object_id,results);
   1140 }
   1141 /*** IPortableDeviceContent2 methods ***/
   1142 static inline HRESULT IPortableDeviceContent2_UpdateObjectWithPropertiesAndData(IPortableDeviceContent2* This,LPCWSTR object_id,IPortableDeviceValues *device_properties,IStream **data,DWORD *optimal_write_buffer_size) {
   1143     return This->lpVtbl->UpdateObjectWithPropertiesAndData(This,object_id,device_properties,data,optimal_write_buffer_size);
   1144 }
   1145 #endif
   1146 #endif
   1147 
   1148 #endif
   1149 
   1150 
   1151 #endif  /* __IPortableDeviceContent2_INTERFACE_DEFINED__ */
   1152 
   1153 /*****************************************************************************
   1154  * IEnumPortableDeviceObjectIDs interface
   1155  */
   1156 #ifndef __IEnumPortableDeviceObjectIDs_INTERFACE_DEFINED__
   1157 #define __IEnumPortableDeviceObjectIDs_INTERFACE_DEFINED__
   1158 
   1159 DEFINE_GUID(IID_IEnumPortableDeviceObjectIDs, 0x10ece955, 0xcf41, 0x4728, 0xbf,0xa0, 0x41,0xee,0xdf,0x1b,0xbf,0x19);
   1160 #if defined(__cplusplus) && !defined(CINTERFACE)
   1161 MIDL_INTERFACE("10ece955-cf41-4728-bfa0-41eedf1bbf19")
   1162 IEnumPortableDeviceObjectIDs : public IUnknown
   1163 {
   1164     virtual HRESULT STDMETHODCALLTYPE Next(
   1165         ULONG objects,
   1166         LPWSTR *obj_ids,
   1167         ULONG *fetched) = 0;
   1168 
   1169     virtual HRESULT STDMETHODCALLTYPE Skip(
   1170         ULONG objects) = 0;
   1171 
   1172     virtual HRESULT STDMETHODCALLTYPE Reset(
   1173         ) = 0;
   1174 
   1175     virtual HRESULT STDMETHODCALLTYPE Clone(
   1176         IEnumPortableDeviceObjectIDs **enum_device_object) = 0;
   1177 
   1178     virtual HRESULT STDMETHODCALLTYPE Cancel(
   1179         ) = 0;
   1180 
   1181 };
   1182 #ifdef __CRT_UUID_DECL
   1183 __CRT_UUID_DECL(IEnumPortableDeviceObjectIDs, 0x10ece955, 0xcf41, 0x4728, 0xbf,0xa0, 0x41,0xee,0xdf,0x1b,0xbf,0x19)
   1184 #endif
   1185 #else
   1186 typedef struct IEnumPortableDeviceObjectIDsVtbl {
   1187     BEGIN_INTERFACE
   1188 
   1189     /*** IUnknown methods ***/
   1190     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1191         IEnumPortableDeviceObjectIDs *This,
   1192         REFIID riid,
   1193         void **ppvObject);
   1194 
   1195     ULONG (STDMETHODCALLTYPE *AddRef)(
   1196         IEnumPortableDeviceObjectIDs *This);
   1197 
   1198     ULONG (STDMETHODCALLTYPE *Release)(
   1199         IEnumPortableDeviceObjectIDs *This);
   1200 
   1201     /*** IEnumPortableDeviceObjectIDs methods ***/
   1202     HRESULT (STDMETHODCALLTYPE *Next)(
   1203         IEnumPortableDeviceObjectIDs *This,
   1204         ULONG objects,
   1205         LPWSTR *obj_ids,
   1206         ULONG *fetched);
   1207 
   1208     HRESULT (STDMETHODCALLTYPE *Skip)(
   1209         IEnumPortableDeviceObjectIDs *This,
   1210         ULONG objects);
   1211 
   1212     HRESULT (STDMETHODCALLTYPE *Reset)(
   1213         IEnumPortableDeviceObjectIDs *This);
   1214 
   1215     HRESULT (STDMETHODCALLTYPE *Clone)(
   1216         IEnumPortableDeviceObjectIDs *This,
   1217         IEnumPortableDeviceObjectIDs **enum_device_object);
   1218 
   1219     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1220         IEnumPortableDeviceObjectIDs *This);
   1221 
   1222     END_INTERFACE
   1223 } IEnumPortableDeviceObjectIDsVtbl;
   1224 
   1225 interface IEnumPortableDeviceObjectIDs {
   1226     CONST_VTBL IEnumPortableDeviceObjectIDsVtbl* lpVtbl;
   1227 };
   1228 
   1229 #ifdef COBJMACROS
   1230 #ifndef WIDL_C_INLINE_WRAPPERS
   1231 /*** IUnknown methods ***/
   1232 #define IEnumPortableDeviceObjectIDs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1233 #define IEnumPortableDeviceObjectIDs_AddRef(This) (This)->lpVtbl->AddRef(This)
   1234 #define IEnumPortableDeviceObjectIDs_Release(This) (This)->lpVtbl->Release(This)
   1235 /*** IEnumPortableDeviceObjectIDs methods ***/
   1236 #define IEnumPortableDeviceObjectIDs_Next(This,objects,obj_ids,fetched) (This)->lpVtbl->Next(This,objects,obj_ids,fetched)
   1237 #define IEnumPortableDeviceObjectIDs_Skip(This,objects) (This)->lpVtbl->Skip(This,objects)
   1238 #define IEnumPortableDeviceObjectIDs_Reset(This) (This)->lpVtbl->Reset(This)
   1239 #define IEnumPortableDeviceObjectIDs_Clone(This,enum_device_object) (This)->lpVtbl->Clone(This,enum_device_object)
   1240 #define IEnumPortableDeviceObjectIDs_Cancel(This) (This)->lpVtbl->Cancel(This)
   1241 #else
   1242 /*** IUnknown methods ***/
   1243 static inline HRESULT IEnumPortableDeviceObjectIDs_QueryInterface(IEnumPortableDeviceObjectIDs* This,REFIID riid,void **ppvObject) {
   1244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1245 }
   1246 static inline ULONG IEnumPortableDeviceObjectIDs_AddRef(IEnumPortableDeviceObjectIDs* This) {
   1247     return This->lpVtbl->AddRef(This);
   1248 }
   1249 static inline ULONG IEnumPortableDeviceObjectIDs_Release(IEnumPortableDeviceObjectIDs* This) {
   1250     return This->lpVtbl->Release(This);
   1251 }
   1252 /*** IEnumPortableDeviceObjectIDs methods ***/
   1253 static inline HRESULT IEnumPortableDeviceObjectIDs_Next(IEnumPortableDeviceObjectIDs* This,ULONG objects,LPWSTR *obj_ids,ULONG *fetched) {
   1254     return This->lpVtbl->Next(This,objects,obj_ids,fetched);
   1255 }
   1256 static inline HRESULT IEnumPortableDeviceObjectIDs_Skip(IEnumPortableDeviceObjectIDs* This,ULONG objects) {
   1257     return This->lpVtbl->Skip(This,objects);
   1258 }
   1259 static inline HRESULT IEnumPortableDeviceObjectIDs_Reset(IEnumPortableDeviceObjectIDs* This) {
   1260     return This->lpVtbl->Reset(This);
   1261 }
   1262 static inline HRESULT IEnumPortableDeviceObjectIDs_Clone(IEnumPortableDeviceObjectIDs* This,IEnumPortableDeviceObjectIDs **enum_device_object) {
   1263     return This->lpVtbl->Clone(This,enum_device_object);
   1264 }
   1265 static inline HRESULT IEnumPortableDeviceObjectIDs_Cancel(IEnumPortableDeviceObjectIDs* This) {
   1266     return This->lpVtbl->Cancel(This);
   1267 }
   1268 #endif
   1269 #endif
   1270 
   1271 #endif
   1272 
   1273 
   1274 #endif  /* __IEnumPortableDeviceObjectIDs_INTERFACE_DEFINED__ */
   1275 
   1276 /*****************************************************************************
   1277  * IPortableDeviceProperties interface
   1278  */
   1279 #ifndef __IPortableDeviceProperties_INTERFACE_DEFINED__
   1280 #define __IPortableDeviceProperties_INTERFACE_DEFINED__
   1281 
   1282 DEFINE_GUID(IID_IPortableDeviceProperties, 0x7f6d695c, 0x03df, 0x4439, 0xa8,0x09, 0x59,0x26,0x6b,0xee,0xe3,0xa6);
   1283 #if defined(__cplusplus) && !defined(CINTERFACE)
   1284 MIDL_INTERFACE("7f6d695c-03df-4439-a809-59266beee3a6")
   1285 IPortableDeviceProperties : public IUnknown
   1286 {
   1287     virtual HRESULT STDMETHODCALLTYPE GetSupportedProperties(
   1288         LPCWSTR object_id,
   1289         IPortableDeviceKeyCollection **keys) = 0;
   1290 
   1291     virtual HRESULT STDMETHODCALLTYPE GetPropertyAttributes(
   1292         LPCWSTR object_id,
   1293         REFPROPERTYKEY key,
   1294         IPortableDeviceValues **attributes) = 0;
   1295 
   1296     virtual HRESULT STDMETHODCALLTYPE GetValues(
   1297         LPCWSTR object_id,
   1298         IPortableDeviceKeyCollection *keys,
   1299         IPortableDeviceValues **values) = 0;
   1300 
   1301     virtual HRESULT STDMETHODCALLTYPE SetValues(
   1302         LPCWSTR object_id,
   1303         IPortableDeviceValues *values,
   1304         IPortableDeviceValues **results) = 0;
   1305 
   1306     virtual HRESULT STDMETHODCALLTYPE Delete(
   1307         LPCWSTR object_id,
   1308         IPortableDeviceKeyCollection *keys) = 0;
   1309 
   1310     virtual HRESULT STDMETHODCALLTYPE Cancel(
   1311         ) = 0;
   1312 
   1313 };
   1314 #ifdef __CRT_UUID_DECL
   1315 __CRT_UUID_DECL(IPortableDeviceProperties, 0x7f6d695c, 0x03df, 0x4439, 0xa8,0x09, 0x59,0x26,0x6b,0xee,0xe3,0xa6)
   1316 #endif
   1317 #else
   1318 typedef struct IPortableDevicePropertiesVtbl {
   1319     BEGIN_INTERFACE
   1320 
   1321     /*** IUnknown methods ***/
   1322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1323         IPortableDeviceProperties *This,
   1324         REFIID riid,
   1325         void **ppvObject);
   1326 
   1327     ULONG (STDMETHODCALLTYPE *AddRef)(
   1328         IPortableDeviceProperties *This);
   1329 
   1330     ULONG (STDMETHODCALLTYPE *Release)(
   1331         IPortableDeviceProperties *This);
   1332 
   1333     /*** IPortableDeviceProperties methods ***/
   1334     HRESULT (STDMETHODCALLTYPE *GetSupportedProperties)(
   1335         IPortableDeviceProperties *This,
   1336         LPCWSTR object_id,
   1337         IPortableDeviceKeyCollection **keys);
   1338 
   1339     HRESULT (STDMETHODCALLTYPE *GetPropertyAttributes)(
   1340         IPortableDeviceProperties *This,
   1341         LPCWSTR object_id,
   1342         REFPROPERTYKEY key,
   1343         IPortableDeviceValues **attributes);
   1344 
   1345     HRESULT (STDMETHODCALLTYPE *GetValues)(
   1346         IPortableDeviceProperties *This,
   1347         LPCWSTR object_id,
   1348         IPortableDeviceKeyCollection *keys,
   1349         IPortableDeviceValues **values);
   1350 
   1351     HRESULT (STDMETHODCALLTYPE *SetValues)(
   1352         IPortableDeviceProperties *This,
   1353         LPCWSTR object_id,
   1354         IPortableDeviceValues *values,
   1355         IPortableDeviceValues **results);
   1356 
   1357     HRESULT (STDMETHODCALLTYPE *Delete)(
   1358         IPortableDeviceProperties *This,
   1359         LPCWSTR object_id,
   1360         IPortableDeviceKeyCollection *keys);
   1361 
   1362     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1363         IPortableDeviceProperties *This);
   1364 
   1365     END_INTERFACE
   1366 } IPortableDevicePropertiesVtbl;
   1367 
   1368 interface IPortableDeviceProperties {
   1369     CONST_VTBL IPortableDevicePropertiesVtbl* lpVtbl;
   1370 };
   1371 
   1372 #ifdef COBJMACROS
   1373 #ifndef WIDL_C_INLINE_WRAPPERS
   1374 /*** IUnknown methods ***/
   1375 #define IPortableDeviceProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1376 #define IPortableDeviceProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   1377 #define IPortableDeviceProperties_Release(This) (This)->lpVtbl->Release(This)
   1378 /*** IPortableDeviceProperties methods ***/
   1379 #define IPortableDeviceProperties_GetSupportedProperties(This,object_id,keys) (This)->lpVtbl->GetSupportedProperties(This,object_id,keys)
   1380 #define IPortableDeviceProperties_GetPropertyAttributes(This,object_id,key,attributes) (This)->lpVtbl->GetPropertyAttributes(This,object_id,key,attributes)
   1381 #define IPortableDeviceProperties_GetValues(This,object_id,keys,values) (This)->lpVtbl->GetValues(This,object_id,keys,values)
   1382 #define IPortableDeviceProperties_SetValues(This,object_id,values,results) (This)->lpVtbl->SetValues(This,object_id,values,results)
   1383 #define IPortableDeviceProperties_Delete(This,object_id,keys) (This)->lpVtbl->Delete(This,object_id,keys)
   1384 #define IPortableDeviceProperties_Cancel(This) (This)->lpVtbl->Cancel(This)
   1385 #else
   1386 /*** IUnknown methods ***/
   1387 static inline HRESULT IPortableDeviceProperties_QueryInterface(IPortableDeviceProperties* This,REFIID riid,void **ppvObject) {
   1388     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1389 }
   1390 static inline ULONG IPortableDeviceProperties_AddRef(IPortableDeviceProperties* This) {
   1391     return This->lpVtbl->AddRef(This);
   1392 }
   1393 static inline ULONG IPortableDeviceProperties_Release(IPortableDeviceProperties* This) {
   1394     return This->lpVtbl->Release(This);
   1395 }
   1396 /*** IPortableDeviceProperties methods ***/
   1397 static inline HRESULT IPortableDeviceProperties_GetSupportedProperties(IPortableDeviceProperties* This,LPCWSTR object_id,IPortableDeviceKeyCollection **keys) {
   1398     return This->lpVtbl->GetSupportedProperties(This,object_id,keys);
   1399 }
   1400 static inline HRESULT IPortableDeviceProperties_GetPropertyAttributes(IPortableDeviceProperties* This,LPCWSTR object_id,REFPROPERTYKEY key,IPortableDeviceValues **attributes) {
   1401     return This->lpVtbl->GetPropertyAttributes(This,object_id,key,attributes);
   1402 }
   1403 static inline HRESULT IPortableDeviceProperties_GetValues(IPortableDeviceProperties* This,LPCWSTR object_id,IPortableDeviceKeyCollection *keys,IPortableDeviceValues **values) {
   1404     return This->lpVtbl->GetValues(This,object_id,keys,values);
   1405 }
   1406 static inline HRESULT IPortableDeviceProperties_SetValues(IPortableDeviceProperties* This,LPCWSTR object_id,IPortableDeviceValues *values,IPortableDeviceValues **results) {
   1407     return This->lpVtbl->SetValues(This,object_id,values,results);
   1408 }
   1409 static inline HRESULT IPortableDeviceProperties_Delete(IPortableDeviceProperties* This,LPCWSTR object_id,IPortableDeviceKeyCollection *keys) {
   1410     return This->lpVtbl->Delete(This,object_id,keys);
   1411 }
   1412 static inline HRESULT IPortableDeviceProperties_Cancel(IPortableDeviceProperties* This) {
   1413     return This->lpVtbl->Cancel(This);
   1414 }
   1415 #endif
   1416 #endif
   1417 
   1418 #endif
   1419 
   1420 
   1421 #endif  /* __IPortableDeviceProperties_INTERFACE_DEFINED__ */
   1422 
   1423 /*****************************************************************************
   1424  * IPortableDeviceResources interface
   1425  */
   1426 #ifndef __IPortableDeviceResources_INTERFACE_DEFINED__
   1427 #define __IPortableDeviceResources_INTERFACE_DEFINED__
   1428 
   1429 DEFINE_GUID(IID_IPortableDeviceResources, 0xfd8878ac, 0xd841, 0x4d17, 0x89,0x1c, 0xe6,0x82,0x9c,0xdb,0x69,0x34);
   1430 #if defined(__cplusplus) && !defined(CINTERFACE)
   1431 MIDL_INTERFACE("fd8878ac-d841-4d17-891c-e6829cdb6934")
   1432 IPortableDeviceResources : public IUnknown
   1433 {
   1434     virtual HRESULT STDMETHODCALLTYPE GetSupportedResources(
   1435         LPCWSTR object_id,
   1436         IPortableDeviceKeyCollection **keys) = 0;
   1437 
   1438     virtual HRESULT STDMETHODCALLTYPE GetResourceAttributes(
   1439         LPCWSTR object_id,
   1440         REFPROPERTYKEY key,
   1441         IPortableDeviceValues **resource_attributes) = 0;
   1442 
   1443     virtual HRESULT STDMETHODCALLTYPE GetStream(
   1444         LPCWSTR object_id,
   1445         REFPROPERTYKEY key,
   1446         const DWORD mode,
   1447         DWORD *optimal_buffer_size,
   1448         IStream **stream) = 0;
   1449 
   1450     virtual HRESULT STDMETHODCALLTYPE Delete(
   1451         LPCWSTR object_id,
   1452         IPortableDeviceKeyCollection *keys) = 0;
   1453 
   1454     virtual HRESULT STDMETHODCALLTYPE Cancel(
   1455         ) = 0;
   1456 
   1457     virtual HRESULT STDMETHODCALLTYPE CreateResource(
   1458         IPortableDeviceValues *resource_attributes,
   1459         IStream **data,
   1460         DWORD *optimal_write_buffer_size,
   1461         LPWSTR *cookie) = 0;
   1462 
   1463 };
   1464 #ifdef __CRT_UUID_DECL
   1465 __CRT_UUID_DECL(IPortableDeviceResources, 0xfd8878ac, 0xd841, 0x4d17, 0x89,0x1c, 0xe6,0x82,0x9c,0xdb,0x69,0x34)
   1466 #endif
   1467 #else
   1468 typedef struct IPortableDeviceResourcesVtbl {
   1469     BEGIN_INTERFACE
   1470 
   1471     /*** IUnknown methods ***/
   1472     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1473         IPortableDeviceResources *This,
   1474         REFIID riid,
   1475         void **ppvObject);
   1476 
   1477     ULONG (STDMETHODCALLTYPE *AddRef)(
   1478         IPortableDeviceResources *This);
   1479 
   1480     ULONG (STDMETHODCALLTYPE *Release)(
   1481         IPortableDeviceResources *This);
   1482 
   1483     /*** IPortableDeviceResources methods ***/
   1484     HRESULT (STDMETHODCALLTYPE *GetSupportedResources)(
   1485         IPortableDeviceResources *This,
   1486         LPCWSTR object_id,
   1487         IPortableDeviceKeyCollection **keys);
   1488 
   1489     HRESULT (STDMETHODCALLTYPE *GetResourceAttributes)(
   1490         IPortableDeviceResources *This,
   1491         LPCWSTR object_id,
   1492         REFPROPERTYKEY key,
   1493         IPortableDeviceValues **resource_attributes);
   1494 
   1495     HRESULT (STDMETHODCALLTYPE *GetStream)(
   1496         IPortableDeviceResources *This,
   1497         LPCWSTR object_id,
   1498         REFPROPERTYKEY key,
   1499         const DWORD mode,
   1500         DWORD *optimal_buffer_size,
   1501         IStream **stream);
   1502 
   1503     HRESULT (STDMETHODCALLTYPE *Delete)(
   1504         IPortableDeviceResources *This,
   1505         LPCWSTR object_id,
   1506         IPortableDeviceKeyCollection *keys);
   1507 
   1508     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1509         IPortableDeviceResources *This);
   1510 
   1511     HRESULT (STDMETHODCALLTYPE *CreateResource)(
   1512         IPortableDeviceResources *This,
   1513         IPortableDeviceValues *resource_attributes,
   1514         IStream **data,
   1515         DWORD *optimal_write_buffer_size,
   1516         LPWSTR *cookie);
   1517 
   1518     END_INTERFACE
   1519 } IPortableDeviceResourcesVtbl;
   1520 
   1521 interface IPortableDeviceResources {
   1522     CONST_VTBL IPortableDeviceResourcesVtbl* lpVtbl;
   1523 };
   1524 
   1525 #ifdef COBJMACROS
   1526 #ifndef WIDL_C_INLINE_WRAPPERS
   1527 /*** IUnknown methods ***/
   1528 #define IPortableDeviceResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1529 #define IPortableDeviceResources_AddRef(This) (This)->lpVtbl->AddRef(This)
   1530 #define IPortableDeviceResources_Release(This) (This)->lpVtbl->Release(This)
   1531 /*** IPortableDeviceResources methods ***/
   1532 #define IPortableDeviceResources_GetSupportedResources(This,object_id,keys) (This)->lpVtbl->GetSupportedResources(This,object_id,keys)
   1533 #define IPortableDeviceResources_GetResourceAttributes(This,object_id,key,resource_attributes) (This)->lpVtbl->GetResourceAttributes(This,object_id,key,resource_attributes)
   1534 #define IPortableDeviceResources_GetStream(This,object_id,key,mode,optimal_buffer_size,stream) (This)->lpVtbl->GetStream(This,object_id,key,mode,optimal_buffer_size,stream)
   1535 #define IPortableDeviceResources_Delete(This,object_id,keys) (This)->lpVtbl->Delete(This,object_id,keys)
   1536 #define IPortableDeviceResources_Cancel(This) (This)->lpVtbl->Cancel(This)
   1537 #define IPortableDeviceResources_CreateResource(This,resource_attributes,data,optimal_write_buffer_size,cookie) (This)->lpVtbl->CreateResource(This,resource_attributes,data,optimal_write_buffer_size,cookie)
   1538 #else
   1539 /*** IUnknown methods ***/
   1540 static inline HRESULT IPortableDeviceResources_QueryInterface(IPortableDeviceResources* This,REFIID riid,void **ppvObject) {
   1541     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1542 }
   1543 static inline ULONG IPortableDeviceResources_AddRef(IPortableDeviceResources* This) {
   1544     return This->lpVtbl->AddRef(This);
   1545 }
   1546 static inline ULONG IPortableDeviceResources_Release(IPortableDeviceResources* This) {
   1547     return This->lpVtbl->Release(This);
   1548 }
   1549 /*** IPortableDeviceResources methods ***/
   1550 static inline HRESULT IPortableDeviceResources_GetSupportedResources(IPortableDeviceResources* This,LPCWSTR object_id,IPortableDeviceKeyCollection **keys) {
   1551     return This->lpVtbl->GetSupportedResources(This,object_id,keys);
   1552 }
   1553 static inline HRESULT IPortableDeviceResources_GetResourceAttributes(IPortableDeviceResources* This,LPCWSTR object_id,REFPROPERTYKEY key,IPortableDeviceValues **resource_attributes) {
   1554     return This->lpVtbl->GetResourceAttributes(This,object_id,key,resource_attributes);
   1555 }
   1556 static inline HRESULT IPortableDeviceResources_GetStream(IPortableDeviceResources* This,LPCWSTR object_id,REFPROPERTYKEY key,const DWORD mode,DWORD *optimal_buffer_size,IStream **stream) {
   1557     return This->lpVtbl->GetStream(This,object_id,key,mode,optimal_buffer_size,stream);
   1558 }
   1559 static inline HRESULT IPortableDeviceResources_Delete(IPortableDeviceResources* This,LPCWSTR object_id,IPortableDeviceKeyCollection *keys) {
   1560     return This->lpVtbl->Delete(This,object_id,keys);
   1561 }
   1562 static inline HRESULT IPortableDeviceResources_Cancel(IPortableDeviceResources* This) {
   1563     return This->lpVtbl->Cancel(This);
   1564 }
   1565 static inline HRESULT IPortableDeviceResources_CreateResource(IPortableDeviceResources* This,IPortableDeviceValues *resource_attributes,IStream **data,DWORD *optimal_write_buffer_size,LPWSTR *cookie) {
   1566     return This->lpVtbl->CreateResource(This,resource_attributes,data,optimal_write_buffer_size,cookie);
   1567 }
   1568 #endif
   1569 #endif
   1570 
   1571 #endif
   1572 
   1573 
   1574 #endif  /* __IPortableDeviceResources_INTERFACE_DEFINED__ */
   1575 
   1576 /*****************************************************************************
   1577  * IPortableDeviceCapabilities interface
   1578  */
   1579 #ifndef __IPortableDeviceCapabilities_INTERFACE_DEFINED__
   1580 #define __IPortableDeviceCapabilities_INTERFACE_DEFINED__
   1581 
   1582 DEFINE_GUID(IID_IPortableDeviceCapabilities, 0x2c8c6dbf, 0xe3dc, 0x4061, 0xbe,0xcc, 0x85,0x42,0xe8,0x10,0xd1,0x26);
   1583 #if defined(__cplusplus) && !defined(CINTERFACE)
   1584 MIDL_INTERFACE("2c8c6dbf-e3dc-4061-becc-8542e810d126")
   1585 IPortableDeviceCapabilities : public IUnknown
   1586 {
   1587     virtual HRESULT STDMETHODCALLTYPE GetSupportedCommands(
   1588         IPortableDeviceKeyCollection **commands) = 0;
   1589 
   1590     virtual HRESULT STDMETHODCALLTYPE GetCommandOptions(
   1591         REFPROPERTYKEY command,
   1592         IPortableDeviceValues **options) = 0;
   1593 
   1594     virtual HRESULT STDMETHODCALLTYPE GetFunctionalCategories(
   1595         IPortableDevicePropVariantCollection **categories) = 0;
   1596 
   1597     virtual HRESULT STDMETHODCALLTYPE GetFunctionalObjects(
   1598         REFGUID category,
   1599         IPortableDevicePropVariantCollection **object_ids) = 0;
   1600 
   1601     virtual HRESULT STDMETHODCALLTYPE GetSupportedContentTypes(
   1602         REFGUID category,
   1603         IPortableDevicePropVariantCollection **content_types) = 0;
   1604 
   1605     virtual HRESULT STDMETHODCALLTYPE GetSupportedFormats(
   1606         REFGUID content_type,
   1607         IPortableDevicePropVariantCollection **formats) = 0;
   1608 
   1609     virtual HRESULT STDMETHODCALLTYPE GetSupportedFormatProperties(
   1610         REFGUID format,
   1611         IPortableDeviceKeyCollection **keys) = 0;
   1612 
   1613     virtual HRESULT STDMETHODCALLTYPE GetFixedPropertyAttributes(
   1614         REFGUID format,
   1615         REFPROPERTYKEY key,
   1616         IPortableDeviceValues **attributes) = 0;
   1617 
   1618     virtual HRESULT STDMETHODCALLTYPE Cancel(
   1619         ) = 0;
   1620 
   1621     virtual HRESULT STDMETHODCALLTYPE GetSupportedEvents(
   1622         IPortableDevicePropVariantCollection **events_collection) = 0;
   1623 
   1624     virtual HRESULT STDMETHODCALLTYPE GetEventOptions(
   1625         REFGUID event_id,
   1626         IPortableDeviceValues **options) = 0;
   1627 
   1628 };
   1629 #ifdef __CRT_UUID_DECL
   1630 __CRT_UUID_DECL(IPortableDeviceCapabilities, 0x2c8c6dbf, 0xe3dc, 0x4061, 0xbe,0xcc, 0x85,0x42,0xe8,0x10,0xd1,0x26)
   1631 #endif
   1632 #else
   1633 typedef struct IPortableDeviceCapabilitiesVtbl {
   1634     BEGIN_INTERFACE
   1635 
   1636     /*** IUnknown methods ***/
   1637     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1638         IPortableDeviceCapabilities *This,
   1639         REFIID riid,
   1640         void **ppvObject);
   1641 
   1642     ULONG (STDMETHODCALLTYPE *AddRef)(
   1643         IPortableDeviceCapabilities *This);
   1644 
   1645     ULONG (STDMETHODCALLTYPE *Release)(
   1646         IPortableDeviceCapabilities *This);
   1647 
   1648     /*** IPortableDeviceCapabilities methods ***/
   1649     HRESULT (STDMETHODCALLTYPE *GetSupportedCommands)(
   1650         IPortableDeviceCapabilities *This,
   1651         IPortableDeviceKeyCollection **commands);
   1652 
   1653     HRESULT (STDMETHODCALLTYPE *GetCommandOptions)(
   1654         IPortableDeviceCapabilities *This,
   1655         REFPROPERTYKEY command,
   1656         IPortableDeviceValues **options);
   1657 
   1658     HRESULT (STDMETHODCALLTYPE *GetFunctionalCategories)(
   1659         IPortableDeviceCapabilities *This,
   1660         IPortableDevicePropVariantCollection **categories);
   1661 
   1662     HRESULT (STDMETHODCALLTYPE *GetFunctionalObjects)(
   1663         IPortableDeviceCapabilities *This,
   1664         REFGUID category,
   1665         IPortableDevicePropVariantCollection **object_ids);
   1666 
   1667     HRESULT (STDMETHODCALLTYPE *GetSupportedContentTypes)(
   1668         IPortableDeviceCapabilities *This,
   1669         REFGUID category,
   1670         IPortableDevicePropVariantCollection **content_types);
   1671 
   1672     HRESULT (STDMETHODCALLTYPE *GetSupportedFormats)(
   1673         IPortableDeviceCapabilities *This,
   1674         REFGUID content_type,
   1675         IPortableDevicePropVariantCollection **formats);
   1676 
   1677     HRESULT (STDMETHODCALLTYPE *GetSupportedFormatProperties)(
   1678         IPortableDeviceCapabilities *This,
   1679         REFGUID format,
   1680         IPortableDeviceKeyCollection **keys);
   1681 
   1682     HRESULT (STDMETHODCALLTYPE *GetFixedPropertyAttributes)(
   1683         IPortableDeviceCapabilities *This,
   1684         REFGUID format,
   1685         REFPROPERTYKEY key,
   1686         IPortableDeviceValues **attributes);
   1687 
   1688     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1689         IPortableDeviceCapabilities *This);
   1690 
   1691     HRESULT (STDMETHODCALLTYPE *GetSupportedEvents)(
   1692         IPortableDeviceCapabilities *This,
   1693         IPortableDevicePropVariantCollection **events_collection);
   1694 
   1695     HRESULT (STDMETHODCALLTYPE *GetEventOptions)(
   1696         IPortableDeviceCapabilities *This,
   1697         REFGUID event_id,
   1698         IPortableDeviceValues **options);
   1699 
   1700     END_INTERFACE
   1701 } IPortableDeviceCapabilitiesVtbl;
   1702 
   1703 interface IPortableDeviceCapabilities {
   1704     CONST_VTBL IPortableDeviceCapabilitiesVtbl* lpVtbl;
   1705 };
   1706 
   1707 #ifdef COBJMACROS
   1708 #ifndef WIDL_C_INLINE_WRAPPERS
   1709 /*** IUnknown methods ***/
   1710 #define IPortableDeviceCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1711 #define IPortableDeviceCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
   1712 #define IPortableDeviceCapabilities_Release(This) (This)->lpVtbl->Release(This)
   1713 /*** IPortableDeviceCapabilities methods ***/
   1714 #define IPortableDeviceCapabilities_GetSupportedCommands(This,commands) (This)->lpVtbl->GetSupportedCommands(This,commands)
   1715 #define IPortableDeviceCapabilities_GetCommandOptions(This,command,options) (This)->lpVtbl->GetCommandOptions(This,command,options)
   1716 #define IPortableDeviceCapabilities_GetFunctionalCategories(This,categories) (This)->lpVtbl->GetFunctionalCategories(This,categories)
   1717 #define IPortableDeviceCapabilities_GetFunctionalObjects(This,category,object_ids) (This)->lpVtbl->GetFunctionalObjects(This,category,object_ids)
   1718 #define IPortableDeviceCapabilities_GetSupportedContentTypes(This,category,content_types) (This)->lpVtbl->GetSupportedContentTypes(This,category,content_types)
   1719 #define IPortableDeviceCapabilities_GetSupportedFormats(This,content_type,formats) (This)->lpVtbl->GetSupportedFormats(This,content_type,formats)
   1720 #define IPortableDeviceCapabilities_GetSupportedFormatProperties(This,format,keys) (This)->lpVtbl->GetSupportedFormatProperties(This,format,keys)
   1721 #define IPortableDeviceCapabilities_GetFixedPropertyAttributes(This,format,key,attributes) (This)->lpVtbl->GetFixedPropertyAttributes(This,format,key,attributes)
   1722 #define IPortableDeviceCapabilities_Cancel(This) (This)->lpVtbl->Cancel(This)
   1723 #define IPortableDeviceCapabilities_GetSupportedEvents(This,events_collection) (This)->lpVtbl->GetSupportedEvents(This,events_collection)
   1724 #define IPortableDeviceCapabilities_GetEventOptions(This,event_id,options) (This)->lpVtbl->GetEventOptions(This,event_id,options)
   1725 #else
   1726 /*** IUnknown methods ***/
   1727 static inline HRESULT IPortableDeviceCapabilities_QueryInterface(IPortableDeviceCapabilities* This,REFIID riid,void **ppvObject) {
   1728     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1729 }
   1730 static inline ULONG IPortableDeviceCapabilities_AddRef(IPortableDeviceCapabilities* This) {
   1731     return This->lpVtbl->AddRef(This);
   1732 }
   1733 static inline ULONG IPortableDeviceCapabilities_Release(IPortableDeviceCapabilities* This) {
   1734     return This->lpVtbl->Release(This);
   1735 }
   1736 /*** IPortableDeviceCapabilities methods ***/
   1737 static inline HRESULT IPortableDeviceCapabilities_GetSupportedCommands(IPortableDeviceCapabilities* This,IPortableDeviceKeyCollection **commands) {
   1738     return This->lpVtbl->GetSupportedCommands(This,commands);
   1739 }
   1740 static inline HRESULT IPortableDeviceCapabilities_GetCommandOptions(IPortableDeviceCapabilities* This,REFPROPERTYKEY command,IPortableDeviceValues **options) {
   1741     return This->lpVtbl->GetCommandOptions(This,command,options);
   1742 }
   1743 static inline HRESULT IPortableDeviceCapabilities_GetFunctionalCategories(IPortableDeviceCapabilities* This,IPortableDevicePropVariantCollection **categories) {
   1744     return This->lpVtbl->GetFunctionalCategories(This,categories);
   1745 }
   1746 static inline HRESULT IPortableDeviceCapabilities_GetFunctionalObjects(IPortableDeviceCapabilities* This,REFGUID category,IPortableDevicePropVariantCollection **object_ids) {
   1747     return This->lpVtbl->GetFunctionalObjects(This,category,object_ids);
   1748 }
   1749 static inline HRESULT IPortableDeviceCapabilities_GetSupportedContentTypes(IPortableDeviceCapabilities* This,REFGUID category,IPortableDevicePropVariantCollection **content_types) {
   1750     return This->lpVtbl->GetSupportedContentTypes(This,category,content_types);
   1751 }
   1752 static inline HRESULT IPortableDeviceCapabilities_GetSupportedFormats(IPortableDeviceCapabilities* This,REFGUID content_type,IPortableDevicePropVariantCollection **formats) {
   1753     return This->lpVtbl->GetSupportedFormats(This,content_type,formats);
   1754 }
   1755 static inline HRESULT IPortableDeviceCapabilities_GetSupportedFormatProperties(IPortableDeviceCapabilities* This,REFGUID format,IPortableDeviceKeyCollection **keys) {
   1756     return This->lpVtbl->GetSupportedFormatProperties(This,format,keys);
   1757 }
   1758 static inline HRESULT IPortableDeviceCapabilities_GetFixedPropertyAttributes(IPortableDeviceCapabilities* This,REFGUID format,REFPROPERTYKEY key,IPortableDeviceValues **attributes) {
   1759     return This->lpVtbl->GetFixedPropertyAttributes(This,format,key,attributes);
   1760 }
   1761 static inline HRESULT IPortableDeviceCapabilities_Cancel(IPortableDeviceCapabilities* This) {
   1762     return This->lpVtbl->Cancel(This);
   1763 }
   1764 static inline HRESULT IPortableDeviceCapabilities_GetSupportedEvents(IPortableDeviceCapabilities* This,IPortableDevicePropVariantCollection **events_collection) {
   1765     return This->lpVtbl->GetSupportedEvents(This,events_collection);
   1766 }
   1767 static inline HRESULT IPortableDeviceCapabilities_GetEventOptions(IPortableDeviceCapabilities* This,REFGUID event_id,IPortableDeviceValues **options) {
   1768     return This->lpVtbl->GetEventOptions(This,event_id,options);
   1769 }
   1770 #endif
   1771 #endif
   1772 
   1773 #endif
   1774 
   1775 
   1776 #endif  /* __IPortableDeviceCapabilities_INTERFACE_DEFINED__ */
   1777 
   1778 /*****************************************************************************
   1779  * IPortableDeviceEventCallback interface
   1780  */
   1781 #ifndef __IPortableDeviceEventCallback_INTERFACE_DEFINED__
   1782 #define __IPortableDeviceEventCallback_INTERFACE_DEFINED__
   1783 
   1784 DEFINE_GUID(IID_IPortableDeviceEventCallback, 0xa8792a31, 0xf385, 0x493c, 0xa8,0x93, 0x40,0xf6,0x4e,0xb4,0x5f,0x6e);
   1785 #if defined(__cplusplus) && !defined(CINTERFACE)
   1786 MIDL_INTERFACE("a8792a31-f385-493c-a893-40f64eb45f6e")
   1787 IPortableDeviceEventCallback : public IUnknown
   1788 {
   1789     virtual HRESULT STDMETHODCALLTYPE OnEvent(
   1790         IPortableDeviceValues *event_parameters) = 0;
   1791 
   1792 };
   1793 #ifdef __CRT_UUID_DECL
   1794 __CRT_UUID_DECL(IPortableDeviceEventCallback, 0xa8792a31, 0xf385, 0x493c, 0xa8,0x93, 0x40,0xf6,0x4e,0xb4,0x5f,0x6e)
   1795 #endif
   1796 #else
   1797 typedef struct IPortableDeviceEventCallbackVtbl {
   1798     BEGIN_INTERFACE
   1799 
   1800     /*** IUnknown methods ***/
   1801     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1802         IPortableDeviceEventCallback *This,
   1803         REFIID riid,
   1804         void **ppvObject);
   1805 
   1806     ULONG (STDMETHODCALLTYPE *AddRef)(
   1807         IPortableDeviceEventCallback *This);
   1808 
   1809     ULONG (STDMETHODCALLTYPE *Release)(
   1810         IPortableDeviceEventCallback *This);
   1811 
   1812     /*** IPortableDeviceEventCallback methods ***/
   1813     HRESULT (STDMETHODCALLTYPE *OnEvent)(
   1814         IPortableDeviceEventCallback *This,
   1815         IPortableDeviceValues *event_parameters);
   1816 
   1817     END_INTERFACE
   1818 } IPortableDeviceEventCallbackVtbl;
   1819 
   1820 interface IPortableDeviceEventCallback {
   1821     CONST_VTBL IPortableDeviceEventCallbackVtbl* lpVtbl;
   1822 };
   1823 
   1824 #ifdef COBJMACROS
   1825 #ifndef WIDL_C_INLINE_WRAPPERS
   1826 /*** IUnknown methods ***/
   1827 #define IPortableDeviceEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1828 #define IPortableDeviceEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   1829 #define IPortableDeviceEventCallback_Release(This) (This)->lpVtbl->Release(This)
   1830 /*** IPortableDeviceEventCallback methods ***/
   1831 #define IPortableDeviceEventCallback_OnEvent(This,event_parameters) (This)->lpVtbl->OnEvent(This,event_parameters)
   1832 #else
   1833 /*** IUnknown methods ***/
   1834 static inline HRESULT IPortableDeviceEventCallback_QueryInterface(IPortableDeviceEventCallback* This,REFIID riid,void **ppvObject) {
   1835     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1836 }
   1837 static inline ULONG IPortableDeviceEventCallback_AddRef(IPortableDeviceEventCallback* This) {
   1838     return This->lpVtbl->AddRef(This);
   1839 }
   1840 static inline ULONG IPortableDeviceEventCallback_Release(IPortableDeviceEventCallback* This) {
   1841     return This->lpVtbl->Release(This);
   1842 }
   1843 /*** IPortableDeviceEventCallback methods ***/
   1844 static inline HRESULT IPortableDeviceEventCallback_OnEvent(IPortableDeviceEventCallback* This,IPortableDeviceValues *event_parameters) {
   1845     return This->lpVtbl->OnEvent(This,event_parameters);
   1846 }
   1847 #endif
   1848 #endif
   1849 
   1850 #endif
   1851 
   1852 
   1853 #endif  /* __IPortableDeviceEventCallback_INTERFACE_DEFINED__ */
   1854 
   1855 /*****************************************************************************
   1856  * IPortableDeviceDataStream interface
   1857  */
   1858 #ifndef __IPortableDeviceDataStream_INTERFACE_DEFINED__
   1859 #define __IPortableDeviceDataStream_INTERFACE_DEFINED__
   1860 
   1861 DEFINE_GUID(IID_IPortableDeviceDataStream, 0x88e04db3, 0x1012, 0x4d64, 0x99,0x96, 0xf7,0x03,0xa9,0x50,0xd3,0xf4);
   1862 #if defined(__cplusplus) && !defined(CINTERFACE)
   1863 MIDL_INTERFACE("88e04db3-1012-4d64-9996-f703a950d3f4")
   1864 IPortableDeviceDataStream : public IStream
   1865 {
   1866     virtual HRESULT STDMETHODCALLTYPE GetObjectID(
   1867         LPWSTR *object_id) = 0;
   1868 
   1869     virtual HRESULT STDMETHODCALLTYPE Cancel(
   1870         ) = 0;
   1871 
   1872 };
   1873 #ifdef __CRT_UUID_DECL
   1874 __CRT_UUID_DECL(IPortableDeviceDataStream, 0x88e04db3, 0x1012, 0x4d64, 0x99,0x96, 0xf7,0x03,0xa9,0x50,0xd3,0xf4)
   1875 #endif
   1876 #else
   1877 typedef struct IPortableDeviceDataStreamVtbl {
   1878     BEGIN_INTERFACE
   1879 
   1880     /*** IUnknown methods ***/
   1881     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1882         IPortableDeviceDataStream *This,
   1883         REFIID riid,
   1884         void **ppvObject);
   1885 
   1886     ULONG (STDMETHODCALLTYPE *AddRef)(
   1887         IPortableDeviceDataStream *This);
   1888 
   1889     ULONG (STDMETHODCALLTYPE *Release)(
   1890         IPortableDeviceDataStream *This);
   1891 
   1892     /*** ISequentialStream methods ***/
   1893     HRESULT (STDMETHODCALLTYPE *Read)(
   1894         IPortableDeviceDataStream *This,
   1895         void *pv,
   1896         ULONG cb,
   1897         ULONG *pcbRead);
   1898 
   1899     HRESULT (STDMETHODCALLTYPE *Write)(
   1900         IPortableDeviceDataStream *This,
   1901         const void *pv,
   1902         ULONG cb,
   1903         ULONG *pcbWritten);
   1904 
   1905     /*** IStream methods ***/
   1906     HRESULT (STDMETHODCALLTYPE *Seek)(
   1907         IPortableDeviceDataStream *This,
   1908         LARGE_INTEGER dlibMove,
   1909         DWORD dwOrigin,
   1910         ULARGE_INTEGER *plibNewPosition);
   1911 
   1912     HRESULT (STDMETHODCALLTYPE *SetSize)(
   1913         IPortableDeviceDataStream *This,
   1914         ULARGE_INTEGER libNewSize);
   1915 
   1916     HRESULT (STDMETHODCALLTYPE *CopyTo)(
   1917         IPortableDeviceDataStream *This,
   1918         IStream *pstm,
   1919         ULARGE_INTEGER cb,
   1920         ULARGE_INTEGER *pcbRead,
   1921         ULARGE_INTEGER *pcbWritten);
   1922 
   1923     HRESULT (STDMETHODCALLTYPE *Commit)(
   1924         IPortableDeviceDataStream *This,
   1925         DWORD grfCommitFlags);
   1926 
   1927     HRESULT (STDMETHODCALLTYPE *Revert)(
   1928         IPortableDeviceDataStream *This);
   1929 
   1930     HRESULT (STDMETHODCALLTYPE *LockRegion)(
   1931         IPortableDeviceDataStream *This,
   1932         ULARGE_INTEGER libOffset,
   1933         ULARGE_INTEGER cb,
   1934         DWORD dwLockType);
   1935 
   1936     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
   1937         IPortableDeviceDataStream *This,
   1938         ULARGE_INTEGER libOffset,
   1939         ULARGE_INTEGER cb,
   1940         DWORD dwLockType);
   1941 
   1942     HRESULT (STDMETHODCALLTYPE *Stat)(
   1943         IPortableDeviceDataStream *This,
   1944         STATSTG *pstatstg,
   1945         DWORD grfStatFlag);
   1946 
   1947     HRESULT (STDMETHODCALLTYPE *Clone)(
   1948         IPortableDeviceDataStream *This,
   1949         IStream **ppstm);
   1950 
   1951     /*** IPortableDeviceDataStream methods ***/
   1952     HRESULT (STDMETHODCALLTYPE *GetObjectID)(
   1953         IPortableDeviceDataStream *This,
   1954         LPWSTR *object_id);
   1955 
   1956     HRESULT (STDMETHODCALLTYPE *Cancel)(
   1957         IPortableDeviceDataStream *This);
   1958 
   1959     END_INTERFACE
   1960 } IPortableDeviceDataStreamVtbl;
   1961 
   1962 interface IPortableDeviceDataStream {
   1963     CONST_VTBL IPortableDeviceDataStreamVtbl* lpVtbl;
   1964 };
   1965 
   1966 #ifdef COBJMACROS
   1967 #ifndef WIDL_C_INLINE_WRAPPERS
   1968 /*** IUnknown methods ***/
   1969 #define IPortableDeviceDataStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1970 #define IPortableDeviceDataStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   1971 #define IPortableDeviceDataStream_Release(This) (This)->lpVtbl->Release(This)
   1972 /*** ISequentialStream methods ***/
   1973 #define IPortableDeviceDataStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   1974 #define IPortableDeviceDataStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
   1975 /*** IStream methods ***/
   1976 #define IPortableDeviceDataStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   1977 #define IPortableDeviceDataStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
   1978 #define IPortableDeviceDataStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
   1979 #define IPortableDeviceDataStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
   1980 #define IPortableDeviceDataStream_Revert(This) (This)->lpVtbl->Revert(This)
   1981 #define IPortableDeviceDataStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
   1982 #define IPortableDeviceDataStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
   1983 #define IPortableDeviceDataStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
   1984 #define IPortableDeviceDataStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
   1985 /*** IPortableDeviceDataStream methods ***/
   1986 #define IPortableDeviceDataStream_GetObjectID(This,object_id) (This)->lpVtbl->GetObjectID(This,object_id)
   1987 #define IPortableDeviceDataStream_Cancel(This) (This)->lpVtbl->Cancel(This)
   1988 #else
   1989 /*** IUnknown methods ***/
   1990 static inline HRESULT IPortableDeviceDataStream_QueryInterface(IPortableDeviceDataStream* This,REFIID riid,void **ppvObject) {
   1991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1992 }
   1993 static inline ULONG IPortableDeviceDataStream_AddRef(IPortableDeviceDataStream* This) {
   1994     return This->lpVtbl->AddRef(This);
   1995 }
   1996 static inline ULONG IPortableDeviceDataStream_Release(IPortableDeviceDataStream* This) {
   1997     return This->lpVtbl->Release(This);
   1998 }
   1999 /*** ISequentialStream methods ***/
   2000 static inline HRESULT IPortableDeviceDataStream_Read(IPortableDeviceDataStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
   2001     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   2002 }
   2003 static inline HRESULT IPortableDeviceDataStream_Write(IPortableDeviceDataStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
   2004     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
   2005 }
   2006 /*** IStream methods ***/
   2007 static inline HRESULT IPortableDeviceDataStream_Seek(IPortableDeviceDataStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   2008     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   2009 }
   2010 static inline HRESULT IPortableDeviceDataStream_SetSize(IPortableDeviceDataStream* This,ULARGE_INTEGER libNewSize) {
   2011     return This->lpVtbl->SetSize(This,libNewSize);
   2012 }
   2013 static inline HRESULT IPortableDeviceDataStream_CopyTo(IPortableDeviceDataStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
   2014     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
   2015 }
   2016 static inline HRESULT IPortableDeviceDataStream_Commit(IPortableDeviceDataStream* This,DWORD grfCommitFlags) {
   2017     return This->lpVtbl->Commit(This,grfCommitFlags);
   2018 }
   2019 static inline HRESULT IPortableDeviceDataStream_Revert(IPortableDeviceDataStream* This) {
   2020     return This->lpVtbl->Revert(This);
   2021 }
   2022 static inline HRESULT IPortableDeviceDataStream_LockRegion(IPortableDeviceDataStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2023     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
   2024 }
   2025 static inline HRESULT IPortableDeviceDataStream_UnlockRegion(IPortableDeviceDataStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
   2026     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
   2027 }
   2028 static inline HRESULT IPortableDeviceDataStream_Stat(IPortableDeviceDataStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
   2029     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
   2030 }
   2031 static inline HRESULT IPortableDeviceDataStream_Clone(IPortableDeviceDataStream* This,IStream **ppstm) {
   2032     return This->lpVtbl->Clone(This,ppstm);
   2033 }
   2034 /*** IPortableDeviceDataStream methods ***/
   2035 static inline HRESULT IPortableDeviceDataStream_GetObjectID(IPortableDeviceDataStream* This,LPWSTR *object_id) {
   2036     return This->lpVtbl->GetObjectID(This,object_id);
   2037 }
   2038 static inline HRESULT IPortableDeviceDataStream_Cancel(IPortableDeviceDataStream* This) {
   2039     return This->lpVtbl->Cancel(This);
   2040 }
   2041 #endif
   2042 #endif
   2043 
   2044 #endif
   2045 
   2046 
   2047 #endif  /* __IPortableDeviceDataStream_INTERFACE_DEFINED__ */
   2048 
   2049 /*****************************************************************************
   2050  * IPortableDeviceUnitsStream interface
   2051  */
   2052 #ifndef __IPortableDeviceUnitsStream_INTERFACE_DEFINED__
   2053 #define __IPortableDeviceUnitsStream_INTERFACE_DEFINED__
   2054 
   2055 DEFINE_GUID(IID_IPortableDeviceUnitsStream, 0x5e98025f, 0xbfc4, 0x47a2, 0x9a,0x5f, 0xbc,0x90,0x0a,0x50,0x7c,0x67);
   2056 #if defined(__cplusplus) && !defined(CINTERFACE)
   2057 MIDL_INTERFACE("5e98025f-bfc4-47a2-9a5f-bc900a507c67")
   2058 IPortableDeviceUnitsStream : public IUnknown
   2059 {
   2060     virtual HRESULT STDMETHODCALLTYPE SeekInUnits(
   2061         LARGE_INTEGER dlib_move,
   2062         WPD_STREAM_UNITS units,
   2063         DWORD origin,
   2064         ULARGE_INTEGER *lib_new_position) = 0;
   2065 
   2066     virtual HRESULT STDMETHODCALLTYPE Cancel(
   2067         ) = 0;
   2068 
   2069 };
   2070 #ifdef __CRT_UUID_DECL
   2071 __CRT_UUID_DECL(IPortableDeviceUnitsStream, 0x5e98025f, 0xbfc4, 0x47a2, 0x9a,0x5f, 0xbc,0x90,0x0a,0x50,0x7c,0x67)
   2072 #endif
   2073 #else
   2074 typedef struct IPortableDeviceUnitsStreamVtbl {
   2075     BEGIN_INTERFACE
   2076 
   2077     /*** IUnknown methods ***/
   2078     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2079         IPortableDeviceUnitsStream *This,
   2080         REFIID riid,
   2081         void **ppvObject);
   2082 
   2083     ULONG (STDMETHODCALLTYPE *AddRef)(
   2084         IPortableDeviceUnitsStream *This);
   2085 
   2086     ULONG (STDMETHODCALLTYPE *Release)(
   2087         IPortableDeviceUnitsStream *This);
   2088 
   2089     /*** IPortableDeviceUnitsStream methods ***/
   2090     HRESULT (STDMETHODCALLTYPE *SeekInUnits)(
   2091         IPortableDeviceUnitsStream *This,
   2092         LARGE_INTEGER dlib_move,
   2093         WPD_STREAM_UNITS units,
   2094         DWORD origin,
   2095         ULARGE_INTEGER *lib_new_position);
   2096 
   2097     HRESULT (STDMETHODCALLTYPE *Cancel)(
   2098         IPortableDeviceUnitsStream *This);
   2099 
   2100     END_INTERFACE
   2101 } IPortableDeviceUnitsStreamVtbl;
   2102 
   2103 interface IPortableDeviceUnitsStream {
   2104     CONST_VTBL IPortableDeviceUnitsStreamVtbl* lpVtbl;
   2105 };
   2106 
   2107 #ifdef COBJMACROS
   2108 #ifndef WIDL_C_INLINE_WRAPPERS
   2109 /*** IUnknown methods ***/
   2110 #define IPortableDeviceUnitsStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2111 #define IPortableDeviceUnitsStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2112 #define IPortableDeviceUnitsStream_Release(This) (This)->lpVtbl->Release(This)
   2113 /*** IPortableDeviceUnitsStream methods ***/
   2114 #define IPortableDeviceUnitsStream_SeekInUnits(This,dlib_move,units,origin,lib_new_position) (This)->lpVtbl->SeekInUnits(This,dlib_move,units,origin,lib_new_position)
   2115 #define IPortableDeviceUnitsStream_Cancel(This) (This)->lpVtbl->Cancel(This)
   2116 #else
   2117 /*** IUnknown methods ***/
   2118 static inline HRESULT IPortableDeviceUnitsStream_QueryInterface(IPortableDeviceUnitsStream* This,REFIID riid,void **ppvObject) {
   2119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2120 }
   2121 static inline ULONG IPortableDeviceUnitsStream_AddRef(IPortableDeviceUnitsStream* This) {
   2122     return This->lpVtbl->AddRef(This);
   2123 }
   2124 static inline ULONG IPortableDeviceUnitsStream_Release(IPortableDeviceUnitsStream* This) {
   2125     return This->lpVtbl->Release(This);
   2126 }
   2127 /*** IPortableDeviceUnitsStream methods ***/
   2128 static inline HRESULT IPortableDeviceUnitsStream_SeekInUnits(IPortableDeviceUnitsStream* This,LARGE_INTEGER dlib_move,WPD_STREAM_UNITS units,DWORD origin,ULARGE_INTEGER *lib_new_position) {
   2129     return This->lpVtbl->SeekInUnits(This,dlib_move,units,origin,lib_new_position);
   2130 }
   2131 static inline HRESULT IPortableDeviceUnitsStream_Cancel(IPortableDeviceUnitsStream* This) {
   2132     return This->lpVtbl->Cancel(This);
   2133 }
   2134 #endif
   2135 #endif
   2136 
   2137 #endif
   2138 
   2139 HRESULT STDMETHODCALLTYPE IPortableDeviceUnitsStream_RemoteSeekInUnits_Proxy(
   2140     IPortableDeviceUnitsStream* This,
   2141     LARGE_INTEGER dlib_move,
   2142     WPD_STREAM_UNITS units,
   2143     DWORD origin,
   2144     ULARGE_INTEGER *lib_new_position);
   2145 void __RPC_STUB IPortableDeviceUnitsStream_RemoteSeekInUnits_Stub(
   2146     IRpcStubBuffer* This,
   2147     IRpcChannelBuffer* pRpcChannelBuffer,
   2148     PRPC_MESSAGE pRpcMessage,
   2149     DWORD* pdwStubPhase);
   2150 HRESULT CALLBACK IPortableDeviceUnitsStream_SeekInUnits_Proxy(
   2151     IPortableDeviceUnitsStream* This,
   2152     LARGE_INTEGER dlib_move,
   2153     WPD_STREAM_UNITS units,
   2154     DWORD origin,
   2155     ULARGE_INTEGER *lib_new_position);
   2156 HRESULT __RPC_STUB IPortableDeviceUnitsStream_SeekInUnits_Stub(
   2157     IPortableDeviceUnitsStream* This,
   2158     LARGE_INTEGER dlib_move,
   2159     WPD_STREAM_UNITS units,
   2160     DWORD origin,
   2161     ULARGE_INTEGER *lib_new_position);
   2162 
   2163 #endif  /* __IPortableDeviceUnitsStream_INTERFACE_DEFINED__ */
   2164 
   2165 /*****************************************************************************
   2166  * IPortableDevicePropertiesBulk interface
   2167  */
   2168 #ifndef __IPortableDevicePropertiesBulk_INTERFACE_DEFINED__
   2169 #define __IPortableDevicePropertiesBulk_INTERFACE_DEFINED__
   2170 
   2171 DEFINE_GUID(IID_IPortableDevicePropertiesBulk, 0x482b05c0, 0x4056, 0x44ed, 0x9e,0x0f, 0x5e,0x23,0xb0,0x09,0xda,0x93);
   2172 #if defined(__cplusplus) && !defined(CINTERFACE)
   2173 MIDL_INTERFACE("482b05c0-4056-44ed-9e0f-5e23b009da93")
   2174 IPortableDevicePropertiesBulk : public IUnknown
   2175 {
   2176     virtual HRESULT STDMETHODCALLTYPE QueueGetValuesByObjectList(
   2177         IPortableDevicePropVariantCollection *object_ids,
   2178         IPortableDeviceKeyCollection *keys,
   2179         IPortableDevicePropertiesBulkCallback *callback,
   2180         GUID *context) = 0;
   2181 
   2182     virtual HRESULT STDMETHODCALLTYPE QueueGetValuesByObjectFormat(
   2183         REFGUID guid_object_format,
   2184         LPCWSTR parent_object_id,
   2185         const DWORD depth,
   2186         IPortableDeviceKeyCollection *keys,
   2187         IPortableDevicePropertiesBulkCallback *callback,
   2188         GUID *context) = 0;
   2189 
   2190     virtual HRESULT STDMETHODCALLTYPE QueueSetValuesByObjectList(
   2191         IPortableDeviceValuesCollection *object_values,
   2192         IPortableDevicePropertiesBulkCallback *callback,
   2193         GUID *context) = 0;
   2194 
   2195     virtual HRESULT STDMETHODCALLTYPE Start(
   2196         REFGUID context) = 0;
   2197 
   2198     virtual HRESULT STDMETHODCALLTYPE Cancel(
   2199         REFGUID context) = 0;
   2200 
   2201 };
   2202 #ifdef __CRT_UUID_DECL
   2203 __CRT_UUID_DECL(IPortableDevicePropertiesBulk, 0x482b05c0, 0x4056, 0x44ed, 0x9e,0x0f, 0x5e,0x23,0xb0,0x09,0xda,0x93)
   2204 #endif
   2205 #else
   2206 typedef struct IPortableDevicePropertiesBulkVtbl {
   2207     BEGIN_INTERFACE
   2208 
   2209     /*** IUnknown methods ***/
   2210     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2211         IPortableDevicePropertiesBulk *This,
   2212         REFIID riid,
   2213         void **ppvObject);
   2214 
   2215     ULONG (STDMETHODCALLTYPE *AddRef)(
   2216         IPortableDevicePropertiesBulk *This);
   2217 
   2218     ULONG (STDMETHODCALLTYPE *Release)(
   2219         IPortableDevicePropertiesBulk *This);
   2220 
   2221     /*** IPortableDevicePropertiesBulk methods ***/
   2222     HRESULT (STDMETHODCALLTYPE *QueueGetValuesByObjectList)(
   2223         IPortableDevicePropertiesBulk *This,
   2224         IPortableDevicePropVariantCollection *object_ids,
   2225         IPortableDeviceKeyCollection *keys,
   2226         IPortableDevicePropertiesBulkCallback *callback,
   2227         GUID *context);
   2228 
   2229     HRESULT (STDMETHODCALLTYPE *QueueGetValuesByObjectFormat)(
   2230         IPortableDevicePropertiesBulk *This,
   2231         REFGUID guid_object_format,
   2232         LPCWSTR parent_object_id,
   2233         const DWORD depth,
   2234         IPortableDeviceKeyCollection *keys,
   2235         IPortableDevicePropertiesBulkCallback *callback,
   2236         GUID *context);
   2237 
   2238     HRESULT (STDMETHODCALLTYPE *QueueSetValuesByObjectList)(
   2239         IPortableDevicePropertiesBulk *This,
   2240         IPortableDeviceValuesCollection *object_values,
   2241         IPortableDevicePropertiesBulkCallback *callback,
   2242         GUID *context);
   2243 
   2244     HRESULT (STDMETHODCALLTYPE *Start)(
   2245         IPortableDevicePropertiesBulk *This,
   2246         REFGUID context);
   2247 
   2248     HRESULT (STDMETHODCALLTYPE *Cancel)(
   2249         IPortableDevicePropertiesBulk *This,
   2250         REFGUID context);
   2251 
   2252     END_INTERFACE
   2253 } IPortableDevicePropertiesBulkVtbl;
   2254 
   2255 interface IPortableDevicePropertiesBulk {
   2256     CONST_VTBL IPortableDevicePropertiesBulkVtbl* lpVtbl;
   2257 };
   2258 
   2259 #ifdef COBJMACROS
   2260 #ifndef WIDL_C_INLINE_WRAPPERS
   2261 /*** IUnknown methods ***/
   2262 #define IPortableDevicePropertiesBulk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2263 #define IPortableDevicePropertiesBulk_AddRef(This) (This)->lpVtbl->AddRef(This)
   2264 #define IPortableDevicePropertiesBulk_Release(This) (This)->lpVtbl->Release(This)
   2265 /*** IPortableDevicePropertiesBulk methods ***/
   2266 #define IPortableDevicePropertiesBulk_QueueGetValuesByObjectList(This,object_ids,keys,callback,context) (This)->lpVtbl->QueueGetValuesByObjectList(This,object_ids,keys,callback,context)
   2267 #define IPortableDevicePropertiesBulk_QueueGetValuesByObjectFormat(This,guid_object_format,parent_object_id,depth,keys,callback,context) (This)->lpVtbl->QueueGetValuesByObjectFormat(This,guid_object_format,parent_object_id,depth,keys,callback,context)
   2268 #define IPortableDevicePropertiesBulk_QueueSetValuesByObjectList(This,object_values,callback,context) (This)->lpVtbl->QueueSetValuesByObjectList(This,object_values,callback,context)
   2269 #define IPortableDevicePropertiesBulk_Start(This,context) (This)->lpVtbl->Start(This,context)
   2270 #define IPortableDevicePropertiesBulk_Cancel(This,context) (This)->lpVtbl->Cancel(This,context)
   2271 #else
   2272 /*** IUnknown methods ***/
   2273 static inline HRESULT IPortableDevicePropertiesBulk_QueryInterface(IPortableDevicePropertiesBulk* This,REFIID riid,void **ppvObject) {
   2274     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2275 }
   2276 static inline ULONG IPortableDevicePropertiesBulk_AddRef(IPortableDevicePropertiesBulk* This) {
   2277     return This->lpVtbl->AddRef(This);
   2278 }
   2279 static inline ULONG IPortableDevicePropertiesBulk_Release(IPortableDevicePropertiesBulk* This) {
   2280     return This->lpVtbl->Release(This);
   2281 }
   2282 /*** IPortableDevicePropertiesBulk methods ***/
   2283 static inline HRESULT IPortableDevicePropertiesBulk_QueueGetValuesByObjectList(IPortableDevicePropertiesBulk* This,IPortableDevicePropVariantCollection *object_ids,IPortableDeviceKeyCollection *keys,IPortableDevicePropertiesBulkCallback *callback,GUID *context) {
   2284     return This->lpVtbl->QueueGetValuesByObjectList(This,object_ids,keys,callback,context);
   2285 }
   2286 static inline HRESULT IPortableDevicePropertiesBulk_QueueGetValuesByObjectFormat(IPortableDevicePropertiesBulk* This,REFGUID guid_object_format,LPCWSTR parent_object_id,const DWORD depth,IPortableDeviceKeyCollection *keys,IPortableDevicePropertiesBulkCallback *callback,GUID *context) {
   2287     return This->lpVtbl->QueueGetValuesByObjectFormat(This,guid_object_format,parent_object_id,depth,keys,callback,context);
   2288 }
   2289 static inline HRESULT IPortableDevicePropertiesBulk_QueueSetValuesByObjectList(IPortableDevicePropertiesBulk* This,IPortableDeviceValuesCollection *object_values,IPortableDevicePropertiesBulkCallback *callback,GUID *context) {
   2290     return This->lpVtbl->QueueSetValuesByObjectList(This,object_values,callback,context);
   2291 }
   2292 static inline HRESULT IPortableDevicePropertiesBulk_Start(IPortableDevicePropertiesBulk* This,REFGUID context) {
   2293     return This->lpVtbl->Start(This,context);
   2294 }
   2295 static inline HRESULT IPortableDevicePropertiesBulk_Cancel(IPortableDevicePropertiesBulk* This,REFGUID context) {
   2296     return This->lpVtbl->Cancel(This,context);
   2297 }
   2298 #endif
   2299 #endif
   2300 
   2301 #endif
   2302 
   2303 
   2304 #endif  /* __IPortableDevicePropertiesBulk_INTERFACE_DEFINED__ */
   2305 
   2306 /*****************************************************************************
   2307  * IPortableDevicePropertiesBulkCallback interface
   2308  */
   2309 #ifndef __IPortableDevicePropertiesBulkCallback_INTERFACE_DEFINED__
   2310 #define __IPortableDevicePropertiesBulkCallback_INTERFACE_DEFINED__
   2311 
   2312 DEFINE_GUID(IID_IPortableDevicePropertiesBulkCallback, 0x9deacb80, 0x11e8, 0x40e3, 0xa9,0xf3, 0xf5,0x57,0x98,0x6a,0x78,0x45);
   2313 #if defined(__cplusplus) && !defined(CINTERFACE)
   2314 MIDL_INTERFACE("9deacb80-11e8-40e3-a9f3-f557986a7845")
   2315 IPortableDevicePropertiesBulkCallback : public IUnknown
   2316 {
   2317     virtual HRESULT STDMETHODCALLTYPE OnStart(
   2318         REFGUID context) = 0;
   2319 
   2320     virtual HRESULT STDMETHODCALLTYPE OnProgress(
   2321         REFGUID context,
   2322         IPortableDeviceValuesCollection *results) = 0;
   2323 
   2324     virtual HRESULT STDMETHODCALLTYPE OnEnd(
   2325         REFGUID context,
   2326         HRESULT hr_status) = 0;
   2327 
   2328 };
   2329 #ifdef __CRT_UUID_DECL
   2330 __CRT_UUID_DECL(IPortableDevicePropertiesBulkCallback, 0x9deacb80, 0x11e8, 0x40e3, 0xa9,0xf3, 0xf5,0x57,0x98,0x6a,0x78,0x45)
   2331 #endif
   2332 #else
   2333 typedef struct IPortableDevicePropertiesBulkCallbackVtbl {
   2334     BEGIN_INTERFACE
   2335 
   2336     /*** IUnknown methods ***/
   2337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2338         IPortableDevicePropertiesBulkCallback *This,
   2339         REFIID riid,
   2340         void **ppvObject);
   2341 
   2342     ULONG (STDMETHODCALLTYPE *AddRef)(
   2343         IPortableDevicePropertiesBulkCallback *This);
   2344 
   2345     ULONG (STDMETHODCALLTYPE *Release)(
   2346         IPortableDevicePropertiesBulkCallback *This);
   2347 
   2348     /*** IPortableDevicePropertiesBulkCallback methods ***/
   2349     HRESULT (STDMETHODCALLTYPE *OnStart)(
   2350         IPortableDevicePropertiesBulkCallback *This,
   2351         REFGUID context);
   2352 
   2353     HRESULT (STDMETHODCALLTYPE *OnProgress)(
   2354         IPortableDevicePropertiesBulkCallback *This,
   2355         REFGUID context,
   2356         IPortableDeviceValuesCollection *results);
   2357 
   2358     HRESULT (STDMETHODCALLTYPE *OnEnd)(
   2359         IPortableDevicePropertiesBulkCallback *This,
   2360         REFGUID context,
   2361         HRESULT hr_status);
   2362 
   2363     END_INTERFACE
   2364 } IPortableDevicePropertiesBulkCallbackVtbl;
   2365 
   2366 interface IPortableDevicePropertiesBulkCallback {
   2367     CONST_VTBL IPortableDevicePropertiesBulkCallbackVtbl* lpVtbl;
   2368 };
   2369 
   2370 #ifdef COBJMACROS
   2371 #ifndef WIDL_C_INLINE_WRAPPERS
   2372 /*** IUnknown methods ***/
   2373 #define IPortableDevicePropertiesBulkCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2374 #define IPortableDevicePropertiesBulkCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   2375 #define IPortableDevicePropertiesBulkCallback_Release(This) (This)->lpVtbl->Release(This)
   2376 /*** IPortableDevicePropertiesBulkCallback methods ***/
   2377 #define IPortableDevicePropertiesBulkCallback_OnStart(This,context) (This)->lpVtbl->OnStart(This,context)
   2378 #define IPortableDevicePropertiesBulkCallback_OnProgress(This,context,results) (This)->lpVtbl->OnProgress(This,context,results)
   2379 #define IPortableDevicePropertiesBulkCallback_OnEnd(This,context,hr_status) (This)->lpVtbl->OnEnd(This,context,hr_status)
   2380 #else
   2381 /*** IUnknown methods ***/
   2382 static inline HRESULT IPortableDevicePropertiesBulkCallback_QueryInterface(IPortableDevicePropertiesBulkCallback* This,REFIID riid,void **ppvObject) {
   2383     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2384 }
   2385 static inline ULONG IPortableDevicePropertiesBulkCallback_AddRef(IPortableDevicePropertiesBulkCallback* This) {
   2386     return This->lpVtbl->AddRef(This);
   2387 }
   2388 static inline ULONG IPortableDevicePropertiesBulkCallback_Release(IPortableDevicePropertiesBulkCallback* This) {
   2389     return This->lpVtbl->Release(This);
   2390 }
   2391 /*** IPortableDevicePropertiesBulkCallback methods ***/
   2392 static inline HRESULT IPortableDevicePropertiesBulkCallback_OnStart(IPortableDevicePropertiesBulkCallback* This,REFGUID context) {
   2393     return This->lpVtbl->OnStart(This,context);
   2394 }
   2395 static inline HRESULT IPortableDevicePropertiesBulkCallback_OnProgress(IPortableDevicePropertiesBulkCallback* This,REFGUID context,IPortableDeviceValuesCollection *results) {
   2396     return This->lpVtbl->OnProgress(This,context,results);
   2397 }
   2398 static inline HRESULT IPortableDevicePropertiesBulkCallback_OnEnd(IPortableDevicePropertiesBulkCallback* This,REFGUID context,HRESULT hr_status) {
   2399     return This->lpVtbl->OnEnd(This,context,hr_status);
   2400 }
   2401 #endif
   2402 #endif
   2403 
   2404 #endif
   2405 
   2406 
   2407 #endif  /* __IPortableDevicePropertiesBulkCallback_INTERFACE_DEFINED__ */
   2408 
   2409 /*****************************************************************************
   2410  * IPortableDeviceServiceManager interface
   2411  */
   2412 #ifndef __IPortableDeviceServiceManager_INTERFACE_DEFINED__
   2413 #define __IPortableDeviceServiceManager_INTERFACE_DEFINED__
   2414 
   2415 DEFINE_GUID(IID_IPortableDeviceServiceManager, 0xa8abc4e9, 0xa84a, 0x47a9, 0x80,0xb3, 0xc5,0xd9,0xb1,0x72,0xa9,0x61);
   2416 #if defined(__cplusplus) && !defined(CINTERFACE)
   2417 MIDL_INTERFACE("a8abc4e9-a84a-47a9-80b3-c5d9b172a961")
   2418 IPortableDeviceServiceManager : public IUnknown
   2419 {
   2420     virtual HRESULT STDMETHODCALLTYPE GetDeviceServices(
   2421         LPCWSTR device_id,
   2422         REFGUID guid_service_category,
   2423         LPWSTR *services,
   2424         DWORD *services_count) = 0;
   2425 
   2426     virtual HRESULT STDMETHODCALLTYPE GetDeviceForService(
   2427         LPCWSTR service_id,
   2428         LPWSTR *device_id) = 0;
   2429 
   2430 };
   2431 #ifdef __CRT_UUID_DECL
   2432 __CRT_UUID_DECL(IPortableDeviceServiceManager, 0xa8abc4e9, 0xa84a, 0x47a9, 0x80,0xb3, 0xc5,0xd9,0xb1,0x72,0xa9,0x61)
   2433 #endif
   2434 #else
   2435 typedef struct IPortableDeviceServiceManagerVtbl {
   2436     BEGIN_INTERFACE
   2437 
   2438     /*** IUnknown methods ***/
   2439     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2440         IPortableDeviceServiceManager *This,
   2441         REFIID riid,
   2442         void **ppvObject);
   2443 
   2444     ULONG (STDMETHODCALLTYPE *AddRef)(
   2445         IPortableDeviceServiceManager *This);
   2446 
   2447     ULONG (STDMETHODCALLTYPE *Release)(
   2448         IPortableDeviceServiceManager *This);
   2449 
   2450     /*** IPortableDeviceServiceManager methods ***/
   2451     HRESULT (STDMETHODCALLTYPE *GetDeviceServices)(
   2452         IPortableDeviceServiceManager *This,
   2453         LPCWSTR device_id,
   2454         REFGUID guid_service_category,
   2455         LPWSTR *services,
   2456         DWORD *services_count);
   2457 
   2458     HRESULT (STDMETHODCALLTYPE *GetDeviceForService)(
   2459         IPortableDeviceServiceManager *This,
   2460         LPCWSTR service_id,
   2461         LPWSTR *device_id);
   2462 
   2463     END_INTERFACE
   2464 } IPortableDeviceServiceManagerVtbl;
   2465 
   2466 interface IPortableDeviceServiceManager {
   2467     CONST_VTBL IPortableDeviceServiceManagerVtbl* lpVtbl;
   2468 };
   2469 
   2470 #ifdef COBJMACROS
   2471 #ifndef WIDL_C_INLINE_WRAPPERS
   2472 /*** IUnknown methods ***/
   2473 #define IPortableDeviceServiceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2474 #define IPortableDeviceServiceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   2475 #define IPortableDeviceServiceManager_Release(This) (This)->lpVtbl->Release(This)
   2476 /*** IPortableDeviceServiceManager methods ***/
   2477 #define IPortableDeviceServiceManager_GetDeviceServices(This,device_id,guid_service_category,services,services_count) (This)->lpVtbl->GetDeviceServices(This,device_id,guid_service_category,services,services_count)
   2478 #define IPortableDeviceServiceManager_GetDeviceForService(This,service_id,device_id) (This)->lpVtbl->GetDeviceForService(This,service_id,device_id)
   2479 #else
   2480 /*** IUnknown methods ***/
   2481 static inline HRESULT IPortableDeviceServiceManager_QueryInterface(IPortableDeviceServiceManager* This,REFIID riid,void **ppvObject) {
   2482     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2483 }
   2484 static inline ULONG IPortableDeviceServiceManager_AddRef(IPortableDeviceServiceManager* This) {
   2485     return This->lpVtbl->AddRef(This);
   2486 }
   2487 static inline ULONG IPortableDeviceServiceManager_Release(IPortableDeviceServiceManager* This) {
   2488     return This->lpVtbl->Release(This);
   2489 }
   2490 /*** IPortableDeviceServiceManager methods ***/
   2491 static inline HRESULT IPortableDeviceServiceManager_GetDeviceServices(IPortableDeviceServiceManager* This,LPCWSTR device_id,REFGUID guid_service_category,LPWSTR *services,DWORD *services_count) {
   2492     return This->lpVtbl->GetDeviceServices(This,device_id,guid_service_category,services,services_count);
   2493 }
   2494 static inline HRESULT IPortableDeviceServiceManager_GetDeviceForService(IPortableDeviceServiceManager* This,LPCWSTR service_id,LPWSTR *device_id) {
   2495     return This->lpVtbl->GetDeviceForService(This,service_id,device_id);
   2496 }
   2497 #endif
   2498 #endif
   2499 
   2500 #endif
   2501 
   2502 
   2503 #endif  /* __IPortableDeviceServiceManager_INTERFACE_DEFINED__ */
   2504 
   2505 /*****************************************************************************
   2506  * IPortableDeviceService interface
   2507  */
   2508 #ifndef __IPortableDeviceService_INTERFACE_DEFINED__
   2509 #define __IPortableDeviceService_INTERFACE_DEFINED__
   2510 
   2511 DEFINE_GUID(IID_IPortableDeviceService, 0xd3bd3a44, 0xd7b5, 0x40a9, 0x98,0xb7, 0x2f,0xa4,0xd0,0x1d,0xec,0x08);
   2512 #if defined(__cplusplus) && !defined(CINTERFACE)
   2513 MIDL_INTERFACE("d3bd3a44-d7b5-40a9-98b7-2fa4d01dec08")
   2514 IPortableDeviceService : public IUnknown
   2515 {
   2516     virtual HRESULT STDMETHODCALLTYPE Open(
   2517         LPCWSTR service_id,
   2518         IPortableDeviceValues *client_info) = 0;
   2519 
   2520     virtual HRESULT STDMETHODCALLTYPE Capabilities(
   2521         IPortableDeviceServiceCapabilities **capabilities) = 0;
   2522 
   2523     virtual HRESULT STDMETHODCALLTYPE Content(
   2524         IPortableDeviceContent2 **content) = 0;
   2525 
   2526     virtual HRESULT STDMETHODCALLTYPE Methods(
   2527         IPortableDeviceServiceMethods **service_methods) = 0;
   2528 
   2529     virtual HRESULT STDMETHODCALLTYPE Cancel(
   2530         ) = 0;
   2531 
   2532     virtual HRESULT STDMETHODCALLTYPE Close(
   2533         ) = 0;
   2534 
   2535     virtual HRESULT STDMETHODCALLTYPE GetServiceObjectID(
   2536         LPWSTR *service_object_id) = 0;
   2537 
   2538     virtual HRESULT STDMETHODCALLTYPE GetPnPServiceID(
   2539         LPWSTR *service_id) = 0;
   2540 
   2541     virtual HRESULT STDMETHODCALLTYPE Advise(
   2542         const DWORD flags,
   2543         IPortableDeviceEventCallback *callback,
   2544         IPortableDeviceValues *parameters,
   2545         LPWSTR *cookie) = 0;
   2546 
   2547     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   2548         LPCWSTR cookie) = 0;
   2549 
   2550     virtual HRESULT STDMETHODCALLTYPE SendCommand(
   2551         const DWORD flags,
   2552         IPortableDeviceValues *parameters,
   2553         IPortableDeviceValues **results) = 0;
   2554 
   2555 };
   2556 #ifdef __CRT_UUID_DECL
   2557 __CRT_UUID_DECL(IPortableDeviceService, 0xd3bd3a44, 0xd7b5, 0x40a9, 0x98,0xb7, 0x2f,0xa4,0xd0,0x1d,0xec,0x08)
   2558 #endif
   2559 #else
   2560 typedef struct IPortableDeviceServiceVtbl {
   2561     BEGIN_INTERFACE
   2562 
   2563     /*** IUnknown methods ***/
   2564     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2565         IPortableDeviceService *This,
   2566         REFIID riid,
   2567         void **ppvObject);
   2568 
   2569     ULONG (STDMETHODCALLTYPE *AddRef)(
   2570         IPortableDeviceService *This);
   2571 
   2572     ULONG (STDMETHODCALLTYPE *Release)(
   2573         IPortableDeviceService *This);
   2574 
   2575     /*** IPortableDeviceService methods ***/
   2576     HRESULT (STDMETHODCALLTYPE *Open)(
   2577         IPortableDeviceService *This,
   2578         LPCWSTR service_id,
   2579         IPortableDeviceValues *client_info);
   2580 
   2581     HRESULT (STDMETHODCALLTYPE *Capabilities)(
   2582         IPortableDeviceService *This,
   2583         IPortableDeviceServiceCapabilities **capabilities);
   2584 
   2585     HRESULT (STDMETHODCALLTYPE *Content)(
   2586         IPortableDeviceService *This,
   2587         IPortableDeviceContent2 **content);
   2588 
   2589     HRESULT (STDMETHODCALLTYPE *Methods)(
   2590         IPortableDeviceService *This,
   2591         IPortableDeviceServiceMethods **service_methods);
   2592 
   2593     HRESULT (STDMETHODCALLTYPE *Cancel)(
   2594         IPortableDeviceService *This);
   2595 
   2596     HRESULT (STDMETHODCALLTYPE *Close)(
   2597         IPortableDeviceService *This);
   2598 
   2599     HRESULT (STDMETHODCALLTYPE *GetServiceObjectID)(
   2600         IPortableDeviceService *This,
   2601         LPWSTR *service_object_id);
   2602 
   2603     HRESULT (STDMETHODCALLTYPE *GetPnPServiceID)(
   2604         IPortableDeviceService *This,
   2605         LPWSTR *service_id);
   2606 
   2607     HRESULT (STDMETHODCALLTYPE *Advise)(
   2608         IPortableDeviceService *This,
   2609         const DWORD flags,
   2610         IPortableDeviceEventCallback *callback,
   2611         IPortableDeviceValues *parameters,
   2612         LPWSTR *cookie);
   2613 
   2614     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   2615         IPortableDeviceService *This,
   2616         LPCWSTR cookie);
   2617 
   2618     HRESULT (STDMETHODCALLTYPE *SendCommand)(
   2619         IPortableDeviceService *This,
   2620         const DWORD flags,
   2621         IPortableDeviceValues *parameters,
   2622         IPortableDeviceValues **results);
   2623 
   2624     END_INTERFACE
   2625 } IPortableDeviceServiceVtbl;
   2626 
   2627 interface IPortableDeviceService {
   2628     CONST_VTBL IPortableDeviceServiceVtbl* lpVtbl;
   2629 };
   2630 
   2631 #ifdef COBJMACROS
   2632 #ifndef WIDL_C_INLINE_WRAPPERS
   2633 /*** IUnknown methods ***/
   2634 #define IPortableDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2635 #define IPortableDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
   2636 #define IPortableDeviceService_Release(This) (This)->lpVtbl->Release(This)
   2637 /*** IPortableDeviceService methods ***/
   2638 #define IPortableDeviceService_Open(This,service_id,client_info) (This)->lpVtbl->Open(This,service_id,client_info)
   2639 #define IPortableDeviceService_Capabilities(This,capabilities) (This)->lpVtbl->Capabilities(This,capabilities)
   2640 #define IPortableDeviceService_Content(This,content) (This)->lpVtbl->Content(This,content)
   2641 #define IPortableDeviceService_Methods(This,service_methods) (This)->lpVtbl->Methods(This,service_methods)
   2642 #define IPortableDeviceService_Cancel(This) (This)->lpVtbl->Cancel(This)
   2643 #define IPortableDeviceService_Close(This) (This)->lpVtbl->Close(This)
   2644 #define IPortableDeviceService_GetServiceObjectID(This,service_object_id) (This)->lpVtbl->GetServiceObjectID(This,service_object_id)
   2645 #define IPortableDeviceService_GetPnPServiceID(This,service_id) (This)->lpVtbl->GetPnPServiceID(This,service_id)
   2646 #define IPortableDeviceService_Advise(This,flags,callback,parameters,cookie) (This)->lpVtbl->Advise(This,flags,callback,parameters,cookie)
   2647 #define IPortableDeviceService_Unadvise(This,cookie) (This)->lpVtbl->Unadvise(This,cookie)
   2648 #define IPortableDeviceService_SendCommand(This,flags,parameters,results) (This)->lpVtbl->SendCommand(This,flags,parameters,results)
   2649 #else
   2650 /*** IUnknown methods ***/
   2651 static inline HRESULT IPortableDeviceService_QueryInterface(IPortableDeviceService* This,REFIID riid,void **ppvObject) {
   2652     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2653 }
   2654 static inline ULONG IPortableDeviceService_AddRef(IPortableDeviceService* This) {
   2655     return This->lpVtbl->AddRef(This);
   2656 }
   2657 static inline ULONG IPortableDeviceService_Release(IPortableDeviceService* This) {
   2658     return This->lpVtbl->Release(This);
   2659 }
   2660 /*** IPortableDeviceService methods ***/
   2661 static inline HRESULT IPortableDeviceService_Open(IPortableDeviceService* This,LPCWSTR service_id,IPortableDeviceValues *client_info) {
   2662     return This->lpVtbl->Open(This,service_id,client_info);
   2663 }
   2664 static inline HRESULT IPortableDeviceService_Capabilities(IPortableDeviceService* This,IPortableDeviceServiceCapabilities **capabilities) {
   2665     return This->lpVtbl->Capabilities(This,capabilities);
   2666 }
   2667 static inline HRESULT IPortableDeviceService_Content(IPortableDeviceService* This,IPortableDeviceContent2 **content) {
   2668     return This->lpVtbl->Content(This,content);
   2669 }
   2670 static inline HRESULT IPortableDeviceService_Methods(IPortableDeviceService* This,IPortableDeviceServiceMethods **service_methods) {
   2671     return This->lpVtbl->Methods(This,service_methods);
   2672 }
   2673 static inline HRESULT IPortableDeviceService_Cancel(IPortableDeviceService* This) {
   2674     return This->lpVtbl->Cancel(This);
   2675 }
   2676 static inline HRESULT IPortableDeviceService_Close(IPortableDeviceService* This) {
   2677     return This->lpVtbl->Close(This);
   2678 }
   2679 static inline HRESULT IPortableDeviceService_GetServiceObjectID(IPortableDeviceService* This,LPWSTR *service_object_id) {
   2680     return This->lpVtbl->GetServiceObjectID(This,service_object_id);
   2681 }
   2682 static inline HRESULT IPortableDeviceService_GetPnPServiceID(IPortableDeviceService* This,LPWSTR *service_id) {
   2683     return This->lpVtbl->GetPnPServiceID(This,service_id);
   2684 }
   2685 static inline HRESULT IPortableDeviceService_Advise(IPortableDeviceService* This,const DWORD flags,IPortableDeviceEventCallback *callback,IPortableDeviceValues *parameters,LPWSTR *cookie) {
   2686     return This->lpVtbl->Advise(This,flags,callback,parameters,cookie);
   2687 }
   2688 static inline HRESULT IPortableDeviceService_Unadvise(IPortableDeviceService* This,LPCWSTR cookie) {
   2689     return This->lpVtbl->Unadvise(This,cookie);
   2690 }
   2691 static inline HRESULT IPortableDeviceService_SendCommand(IPortableDeviceService* This,const DWORD flags,IPortableDeviceValues *parameters,IPortableDeviceValues **results) {
   2692     return This->lpVtbl->SendCommand(This,flags,parameters,results);
   2693 }
   2694 #endif
   2695 #endif
   2696 
   2697 #endif
   2698 
   2699 
   2700 #endif  /* __IPortableDeviceService_INTERFACE_DEFINED__ */
   2701 
   2702 /*****************************************************************************
   2703  * IPortableDeviceServiceCapabilities interface
   2704  */
   2705 #ifndef __IPortableDeviceServiceCapabilities_INTERFACE_DEFINED__
   2706 #define __IPortableDeviceServiceCapabilities_INTERFACE_DEFINED__
   2707 
   2708 DEFINE_GUID(IID_IPortableDeviceServiceCapabilities, 0x24dbd89d, 0x413e, 0x43e0, 0xbd,0x5b, 0x19,0x7f,0x3c,0x56,0xc8,0x86);
   2709 #if defined(__cplusplus) && !defined(CINTERFACE)
   2710 MIDL_INTERFACE("24dbd89d-413e-43e0-bd5b-197f3c56c886")
   2711 IPortableDeviceServiceCapabilities : public IUnknown
   2712 {
   2713     virtual HRESULT STDMETHODCALLTYPE GetSupportedMethods(
   2714         IPortableDevicePropVariantCollection **supported_methods) = 0;
   2715 
   2716     virtual HRESULT STDMETHODCALLTYPE GetSupportedMethodsByFormat(
   2717         REFGUID format,
   2718         IPortableDevicePropVariantCollection **supported_methods) = 0;
   2719 
   2720     virtual HRESULT STDMETHODCALLTYPE GetMethodAttributes(
   2721         REFGUID method,
   2722         IPortableDeviceValues **attributes) = 0;
   2723 
   2724     virtual HRESULT STDMETHODCALLTYPE GetMethodParameterAttributes(
   2725         REFGUID method,
   2726         REFPROPERTYKEY parameter,
   2727         IPortableDeviceValues **attributes) = 0;
   2728 
   2729     virtual HRESULT STDMETHODCALLTYPE GetSupportedFormats(
   2730         IPortableDevicePropVariantCollection **formats) = 0;
   2731 
   2732     virtual HRESULT STDMETHODCALLTYPE GetFormatAttributes(
   2733         REFGUID format,
   2734         IPortableDeviceValues **attributes) = 0;
   2735 
   2736     virtual HRESULT STDMETHODCALLTYPE GetSupportedFormatProperties(
   2737         REFGUID format,
   2738         IPortableDeviceKeyCollection **keys) = 0;
   2739 
   2740     virtual HRESULT STDMETHODCALLTYPE GetFormatPropertyAttributes(
   2741         REFGUID format,
   2742         REFPROPERTYKEY property,
   2743         IPortableDeviceValues **attributes) = 0;
   2744 
   2745     virtual HRESULT STDMETHODCALLTYPE GetSupportedEvents(
   2746         IPortableDevicePropVariantCollection **events) = 0;
   2747 
   2748     virtual HRESULT STDMETHODCALLTYPE GetEventAttributes(
   2749         REFGUID event_id,
   2750         IPortableDeviceValues **attributes) = 0;
   2751 
   2752     virtual HRESULT STDMETHODCALLTYPE GetEventParameterAttributes(
   2753         REFGUID event_id,
   2754         REFPROPERTYKEY parameter,
   2755         IPortableDeviceValues **attributes) = 0;
   2756 
   2757     virtual HRESULT STDMETHODCALLTYPE GetInheritedServices(
   2758         const DWORD inheritance_type,
   2759         IPortableDevicePropVariantCollection **services) = 0;
   2760 
   2761     virtual HRESULT STDMETHODCALLTYPE GetFormatRenderingProfiles(
   2762         REFGUID format,
   2763         IPortableDeviceValuesCollection **rendering_profiles) = 0;
   2764 
   2765     virtual HRESULT STDMETHODCALLTYPE GetSupportedCommands(
   2766         IPortableDeviceKeyCollection **commands) = 0;
   2767 
   2768     virtual HRESULT STDMETHODCALLTYPE GetCommandOptions(
   2769         REFPROPERTYKEY command,
   2770         IPortableDeviceValues **options) = 0;
   2771 
   2772     virtual HRESULT STDMETHODCALLTYPE Cancel(
   2773         ) = 0;
   2774 
   2775 };
   2776 #ifdef __CRT_UUID_DECL
   2777 __CRT_UUID_DECL(IPortableDeviceServiceCapabilities, 0x24dbd89d, 0x413e, 0x43e0, 0xbd,0x5b, 0x19,0x7f,0x3c,0x56,0xc8,0x86)
   2778 #endif
   2779 #else
   2780 typedef struct IPortableDeviceServiceCapabilitiesVtbl {
   2781     BEGIN_INTERFACE
   2782 
   2783     /*** IUnknown methods ***/
   2784     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2785         IPortableDeviceServiceCapabilities *This,
   2786         REFIID riid,
   2787         void **ppvObject);
   2788 
   2789     ULONG (STDMETHODCALLTYPE *AddRef)(
   2790         IPortableDeviceServiceCapabilities *This);
   2791 
   2792     ULONG (STDMETHODCALLTYPE *Release)(
   2793         IPortableDeviceServiceCapabilities *This);
   2794 
   2795     /*** IPortableDeviceServiceCapabilities methods ***/
   2796     HRESULT (STDMETHODCALLTYPE *GetSupportedMethods)(
   2797         IPortableDeviceServiceCapabilities *This,
   2798         IPortableDevicePropVariantCollection **supported_methods);
   2799 
   2800     HRESULT (STDMETHODCALLTYPE *GetSupportedMethodsByFormat)(
   2801         IPortableDeviceServiceCapabilities *This,
   2802         REFGUID format,
   2803         IPortableDevicePropVariantCollection **supported_methods);
   2804 
   2805     HRESULT (STDMETHODCALLTYPE *GetMethodAttributes)(
   2806         IPortableDeviceServiceCapabilities *This,
   2807         REFGUID method,
   2808         IPortableDeviceValues **attributes);
   2809 
   2810     HRESULT (STDMETHODCALLTYPE *GetMethodParameterAttributes)(
   2811         IPortableDeviceServiceCapabilities *This,
   2812         REFGUID method,
   2813         REFPROPERTYKEY parameter,
   2814         IPortableDeviceValues **attributes);
   2815 
   2816     HRESULT (STDMETHODCALLTYPE *GetSupportedFormats)(
   2817         IPortableDeviceServiceCapabilities *This,
   2818         IPortableDevicePropVariantCollection **formats);
   2819 
   2820     HRESULT (STDMETHODCALLTYPE *GetFormatAttributes)(
   2821         IPortableDeviceServiceCapabilities *This,
   2822         REFGUID format,
   2823         IPortableDeviceValues **attributes);
   2824 
   2825     HRESULT (STDMETHODCALLTYPE *GetSupportedFormatProperties)(
   2826         IPortableDeviceServiceCapabilities *This,
   2827         REFGUID format,
   2828         IPortableDeviceKeyCollection **keys);
   2829 
   2830     HRESULT (STDMETHODCALLTYPE *GetFormatPropertyAttributes)(
   2831         IPortableDeviceServiceCapabilities *This,
   2832         REFGUID format,
   2833         REFPROPERTYKEY property,
   2834         IPortableDeviceValues **attributes);
   2835 
   2836     HRESULT (STDMETHODCALLTYPE *GetSupportedEvents)(
   2837         IPortableDeviceServiceCapabilities *This,
   2838         IPortableDevicePropVariantCollection **events);
   2839 
   2840     HRESULT (STDMETHODCALLTYPE *GetEventAttributes)(
   2841         IPortableDeviceServiceCapabilities *This,
   2842         REFGUID event_id,
   2843         IPortableDeviceValues **attributes);
   2844 
   2845     HRESULT (STDMETHODCALLTYPE *GetEventParameterAttributes)(
   2846         IPortableDeviceServiceCapabilities *This,
   2847         REFGUID event_id,
   2848         REFPROPERTYKEY parameter,
   2849         IPortableDeviceValues **attributes);
   2850 
   2851     HRESULT (STDMETHODCALLTYPE *GetInheritedServices)(
   2852         IPortableDeviceServiceCapabilities *This,
   2853         const DWORD inheritance_type,
   2854         IPortableDevicePropVariantCollection **services);
   2855 
   2856     HRESULT (STDMETHODCALLTYPE *GetFormatRenderingProfiles)(
   2857         IPortableDeviceServiceCapabilities *This,
   2858         REFGUID format,
   2859         IPortableDeviceValuesCollection **rendering_profiles);
   2860 
   2861     HRESULT (STDMETHODCALLTYPE *GetSupportedCommands)(
   2862         IPortableDeviceServiceCapabilities *This,
   2863         IPortableDeviceKeyCollection **commands);
   2864 
   2865     HRESULT (STDMETHODCALLTYPE *GetCommandOptions)(
   2866         IPortableDeviceServiceCapabilities *This,
   2867         REFPROPERTYKEY command,
   2868         IPortableDeviceValues **options);
   2869 
   2870     HRESULT (STDMETHODCALLTYPE *Cancel)(
   2871         IPortableDeviceServiceCapabilities *This);
   2872 
   2873     END_INTERFACE
   2874 } IPortableDeviceServiceCapabilitiesVtbl;
   2875 
   2876 interface IPortableDeviceServiceCapabilities {
   2877     CONST_VTBL IPortableDeviceServiceCapabilitiesVtbl* lpVtbl;
   2878 };
   2879 
   2880 #ifdef COBJMACROS
   2881 #ifndef WIDL_C_INLINE_WRAPPERS
   2882 /*** IUnknown methods ***/
   2883 #define IPortableDeviceServiceCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2884 #define IPortableDeviceServiceCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
   2885 #define IPortableDeviceServiceCapabilities_Release(This) (This)->lpVtbl->Release(This)
   2886 /*** IPortableDeviceServiceCapabilities methods ***/
   2887 #define IPortableDeviceServiceCapabilities_GetSupportedMethods(This,supported_methods) (This)->lpVtbl->GetSupportedMethods(This,supported_methods)
   2888 #define IPortableDeviceServiceCapabilities_GetSupportedMethodsByFormat(This,format,supported_methods) (This)->lpVtbl->GetSupportedMethodsByFormat(This,format,supported_methods)
   2889 #define IPortableDeviceServiceCapabilities_GetMethodAttributes(This,method,attributes) (This)->lpVtbl->GetMethodAttributes(This,method,attributes)
   2890 #define IPortableDeviceServiceCapabilities_GetMethodParameterAttributes(This,method,parameter,attributes) (This)->lpVtbl->GetMethodParameterAttributes(This,method,parameter,attributes)
   2891 #define IPortableDeviceServiceCapabilities_GetSupportedFormats(This,formats) (This)->lpVtbl->GetSupportedFormats(This,formats)
   2892 #define IPortableDeviceServiceCapabilities_GetFormatAttributes(This,format,attributes) (This)->lpVtbl->GetFormatAttributes(This,format,attributes)
   2893 #define IPortableDeviceServiceCapabilities_GetSupportedFormatProperties(This,format,keys) (This)->lpVtbl->GetSupportedFormatProperties(This,format,keys)
   2894 #define IPortableDeviceServiceCapabilities_GetFormatPropertyAttributes(This,format,property,attributes) (This)->lpVtbl->GetFormatPropertyAttributes(This,format,property,attributes)
   2895 #define IPortableDeviceServiceCapabilities_GetSupportedEvents(This,events) (This)->lpVtbl->GetSupportedEvents(This,events)
   2896 #define IPortableDeviceServiceCapabilities_GetEventAttributes(This,event_id,attributes) (This)->lpVtbl->GetEventAttributes(This,event_id,attributes)
   2897 #define IPortableDeviceServiceCapabilities_GetEventParameterAttributes(This,event_id,parameter,attributes) (This)->lpVtbl->GetEventParameterAttributes(This,event_id,parameter,attributes)
   2898 #define IPortableDeviceServiceCapabilities_GetInheritedServices(This,inheritance_type,services) (This)->lpVtbl->GetInheritedServices(This,inheritance_type,services)
   2899 #define IPortableDeviceServiceCapabilities_GetFormatRenderingProfiles(This,format,rendering_profiles) (This)->lpVtbl->GetFormatRenderingProfiles(This,format,rendering_profiles)
   2900 #define IPortableDeviceServiceCapabilities_GetSupportedCommands(This,commands) (This)->lpVtbl->GetSupportedCommands(This,commands)
   2901 #define IPortableDeviceServiceCapabilities_GetCommandOptions(This,command,options) (This)->lpVtbl->GetCommandOptions(This,command,options)
   2902 #define IPortableDeviceServiceCapabilities_Cancel(This) (This)->lpVtbl->Cancel(This)
   2903 #else
   2904 /*** IUnknown methods ***/
   2905 static inline HRESULT IPortableDeviceServiceCapabilities_QueryInterface(IPortableDeviceServiceCapabilities* This,REFIID riid,void **ppvObject) {
   2906     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2907 }
   2908 static inline ULONG IPortableDeviceServiceCapabilities_AddRef(IPortableDeviceServiceCapabilities* This) {
   2909     return This->lpVtbl->AddRef(This);
   2910 }
   2911 static inline ULONG IPortableDeviceServiceCapabilities_Release(IPortableDeviceServiceCapabilities* This) {
   2912     return This->lpVtbl->Release(This);
   2913 }
   2914 /*** IPortableDeviceServiceCapabilities methods ***/
   2915 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedMethods(IPortableDeviceServiceCapabilities* This,IPortableDevicePropVariantCollection **supported_methods) {
   2916     return This->lpVtbl->GetSupportedMethods(This,supported_methods);
   2917 }
   2918 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedMethodsByFormat(IPortableDeviceServiceCapabilities* This,REFGUID format,IPortableDevicePropVariantCollection **supported_methods) {
   2919     return This->lpVtbl->GetSupportedMethodsByFormat(This,format,supported_methods);
   2920 }
   2921 static inline HRESULT IPortableDeviceServiceCapabilities_GetMethodAttributes(IPortableDeviceServiceCapabilities* This,REFGUID method,IPortableDeviceValues **attributes) {
   2922     return This->lpVtbl->GetMethodAttributes(This,method,attributes);
   2923 }
   2924 static inline HRESULT IPortableDeviceServiceCapabilities_GetMethodParameterAttributes(IPortableDeviceServiceCapabilities* This,REFGUID method,REFPROPERTYKEY parameter,IPortableDeviceValues **attributes) {
   2925     return This->lpVtbl->GetMethodParameterAttributes(This,method,parameter,attributes);
   2926 }
   2927 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedFormats(IPortableDeviceServiceCapabilities* This,IPortableDevicePropVariantCollection **formats) {
   2928     return This->lpVtbl->GetSupportedFormats(This,formats);
   2929 }
   2930 static inline HRESULT IPortableDeviceServiceCapabilities_GetFormatAttributes(IPortableDeviceServiceCapabilities* This,REFGUID format,IPortableDeviceValues **attributes) {
   2931     return This->lpVtbl->GetFormatAttributes(This,format,attributes);
   2932 }
   2933 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedFormatProperties(IPortableDeviceServiceCapabilities* This,REFGUID format,IPortableDeviceKeyCollection **keys) {
   2934     return This->lpVtbl->GetSupportedFormatProperties(This,format,keys);
   2935 }
   2936 static inline HRESULT IPortableDeviceServiceCapabilities_GetFormatPropertyAttributes(IPortableDeviceServiceCapabilities* This,REFGUID format,REFPROPERTYKEY property,IPortableDeviceValues **attributes) {
   2937     return This->lpVtbl->GetFormatPropertyAttributes(This,format,property,attributes);
   2938 }
   2939 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedEvents(IPortableDeviceServiceCapabilities* This,IPortableDevicePropVariantCollection **events) {
   2940     return This->lpVtbl->GetSupportedEvents(This,events);
   2941 }
   2942 static inline HRESULT IPortableDeviceServiceCapabilities_GetEventAttributes(IPortableDeviceServiceCapabilities* This,REFGUID event_id,IPortableDeviceValues **attributes) {
   2943     return This->lpVtbl->GetEventAttributes(This,event_id,attributes);
   2944 }
   2945 static inline HRESULT IPortableDeviceServiceCapabilities_GetEventParameterAttributes(IPortableDeviceServiceCapabilities* This,REFGUID event_id,REFPROPERTYKEY parameter,IPortableDeviceValues **attributes) {
   2946     return This->lpVtbl->GetEventParameterAttributes(This,event_id,parameter,attributes);
   2947 }
   2948 static inline HRESULT IPortableDeviceServiceCapabilities_GetInheritedServices(IPortableDeviceServiceCapabilities* This,const DWORD inheritance_type,IPortableDevicePropVariantCollection **services) {
   2949     return This->lpVtbl->GetInheritedServices(This,inheritance_type,services);
   2950 }
   2951 static inline HRESULT IPortableDeviceServiceCapabilities_GetFormatRenderingProfiles(IPortableDeviceServiceCapabilities* This,REFGUID format,IPortableDeviceValuesCollection **rendering_profiles) {
   2952     return This->lpVtbl->GetFormatRenderingProfiles(This,format,rendering_profiles);
   2953 }
   2954 static inline HRESULT IPortableDeviceServiceCapabilities_GetSupportedCommands(IPortableDeviceServiceCapabilities* This,IPortableDeviceKeyCollection **commands) {
   2955     return This->lpVtbl->GetSupportedCommands(This,commands);
   2956 }
   2957 static inline HRESULT IPortableDeviceServiceCapabilities_GetCommandOptions(IPortableDeviceServiceCapabilities* This,REFPROPERTYKEY command,IPortableDeviceValues **options) {
   2958     return This->lpVtbl->GetCommandOptions(This,command,options);
   2959 }
   2960 static inline HRESULT IPortableDeviceServiceCapabilities_Cancel(IPortableDeviceServiceCapabilities* This) {
   2961     return This->lpVtbl->Cancel(This);
   2962 }
   2963 #endif
   2964 #endif
   2965 
   2966 #endif
   2967 
   2968 
   2969 #endif  /* __IPortableDeviceServiceCapabilities_INTERFACE_DEFINED__ */
   2970 
   2971 /*****************************************************************************
   2972  * IPortableDeviceServiceMethods interface
   2973  */
   2974 #ifndef __IPortableDeviceServiceMethods_INTERFACE_DEFINED__
   2975 #define __IPortableDeviceServiceMethods_INTERFACE_DEFINED__
   2976 
   2977 DEFINE_GUID(IID_IPortableDeviceServiceMethods, 0xe20333c9, 0xfd34, 0x412d, 0xa3,0x81, 0xcc,0x6f,0x2d,0x82,0x0d,0xf7);
   2978 #if defined(__cplusplus) && !defined(CINTERFACE)
   2979 MIDL_INTERFACE("e20333c9-fd34-412d-a381-cc6f2d820df7")
   2980 IPortableDeviceServiceMethods : public IUnknown
   2981 {
   2982     virtual HRESULT STDMETHODCALLTYPE Invoke(
   2983         REFGUID method_id,
   2984         IPortableDeviceValues *parameters,
   2985         IPortableDeviceValues **results) = 0;
   2986 
   2987     virtual HRESULT STDMETHODCALLTYPE InvokeAsync(
   2988         REFGUID method_id,
   2989         IPortableDeviceValues *parameters,
   2990         IPortableDeviceServiceMethodCallback *callback) = 0;
   2991 
   2992     virtual HRESULT STDMETHODCALLTYPE Cancel(
   2993         IPortableDeviceServiceMethodCallback *callback) = 0;
   2994 
   2995 };
   2996 #ifdef __CRT_UUID_DECL
   2997 __CRT_UUID_DECL(IPortableDeviceServiceMethods, 0xe20333c9, 0xfd34, 0x412d, 0xa3,0x81, 0xcc,0x6f,0x2d,0x82,0x0d,0xf7)
   2998 #endif
   2999 #else
   3000 typedef struct IPortableDeviceServiceMethodsVtbl {
   3001     BEGIN_INTERFACE
   3002 
   3003     /*** IUnknown methods ***/
   3004     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3005         IPortableDeviceServiceMethods *This,
   3006         REFIID riid,
   3007         void **ppvObject);
   3008 
   3009     ULONG (STDMETHODCALLTYPE *AddRef)(
   3010         IPortableDeviceServiceMethods *This);
   3011 
   3012     ULONG (STDMETHODCALLTYPE *Release)(
   3013         IPortableDeviceServiceMethods *This);
   3014 
   3015     /*** IPortableDeviceServiceMethods methods ***/
   3016     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3017         IPortableDeviceServiceMethods *This,
   3018         REFGUID method_id,
   3019         IPortableDeviceValues *parameters,
   3020         IPortableDeviceValues **results);
   3021 
   3022     HRESULT (STDMETHODCALLTYPE *InvokeAsync)(
   3023         IPortableDeviceServiceMethods *This,
   3024         REFGUID method_id,
   3025         IPortableDeviceValues *parameters,
   3026         IPortableDeviceServiceMethodCallback *callback);
   3027 
   3028     HRESULT (STDMETHODCALLTYPE *Cancel)(
   3029         IPortableDeviceServiceMethods *This,
   3030         IPortableDeviceServiceMethodCallback *callback);
   3031 
   3032     END_INTERFACE
   3033 } IPortableDeviceServiceMethodsVtbl;
   3034 
   3035 interface IPortableDeviceServiceMethods {
   3036     CONST_VTBL IPortableDeviceServiceMethodsVtbl* lpVtbl;
   3037 };
   3038 
   3039 #ifdef COBJMACROS
   3040 #ifndef WIDL_C_INLINE_WRAPPERS
   3041 /*** IUnknown methods ***/
   3042 #define IPortableDeviceServiceMethods_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3043 #define IPortableDeviceServiceMethods_AddRef(This) (This)->lpVtbl->AddRef(This)
   3044 #define IPortableDeviceServiceMethods_Release(This) (This)->lpVtbl->Release(This)
   3045 /*** IPortableDeviceServiceMethods methods ***/
   3046 #define IPortableDeviceServiceMethods_Invoke(This,method_id,parameters,results) (This)->lpVtbl->Invoke(This,method_id,parameters,results)
   3047 #define IPortableDeviceServiceMethods_InvokeAsync(This,method_id,parameters,callback) (This)->lpVtbl->InvokeAsync(This,method_id,parameters,callback)
   3048 #define IPortableDeviceServiceMethods_Cancel(This,callback) (This)->lpVtbl->Cancel(This,callback)
   3049 #else
   3050 /*** IUnknown methods ***/
   3051 static inline HRESULT IPortableDeviceServiceMethods_QueryInterface(IPortableDeviceServiceMethods* This,REFIID riid,void **ppvObject) {
   3052     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3053 }
   3054 static inline ULONG IPortableDeviceServiceMethods_AddRef(IPortableDeviceServiceMethods* This) {
   3055     return This->lpVtbl->AddRef(This);
   3056 }
   3057 static inline ULONG IPortableDeviceServiceMethods_Release(IPortableDeviceServiceMethods* This) {
   3058     return This->lpVtbl->Release(This);
   3059 }
   3060 /*** IPortableDeviceServiceMethods methods ***/
   3061 static inline HRESULT IPortableDeviceServiceMethods_Invoke(IPortableDeviceServiceMethods* This,REFGUID method_id,IPortableDeviceValues *parameters,IPortableDeviceValues **results) {
   3062     return This->lpVtbl->Invoke(This,method_id,parameters,results);
   3063 }
   3064 static inline HRESULT IPortableDeviceServiceMethods_InvokeAsync(IPortableDeviceServiceMethods* This,REFGUID method_id,IPortableDeviceValues *parameters,IPortableDeviceServiceMethodCallback *callback) {
   3065     return This->lpVtbl->InvokeAsync(This,method_id,parameters,callback);
   3066 }
   3067 static inline HRESULT IPortableDeviceServiceMethods_Cancel(IPortableDeviceServiceMethods* This,IPortableDeviceServiceMethodCallback *callback) {
   3068     return This->lpVtbl->Cancel(This,callback);
   3069 }
   3070 #endif
   3071 #endif
   3072 
   3073 #endif
   3074 
   3075 
   3076 #endif  /* __IPortableDeviceServiceMethods_INTERFACE_DEFINED__ */
   3077 
   3078 /*****************************************************************************
   3079  * IPortableDeviceServiceMethodCallback interface
   3080  */
   3081 #ifndef __IPortableDeviceServiceMethodCallback_INTERFACE_DEFINED__
   3082 #define __IPortableDeviceServiceMethodCallback_INTERFACE_DEFINED__
   3083 
   3084 DEFINE_GUID(IID_IPortableDeviceServiceMethodCallback, 0xc424233c, 0xafce, 0x4828, 0xa7,0x56, 0x7e,0xd7,0xa2,0x35,0x00,0x83);
   3085 #if defined(__cplusplus) && !defined(CINTERFACE)
   3086 MIDL_INTERFACE("c424233c-afce-4828-a756-7ed7a2350083")
   3087 IPortableDeviceServiceMethodCallback : public IUnknown
   3088 {
   3089     virtual HRESULT STDMETHODCALLTYPE OnComplete(
   3090         HRESULT hr_status,
   3091         IPortableDeviceValues *results) = 0;
   3092 
   3093 };
   3094 #ifdef __CRT_UUID_DECL
   3095 __CRT_UUID_DECL(IPortableDeviceServiceMethodCallback, 0xc424233c, 0xafce, 0x4828, 0xa7,0x56, 0x7e,0xd7,0xa2,0x35,0x00,0x83)
   3096 #endif
   3097 #else
   3098 typedef struct IPortableDeviceServiceMethodCallbackVtbl {
   3099     BEGIN_INTERFACE
   3100 
   3101     /*** IUnknown methods ***/
   3102     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3103         IPortableDeviceServiceMethodCallback *This,
   3104         REFIID riid,
   3105         void **ppvObject);
   3106 
   3107     ULONG (STDMETHODCALLTYPE *AddRef)(
   3108         IPortableDeviceServiceMethodCallback *This);
   3109 
   3110     ULONG (STDMETHODCALLTYPE *Release)(
   3111         IPortableDeviceServiceMethodCallback *This);
   3112 
   3113     /*** IPortableDeviceServiceMethodCallback methods ***/
   3114     HRESULT (STDMETHODCALLTYPE *OnComplete)(
   3115         IPortableDeviceServiceMethodCallback *This,
   3116         HRESULT hr_status,
   3117         IPortableDeviceValues *results);
   3118 
   3119     END_INTERFACE
   3120 } IPortableDeviceServiceMethodCallbackVtbl;
   3121 
   3122 interface IPortableDeviceServiceMethodCallback {
   3123     CONST_VTBL IPortableDeviceServiceMethodCallbackVtbl* lpVtbl;
   3124 };
   3125 
   3126 #ifdef COBJMACROS
   3127 #ifndef WIDL_C_INLINE_WRAPPERS
   3128 /*** IUnknown methods ***/
   3129 #define IPortableDeviceServiceMethodCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3130 #define IPortableDeviceServiceMethodCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   3131 #define IPortableDeviceServiceMethodCallback_Release(This) (This)->lpVtbl->Release(This)
   3132 /*** IPortableDeviceServiceMethodCallback methods ***/
   3133 #define IPortableDeviceServiceMethodCallback_OnComplete(This,hr_status,results) (This)->lpVtbl->OnComplete(This,hr_status,results)
   3134 #else
   3135 /*** IUnknown methods ***/
   3136 static inline HRESULT IPortableDeviceServiceMethodCallback_QueryInterface(IPortableDeviceServiceMethodCallback* This,REFIID riid,void **ppvObject) {
   3137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3138 }
   3139 static inline ULONG IPortableDeviceServiceMethodCallback_AddRef(IPortableDeviceServiceMethodCallback* This) {
   3140     return This->lpVtbl->AddRef(This);
   3141 }
   3142 static inline ULONG IPortableDeviceServiceMethodCallback_Release(IPortableDeviceServiceMethodCallback* This) {
   3143     return This->lpVtbl->Release(This);
   3144 }
   3145 /*** IPortableDeviceServiceMethodCallback methods ***/
   3146 static inline HRESULT IPortableDeviceServiceMethodCallback_OnComplete(IPortableDeviceServiceMethodCallback* This,HRESULT hr_status,IPortableDeviceValues *results) {
   3147     return This->lpVtbl->OnComplete(This,hr_status,results);
   3148 }
   3149 #endif
   3150 #endif
   3151 
   3152 #endif
   3153 
   3154 
   3155 #endif  /* __IPortableDeviceServiceMethodCallback_INTERFACE_DEFINED__ */
   3156 
   3157 /*****************************************************************************
   3158  * IPortableDeviceServiceActivation interface
   3159  */
   3160 #ifndef __IPortableDeviceServiceActivation_INTERFACE_DEFINED__
   3161 #define __IPortableDeviceServiceActivation_INTERFACE_DEFINED__
   3162 
   3163 DEFINE_GUID(IID_IPortableDeviceServiceActivation, 0xe56b0534, 0xd9b9, 0x425c, 0x9b,0x99, 0x75,0xf9,0x7c,0xb3,0xd7,0xc8);
   3164 #if defined(__cplusplus) && !defined(CINTERFACE)
   3165 MIDL_INTERFACE("e56b0534-d9b9-425c-9b99-75f97cb3d7c8")
   3166 IPortableDeviceServiceActivation : public IUnknown
   3167 {
   3168     virtual HRESULT STDMETHODCALLTYPE OpenAsync(
   3169         LPCWSTR service_id,
   3170         IPortableDeviceValues *client_info,
   3171         IPortableDeviceServiceOpenCallback *callback) = 0;
   3172 
   3173     virtual HRESULT STDMETHODCALLTYPE CancelOpenAsync(
   3174         ) = 0;
   3175 
   3176 };
   3177 #ifdef __CRT_UUID_DECL
   3178 __CRT_UUID_DECL(IPortableDeviceServiceActivation, 0xe56b0534, 0xd9b9, 0x425c, 0x9b,0x99, 0x75,0xf9,0x7c,0xb3,0xd7,0xc8)
   3179 #endif
   3180 #else
   3181 typedef struct IPortableDeviceServiceActivationVtbl {
   3182     BEGIN_INTERFACE
   3183 
   3184     /*** IUnknown methods ***/
   3185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3186         IPortableDeviceServiceActivation *This,
   3187         REFIID riid,
   3188         void **ppvObject);
   3189 
   3190     ULONG (STDMETHODCALLTYPE *AddRef)(
   3191         IPortableDeviceServiceActivation *This);
   3192 
   3193     ULONG (STDMETHODCALLTYPE *Release)(
   3194         IPortableDeviceServiceActivation *This);
   3195 
   3196     /*** IPortableDeviceServiceActivation methods ***/
   3197     HRESULT (STDMETHODCALLTYPE *OpenAsync)(
   3198         IPortableDeviceServiceActivation *This,
   3199         LPCWSTR service_id,
   3200         IPortableDeviceValues *client_info,
   3201         IPortableDeviceServiceOpenCallback *callback);
   3202 
   3203     HRESULT (STDMETHODCALLTYPE *CancelOpenAsync)(
   3204         IPortableDeviceServiceActivation *This);
   3205 
   3206     END_INTERFACE
   3207 } IPortableDeviceServiceActivationVtbl;
   3208 
   3209 interface IPortableDeviceServiceActivation {
   3210     CONST_VTBL IPortableDeviceServiceActivationVtbl* lpVtbl;
   3211 };
   3212 
   3213 #ifdef COBJMACROS
   3214 #ifndef WIDL_C_INLINE_WRAPPERS
   3215 /*** IUnknown methods ***/
   3216 #define IPortableDeviceServiceActivation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3217 #define IPortableDeviceServiceActivation_AddRef(This) (This)->lpVtbl->AddRef(This)
   3218 #define IPortableDeviceServiceActivation_Release(This) (This)->lpVtbl->Release(This)
   3219 /*** IPortableDeviceServiceActivation methods ***/
   3220 #define IPortableDeviceServiceActivation_OpenAsync(This,service_id,client_info,callback) (This)->lpVtbl->OpenAsync(This,service_id,client_info,callback)
   3221 #define IPortableDeviceServiceActivation_CancelOpenAsync(This) (This)->lpVtbl->CancelOpenAsync(This)
   3222 #else
   3223 /*** IUnknown methods ***/
   3224 static inline HRESULT IPortableDeviceServiceActivation_QueryInterface(IPortableDeviceServiceActivation* This,REFIID riid,void **ppvObject) {
   3225     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3226 }
   3227 static inline ULONG IPortableDeviceServiceActivation_AddRef(IPortableDeviceServiceActivation* This) {
   3228     return This->lpVtbl->AddRef(This);
   3229 }
   3230 static inline ULONG IPortableDeviceServiceActivation_Release(IPortableDeviceServiceActivation* This) {
   3231     return This->lpVtbl->Release(This);
   3232 }
   3233 /*** IPortableDeviceServiceActivation methods ***/
   3234 static inline HRESULT IPortableDeviceServiceActivation_OpenAsync(IPortableDeviceServiceActivation* This,LPCWSTR service_id,IPortableDeviceValues *client_info,IPortableDeviceServiceOpenCallback *callback) {
   3235     return This->lpVtbl->OpenAsync(This,service_id,client_info,callback);
   3236 }
   3237 static inline HRESULT IPortableDeviceServiceActivation_CancelOpenAsync(IPortableDeviceServiceActivation* This) {
   3238     return This->lpVtbl->CancelOpenAsync(This);
   3239 }
   3240 #endif
   3241 #endif
   3242 
   3243 #endif
   3244 
   3245 
   3246 #endif  /* __IPortableDeviceServiceActivation_INTERFACE_DEFINED__ */
   3247 
   3248 /*****************************************************************************
   3249  * IPortableDeviceServiceOpenCallback interface
   3250  */
   3251 #ifndef __IPortableDeviceServiceOpenCallback_INTERFACE_DEFINED__
   3252 #define __IPortableDeviceServiceOpenCallback_INTERFACE_DEFINED__
   3253 
   3254 DEFINE_GUID(IID_IPortableDeviceServiceOpenCallback, 0xbced49c8, 0x8efe, 0x41ed, 0x96,0x0b, 0x61,0x31,0x3a,0xbd,0x47,0xa9);
   3255 #if defined(__cplusplus) && !defined(CINTERFACE)
   3256 MIDL_INTERFACE("bced49c8-8efe-41ed-960b-61313abd47a9")
   3257 IPortableDeviceServiceOpenCallback : public IUnknown
   3258 {
   3259     virtual HRESULT STDMETHODCALLTYPE OnComplete(
   3260         HRESULT hr_status) = 0;
   3261 
   3262 };
   3263 #ifdef __CRT_UUID_DECL
   3264 __CRT_UUID_DECL(IPortableDeviceServiceOpenCallback, 0xbced49c8, 0x8efe, 0x41ed, 0x96,0x0b, 0x61,0x31,0x3a,0xbd,0x47,0xa9)
   3265 #endif
   3266 #else
   3267 typedef struct IPortableDeviceServiceOpenCallbackVtbl {
   3268     BEGIN_INTERFACE
   3269 
   3270     /*** IUnknown methods ***/
   3271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3272         IPortableDeviceServiceOpenCallback *This,
   3273         REFIID riid,
   3274         void **ppvObject);
   3275 
   3276     ULONG (STDMETHODCALLTYPE *AddRef)(
   3277         IPortableDeviceServiceOpenCallback *This);
   3278 
   3279     ULONG (STDMETHODCALLTYPE *Release)(
   3280         IPortableDeviceServiceOpenCallback *This);
   3281 
   3282     /*** IPortableDeviceServiceOpenCallback methods ***/
   3283     HRESULT (STDMETHODCALLTYPE *OnComplete)(
   3284         IPortableDeviceServiceOpenCallback *This,
   3285         HRESULT hr_status);
   3286 
   3287     END_INTERFACE
   3288 } IPortableDeviceServiceOpenCallbackVtbl;
   3289 
   3290 interface IPortableDeviceServiceOpenCallback {
   3291     CONST_VTBL IPortableDeviceServiceOpenCallbackVtbl* lpVtbl;
   3292 };
   3293 
   3294 #ifdef COBJMACROS
   3295 #ifndef WIDL_C_INLINE_WRAPPERS
   3296 /*** IUnknown methods ***/
   3297 #define IPortableDeviceServiceOpenCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3298 #define IPortableDeviceServiceOpenCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   3299 #define IPortableDeviceServiceOpenCallback_Release(This) (This)->lpVtbl->Release(This)
   3300 /*** IPortableDeviceServiceOpenCallback methods ***/
   3301 #define IPortableDeviceServiceOpenCallback_OnComplete(This,hr_status) (This)->lpVtbl->OnComplete(This,hr_status)
   3302 #else
   3303 /*** IUnknown methods ***/
   3304 static inline HRESULT IPortableDeviceServiceOpenCallback_QueryInterface(IPortableDeviceServiceOpenCallback* This,REFIID riid,void **ppvObject) {
   3305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3306 }
   3307 static inline ULONG IPortableDeviceServiceOpenCallback_AddRef(IPortableDeviceServiceOpenCallback* This) {
   3308     return This->lpVtbl->AddRef(This);
   3309 }
   3310 static inline ULONG IPortableDeviceServiceOpenCallback_Release(IPortableDeviceServiceOpenCallback* This) {
   3311     return This->lpVtbl->Release(This);
   3312 }
   3313 /*** IPortableDeviceServiceOpenCallback methods ***/
   3314 static inline HRESULT IPortableDeviceServiceOpenCallback_OnComplete(IPortableDeviceServiceOpenCallback* This,HRESULT hr_status) {
   3315     return This->lpVtbl->OnComplete(This,hr_status);
   3316 }
   3317 #endif
   3318 #endif
   3319 
   3320 #endif
   3321 
   3322 
   3323 #endif  /* __IPortableDeviceServiceOpenCallback_INTERFACE_DEFINED__ */
   3324 
   3325 /*****************************************************************************
   3326  * IPortableDeviceDispatchFactory interface
   3327  */
   3328 #ifndef __IPortableDeviceDispatchFactory_INTERFACE_DEFINED__
   3329 #define __IPortableDeviceDispatchFactory_INTERFACE_DEFINED__
   3330 
   3331 DEFINE_GUID(IID_IPortableDeviceDispatchFactory, 0x5e1eafc3, 0xe3d7, 0x4132, 0x96,0xfa, 0x75,0x9c,0x0f,0x9d,0x1e,0x0f);
   3332 #if defined(__cplusplus) && !defined(CINTERFACE)
   3333 MIDL_INTERFACE("5e1eafc3-e3d7-4132-96fa-759c0f9d1e0f")
   3334 IPortableDeviceDispatchFactory : public IUnknown
   3335 {
   3336     virtual HRESULT STDMETHODCALLTYPE GetDeviceDispatch(
   3337         LPCWSTR device_id,
   3338         IDispatch **device_dispatch) = 0;
   3339 
   3340 };
   3341 #ifdef __CRT_UUID_DECL
   3342 __CRT_UUID_DECL(IPortableDeviceDispatchFactory, 0x5e1eafc3, 0xe3d7, 0x4132, 0x96,0xfa, 0x75,0x9c,0x0f,0x9d,0x1e,0x0f)
   3343 #endif
   3344 #else
   3345 typedef struct IPortableDeviceDispatchFactoryVtbl {
   3346     BEGIN_INTERFACE
   3347 
   3348     /*** IUnknown methods ***/
   3349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3350         IPortableDeviceDispatchFactory *This,
   3351         REFIID riid,
   3352         void **ppvObject);
   3353 
   3354     ULONG (STDMETHODCALLTYPE *AddRef)(
   3355         IPortableDeviceDispatchFactory *This);
   3356 
   3357     ULONG (STDMETHODCALLTYPE *Release)(
   3358         IPortableDeviceDispatchFactory *This);
   3359 
   3360     /*** IPortableDeviceDispatchFactory methods ***/
   3361     HRESULT (STDMETHODCALLTYPE *GetDeviceDispatch)(
   3362         IPortableDeviceDispatchFactory *This,
   3363         LPCWSTR device_id,
   3364         IDispatch **device_dispatch);
   3365 
   3366     END_INTERFACE
   3367 } IPortableDeviceDispatchFactoryVtbl;
   3368 
   3369 interface IPortableDeviceDispatchFactory {
   3370     CONST_VTBL IPortableDeviceDispatchFactoryVtbl* lpVtbl;
   3371 };
   3372 
   3373 #ifdef COBJMACROS
   3374 #ifndef WIDL_C_INLINE_WRAPPERS
   3375 /*** IUnknown methods ***/
   3376 #define IPortableDeviceDispatchFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3377 #define IPortableDeviceDispatchFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   3378 #define IPortableDeviceDispatchFactory_Release(This) (This)->lpVtbl->Release(This)
   3379 /*** IPortableDeviceDispatchFactory methods ***/
   3380 #define IPortableDeviceDispatchFactory_GetDeviceDispatch(This,device_id,device_dispatch) (This)->lpVtbl->GetDeviceDispatch(This,device_id,device_dispatch)
   3381 #else
   3382 /*** IUnknown methods ***/
   3383 static inline HRESULT IPortableDeviceDispatchFactory_QueryInterface(IPortableDeviceDispatchFactory* This,REFIID riid,void **ppvObject) {
   3384     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3385 }
   3386 static inline ULONG IPortableDeviceDispatchFactory_AddRef(IPortableDeviceDispatchFactory* This) {
   3387     return This->lpVtbl->AddRef(This);
   3388 }
   3389 static inline ULONG IPortableDeviceDispatchFactory_Release(IPortableDeviceDispatchFactory* This) {
   3390     return This->lpVtbl->Release(This);
   3391 }
   3392 /*** IPortableDeviceDispatchFactory methods ***/
   3393 static inline HRESULT IPortableDeviceDispatchFactory_GetDeviceDispatch(IPortableDeviceDispatchFactory* This,LPCWSTR device_id,IDispatch **device_dispatch) {
   3394     return This->lpVtbl->GetDeviceDispatch(This,device_id,device_dispatch);
   3395 }
   3396 #endif
   3397 #endif
   3398 
   3399 #endif
   3400 
   3401 
   3402 #endif  /* __IPortableDeviceDispatchFactory_INTERFACE_DEFINED__ */
   3403 
   3404 /*****************************************************************************
   3405  * IPortableDeviceWebControl interface
   3406  */
   3407 #ifndef __IPortableDeviceWebControl_INTERFACE_DEFINED__
   3408 #define __IPortableDeviceWebControl_INTERFACE_DEFINED__
   3409 
   3410 DEFINE_GUID(IID_IPortableDeviceWebControl, 0x94fc7953, 0x5ca1, 0x483a, 0x8a,0xee, 0xdf,0x52,0xe7,0x74,0x7d,0x00);
   3411 #if defined(__cplusplus) && !defined(CINTERFACE)
   3412 MIDL_INTERFACE("94fc7953-5ca1-483a-8aee-df52e7747d00")
   3413 IPortableDeviceWebControl : public IDispatch
   3414 {
   3415     virtual HRESULT STDMETHODCALLTYPE GetDeviceFromId(
   3416         BSTR device_id,
   3417         IDispatch **device) = 0;
   3418 
   3419     virtual HRESULT STDMETHODCALLTYPE GetDeviceFromIdAsync(
   3420         BSTR device_id,
   3421         IDispatch *completion_handler,
   3422         IDispatch *error_handler) = 0;
   3423 
   3424 };
   3425 #ifdef __CRT_UUID_DECL
   3426 __CRT_UUID_DECL(IPortableDeviceWebControl, 0x94fc7953, 0x5ca1, 0x483a, 0x8a,0xee, 0xdf,0x52,0xe7,0x74,0x7d,0x00)
   3427 #endif
   3428 #else
   3429 typedef struct IPortableDeviceWebControlVtbl {
   3430     BEGIN_INTERFACE
   3431 
   3432     /*** IUnknown methods ***/
   3433     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3434         IPortableDeviceWebControl *This,
   3435         REFIID riid,
   3436         void **ppvObject);
   3437 
   3438     ULONG (STDMETHODCALLTYPE *AddRef)(
   3439         IPortableDeviceWebControl *This);
   3440 
   3441     ULONG (STDMETHODCALLTYPE *Release)(
   3442         IPortableDeviceWebControl *This);
   3443 
   3444     /*** IDispatch methods ***/
   3445     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   3446         IPortableDeviceWebControl *This,
   3447         UINT *pctinfo);
   3448 
   3449     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   3450         IPortableDeviceWebControl *This,
   3451         UINT iTInfo,
   3452         LCID lcid,
   3453         ITypeInfo **ppTInfo);
   3454 
   3455     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   3456         IPortableDeviceWebControl *This,
   3457         REFIID riid,
   3458         LPOLESTR *rgszNames,
   3459         UINT cNames,
   3460         LCID lcid,
   3461         DISPID *rgDispId);
   3462 
   3463     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3464         IPortableDeviceWebControl *This,
   3465         DISPID dispIdMember,
   3466         REFIID riid,
   3467         LCID lcid,
   3468         WORD wFlags,
   3469         DISPPARAMS *pDispParams,
   3470         VARIANT *pVarResult,
   3471         EXCEPINFO *pExcepInfo,
   3472         UINT *puArgErr);
   3473 
   3474     /*** IPortableDeviceWebControl methods ***/
   3475     HRESULT (STDMETHODCALLTYPE *GetDeviceFromId)(
   3476         IPortableDeviceWebControl *This,
   3477         BSTR device_id,
   3478         IDispatch **device);
   3479 
   3480     HRESULT (STDMETHODCALLTYPE *GetDeviceFromIdAsync)(
   3481         IPortableDeviceWebControl *This,
   3482         BSTR device_id,
   3483         IDispatch *completion_handler,
   3484         IDispatch *error_handler);
   3485 
   3486     END_INTERFACE
   3487 } IPortableDeviceWebControlVtbl;
   3488 
   3489 interface IPortableDeviceWebControl {
   3490     CONST_VTBL IPortableDeviceWebControlVtbl* lpVtbl;
   3491 };
   3492 
   3493 #ifdef COBJMACROS
   3494 #ifndef WIDL_C_INLINE_WRAPPERS
   3495 /*** IUnknown methods ***/
   3496 #define IPortableDeviceWebControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3497 #define IPortableDeviceWebControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   3498 #define IPortableDeviceWebControl_Release(This) (This)->lpVtbl->Release(This)
   3499 /*** IDispatch methods ***/
   3500 #define IPortableDeviceWebControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   3501 #define IPortableDeviceWebControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   3502 #define IPortableDeviceWebControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   3503 #define IPortableDeviceWebControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   3504 /*** IPortableDeviceWebControl methods ***/
   3505 #define IPortableDeviceWebControl_GetDeviceFromId(This,device_id,device) (This)->lpVtbl->GetDeviceFromId(This,device_id,device)
   3506 #define IPortableDeviceWebControl_GetDeviceFromIdAsync(This,device_id,completion_handler,error_handler) (This)->lpVtbl->GetDeviceFromIdAsync(This,device_id,completion_handler,error_handler)
   3507 #else
   3508 /*** IUnknown methods ***/
   3509 static inline HRESULT IPortableDeviceWebControl_QueryInterface(IPortableDeviceWebControl* This,REFIID riid,void **ppvObject) {
   3510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3511 }
   3512 static inline ULONG IPortableDeviceWebControl_AddRef(IPortableDeviceWebControl* This) {
   3513     return This->lpVtbl->AddRef(This);
   3514 }
   3515 static inline ULONG IPortableDeviceWebControl_Release(IPortableDeviceWebControl* This) {
   3516     return This->lpVtbl->Release(This);
   3517 }
   3518 /*** IDispatch methods ***/
   3519 static inline HRESULT IPortableDeviceWebControl_GetTypeInfoCount(IPortableDeviceWebControl* This,UINT *pctinfo) {
   3520     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3521 }
   3522 static inline HRESULT IPortableDeviceWebControl_GetTypeInfo(IPortableDeviceWebControl* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3523     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3524 }
   3525 static inline HRESULT IPortableDeviceWebControl_GetIDsOfNames(IPortableDeviceWebControl* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   3526     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   3527 }
   3528 static inline HRESULT IPortableDeviceWebControl_Invoke(IPortableDeviceWebControl* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   3529     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   3530 }
   3531 /*** IPortableDeviceWebControl methods ***/
   3532 static inline HRESULT IPortableDeviceWebControl_GetDeviceFromId(IPortableDeviceWebControl* This,BSTR device_id,IDispatch **device) {
   3533     return This->lpVtbl->GetDeviceFromId(This,device_id,device);
   3534 }
   3535 static inline HRESULT IPortableDeviceWebControl_GetDeviceFromIdAsync(IPortableDeviceWebControl* This,BSTR device_id,IDispatch *completion_handler,IDispatch *error_handler) {
   3536     return This->lpVtbl->GetDeviceFromIdAsync(This,device_id,completion_handler,error_handler);
   3537 }
   3538 #endif
   3539 #endif
   3540 
   3541 #endif
   3542 
   3543 
   3544 #endif  /* __IPortableDeviceWebControl_INTERFACE_DEFINED__ */
   3545 
   3546 #ifndef __PortableDeviceApiLib_LIBRARY_DEFINED__
   3547 #define __PortableDeviceApiLib_LIBRARY_DEFINED__
   3548 
   3549 DEFINE_GUID(LIBID_PortableDeviceApiLib, 0x1f001332, 0x1a57, 0x4934, 0xbe,0x31, 0xaf,0xfc,0x99,0xf4,0xee,0x0a);
   3550 
   3551 /*****************************************************************************
   3552  * PortableDevice coclass
   3553  */
   3554 
   3555 DEFINE_GUID(CLSID_PortableDevice, 0x728a21c5, 0x3d9e, 0x48d7, 0x98,0x10, 0x86,0x48,0x48,0xf0,0xf4,0x04);
   3556 
   3557 #ifdef __cplusplus
   3558 class DECLSPEC_UUID("728a21c5-3d9e-48d7-9810-864848f0f404") PortableDevice;
   3559 #ifdef __CRT_UUID_DECL
   3560 __CRT_UUID_DECL(PortableDevice, 0x728a21c5, 0x3d9e, 0x48d7, 0x98,0x10, 0x86,0x48,0x48,0xf0,0xf4,0x04)
   3561 #endif
   3562 #endif
   3563 
   3564 /*****************************************************************************
   3565  * PortableDeviceManager coclass
   3566  */
   3567 
   3568 DEFINE_GUID(CLSID_PortableDeviceManager, 0x0af10cec, 0x2ecd, 0x4b92, 0x95,0x81, 0x34,0xf6,0xae,0x06,0x37,0xf3);
   3569 
   3570 #ifdef __cplusplus
   3571 class DECLSPEC_UUID("0af10cec-2ecd-4b92-9581-34f6ae0637f3") PortableDeviceManager;
   3572 #ifdef __CRT_UUID_DECL
   3573 __CRT_UUID_DECL(PortableDeviceManager, 0x0af10cec, 0x2ecd, 0x4b92, 0x95,0x81, 0x34,0xf6,0xae,0x06,0x37,0xf3)
   3574 #endif
   3575 #endif
   3576 
   3577 /*****************************************************************************
   3578  * PortableDeviceService coclass
   3579  */
   3580 
   3581 DEFINE_GUID(CLSID_PortableDeviceService, 0xef5db4c2, 0x9312, 0x422c, 0x91,0x52, 0x41,0x1c,0xd9,0xc4,0xdd,0x84);
   3582 
   3583 #ifdef __cplusplus
   3584 class DECLSPEC_UUID("ef5db4c2-9312-422c-9152-411cd9c4dd84") PortableDeviceService;
   3585 #ifdef __CRT_UUID_DECL
   3586 __CRT_UUID_DECL(PortableDeviceService, 0xef5db4c2, 0x9312, 0x422c, 0x91,0x52, 0x41,0x1c,0xd9,0xc4,0xdd,0x84)
   3587 #endif
   3588 #endif
   3589 
   3590 /*****************************************************************************
   3591  * PortableDeviceDispatchFactory coclass
   3592  */
   3593 
   3594 DEFINE_GUID(CLSID_PortableDeviceDispatchFactory, 0x43232233, 0x8338, 0x4658, 0xae,0x01, 0x0b,0x4a,0xe8,0x30,0xb6,0xb0);
   3595 
   3596 #ifdef __cplusplus
   3597 class DECLSPEC_UUID("43232233-8338-4658-ae01-0b4ae830b6b0") PortableDeviceDispatchFactory;
   3598 #ifdef __CRT_UUID_DECL
   3599 __CRT_UUID_DECL(PortableDeviceDispatchFactory, 0x43232233, 0x8338, 0x4658, 0xae,0x01, 0x0b,0x4a,0xe8,0x30,0xb6,0xb0)
   3600 #endif
   3601 #endif
   3602 
   3603 /*****************************************************************************
   3604  * PortableDeviceFTM coclass
   3605  */
   3606 
   3607 DEFINE_GUID(CLSID_PortableDeviceFTM, 0xf7c0039a, 0x4762, 0x488a, 0xb4,0xb3, 0x76,0x0e,0xf9,0xa1,0xba,0x9b);
   3608 
   3609 #ifdef __cplusplus
   3610 class DECLSPEC_UUID("f7c0039a-4762-488a-b4b3-760ef9a1ba9b") PortableDeviceFTM;
   3611 #ifdef __CRT_UUID_DECL
   3612 __CRT_UUID_DECL(PortableDeviceFTM, 0xf7c0039a, 0x4762, 0x488a, 0xb4,0xb3, 0x76,0x0e,0xf9,0xa1,0xba,0x9b)
   3613 #endif
   3614 #endif
   3615 
   3616 /*****************************************************************************
   3617  * PortableDeviceServiceFTM coclass
   3618  */
   3619 
   3620 DEFINE_GUID(CLSID_PortableDeviceServiceFTM, 0x1649b154, 0xc794, 0x497a, 0x9b,0x03, 0xf3,0xf0,0x12,0x13,0x02,0xf3);
   3621 
   3622 #ifdef __cplusplus
   3623 class DECLSPEC_UUID("1649b154-c794-497a-9b03-f3f0121302f3") PortableDeviceServiceFTM;
   3624 #ifdef __CRT_UUID_DECL
   3625 __CRT_UUID_DECL(PortableDeviceServiceFTM, 0x1649b154, 0xc794, 0x497a, 0x9b,0x03, 0xf3,0xf0,0x12,0x13,0x02,0xf3)
   3626 #endif
   3627 #endif
   3628 
   3629 /*****************************************************************************
   3630  * PortableDeviceWebControl coclass
   3631  */
   3632 
   3633 DEFINE_GUID(CLSID_PortableDeviceWebControl, 0x186dd02c, 0x2dec, 0x41b5, 0xa7,0xd4, 0xb5,0x90,0x56,0xfa,0xde,0x51);
   3634 
   3635 #ifdef __cplusplus
   3636 class DECLSPEC_UUID("186dd02c-2dec-41b5-a7d4-b59056fade51") PortableDeviceWebControl;
   3637 #ifdef __CRT_UUID_DECL
   3638 __CRT_UUID_DECL(PortableDeviceWebControl, 0x186dd02c, 0x2dec, 0x41b5, 0xa7,0xd4, 0xb5,0x90,0x56,0xfa,0xde,0x51)
   3639 #endif
   3640 #endif
   3641 
   3642 #endif /* __PortableDeviceApiLib_LIBRARY_DEFINED__ */
   3643 /* Begin additional prototypes for all interfaces */
   3644 
   3645 
   3646 /* End additional prototypes */
   3647 
   3648 #ifdef __cplusplus
   3649 }
   3650 #endif
   3651 
   3652 #endif /* __portabledeviceapi_h__ */