winamp/Src/Plugins/Portable/pmp_p4s/mswmdm.h

9914 lines
346 KiB
C++

/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0498 */
/* Compiler settings for mswmdm.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __mswmdm_h__
#define __mswmdm_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef __IWMDMMetaData_FWD_DEFINED__
#define __IWMDMMetaData_FWD_DEFINED__
typedef interface IWMDMMetaData IWMDMMetaData;
#endif /* __IWMDMMetaData_FWD_DEFINED__ */
#ifndef __IWMDeviceManager_FWD_DEFINED__
#define __IWMDeviceManager_FWD_DEFINED__
typedef interface IWMDeviceManager IWMDeviceManager;
#endif /* __IWMDeviceManager_FWD_DEFINED__ */
#ifndef __IWMDeviceManager2_FWD_DEFINED__
#define __IWMDeviceManager2_FWD_DEFINED__
typedef interface IWMDeviceManager2 IWMDeviceManager2;
#endif /* __IWMDeviceManager2_FWD_DEFINED__ */
#ifndef __IWMDeviceManager3_FWD_DEFINED__
#define __IWMDeviceManager3_FWD_DEFINED__
typedef interface IWMDeviceManager3 IWMDeviceManager3;
#endif /* __IWMDeviceManager3_FWD_DEFINED__ */
#ifndef __IWMDMStorageGlobals_FWD_DEFINED__
#define __IWMDMStorageGlobals_FWD_DEFINED__
typedef interface IWMDMStorageGlobals IWMDMStorageGlobals;
#endif /* __IWMDMStorageGlobals_FWD_DEFINED__ */
#ifndef __IWMDMStorage_FWD_DEFINED__
#define __IWMDMStorage_FWD_DEFINED__
typedef interface IWMDMStorage IWMDMStorage;
#endif /* __IWMDMStorage_FWD_DEFINED__ */
#ifndef __IWMDMStorage2_FWD_DEFINED__
#define __IWMDMStorage2_FWD_DEFINED__
typedef interface IWMDMStorage2 IWMDMStorage2;
#endif /* __IWMDMStorage2_FWD_DEFINED__ */
#ifndef __IWMDMStorage3_FWD_DEFINED__
#define __IWMDMStorage3_FWD_DEFINED__
typedef interface IWMDMStorage3 IWMDMStorage3;
#endif /* __IWMDMStorage3_FWD_DEFINED__ */
#ifndef __IWMDMStorage4_FWD_DEFINED__
#define __IWMDMStorage4_FWD_DEFINED__
typedef interface IWMDMStorage4 IWMDMStorage4;
#endif /* __IWMDMStorage4_FWD_DEFINED__ */
#ifndef __IWMDMOperation_FWD_DEFINED__
#define __IWMDMOperation_FWD_DEFINED__
typedef interface IWMDMOperation IWMDMOperation;
#endif /* __IWMDMOperation_FWD_DEFINED__ */
#ifndef __IWMDMOperation2_FWD_DEFINED__
#define __IWMDMOperation2_FWD_DEFINED__
typedef interface IWMDMOperation2 IWMDMOperation2;
#endif /* __IWMDMOperation2_FWD_DEFINED__ */
#ifndef __IWMDMOperation3_FWD_DEFINED__
#define __IWMDMOperation3_FWD_DEFINED__
typedef interface IWMDMOperation3 IWMDMOperation3;
#endif /* __IWMDMOperation3_FWD_DEFINED__ */
#ifndef __IWMDMProgress_FWD_DEFINED__
#define __IWMDMProgress_FWD_DEFINED__
typedef interface IWMDMProgress IWMDMProgress;
#endif /* __IWMDMProgress_FWD_DEFINED__ */
#ifndef __IWMDMProgress2_FWD_DEFINED__
#define __IWMDMProgress2_FWD_DEFINED__
typedef interface IWMDMProgress2 IWMDMProgress2;
#endif /* __IWMDMProgress2_FWD_DEFINED__ */
#ifndef __IWMDMProgress3_FWD_DEFINED__
#define __IWMDMProgress3_FWD_DEFINED__
typedef interface IWMDMProgress3 IWMDMProgress3;
#endif /* __IWMDMProgress3_FWD_DEFINED__ */
#ifndef __IWMDMDevice_FWD_DEFINED__
#define __IWMDMDevice_FWD_DEFINED__
typedef interface IWMDMDevice IWMDMDevice;
#endif /* __IWMDMDevice_FWD_DEFINED__ */
#ifndef __IWMDMDevice2_FWD_DEFINED__
#define __IWMDMDevice2_FWD_DEFINED__
typedef interface IWMDMDevice2 IWMDMDevice2;
#endif /* __IWMDMDevice2_FWD_DEFINED__ */
#ifndef __IWMDMDevice3_FWD_DEFINED__
#define __IWMDMDevice3_FWD_DEFINED__
typedef interface IWMDMDevice3 IWMDMDevice3;
#endif /* __IWMDMDevice3_FWD_DEFINED__ */
#ifndef __IWMDMDeviceSession_FWD_DEFINED__
#define __IWMDMDeviceSession_FWD_DEFINED__
typedef interface IWMDMDeviceSession IWMDMDeviceSession;
#endif /* __IWMDMDeviceSession_FWD_DEFINED__ */
#ifndef __IWMDMEnumDevice_FWD_DEFINED__
#define __IWMDMEnumDevice_FWD_DEFINED__
typedef interface IWMDMEnumDevice IWMDMEnumDevice;
#endif /* __IWMDMEnumDevice_FWD_DEFINED__ */
#ifndef __IWMDMDeviceControl_FWD_DEFINED__
#define __IWMDMDeviceControl_FWD_DEFINED__
typedef interface IWMDMDeviceControl IWMDMDeviceControl;
#endif /* __IWMDMDeviceControl_FWD_DEFINED__ */
#ifndef __IWMDMEnumStorage_FWD_DEFINED__
#define __IWMDMEnumStorage_FWD_DEFINED__
typedef interface IWMDMEnumStorage IWMDMEnumStorage;
#endif /* __IWMDMEnumStorage_FWD_DEFINED__ */
#ifndef __IWMDMStorageControl_FWD_DEFINED__
#define __IWMDMStorageControl_FWD_DEFINED__
typedef interface IWMDMStorageControl IWMDMStorageControl;
#endif /* __IWMDMStorageControl_FWD_DEFINED__ */
#ifndef __IWMDMStorageControl2_FWD_DEFINED__
#define __IWMDMStorageControl2_FWD_DEFINED__
typedef interface IWMDMStorageControl2 IWMDMStorageControl2;
#endif /* __IWMDMStorageControl2_FWD_DEFINED__ */
#ifndef __IWMDMStorageControl3_FWD_DEFINED__
#define __IWMDMStorageControl3_FWD_DEFINED__
typedef interface IWMDMStorageControl3 IWMDMStorageControl3;
#endif /* __IWMDMStorageControl3_FWD_DEFINED__ */
#ifndef __IWMDMObjectInfo_FWD_DEFINED__
#define __IWMDMObjectInfo_FWD_DEFINED__
typedef interface IWMDMObjectInfo IWMDMObjectInfo;
#endif /* __IWMDMObjectInfo_FWD_DEFINED__ */
#ifndef __IWMDMRevoked_FWD_DEFINED__
#define __IWMDMRevoked_FWD_DEFINED__
typedef interface IWMDMRevoked IWMDMRevoked;
#endif /* __IWMDMRevoked_FWD_DEFINED__ */
#ifndef __IWMDMNotification_FWD_DEFINED__
#define __IWMDMNotification_FWD_DEFINED__
typedef interface IWMDMNotification IWMDMNotification;
#endif /* __IWMDMNotification_FWD_DEFINED__ */
#ifndef __IMDServiceProvider_FWD_DEFINED__
#define __IMDServiceProvider_FWD_DEFINED__
typedef interface IMDServiceProvider IMDServiceProvider;
#endif /* __IMDServiceProvider_FWD_DEFINED__ */
#ifndef __IMDServiceProvider2_FWD_DEFINED__
#define __IMDServiceProvider2_FWD_DEFINED__
typedef interface IMDServiceProvider2 IMDServiceProvider2;
#endif /* __IMDServiceProvider2_FWD_DEFINED__ */
#ifndef __IMDServiceProvider3_FWD_DEFINED__
#define __IMDServiceProvider3_FWD_DEFINED__
typedef interface IMDServiceProvider3 IMDServiceProvider3;
#endif /* __IMDServiceProvider3_FWD_DEFINED__ */
#ifndef __IMDSPEnumDevice_FWD_DEFINED__
#define __IMDSPEnumDevice_FWD_DEFINED__
typedef interface IMDSPEnumDevice IMDSPEnumDevice;
#endif /* __IMDSPEnumDevice_FWD_DEFINED__ */
#ifndef __IMDSPDevice_FWD_DEFINED__
#define __IMDSPDevice_FWD_DEFINED__
typedef interface IMDSPDevice IMDSPDevice;
#endif /* __IMDSPDevice_FWD_DEFINED__ */
#ifndef __IMDSPDevice2_FWD_DEFINED__
#define __IMDSPDevice2_FWD_DEFINED__
typedef interface IMDSPDevice2 IMDSPDevice2;
#endif /* __IMDSPDevice2_FWD_DEFINED__ */
#ifndef __IMDSPDevice3_FWD_DEFINED__
#define __IMDSPDevice3_FWD_DEFINED__
typedef interface IMDSPDevice3 IMDSPDevice3;
#endif /* __IMDSPDevice3_FWD_DEFINED__ */
#ifndef __IMDSPDeviceControl_FWD_DEFINED__
#define __IMDSPDeviceControl_FWD_DEFINED__
typedef interface IMDSPDeviceControl IMDSPDeviceControl;
#endif /* __IMDSPDeviceControl_FWD_DEFINED__ */
#ifndef __IMDSPEnumStorage_FWD_DEFINED__
#define __IMDSPEnumStorage_FWD_DEFINED__
typedef interface IMDSPEnumStorage IMDSPEnumStorage;
#endif /* __IMDSPEnumStorage_FWD_DEFINED__ */
#ifndef __IMDSPStorage_FWD_DEFINED__
#define __IMDSPStorage_FWD_DEFINED__
typedef interface IMDSPStorage IMDSPStorage;
#endif /* __IMDSPStorage_FWD_DEFINED__ */
#ifndef __IMDSPStorage2_FWD_DEFINED__
#define __IMDSPStorage2_FWD_DEFINED__
typedef interface IMDSPStorage2 IMDSPStorage2;
#endif /* __IMDSPStorage2_FWD_DEFINED__ */
#ifndef __IMDSPStorage3_FWD_DEFINED__
#define __IMDSPStorage3_FWD_DEFINED__
typedef interface IMDSPStorage3 IMDSPStorage3;
#endif /* __IMDSPStorage3_FWD_DEFINED__ */
#ifndef __IMDSPStorage4_FWD_DEFINED__
#define __IMDSPStorage4_FWD_DEFINED__
typedef interface IMDSPStorage4 IMDSPStorage4;
#endif /* __IMDSPStorage4_FWD_DEFINED__ */
#ifndef __IMDSPStorageGlobals_FWD_DEFINED__
#define __IMDSPStorageGlobals_FWD_DEFINED__
typedef interface IMDSPStorageGlobals IMDSPStorageGlobals;
#endif /* __IMDSPStorageGlobals_FWD_DEFINED__ */
#ifndef __IMDSPObjectInfo_FWD_DEFINED__
#define __IMDSPObjectInfo_FWD_DEFINED__
typedef interface IMDSPObjectInfo IMDSPObjectInfo;
#endif /* __IMDSPObjectInfo_FWD_DEFINED__ */
#ifndef __IMDSPObject_FWD_DEFINED__
#define __IMDSPObject_FWD_DEFINED__
typedef interface IMDSPObject IMDSPObject;
#endif /* __IMDSPObject_FWD_DEFINED__ */
#ifndef __IMDSPObject2_FWD_DEFINED__
#define __IMDSPObject2_FWD_DEFINED__
typedef interface IMDSPObject2 IMDSPObject2;
#endif /* __IMDSPObject2_FWD_DEFINED__ */
#ifndef __IMDSPDirectTransfer_FWD_DEFINED__
#define __IMDSPDirectTransfer_FWD_DEFINED__
typedef interface IMDSPDirectTransfer IMDSPDirectTransfer;
#endif /* __IMDSPDirectTransfer_FWD_DEFINED__ */
#ifndef __IMDSPRevoked_FWD_DEFINED__
#define __IMDSPRevoked_FWD_DEFINED__
typedef interface IMDSPRevoked IMDSPRevoked;
#endif /* __IMDSPRevoked_FWD_DEFINED__ */
#ifndef __ISCPSecureAuthenticate_FWD_DEFINED__
#define __ISCPSecureAuthenticate_FWD_DEFINED__
typedef interface ISCPSecureAuthenticate ISCPSecureAuthenticate;
#endif /* __ISCPSecureAuthenticate_FWD_DEFINED__ */
#ifndef __ISCPSecureAuthenticate2_FWD_DEFINED__
#define __ISCPSecureAuthenticate2_FWD_DEFINED__
typedef interface ISCPSecureAuthenticate2 ISCPSecureAuthenticate2;
#endif /* __ISCPSecureAuthenticate2_FWD_DEFINED__ */
#ifndef __ISCPSecureQuery_FWD_DEFINED__
#define __ISCPSecureQuery_FWD_DEFINED__
typedef interface ISCPSecureQuery ISCPSecureQuery;
#endif /* __ISCPSecureQuery_FWD_DEFINED__ */
#ifndef __ISCPSecureQuery2_FWD_DEFINED__
#define __ISCPSecureQuery2_FWD_DEFINED__
typedef interface ISCPSecureQuery2 ISCPSecureQuery2;
#endif /* __ISCPSecureQuery2_FWD_DEFINED__ */
#ifndef __ISCPSecureExchange_FWD_DEFINED__
#define __ISCPSecureExchange_FWD_DEFINED__
typedef interface ISCPSecureExchange ISCPSecureExchange;
#endif /* __ISCPSecureExchange_FWD_DEFINED__ */
#ifndef __ISCPSecureExchange2_FWD_DEFINED__
#define __ISCPSecureExchange2_FWD_DEFINED__
typedef interface ISCPSecureExchange2 ISCPSecureExchange2;
#endif /* __ISCPSecureExchange2_FWD_DEFINED__ */
#ifndef __ISCPSecureExchange3_FWD_DEFINED__
#define __ISCPSecureExchange3_FWD_DEFINED__
typedef interface ISCPSecureExchange3 ISCPSecureExchange3;
#endif /* __ISCPSecureExchange3_FWD_DEFINED__ */
#ifndef __ISCPSession_FWD_DEFINED__
#define __ISCPSession_FWD_DEFINED__
typedef interface ISCPSession ISCPSession;
#endif /* __ISCPSession_FWD_DEFINED__ */
#ifndef __ISCPSecureQuery3_FWD_DEFINED__
#define __ISCPSecureQuery3_FWD_DEFINED__
typedef interface ISCPSecureQuery3 ISCPSecureQuery3;
#endif /* __ISCPSecureQuery3_FWD_DEFINED__ */
#ifndef __IComponentAuthenticate_FWD_DEFINED__
#define __IComponentAuthenticate_FWD_DEFINED__
typedef interface IComponentAuthenticate IComponentAuthenticate;
#endif /* __IComponentAuthenticate_FWD_DEFINED__ */
#ifndef __MediaDevMgrClassFactory_FWD_DEFINED__
#define __MediaDevMgrClassFactory_FWD_DEFINED__
#ifdef __cplusplus
typedef class MediaDevMgrClassFactory MediaDevMgrClassFactory;
#else
typedef struct MediaDevMgrClassFactory MediaDevMgrClassFactory;
#endif /* __cplusplus */
#endif /* __MediaDevMgrClassFactory_FWD_DEFINED__ */
#ifndef __MediaDevMgr_FWD_DEFINED__
#define __MediaDevMgr_FWD_DEFINED__
#ifdef __cplusplus
typedef class MediaDevMgr MediaDevMgr;
#else
typedef struct MediaDevMgr MediaDevMgr;
#endif /* __cplusplus */
#endif /* __MediaDevMgr_FWD_DEFINED__ */
#ifndef __WMDMDevice_FWD_DEFINED__
#define __WMDMDevice_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDMDevice WMDMDevice;
#else
typedef struct WMDMDevice WMDMDevice;
#endif /* __cplusplus */
#endif /* __WMDMDevice_FWD_DEFINED__ */
#ifndef __WMDMStorage_FWD_DEFINED__
#define __WMDMStorage_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDMStorage WMDMStorage;
#else
typedef struct WMDMStorage WMDMStorage;
#endif /* __cplusplus */
#endif /* __WMDMStorage_FWD_DEFINED__ */
#ifndef __WMDMStorageGlobal_FWD_DEFINED__
#define __WMDMStorageGlobal_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDMStorageGlobal WMDMStorageGlobal;
#else
typedef struct WMDMStorageGlobal WMDMStorageGlobal;
#endif /* __cplusplus */
#endif /* __WMDMStorageGlobal_FWD_DEFINED__ */
#ifndef __WMDMDeviceEnum_FWD_DEFINED__
#define __WMDMDeviceEnum_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDMDeviceEnum WMDMDeviceEnum;
#else
typedef struct WMDMDeviceEnum WMDMDeviceEnum;
#endif /* __cplusplus */
#endif /* __WMDMDeviceEnum_FWD_DEFINED__ */
#ifndef __WMDMStorageEnum_FWD_DEFINED__
#define __WMDMStorageEnum_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDMStorageEnum WMDMStorageEnum;
#else
typedef struct WMDMStorageEnum WMDMStorageEnum;
#endif /* __cplusplus */
#endif /* __WMDMStorageEnum_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "propidl.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_mswmdm_0000_0000 */
/* [local] */
#ifndef _DEFINE_WMDM_DEVICE_PROTOCOL_MTP
#define _DEFINE_WMDM_DEVICE_PROTOCOL_MTP
// {979E54E5-0AFC-4604-8D93-DC798A4BCF45}
DEFINE_GUID(WMDM_DEVICE_PROTOCOL_MTP,
0x979e54e5, 0xafc, 0x4604, 0x8d, 0x93, 0xdc, 0x79, 0x8a, 0x4b, 0xcf, 0x45);
#endif
#ifndef _DEFINE_WMDM_DEVICE_PROTOCOL_RAPI
#define _DEFINE_WMDM_DEVICE_PROTOCOL_RAPI
// {2A11ED91-8C8F-41e4-82D1-8386E003561C}
DEFINE_GUID(WMDM_DEVICE_PROTOCOL_RAPI,
0x2a11ed91, 0x8c8f, 0x41e4, 0x82, 0xd1, 0x83, 0x86, 0xe0, 0x3, 0x56, 0x1c);
#endif
#ifndef _DEFINE_WMDM_DEVICE_PROTOCOL_MSC
#define _DEFINE_WMDM_DEVICE_PROTOCOL_MSC
// {A4D2C26C-A881-44bb-BD5D-1F703C71F7A9}
DEFINE_GUID(WMDM_DEVICE_PROTOCOL_MSC,
0xa4d2c26c, 0xa881, 0x44bb, 0xbd, 0x5d, 0x1f, 0x70, 0x3c, 0x71, 0xf7, 0xa9);
#endif
#ifndef _DEFINE_WMDM_SERVICE_PROVIDER_VENDOR_MICROSOFT
#define _DEFINE_WMDM_SERVICE_PROVIDER_VENDOR_MICROSOFT
// {7DE8686D-78EE-43ea-A496-C625AC91CC5D}
DEFINE_GUID(WMDM_SERVICE_PROVIDER_VENDOR_MICROSOFT,
0x7de8686d, 0x78ee, 0x43ea, 0xa4, 0x96, 0xc6, 0x25, 0xac, 0x91, 0xcc, 0x5d);
#endif
typedef
enum tagWMDM_TAG_DATATYPE
{ WMDM_TYPE_DWORD = 0,
WMDM_TYPE_STRING = 1,
WMDM_TYPE_BINARY = 2,
WMDM_TYPE_BOOL = 3,
WMDM_TYPE_QWORD = 4,
WMDM_TYPE_WORD = 5,
WMDM_TYPE_GUID = 6,
WMDM_TYPE_DATE = 7
} WMDM_TAG_DATATYPE;
typedef
enum tagWMDM_SESSION_TYPE
{ WMDM_SESSION_NONE = 0,
WMDM_SESSION_TRANSFER_TO_DEVICE = 0x1,
WMDM_SESSION_TRANSFER_FROM_DEVICE = 0x10,
WMDM_SESSION_DELETE = 0x100,
WMDM_SESSION_CUSTOM = 0x1000
} WMDM_SESSION_TYPE;
typedef struct _tWAVEFORMATEX
{
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} _WAVEFORMATEX;
typedef struct _tagBITMAPINFOHEADER
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} _BITMAPINFOHEADER;
typedef struct _tagVIDEOINFOHEADER
{
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
LONGLONG AvgTimePerFrame;
_BITMAPINFOHEADER bmiHeader;
} _VIDEOINFOHEADER;
typedef struct _tagWMFILECAPABILITIES
{
LPWSTR pwszMimeType;
DWORD dwReserved;
} WMFILECAPABILITIES;
typedef struct __OPAQUECOMMAND
{
GUID guidCommand;
DWORD dwDataLen;
BYTE *pData;
BYTE abMAC[ 20 ];
} OPAQUECOMMAND;
#define WMDMID_LENGTH ( 128 )
typedef struct __WMDMID
{
UINT cbSize;
DWORD dwVendorID;
BYTE pID[ 128 ];
UINT SerialNumberLength;
} WMDMID;
typedef struct __WMDMID *PWMDMID;
typedef struct _WMDMDATETIME
{
WORD wYear;
WORD wMonth;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
} WMDMDATETIME;
typedef struct _WMDMDATETIME *PWMDMDATETIME;
typedef struct __WMDMRIGHTS
{
UINT cbSize;
DWORD dwContentType;
DWORD fuFlags;
DWORD fuRights;
DWORD dwAppSec;
DWORD dwPlaybackCount;
WMDMDATETIME ExpirationDate;
} WMDMRIGHTS;
typedef struct __WMDMRIGHTS *PWMDMRIGHTS;
typedef struct __WMDMMetadataView
{
WCHAR *pwszViewName;
UINT nDepth;
WCHAR **ppwszTags;
} WMDMMetadataView;
typedef
enum tagWMDM_STORAGE_ENUM_MODE
{ ENUM_MODE_RAW = 0,
ENUM_MODE_USE_DEVICE_PREF = ( ENUM_MODE_RAW + 1 ) ,
ENUM_MODE_METADATA_VIEWS = ( ENUM_MODE_USE_DEVICE_PREF + 1 )
} WMDM_STORAGE_ENUM_MODE;
typedef /* [v1_enum] */
enum tagWMDM_FORMATCODE
{ WMDM_FORMATCODE_NOTUSED = 0,
WMDM_FORMATCODE_ALLIMAGES = 0xffffffff,
WMDM_FORMATCODE_UNDEFINED = 0x3000,
WMDM_FORMATCODE_ASSOCIATION = 0x3001,
WMDM_FORMATCODE_SCRIPT = 0x3002,
WMDM_FORMATCODE_EXECUTABLE = 0x3003,
WMDM_FORMATCODE_TEXT = 0x3004,
WMDM_FORMATCODE_HTML = 0x3005,
WMDM_FORMATCODE_DPOF = 0x3006,
WMDM_FORMATCODE_AIFF = 0x3007,
WMDM_FORMATCODE_WAVE = 0x3008,
WMDM_FORMATCODE_MP3 = 0x3009,
WMDM_FORMATCODE_AVI = 0x300a,
WMDM_FORMATCODE_MPEG = 0x300b,
WMDM_FORMATCODE_ASF = 0x300c,
WMDM_FORMATCODE_RESERVED_FIRST = 0x300d,
WMDM_FORMATCODE_RESERVED_LAST = 0x37ff,
WMDM_FORMATCODE_IMAGE_UNDEFINED = 0x3800,
WMDM_FORMATCODE_IMAGE_EXIF = 0x3801,
WMDM_FORMATCODE_IMAGE_TIFFEP = 0x3802,
WMDM_FORMATCODE_IMAGE_FLASHPIX = 0x3803,
WMDM_FORMATCODE_IMAGE_BMP = 0x3804,
WMDM_FORMATCODE_IMAGE_CIFF = 0x3805,
WMDM_FORMATCODE_IMAGE_GIF = 0x3807,
WMDM_FORMATCODE_IMAGE_JFIF = 0x3808,
WMDM_FORMATCODE_IMAGE_PCD = 0x3809,
WMDM_FORMATCODE_IMAGE_PICT = 0x380a,
WMDM_FORMATCODE_IMAGE_PNG = 0x380b,
WMDM_FORMATCODE_IMAGE_TIFF = 0x380d,
WMDM_FORMATCODE_IMAGE_TIFFIT = 0x380e,
WMDM_FORMATCODE_IMAGE_JP2 = 0x380f,
WMDM_FORMATCODE_IMAGE_JPX = 0x3810,
WMDM_FORMATCODE_IMAGE_RESERVED_FIRST = 0x3811,
WMDM_FORMATCODE_IMAGE_RESERVED_LAST = 0x3fff,
WMDM_FORMATCODE_UNDEFINEDFIRMWARE = 0xb802,
WMDM_FORMATCODE_WINDOWSIMAGEFORMAT = 0xb881,
WMDM_FORMATCODE_UNDEFINEDAUDIO = 0xb900,
WMDM_FORMATCODE_WMA = 0xb901,
WMDM_FORMATCODE_OGG = 0xb902,
WMDM_FORMATCODE_AAC = 0xb903,
WMDM_FORMATCODE_AUDIBLE = 0xb904,
WMDM_FORMATCODE_FLAC = 0xb906,
WMDM_FORMATCODE_UNDEFINEDVIDEO = 0xb980,
WMDM_FORMATCODE_WMV = 0xb981,
WMDM_FORMATCODE_MP4 = 0xb982,
WMDM_FORMATCODE_MP2 = 0xb983,
WMDM_FORMATCODE_3GP = 0xb984,
WMDM_FORMATCODE_UNDEFINEDCOLLECTION = 0xba00,
WMDM_FORMATCODE_ABSTRACTMULTIMEDIAALBUM = 0xba01,
WMDM_FORMATCODE_ABSTRACTIMAGEALBUM = 0xba02,
WMDM_FORMATCODE_ABSTRACTAUDIOALBUM = 0xba03,
WMDM_FORMATCODE_ABSTRACTVIDEOALBUM = 0xba04,
WMDM_FORMATCODE_ABSTRACTAUDIOVIDEOPLAYLIST = 0xba05,
WMDM_FORMATCODE_ABSTRACTCONTACTGROUP = 0xba06,
WMDM_FORMATCODE_ABSTRACTMESSAGEFOLDER = 0xba07,
WMDM_FORMATCODE_ABSTRACTCHAPTEREDPRODUCTION = 0xba08,
WMDM_FORMATCODE_MEDIA_CAST = 0xba0b,
WMDM_FORMATCODE_WPLPLAYLIST = 0xba10,
WMDM_FORMATCODE_M3UPLAYLIST = 0xba11,
WMDM_FORMATCODE_MPLPLAYLIST = 0xba12,
WMDM_FORMATCODE_ASXPLAYLIST = 0xba13,
WMDM_FORMATCODE_PLSPLAYLIST = 0xba14,
WMDM_FORMATCODE_UNDEFINEDDOCUMENT = 0xba80,
WMDM_FORMATCODE_ABSTRACTDOCUMENT = 0xba81,
WMDM_FORMATCODE_XMLDOCUMENT = 0xba82,
WMDM_FORMATCODE_MICROSOFTWORDDOCUMENT = 0xba83,
WMDM_FORMATCODE_MHTCOMPILEDHTMLDOCUMENT = 0xba84,
WMDM_FORMATCODE_MICROSOFTEXCELSPREADSHEET = 0xba85,
WMDM_FORMATCODE_MICROSOFTPOWERPOINTDOCUMENT = 0xba86,
WMDM_FORMATCODE_UNDEFINEDMESSAGE = 0xbb00,
WMDM_FORMATCODE_ABSTRACTMESSAGE = 0xbb01,
WMDM_FORMATCODE_UNDEFINEDCONTACT = 0xbb80,
WMDM_FORMATCODE_ABSTRACTCONTACT = 0xbb81,
WMDM_FORMATCODE_VCARD2 = 0xbb82,
WMDM_FORMATCODE_VCARD3 = 0xbb83,
WMDM_FORMATCODE_UNDEFINEDCALENDARITEM = 0xbe00,
WMDM_FORMATCODE_ABSTRACTCALENDARITEM = 0xbe01,
WMDM_FORMATCODE_VCALENDAR1 = 0xbe02,
WMDM_FORMATCODE_VCALENDAR2 = 0xbe03,
WMDM_FORMATCODE_UNDEFINEDWINDOWSEXECUTABLE = 0xbe80,
WMDM_FORMATCODE_SECTION = 0xbe82
} WMDM_FORMATCODE;
typedef /* [v1_enum] */
enum _WMDM_ENUM_PROP_VALID_VALUES_FORM
{ WMDM_ENUM_PROP_VALID_VALUES_ANY = 0,
WMDM_ENUM_PROP_VALID_VALUES_RANGE = ( WMDM_ENUM_PROP_VALID_VALUES_ANY + 1 ) ,
WMDM_ENUM_PROP_VALID_VALUES_ENUM = ( WMDM_ENUM_PROP_VALID_VALUES_RANGE + 1 )
} WMDM_ENUM_PROP_VALID_VALUES_FORM;
typedef struct _WMDM_PROP_VALUES_RANGE
{
PROPVARIANT rangeMin;
PROPVARIANT rangeMax;
PROPVARIANT rangeStep;
} WMDM_PROP_VALUES_RANGE;
typedef struct _WMDM_PROP_VALUES_ENUM
{
UINT cEnumValues;
PROPVARIANT *pValues;
} WMDM_PROP_VALUES_ENUM;
typedef struct _WMDM_PROP_DESC
{
LPWSTR pwszPropName;
WMDM_ENUM_PROP_VALID_VALUES_FORM ValidValuesForm;
union
{
/* Empty union arm */
WMDM_PROP_VALUES_RANGE ValidValuesRange;
WMDM_PROP_VALUES_ENUM EnumeratedValidValues;
} ValidValues;
} WMDM_PROP_DESC;
typedef struct _WMDM_PROP_CONFIG
{
UINT nPreference;
UINT nPropDesc;
WMDM_PROP_DESC *pPropDesc;
} WMDM_PROP_CONFIG;
typedef struct _WMDM_FORMAT_CAPABILITY
{
UINT nPropConfig;
WMDM_PROP_CONFIG *pConfigs;
} WMDM_FORMAT_CAPABILITY;
#define WMDM_MAC_LENGTH ( 8 )
typedef
enum tagWMDM_FIND_SCOPE
{ WMDM_FIND_SCOPE_GLOBAL = 0,
WMDM_FIND_SCOPE_IMMEDIATE_CHILDREN = ( WMDM_FIND_SCOPE_GLOBAL + 1 )
} WMDM_FIND_SCOPE;
// WMDM HRESULTS
//
//Success codes
//
#define WMDM_S_NOT_ALL_PROPERTIES_APPLIED 0x00045001L
#define WMDM_S_NOT_ALL_PROPERTIES_RETRIEVED 0x00045002L
//
//Error codes
//
#define WMDM_E_BUSY 0x80045000L
#define WMDM_E_INTERFACEDEAD 0x80045001L
#define WMDM_E_INVALIDTYPE 0x80045002L
#define WMDM_E_PROCESSFAILED 0x80045003L
#define WMDM_E_NOTSUPPORTED 0x80045004L
#define WMDM_E_NOTCERTIFIED 0x80045005L
#define WMDM_E_NORIGHTS 0x80045006L
#define WMDM_E_CALL_OUT_OF_SEQUENCE 0x80045007L
#define WMDM_E_BUFFERTOOSMALL 0x80045008L
#define WMDM_E_MOREDATA 0x80045009L
#define WMDM_E_MAC_CHECK_FAILED 0x8004500AL
#define WMDM_E_USER_CANCELLED 0x8004500BL
#define WMDM_E_SDMI_TRIGGER 0x8004500CL
#define WMDM_E_SDMI_NOMORECOPIES 0x8004500DL
#define WMDM_E_REVOKED 0x8004500EL
#define WMDM_E_LICENSE_NOTEXIST 0x8004500FL
#define WMDM_E_INCORRECT_APPSEC 0x80045010L
#define WMDM_E_INCORRECT_RIGHTS 0x80045011L
#define WMDM_E_LICENSE_EXPIRED 0x80045012L
#define WMDM_E_CANTOPEN_PMSN_SERVICE_PIPE 0x80045013L
#define WMDM_E_TOO_MANY_SESSIONS 0x80045013L
// Revocation Flags
#define WMDM_WMDM_REVOKED 0x00000001
#define WMDM_APP_REVOKED 0x00000002
#define WMDM_SP_REVOKED 0x00000004
#define WMDM_SCP_REVOKED 0x00000008
// GetFormatSupport2 Flags
#define WMDM_GET_FORMAT_SUPPORT_AUDIO 0x00000001
#define WMDM_GET_FORMAT_SUPPORT_VIDEO 0x00000002
#define WMDM_GET_FORMAT_SUPPORT_FILE 0x00000004
// MDMRIGHTS Flags
#define WMDM_RIGHTS_PLAYBACKCOUNT 0x00000001
#define WMDM_RIGHTS_EXPIRATIONDATE 0x00000002
#define WMDM_RIGHTS_GROUPID 0x00000004
#define WMDM_RIGHTS_FREESERIALIDS 0x00000008
#define WMDM_RIGHTS_NAMEDSERIALIDS 0x00000010
// Device Type Flags
#define WMDM_DEVICE_TYPE_PLAYBACK 0x00000001
#define WMDM_DEVICE_TYPE_RECORD 0x00000002
#define WMDM_DEVICE_TYPE_DECODE 0x00000004
#define WMDM_DEVICE_TYPE_ENCODE 0x00000008
#define WMDM_DEVICE_TYPE_STORAGE 0x00000010
#define WMDM_DEVICE_TYPE_VIRTUAL 0x00000020
#define WMDM_DEVICE_TYPE_SDMI 0x00000040
#define WMDM_DEVICE_TYPE_NONSDMI 0x00000080
#define WMDM_DEVICE_TYPE_NONREENTRANT 0x00000100
#define WMDM_DEVICE_TYPE_FILELISTRESYNC 0x00000200
#define WMDM_DEVICE_TYPE_VIEW_PREF_METADATAVIEW 0x00000400
// Device Power Source Flags
#define WMDM_POWER_CAP_BATTERY 0x00000001
#define WMDM_POWER_CAP_EXTERNAL 0x00000002
#define WMDM_POWER_IS_BATTERY 0x00000004
#define WMDM_POWER_IS_EXTERNAL 0x00000008
#define WMDM_POWER_PERCENT_AVAILABLE 0x00000010
// Device Status Flags
#define WMDM_STATUS_READY 0x00000001
#define WMDM_STATUS_BUSY 0x00000002
#define WMDM_STATUS_DEVICE_NOTPRESENT 0x00000004
#define WMDM_STATUS_DEVICECONTROL_PLAYING 0x00000008
#define WMDM_STATUS_DEVICECONTROL_RECORDING 0x00000010
#define WMDM_STATUS_DEVICECONTROL_PAUSED 0x00000020
#define WMDM_STATUS_DEVICECONTROL_REMOTE 0x00000040
#define WMDM_STATUS_DEVICECONTROL_STREAM 0x00000080
#define WMDM_STATUS_STORAGE_NOTPRESENT 0x00000100
#define WMDM_STATUS_STORAGE_INITIALIZING 0x00000200
#define WMDM_STATUS_STORAGE_BROKEN 0x00000400
#define WMDM_STATUS_STORAGE_NOTSUPPORTED 0x00000800
#define WMDM_STATUS_STORAGE_UNFORMATTED 0x00001000
#define WMDM_STATUS_STORAGECONTROL_INSERTING 0x00002000
#define WMDM_STATUS_STORAGECONTROL_DELETING 0x00004000
#define WMDM_STATUS_STORAGECONTROL_APPENDING 0x00008000
#define WMDM_STATUS_STORAGECONTROL_MOVING 0x00010000
#define WMDM_STATUS_STORAGECONTROL_READING 0x00020000
// Device Capabilities Flags
#define WMDM_DEVICECAP_CANPLAY 0x00000001
#define WMDM_DEVICECAP_CANSTREAMPLAY 0x00000002
#define WMDM_DEVICECAP_CANRECORD 0x00000004
#define WMDM_DEVICECAP_CANSTREAMRECORD 0x00000008
#define WMDM_DEVICECAP_CANPAUSE 0x00000010
#define WMDM_DEVICECAP_CANRESUME 0x00000020
#define WMDM_DEVICECAP_CANSTOP 0x00000040
#define WMDM_DEVICECAP_CANSEEK 0x00000080
#define WMDM_DEVICECAP_HASSECURECLOCK 0x00000100
// WMDM Seek Flags
#define WMDM_SEEK_REMOTECONTROL 0x00000001
#define WMDM_SEEK_STREAMINGAUDIO 0x00000002
// Storage Attributes Flags
#define WMDM_STORAGE_ATTR_FILESYSTEM 0x00000001
#define WMDM_STORAGE_ATTR_REMOVABLE 0x00000002
#define WMDM_STORAGE_ATTR_NONREMOVABLE 0x00000004
#define WMDM_FILE_ATTR_FOLDER 0x00000008
#define WMDM_FILE_ATTR_LINK 0x00000010
#define WMDM_FILE_ATTR_FILE 0x00000020
#define WMDM_FILE_ATTR_VIDEO 0x00000040
#define WMDM_STORAGE_ATTR_CANEDITMETADATA 0x00000080
#define WMDM_STORAGE_ATTR_FOLDERS 0x00000100
#define WMDM_FILE_ATTR_AUDIO 0x00001000
#define WMDM_FILE_ATTR_DATA 0x00002000
#define WMDM_FILE_ATTR_CANPLAY 0x00004000
#define WMDM_FILE_ATTR_CANDELETE 0x00008000
#define WMDM_FILE_ATTR_CANMOVE 0x00010000
#define WMDM_FILE_ATTR_CANRENAME 0x00020000
#define WMDM_FILE_ATTR_CANREAD 0x00040000
#define WMDM_FILE_ATTR_MUSIC 0x00080000
#define WMDM_FILE_CREATE_OVERWRITE 0x00100000
#define WMDM_FILE_ATTR_AUDIOBOOK 0x00200000
#define WMDM_FILE_ATTR_HIDDEN 0x00400000
#define WMDM_FILE_ATTR_SYSTEM 0x00800000
#define WMDM_FILE_ATTR_READONLY 0x01000000
#define WMDM_STORAGE_ATTR_HAS_FOLDERS 0x02000000
#define WMDM_STORAGE_ATTR_HAS_FILES 0x04000000
#define WMDM_STORAGE_IS_DEFAULT 0x08000000
#define WMDM_STORAGE_CONTAINS_DEFAULT 0x10000000
#define WMDM_STORAGE_ATTR_VIRTUAL 0x20000000
// Storage Capabilities Flags
#define WMDM_STORAGECAP_FOLDERSINROOT 0x00000001
#define WMDM_STORAGECAP_FILESINROOT 0x00000002
#define WMDM_STORAGECAP_FOLDERSINFOLDERS 0x00000004
#define WMDM_STORAGECAP_FILESINFOLDERS 0x00000008
#define WMDM_STORAGECAP_FOLDERLIMITEXISTS 0x00000010
#define WMDM_STORAGECAP_FILELIMITEXISTS 0x00000020
#define WMDM_STORAGECAP_NOT_INITIALIZABLE 0x00000040
// WMDM Mode Flags
#define WMDM_MODE_BLOCK 0x00000001
#define WMDM_MODE_THREAD 0x00000002
#define WMDM_CONTENT_FILE 0x00000004
#define WMDM_CONTENT_FOLDER 0x00000008
#define WMDM_CONTENT_OPERATIONINTERFACE 0x00000010
#define WMDM_MODE_QUERY 0x00000020
#define WMDM_MODE_PROGRESS 0x00000040
#define WMDM_MODE_TRANSFER_PROTECTED 0x00000080
#define WMDM_MODE_TRANSFER_UNPROTECTED 0x00000100
#define WMDM_STORAGECONTROL_INSERTBEFORE 0x00000200
#define WMDM_STORAGECONTROL_INSERTAFTER 0x00000400
#define WMDM_STORAGECONTROL_INSERTINTO 0x00000800
#define WMDM_MODE_RECURSIVE 0x00001000
// WMDM Rights Flags
// NON_SDMI = !SDMI_PROTECTED
// SDMI = SDMI_VALIDATED
#define WMDM_RIGHTS_PLAY_ON_PC 0x00000001
#define WMDM_RIGHTS_COPY_TO_NON_SDMI_DEVICE 0x00000002
#define WMDM_RIGHTS_COPY_TO_CD 0x00000008
#define WMDM_RIGHTS_COPY_TO_SDMI_DEVICE 0x00000010
// WMDM Seek Flags
#define WMDM_SEEK_BEGIN 0x00000001
#define WMDM_SEEK_CURRENT 0x00000002
#define WMDM_SEEK_END 0x00000008
// WMDM Device Enumeration Flags
#define DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES 0x00000001
#define ALLOW_OUTOFBAND_NOTIFICATION 0x00000002
enum WMDMMessage
{ WMDM_MSG_DEVICE_ARRIVAL = 0,
WMDM_MSG_DEVICE_REMOVAL = ( WMDM_MSG_DEVICE_ARRIVAL + 1 ) ,
WMDM_MSG_MEDIA_ARRIVAL = ( WMDM_MSG_DEVICE_REMOVAL + 1 ) ,
WMDM_MSG_MEDIA_REMOVAL = ( WMDM_MSG_MEDIA_ARRIVAL + 1 )
} ;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0000_v0_0_s_ifspec;
#ifndef __IWMDMMetaData_INTERFACE_DEFINED__
#define __IWMDMMetaData_INTERFACE_DEFINED__
/* interface IWMDMMetaData */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMMetaData;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("EC3B0663-0951-460a-9A80-0DCEED3C043C")
IWMDMMetaData : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE AddItem(
/* [in] */ WMDM_TAG_DATATYPE Type,
/* [string][in] */ __RPC__in LPCWSTR pwszTagName,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(iLength) BYTE *pValue,
/* [in] */ UINT iLength) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryByName(
/* [string][in] */ __RPC__in LPCWSTR pwszTagName,
/* [out] */ __RPC__out WMDM_TAG_DATATYPE *pType,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbLength) BYTE **pValue,
/* [out] */ __RPC__out UINT *pcbLength) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryByIndex(
/* [in] */ UINT iIndex,
/* [string][out] */ __RPC__deref_out_opt_string WCHAR **ppwszName,
/* [out] */ __RPC__out WMDM_TAG_DATATYPE *pType,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbLength) BYTE **ppValue,
/* [out] */ __RPC__out UINT *pcbLength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetItemCount(
/* [out] */ __RPC__out UINT *iCount) = 0;
};
#else /* C style interface */
typedef struct IWMDMMetaDataVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMMetaData * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMMetaData * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMMetaData * This);
HRESULT ( STDMETHODCALLTYPE *AddItem )(
IWMDMMetaData * This,
/* [in] */ WMDM_TAG_DATATYPE Type,
/* [string][in] */ __RPC__in LPCWSTR pwszTagName,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(iLength) BYTE *pValue,
/* [in] */ UINT iLength);
HRESULT ( STDMETHODCALLTYPE *QueryByName )(
IWMDMMetaData * This,
/* [string][in] */ __RPC__in LPCWSTR pwszTagName,
/* [out] */ __RPC__out WMDM_TAG_DATATYPE *pType,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbLength) BYTE **pValue,
/* [out] */ __RPC__out UINT *pcbLength);
HRESULT ( STDMETHODCALLTYPE *QueryByIndex )(
IWMDMMetaData * This,
/* [in] */ UINT iIndex,
/* [string][out] */ __RPC__deref_out_opt_string WCHAR **ppwszName,
/* [out] */ __RPC__out WMDM_TAG_DATATYPE *pType,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbLength) BYTE **ppValue,
/* [out] */ __RPC__out UINT *pcbLength);
HRESULT ( STDMETHODCALLTYPE *GetItemCount )(
IWMDMMetaData * This,
/* [out] */ __RPC__out UINT *iCount);
END_INTERFACE
} IWMDMMetaDataVtbl;
interface IWMDMMetaData
{
CONST_VTBL struct IWMDMMetaDataVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMMetaData_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMMetaData_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMMetaData_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMMetaData_AddItem(This,Type,pwszTagName,pValue,iLength) \
( (This)->lpVtbl -> AddItem(This,Type,pwszTagName,pValue,iLength) )
#define IWMDMMetaData_QueryByName(This,pwszTagName,pType,pValue,pcbLength) \
( (This)->lpVtbl -> QueryByName(This,pwszTagName,pType,pValue,pcbLength) )
#define IWMDMMetaData_QueryByIndex(This,iIndex,ppwszName,pType,ppValue,pcbLength) \
( (This)->lpVtbl -> QueryByIndex(This,iIndex,ppwszName,pType,ppValue,pcbLength) )
#define IWMDMMetaData_GetItemCount(This,iCount) \
( (This)->lpVtbl -> GetItemCount(This,iCount) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMMetaData_INTERFACE_DEFINED__ */
#ifndef __IWMDeviceManager_INTERFACE_DEFINED__
#define __IWMDeviceManager_INTERFACE_DEFINED__
/* interface IWMDeviceManager */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDeviceManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A00-33ED-11d3-8470-00C04F79DBC0")
IWMDeviceManager : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetRevision(
/* [out] */ __RPC__out DWORD *pdwRevision) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDeviceCount(
/* [out] */ __RPC__out DWORD *pdwCount) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumDevices(
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice) = 0;
};
#else /* C style interface */
typedef struct IWMDeviceManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDeviceManager * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDeviceManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDeviceManager * This);
HRESULT ( STDMETHODCALLTYPE *GetRevision )(
IWMDeviceManager * This,
/* [out] */ __RPC__out DWORD *pdwRevision);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IWMDeviceManager * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IWMDeviceManager * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
END_INTERFACE
} IWMDeviceManagerVtbl;
interface IWMDeviceManager
{
CONST_VTBL struct IWMDeviceManagerVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDeviceManager_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDeviceManager_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDeviceManager_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDeviceManager_GetRevision(This,pdwRevision) \
( (This)->lpVtbl -> GetRevision(This,pdwRevision) )
#define IWMDeviceManager_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IWMDeviceManager_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDeviceManager_INTERFACE_DEFINED__ */
#ifndef __IWMDeviceManager2_INTERFACE_DEFINED__
#define __IWMDeviceManager2_INTERFACE_DEFINED__
/* interface IWMDeviceManager2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDeviceManager2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("923E5249-8731-4c5b-9B1C-B8B60B6E46AF")
IWMDeviceManager2 : public IWMDeviceManager
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDeviceFromCanonicalName(
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName,
/* [out] */ __RPC__deref_out_opt IWMDMDevice **ppDevice) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumDevices2(
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice) = 0;
virtual HRESULT STDMETHODCALLTYPE Reinitialize( void) = 0;
};
#else /* C style interface */
typedef struct IWMDeviceManager2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDeviceManager2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDeviceManager2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDeviceManager2 * This);
HRESULT ( STDMETHODCALLTYPE *GetRevision )(
IWMDeviceManager2 * This,
/* [out] */ __RPC__out DWORD *pdwRevision);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IWMDeviceManager2 * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IWMDeviceManager2 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *GetDeviceFromCanonicalName )(
IWMDeviceManager2 * This,
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName,
/* [out] */ __RPC__deref_out_opt IWMDMDevice **ppDevice);
HRESULT ( STDMETHODCALLTYPE *EnumDevices2 )(
IWMDeviceManager2 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *Reinitialize )(
IWMDeviceManager2 * This);
END_INTERFACE
} IWMDeviceManager2Vtbl;
interface IWMDeviceManager2
{
CONST_VTBL struct IWMDeviceManager2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDeviceManager2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDeviceManager2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDeviceManager2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDeviceManager2_GetRevision(This,pdwRevision) \
( (This)->lpVtbl -> GetRevision(This,pdwRevision) )
#define IWMDeviceManager2_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IWMDeviceManager2_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#define IWMDeviceManager2_GetDeviceFromCanonicalName(This,pwszCanonicalName,ppDevice) \
( (This)->lpVtbl -> GetDeviceFromCanonicalName(This,pwszCanonicalName,ppDevice) )
#define IWMDeviceManager2_EnumDevices2(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices2(This,ppEnumDevice) )
#define IWMDeviceManager2_Reinitialize(This) \
( (This)->lpVtbl -> Reinitialize(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDeviceManager2_INTERFACE_DEFINED__ */
#ifndef __IWMDeviceManager3_INTERFACE_DEFINED__
#define __IWMDeviceManager3_INTERFACE_DEFINED__
/* interface IWMDeviceManager3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDeviceManager3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("af185c41-100d-46ed-be2e-9ce8c44594ef")
IWMDeviceManager3 : public IWMDeviceManager2
{
public:
virtual HRESULT STDMETHODCALLTYPE SetDeviceEnumPreference(
/* [in] */ DWORD dwEnumPref) = 0;
};
#else /* C style interface */
typedef struct IWMDeviceManager3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDeviceManager3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDeviceManager3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDeviceManager3 * This);
HRESULT ( STDMETHODCALLTYPE *GetRevision )(
IWMDeviceManager3 * This,
/* [out] */ __RPC__out DWORD *pdwRevision);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IWMDeviceManager3 * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IWMDeviceManager3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *GetDeviceFromCanonicalName )(
IWMDeviceManager3 * This,
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName,
/* [out] */ __RPC__deref_out_opt IWMDMDevice **ppDevice);
HRESULT ( STDMETHODCALLTYPE *EnumDevices2 )(
IWMDeviceManager3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *Reinitialize )(
IWMDeviceManager3 * This);
HRESULT ( STDMETHODCALLTYPE *SetDeviceEnumPreference )(
IWMDeviceManager3 * This,
/* [in] */ DWORD dwEnumPref);
END_INTERFACE
} IWMDeviceManager3Vtbl;
interface IWMDeviceManager3
{
CONST_VTBL struct IWMDeviceManager3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDeviceManager3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDeviceManager3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDeviceManager3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDeviceManager3_GetRevision(This,pdwRevision) \
( (This)->lpVtbl -> GetRevision(This,pdwRevision) )
#define IWMDeviceManager3_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IWMDeviceManager3_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#define IWMDeviceManager3_GetDeviceFromCanonicalName(This,pwszCanonicalName,ppDevice) \
( (This)->lpVtbl -> GetDeviceFromCanonicalName(This,pwszCanonicalName,ppDevice) )
#define IWMDeviceManager3_EnumDevices2(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices2(This,ppEnumDevice) )
#define IWMDeviceManager3_Reinitialize(This) \
( (This)->lpVtbl -> Reinitialize(This) )
#define IWMDeviceManager3_SetDeviceEnumPreference(This,dwEnumPref) \
( (This)->lpVtbl -> SetDeviceEnumPreference(This,dwEnumPref) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDeviceManager3_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorageGlobals_INTERFACE_DEFINED__
#define __IWMDMStorageGlobals_INTERFACE_DEFINED__
/* interface IWMDMStorageGlobals */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorageGlobals;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A07-33ED-11d3-8470-00C04F79DBC0")
IWMDMStorageGlobals : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
/* [out] */ __RPC__out DWORD *pdwCapabilities) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
/* [out] */ __RPC__out PWMDMID pSerialNum,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalSize(
/* [out] */ __RPC__out DWORD *pdwTotalSizeLow,
/* [out] */ __RPC__out DWORD *pdwTotalSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalFree(
/* [out] */ __RPC__out DWORD *pdwFreeLow,
/* [out] */ __RPC__out DWORD *pdwFreeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalBad(
/* [out] */ __RPC__out DWORD *pdwBadLow,
/* [out] */ __RPC__out DWORD *pdwBadHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorageGlobalsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorageGlobals * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorageGlobals * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorageGlobals * This);
HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwCapabilities);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out PWMDMID pSerialNum,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetTotalSize )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwTotalSizeLow,
/* [out] */ __RPC__out DWORD *pdwTotalSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetTotalFree )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwFreeLow,
/* [out] */ __RPC__out DWORD *pdwFreeHigh);
HRESULT ( STDMETHODCALLTYPE *GetTotalBad )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwBadLow,
/* [out] */ __RPC__out DWORD *pdwBadHigh);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDMStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
IWMDMStorageGlobals * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
END_INTERFACE
} IWMDMStorageGlobalsVtbl;
interface IWMDMStorageGlobals
{
CONST_VTBL struct IWMDMStorageGlobalsVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorageGlobals_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorageGlobals_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorageGlobals_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorageGlobals_GetCapabilities(This,pdwCapabilities) \
( (This)->lpVtbl -> GetCapabilities(This,pdwCapabilities) )
#define IWMDMStorageGlobals_GetSerialNumber(This,pSerialNum,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNum,abMac) )
#define IWMDMStorageGlobals_GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) \
( (This)->lpVtbl -> GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) )
#define IWMDMStorageGlobals_GetTotalFree(This,pdwFreeLow,pdwFreeHigh) \
( (This)->lpVtbl -> GetTotalFree(This,pdwFreeLow,pdwFreeHigh) )
#define IWMDMStorageGlobals_GetTotalBad(This,pdwBadLow,pdwBadHigh) \
( (This)->lpVtbl -> GetTotalBad(This,pdwBadLow,pdwBadHigh) )
#define IWMDMStorageGlobals_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IWMDMStorageGlobals_Initialize(This,fuMode,pProgress) \
( (This)->lpVtbl -> Initialize(This,fuMode,pProgress) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorageGlobals_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorage_INTERFACE_DEFINED__
#define __IWMDMStorage_INTERFACE_DEFINED__
/* interface IWMDMStorage */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorage;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A06-33ED-11d3-8470-00C04F79DBC0")
IWMDMStorage : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SetAttributes(
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStorageGlobals(
/* [out] */ __RPC__deref_out_opt IWMDMStorageGlobals **ppStorageGlobals) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAttributes(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetName(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDate(
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSize(
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRights(
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumStorage(
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **pEnumStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorage * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorage * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IWMDMStorage * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IWMDMStorage * This,
/* [out] */ __RPC__deref_out_opt IWMDMStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IWMDMStorage * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMStorage * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IWMDMStorage * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IWMDMStorage * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IWMDMStorage * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMStorage * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **pEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMStorage * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
END_INTERFACE
} IWMDMStorageVtbl;
interface IWMDMStorage
{
CONST_VTBL struct IWMDMStorageVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorage_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorage_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorage_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorage_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IWMDMStorage_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IWMDMStorage_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IWMDMStorage_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMStorage_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IWMDMStorage_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IWMDMStorage_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IWMDMStorage_EnumStorage(This,pEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,pEnumStorage) )
#define IWMDMStorage_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorage_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorage2_INTERFACE_DEFINED__
#define __IWMDMStorage2_INTERFACE_DEFINED__
/* interface IWMDMStorage2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorage2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1ED5A144-5CD5-4683-9EFF-72CBDB2D9533")
IWMDMStorage2 : public IWMDMStorage
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStorage(
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE SetAttributes2(
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAttributes2(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorage2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorage2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorage2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorage2 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IWMDMStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IWMDMStorage2 * This,
/* [out] */ __RPC__deref_out_opt IWMDMStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IWMDMStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMStorage2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IWMDMStorage2 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IWMDMStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IWMDMStorage2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMStorage2 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **pEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMStorage2 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IWMDMStorage2 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IWMDMStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IWMDMStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
END_INTERFACE
} IWMDMStorage2Vtbl;
interface IWMDMStorage2
{
CONST_VTBL struct IWMDMStorage2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorage2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorage2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorage2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorage2_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IWMDMStorage2_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IWMDMStorage2_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IWMDMStorage2_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMStorage2_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IWMDMStorage2_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IWMDMStorage2_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IWMDMStorage2_EnumStorage(This,pEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,pEnumStorage) )
#define IWMDMStorage2_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IWMDMStorage2_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IWMDMStorage2_SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) )
#define IWMDMStorage2_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorage2_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorage3_INTERFACE_DEFINED__
#define __IWMDMStorage3_INTERFACE_DEFINED__
/* interface IWMDMStorage3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorage3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("97717EEA-926A-464e-96A4-247B0216026E")
IWMDMStorage3 : public IWMDMStorage2
{
public:
virtual HRESULT STDMETHODCALLTYPE GetMetadata(
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE SetMetadata(
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateEmptyMetadataObject(
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEnumPreference(
/* [out][in] */ __RPC__inout WMDM_STORAGE_ENUM_MODE *pMode,
/* [in] */ DWORD nViews,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(nViews) WMDMMetadataView *pViews) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorage3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorage3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorage3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorage3 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IWMDMStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IWMDMStorage3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IWMDMStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMStorage3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IWMDMStorage3 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IWMDMStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IWMDMStorage3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMStorage3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **pEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMStorage3 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IWMDMStorage3 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IWMDMStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IWMDMStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetMetadata )(
IWMDMStorage3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata);
HRESULT ( STDMETHODCALLTYPE *SetMetadata )(
IWMDMStorage3 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *CreateEmptyMetadataObject )(
IWMDMStorage3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata);
HRESULT ( STDMETHODCALLTYPE *SetEnumPreference )(
IWMDMStorage3 * This,
/* [out][in] */ __RPC__inout WMDM_STORAGE_ENUM_MODE *pMode,
/* [in] */ DWORD nViews,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(nViews) WMDMMetadataView *pViews);
END_INTERFACE
} IWMDMStorage3Vtbl;
interface IWMDMStorage3
{
CONST_VTBL struct IWMDMStorage3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorage3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorage3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorage3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorage3_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IWMDMStorage3_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IWMDMStorage3_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IWMDMStorage3_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMStorage3_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IWMDMStorage3_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IWMDMStorage3_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IWMDMStorage3_EnumStorage(This,pEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,pEnumStorage) )
#define IWMDMStorage3_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IWMDMStorage3_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IWMDMStorage3_SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) )
#define IWMDMStorage3_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#define IWMDMStorage3_GetMetadata(This,ppMetadata) \
( (This)->lpVtbl -> GetMetadata(This,ppMetadata) )
#define IWMDMStorage3_SetMetadata(This,pMetadata) \
( (This)->lpVtbl -> SetMetadata(This,pMetadata) )
#define IWMDMStorage3_CreateEmptyMetadataObject(This,ppMetadata) \
( (This)->lpVtbl -> CreateEmptyMetadataObject(This,ppMetadata) )
#define IWMDMStorage3_SetEnumPreference(This,pMode,nViews,pViews) \
( (This)->lpVtbl -> SetEnumPreference(This,pMode,nViews,pViews) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorage3_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorage4_INTERFACE_DEFINED__
#define __IWMDMStorage4_INTERFACE_DEFINED__
/* interface IWMDMStorage4 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorage4;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c225bac5-a03a-40b8-9a23-91cf478c64a6")
IWMDMStorage4 : public IWMDMStorage3
{
public:
virtual HRESULT STDMETHODCALLTYPE SetReferences(
/* [in] */ DWORD dwRefs,
/* [size_is][unique][in] */ __RPC__in_ecount_full_opt(dwRefs) IWMDMStorage **ppIWMDMStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetReferences(
/* [out] */ __RPC__out DWORD *pdwRefs,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwRefs) IWMDMStorage ***pppIWMDMStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRightsWithProgress(
/* [in] */ __RPC__in_opt IWMDMProgress3 *pIProgressCallback,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSpecifiedMetadata(
/* [in] */ DWORD cProperties,
/* [size_is][in] */ __RPC__in_ecount_full(cProperties) LPCWSTR *ppwszPropNames,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE FindStorage(
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetParent(
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorage4Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorage4 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorage4 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorage4 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IWMDMStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IWMDMStorage4 * This,
/* [out] */ __RPC__deref_out_opt IWMDMStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IWMDMStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMStorage4 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IWMDMStorage4 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IWMDMStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IWMDMStorage4 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMStorage4 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **pEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMStorage4 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IWMDMStorage4 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IWMDMStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IWMDMStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetMetadata )(
IWMDMStorage4 * This,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata);
HRESULT ( STDMETHODCALLTYPE *SetMetadata )(
IWMDMStorage4 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *CreateEmptyMetadataObject )(
IWMDMStorage4 * This,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata);
HRESULT ( STDMETHODCALLTYPE *SetEnumPreference )(
IWMDMStorage4 * This,
/* [out][in] */ __RPC__inout WMDM_STORAGE_ENUM_MODE *pMode,
/* [in] */ DWORD nViews,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(nViews) WMDMMetadataView *pViews);
HRESULT ( STDMETHODCALLTYPE *SetReferences )(
IWMDMStorage4 * This,
/* [in] */ DWORD dwRefs,
/* [size_is][unique][in] */ __RPC__in_ecount_full_opt(dwRefs) IWMDMStorage **ppIWMDMStorage);
HRESULT ( STDMETHODCALLTYPE *GetReferences )(
IWMDMStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwRefs,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwRefs) IWMDMStorage ***pppIWMDMStorage);
HRESULT ( STDMETHODCALLTYPE *GetRightsWithProgress )(
IWMDMStorage4 * This,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pIProgressCallback,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount);
HRESULT ( STDMETHODCALLTYPE *GetSpecifiedMetadata )(
IWMDMStorage4 * This,
/* [in] */ DWORD cProperties,
/* [size_is][in] */ __RPC__in_ecount_full(cProperties) LPCWSTR *ppwszPropNames,
/* [out] */ __RPC__deref_out_opt IWMDMMetaData **ppMetadata);
HRESULT ( STDMETHODCALLTYPE *FindStorage )(
IWMDMStorage4 * This,
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetParent )(
IWMDMStorage4 * This,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
END_INTERFACE
} IWMDMStorage4Vtbl;
interface IWMDMStorage4
{
CONST_VTBL struct IWMDMStorage4Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorage4_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorage4_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorage4_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorage4_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IWMDMStorage4_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IWMDMStorage4_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IWMDMStorage4_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMStorage4_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IWMDMStorage4_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IWMDMStorage4_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IWMDMStorage4_EnumStorage(This,pEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,pEnumStorage) )
#define IWMDMStorage4_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IWMDMStorage4_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IWMDMStorage4_SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) )
#define IWMDMStorage4_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#define IWMDMStorage4_GetMetadata(This,ppMetadata) \
( (This)->lpVtbl -> GetMetadata(This,ppMetadata) )
#define IWMDMStorage4_SetMetadata(This,pMetadata) \
( (This)->lpVtbl -> SetMetadata(This,pMetadata) )
#define IWMDMStorage4_CreateEmptyMetadataObject(This,ppMetadata) \
( (This)->lpVtbl -> CreateEmptyMetadataObject(This,ppMetadata) )
#define IWMDMStorage4_SetEnumPreference(This,pMode,nViews,pViews) \
( (This)->lpVtbl -> SetEnumPreference(This,pMode,nViews,pViews) )
#define IWMDMStorage4_SetReferences(This,dwRefs,ppIWMDMStorage) \
( (This)->lpVtbl -> SetReferences(This,dwRefs,ppIWMDMStorage) )
#define IWMDMStorage4_GetReferences(This,pdwRefs,pppIWMDMStorage) \
( (This)->lpVtbl -> GetReferences(This,pdwRefs,pppIWMDMStorage) )
#define IWMDMStorage4_GetRightsWithProgress(This,pIProgressCallback,ppRights,pnRightsCount) \
( (This)->lpVtbl -> GetRightsWithProgress(This,pIProgressCallback,ppRights,pnRightsCount) )
#define IWMDMStorage4_GetSpecifiedMetadata(This,cProperties,ppwszPropNames,ppMetadata) \
( (This)->lpVtbl -> GetSpecifiedMetadata(This,cProperties,ppwszPropNames,ppMetadata) )
#define IWMDMStorage4_FindStorage(This,findScope,pwszUniqueID,ppStorage) \
( (This)->lpVtbl -> FindStorage(This,findScope,pwszUniqueID,ppStorage) )
#define IWMDMStorage4_GetParent(This,ppStorage) \
( (This)->lpVtbl -> GetParent(This,ppStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorage4_INTERFACE_DEFINED__ */
#ifndef __IWMDMOperation_INTERFACE_DEFINED__
#define __IWMDMOperation_INTERFACE_DEFINED__
/* interface IWMDMOperation */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMOperation;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A0B-33ED-11d3-8470-00C04F79DBC0")
IWMDMOperation : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE BeginRead( void) = 0;
virtual HRESULT STDMETHODCALLTYPE BeginWrite( void) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectName(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE SetObjectName(
/* [size_is][string][in] */ __RPC__in_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectAttributes(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE SetObjectAttributes(
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectTotalSize(
/* [out] */ __RPC__out DWORD *pdwSize,
/* [out] */ __RPC__out DWORD *pdwSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE SetObjectTotalSize(
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE TransferObjectData(
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE End(
/* [in] */ __RPC__in HRESULT *phCompletionCode,
/* [in] */ __RPC__in_opt IUnknown *pNewObject) = 0;
};
#else /* C style interface */
typedef struct IWMDMOperationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMOperation * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMOperation * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMOperation * This);
HRESULT ( STDMETHODCALLTYPE *BeginRead )(
IWMDMOperation * This);
HRESULT ( STDMETHODCALLTYPE *BeginWrite )(
IWMDMOperation * This);
HRESULT ( STDMETHODCALLTYPE *GetObjectName )(
IWMDMOperation * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *SetObjectName )(
IWMDMOperation * This,
/* [size_is][string][in] */ __RPC__in_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes )(
IWMDMOperation * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes )(
IWMDMOperation * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetObjectTotalSize )(
IWMDMOperation * This,
/* [out] */ __RPC__out DWORD *pdwSize,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *SetObjectTotalSize )(
IWMDMOperation * This,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *TransferObjectData )(
IWMDMOperation * This,
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMOperation * This,
/* [in] */ __RPC__in HRESULT *phCompletionCode,
/* [in] */ __RPC__in_opt IUnknown *pNewObject);
END_INTERFACE
} IWMDMOperationVtbl;
interface IWMDMOperation
{
CONST_VTBL struct IWMDMOperationVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMOperation_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMOperation_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMOperation_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMOperation_BeginRead(This) \
( (This)->lpVtbl -> BeginRead(This) )
#define IWMDMOperation_BeginWrite(This) \
( (This)->lpVtbl -> BeginWrite(This) )
#define IWMDMOperation_GetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation_SetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> SetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation_GetObjectAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetObjectAttributes(This,pdwAttributes,pFormat) )
#define IWMDMOperation_SetObjectAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetObjectAttributes(This,dwAttributes,pFormat) )
#define IWMDMOperation_GetObjectTotalSize(This,pdwSize,pdwSizeHigh) \
( (This)->lpVtbl -> GetObjectTotalSize(This,pdwSize,pdwSizeHigh) )
#define IWMDMOperation_SetObjectTotalSize(This,dwSize,dwSizeHigh) \
( (This)->lpVtbl -> SetObjectTotalSize(This,dwSize,dwSizeHigh) )
#define IWMDMOperation_TransferObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> TransferObjectData(This,pData,pdwSize,abMac) )
#define IWMDMOperation_End(This,phCompletionCode,pNewObject) \
( (This)->lpVtbl -> End(This,phCompletionCode,pNewObject) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMOperation_INTERFACE_DEFINED__ */
#ifndef __IWMDMOperation2_INTERFACE_DEFINED__
#define __IWMDMOperation2_INTERFACE_DEFINED__
/* interface IWMDMOperation2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMOperation2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("33445B48-7DF7-425c-AD8F-0FC6D82F9F75")
IWMDMOperation2 : public IWMDMOperation
{
public:
virtual HRESULT STDMETHODCALLTYPE SetObjectAttributes2(
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectAttributes2(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
};
#else /* C style interface */
typedef struct IWMDMOperation2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMOperation2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMOperation2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMOperation2 * This);
HRESULT ( STDMETHODCALLTYPE *BeginRead )(
IWMDMOperation2 * This);
HRESULT ( STDMETHODCALLTYPE *BeginWrite )(
IWMDMOperation2 * This);
HRESULT ( STDMETHODCALLTYPE *GetObjectName )(
IWMDMOperation2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *SetObjectName )(
IWMDMOperation2 * This,
/* [size_is][string][in] */ __RPC__in_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes )(
IWMDMOperation2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes )(
IWMDMOperation2 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetObjectTotalSize )(
IWMDMOperation2 * This,
/* [out] */ __RPC__out DWORD *pdwSize,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *SetObjectTotalSize )(
IWMDMOperation2 * This,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *TransferObjectData )(
IWMDMOperation2 * This,
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMOperation2 * This,
/* [in] */ __RPC__in HRESULT *phCompletionCode,
/* [in] */ __RPC__in_opt IUnknown *pNewObject);
HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes2 )(
IWMDMOperation2 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes2 )(
IWMDMOperation2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
END_INTERFACE
} IWMDMOperation2Vtbl;
interface IWMDMOperation2
{
CONST_VTBL struct IWMDMOperation2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMOperation2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMOperation2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMOperation2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMOperation2_BeginRead(This) \
( (This)->lpVtbl -> BeginRead(This) )
#define IWMDMOperation2_BeginWrite(This) \
( (This)->lpVtbl -> BeginWrite(This) )
#define IWMDMOperation2_GetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation2_SetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> SetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation2_GetObjectAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetObjectAttributes(This,pdwAttributes,pFormat) )
#define IWMDMOperation2_SetObjectAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetObjectAttributes(This,dwAttributes,pFormat) )
#define IWMDMOperation2_GetObjectTotalSize(This,pdwSize,pdwSizeHigh) \
( (This)->lpVtbl -> GetObjectTotalSize(This,pdwSize,pdwSizeHigh) )
#define IWMDMOperation2_SetObjectTotalSize(This,dwSize,dwSizeHigh) \
( (This)->lpVtbl -> SetObjectTotalSize(This,dwSize,dwSizeHigh) )
#define IWMDMOperation2_TransferObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> TransferObjectData(This,pData,pdwSize,abMac) )
#define IWMDMOperation2_End(This,phCompletionCode,pNewObject) \
( (This)->lpVtbl -> End(This,phCompletionCode,pNewObject) )
#define IWMDMOperation2_SetObjectAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
( (This)->lpVtbl -> SetObjectAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) )
#define IWMDMOperation2_GetObjectAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetObjectAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMOperation2_INTERFACE_DEFINED__ */
#ifndef __IWMDMOperation3_INTERFACE_DEFINED__
#define __IWMDMOperation3_INTERFACE_DEFINED__
/* interface IWMDMOperation3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMOperation3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d1f9b46a-9ca8-46d8-9d0f-1ec9bae54919")
IWMDMOperation3 : public IWMDMOperation
{
public:
virtual HRESULT STDMETHODCALLTYPE TransferObjectDataOnClearChannel(
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize) = 0;
};
#else /* C style interface */
typedef struct IWMDMOperation3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMOperation3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMOperation3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMOperation3 * This);
HRESULT ( STDMETHODCALLTYPE *BeginRead )(
IWMDMOperation3 * This);
HRESULT ( STDMETHODCALLTYPE *BeginWrite )(
IWMDMOperation3 * This);
HRESULT ( STDMETHODCALLTYPE *GetObjectName )(
IWMDMOperation3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *SetObjectName )(
IWMDMOperation3 * This,
/* [size_is][string][in] */ __RPC__in_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes )(
IWMDMOperation3 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes )(
IWMDMOperation3 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetObjectTotalSize )(
IWMDMOperation3 * This,
/* [out] */ __RPC__out DWORD *pdwSize,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *SetObjectTotalSize )(
IWMDMOperation3 * This,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *TransferObjectData )(
IWMDMOperation3 * This,
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMOperation3 * This,
/* [in] */ __RPC__in HRESULT *phCompletionCode,
/* [in] */ __RPC__in_opt IUnknown *pNewObject);
HRESULT ( STDMETHODCALLTYPE *TransferObjectDataOnClearChannel )(
IWMDMOperation3 * This,
/* [size_is][out][in] */ __RPC__inout_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize);
END_INTERFACE
} IWMDMOperation3Vtbl;
interface IWMDMOperation3
{
CONST_VTBL struct IWMDMOperation3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMOperation3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMOperation3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMOperation3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMOperation3_BeginRead(This) \
( (This)->lpVtbl -> BeginRead(This) )
#define IWMDMOperation3_BeginWrite(This) \
( (This)->lpVtbl -> BeginWrite(This) )
#define IWMDMOperation3_GetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation3_SetObjectName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> SetObjectName(This,pwszName,nMaxChars) )
#define IWMDMOperation3_GetObjectAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetObjectAttributes(This,pdwAttributes,pFormat) )
#define IWMDMOperation3_SetObjectAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetObjectAttributes(This,dwAttributes,pFormat) )
#define IWMDMOperation3_GetObjectTotalSize(This,pdwSize,pdwSizeHigh) \
( (This)->lpVtbl -> GetObjectTotalSize(This,pdwSize,pdwSizeHigh) )
#define IWMDMOperation3_SetObjectTotalSize(This,dwSize,dwSizeHigh) \
( (This)->lpVtbl -> SetObjectTotalSize(This,dwSize,dwSizeHigh) )
#define IWMDMOperation3_TransferObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> TransferObjectData(This,pData,pdwSize,abMac) )
#define IWMDMOperation3_End(This,phCompletionCode,pNewObject) \
( (This)->lpVtbl -> End(This,phCompletionCode,pNewObject) )
#define IWMDMOperation3_TransferObjectDataOnClearChannel(This,pData,pdwSize) \
( (This)->lpVtbl -> TransferObjectDataOnClearChannel(This,pData,pdwSize) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMOperation3_INTERFACE_DEFINED__ */
#ifndef __IWMDMProgress_INTERFACE_DEFINED__
#define __IWMDMProgress_INTERFACE_DEFINED__
/* interface IWMDMProgress */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMProgress;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A0C-33ED-11d3-8470-00C04F79DBC0")
IWMDMProgress : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Begin(
/* [in] */ DWORD dwEstimatedTicks) = 0;
virtual HRESULT STDMETHODCALLTYPE Progress(
/* [in] */ DWORD dwTranspiredTicks) = 0;
virtual HRESULT STDMETHODCALLTYPE End( void) = 0;
};
#else /* C style interface */
typedef struct IWMDMProgressVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMProgress * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMProgress * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMProgress * This);
HRESULT ( STDMETHODCALLTYPE *Begin )(
IWMDMProgress * This,
/* [in] */ DWORD dwEstimatedTicks);
HRESULT ( STDMETHODCALLTYPE *Progress )(
IWMDMProgress * This,
/* [in] */ DWORD dwTranspiredTicks);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMProgress * This);
END_INTERFACE
} IWMDMProgressVtbl;
interface IWMDMProgress
{
CONST_VTBL struct IWMDMProgressVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMProgress_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMProgress_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMProgress_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMProgress_Begin(This,dwEstimatedTicks) \
( (This)->lpVtbl -> Begin(This,dwEstimatedTicks) )
#define IWMDMProgress_Progress(This,dwTranspiredTicks) \
( (This)->lpVtbl -> Progress(This,dwTranspiredTicks) )
#define IWMDMProgress_End(This) \
( (This)->lpVtbl -> End(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMProgress_INTERFACE_DEFINED__ */
#ifndef __IWMDMProgress2_INTERFACE_DEFINED__
#define __IWMDMProgress2_INTERFACE_DEFINED__
/* interface IWMDMProgress2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMProgress2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3A43F550-B383-4e92-B04A-E6BBC660FEFC")
IWMDMProgress2 : public IWMDMProgress
{
public:
virtual HRESULT STDMETHODCALLTYPE End2(
/* [in] */ HRESULT hrCompletionCode) = 0;
};
#else /* C style interface */
typedef struct IWMDMProgress2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMProgress2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMProgress2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMProgress2 * This);
HRESULT ( STDMETHODCALLTYPE *Begin )(
IWMDMProgress2 * This,
/* [in] */ DWORD dwEstimatedTicks);
HRESULT ( STDMETHODCALLTYPE *Progress )(
IWMDMProgress2 * This,
/* [in] */ DWORD dwTranspiredTicks);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMProgress2 * This);
HRESULT ( STDMETHODCALLTYPE *End2 )(
IWMDMProgress2 * This,
/* [in] */ HRESULT hrCompletionCode);
END_INTERFACE
} IWMDMProgress2Vtbl;
interface IWMDMProgress2
{
CONST_VTBL struct IWMDMProgress2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMProgress2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMProgress2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMProgress2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMProgress2_Begin(This,dwEstimatedTicks) \
( (This)->lpVtbl -> Begin(This,dwEstimatedTicks) )
#define IWMDMProgress2_Progress(This,dwTranspiredTicks) \
( (This)->lpVtbl -> Progress(This,dwTranspiredTicks) )
#define IWMDMProgress2_End(This) \
( (This)->lpVtbl -> End(This) )
#define IWMDMProgress2_End2(This,hrCompletionCode) \
( (This)->lpVtbl -> End2(This,hrCompletionCode) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMProgress2_INTERFACE_DEFINED__ */
#ifndef __IWMDMProgress3_INTERFACE_DEFINED__
#define __IWMDMProgress3_INTERFACE_DEFINED__
/* interface IWMDMProgress3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMProgress3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("21DE01CB-3BB4-4929-B21A-17AF3F80F658")
IWMDMProgress3 : public IWMDMProgress2
{
public:
virtual HRESULT STDMETHODCALLTYPE Begin3(
/* [in] */ GUID EventId,
/* [in] */ DWORD dwEstimatedTicks,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext) = 0;
virtual HRESULT STDMETHODCALLTYPE Progress3(
/* [in] */ GUID EventId,
/* [in] */ DWORD dwTranspiredTicks,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext) = 0;
virtual HRESULT STDMETHODCALLTYPE End3(
/* [in] */ GUID EventId,
/* [in] */ HRESULT hrCompletionCode,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext) = 0;
};
#else /* C style interface */
typedef struct IWMDMProgress3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMProgress3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMProgress3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMProgress3 * This);
HRESULT ( STDMETHODCALLTYPE *Begin )(
IWMDMProgress3 * This,
/* [in] */ DWORD dwEstimatedTicks);
HRESULT ( STDMETHODCALLTYPE *Progress )(
IWMDMProgress3 * This,
/* [in] */ DWORD dwTranspiredTicks);
HRESULT ( STDMETHODCALLTYPE *End )(
IWMDMProgress3 * This);
HRESULT ( STDMETHODCALLTYPE *End2 )(
IWMDMProgress3 * This,
/* [in] */ HRESULT hrCompletionCode);
HRESULT ( STDMETHODCALLTYPE *Begin3 )(
IWMDMProgress3 * This,
/* [in] */ GUID EventId,
/* [in] */ DWORD dwEstimatedTicks,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext);
HRESULT ( STDMETHODCALLTYPE *Progress3 )(
IWMDMProgress3 * This,
/* [in] */ GUID EventId,
/* [in] */ DWORD dwTranspiredTicks,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext);
HRESULT ( STDMETHODCALLTYPE *End3 )(
IWMDMProgress3 * This,
/* [in] */ GUID EventId,
/* [in] */ HRESULT hrCompletionCode,
/* [unique][out][in] */ __RPC__inout_opt OPAQUECOMMAND *pContext);
END_INTERFACE
} IWMDMProgress3Vtbl;
interface IWMDMProgress3
{
CONST_VTBL struct IWMDMProgress3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMProgress3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMProgress3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMProgress3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMProgress3_Begin(This,dwEstimatedTicks) \
( (This)->lpVtbl -> Begin(This,dwEstimatedTicks) )
#define IWMDMProgress3_Progress(This,dwTranspiredTicks) \
( (This)->lpVtbl -> Progress(This,dwTranspiredTicks) )
#define IWMDMProgress3_End(This) \
( (This)->lpVtbl -> End(This) )
#define IWMDMProgress3_End2(This,hrCompletionCode) \
( (This)->lpVtbl -> End2(This,hrCompletionCode) )
#define IWMDMProgress3_Begin3(This,EventId,dwEstimatedTicks,pContext) \
( (This)->lpVtbl -> Begin3(This,EventId,dwEstimatedTicks,pContext) )
#define IWMDMProgress3_Progress3(This,EventId,dwTranspiredTicks,pContext) \
( (This)->lpVtbl -> Progress3(This,EventId,dwTranspiredTicks,pContext) )
#define IWMDMProgress3_End3(This,EventId,hrCompletionCode,pContext) \
( (This)->lpVtbl -> End3(This,EventId,hrCompletionCode,pContext) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMProgress3_INTERFACE_DEFINED__ */
#ifndef __IWMDMDevice_INTERFACE_DEFINED__
#define __IWMDMDevice_INTERFACE_DEFINED__
/* interface IWMDMDevice */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMDevice;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A02-33ED-11d3-8470-00C04F79DBC0")
IWMDMDevice : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetName(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetManufacturer(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetVersion(
/* [out] */ __RPC__out DWORD *pdwVersion) = 0;
virtual HRESULT STDMETHODCALLTYPE GetType(
/* [out] */ __RPC__out DWORD *pdwType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPowerSource(
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDeviceIcon(
/* [out] */ __RPC__out ULONG *hIcon) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumStorage(
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatSupport(
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **ppFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount) = 0;
virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand) = 0;
};
#else /* C style interface */
typedef struct IWMDMDeviceVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMDevice * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMDevice * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMDevice * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMDevice * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IWMDMDevice * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IWMDMDevice * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IWMDMDevice * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IWMDMDevice * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IWMDMDevice * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDMDevice * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IWMDMDevice * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMDevice * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IWMDMDevice * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **ppFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMDevice * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
END_INTERFACE
} IWMDMDeviceVtbl;
interface IWMDMDevice
{
CONST_VTBL struct IWMDMDeviceVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMDevice_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMDevice_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMDevice_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMDevice_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMDevice_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IWMDMDevice_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IWMDMDevice_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IWMDMDevice_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IWMDMDevice_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IWMDMDevice_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IWMDMDevice_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IWMDMDevice_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IWMDMDevice_GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IWMDMDevice_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMDevice_INTERFACE_DEFINED__ */
#ifndef __IWMDMDevice2_INTERFACE_DEFINED__
#define __IWMDMDevice2_INTERFACE_DEFINED__
/* interface IWMDMDevice2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMDevice2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("E34F3D37-9D67-4fc1-9252-62D28B2F8B55")
IWMDMDevice2 : public IWMDMDevice
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStorage(
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatSupport2(
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSpecifyPropertyPages(
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars) = 0;
};
#else /* C style interface */
typedef struct IWMDMDevice2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMDevice2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMDevice2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMDevice2 * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMDevice2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IWMDMDevice2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IWMDMDevice2 * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMDevice2 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IWMDMDevice2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **ppFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMDevice2 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IWMDMDevice2 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
IWMDMDevice2 * This,
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount);
HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
IWMDMDevice2 * This,
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
IWMDMDevice2 * This,
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars);
END_INTERFACE
} IWMDMDevice2Vtbl;
interface IWMDMDevice2
{
CONST_VTBL struct IWMDMDevice2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMDevice2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMDevice2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMDevice2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMDevice2_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMDevice2_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IWMDMDevice2_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IWMDMDevice2_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IWMDMDevice2_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IWMDMDevice2_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IWMDMDevice2_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IWMDMDevice2_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IWMDMDevice2_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IWMDMDevice2_GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IWMDMDevice2_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IWMDMDevice2_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IWMDMDevice2_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
( (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) )
#define IWMDMDevice2_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
( (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) )
#define IWMDMDevice2_GetCanonicalName(This,pwszPnPName,nMaxChars) \
( (This)->lpVtbl -> GetCanonicalName(This,pwszPnPName,nMaxChars) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMDevice2_INTERFACE_DEFINED__ */
#ifndef __IWMDMDevice3_INTERFACE_DEFINED__
#define __IWMDMDevice3_INTERFACE_DEFINED__
/* interface IWMDMDevice3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMDevice3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6c03e4fe-05db-4dda-9e3c-06233a6d5d65")
IWMDMDevice3 : public IWMDMDevice2
{
public:
virtual HRESULT STDMETHODCALLTYPE GetProperty(
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [out] */ __RPC__out PROPVARIANT *pValue) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProperty(
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [in] */ __RPC__in const PROPVARIANT *pValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatCapability(
/* [in] */ WMDM_FORMATCODE format,
/* [out] */ __RPC__out WMDM_FORMAT_CAPABILITY *pFormatSupport) = 0;
virtual HRESULT STDMETHODCALLTYPE DeviceIoControl(
/* [in] */ DWORD dwIoControlCode,
/* [size_is][in] */ __RPC__in_ecount_full(nInBufferSize) BYTE *lpInBuffer,
/* [in] */ DWORD nInBufferSize,
/* [size_is][out] */ __RPC__out_ecount_full(*pnOutBufferSize) BYTE *lpOutBuffer,
/* [out][in] */ __RPC__inout LPDWORD pnOutBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE FindStorage(
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage) = 0;
};
#else /* C style interface */
typedef struct IWMDMDevice3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMDevice3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMDevice3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMDevice3 * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IWMDMDevice3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IWMDMDevice3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IWMDMDevice3 * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IWMDMDevice3 * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IWMDMDevice3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **ppFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IWMDMDevice3 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IWMDMDevice3 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
IWMDMDevice3 * This,
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount);
HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
IWMDMDevice3 * This,
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
IWMDMDevice3 * This,
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IWMDMDevice3 * This,
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [out] */ __RPC__out PROPVARIANT *pValue);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IWMDMDevice3 * This,
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [in] */ __RPC__in const PROPVARIANT *pValue);
HRESULT ( STDMETHODCALLTYPE *GetFormatCapability )(
IWMDMDevice3 * This,
/* [in] */ WMDM_FORMATCODE format,
/* [out] */ __RPC__out WMDM_FORMAT_CAPABILITY *pFormatSupport);
HRESULT ( STDMETHODCALLTYPE *DeviceIoControl )(
IWMDMDevice3 * This,
/* [in] */ DWORD dwIoControlCode,
/* [size_is][in] */ __RPC__in_ecount_full(nInBufferSize) BYTE *lpInBuffer,
/* [in] */ DWORD nInBufferSize,
/* [size_is][out] */ __RPC__out_ecount_full(*pnOutBufferSize) BYTE *lpOutBuffer,
/* [out][in] */ __RPC__inout LPDWORD pnOutBufferSize);
HRESULT ( STDMETHODCALLTYPE *FindStorage )(
IWMDMDevice3 * This,
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppStorage);
END_INTERFACE
} IWMDMDevice3Vtbl;
interface IWMDMDevice3
{
CONST_VTBL struct IWMDMDevice3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMDevice3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMDevice3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMDevice3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMDevice3_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IWMDMDevice3_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IWMDMDevice3_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IWMDMDevice3_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IWMDMDevice3_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IWMDMDevice3_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IWMDMDevice3_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IWMDMDevice3_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IWMDMDevice3_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IWMDMDevice3_GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IWMDMDevice3_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IWMDMDevice3_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IWMDMDevice3_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
( (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) )
#define IWMDMDevice3_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
( (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) )
#define IWMDMDevice3_GetCanonicalName(This,pwszPnPName,nMaxChars) \
( (This)->lpVtbl -> GetCanonicalName(This,pwszPnPName,nMaxChars) )
#define IWMDMDevice3_GetProperty(This,pwszPropName,pValue) \
( (This)->lpVtbl -> GetProperty(This,pwszPropName,pValue) )
#define IWMDMDevice3_SetProperty(This,pwszPropName,pValue) \
( (This)->lpVtbl -> SetProperty(This,pwszPropName,pValue) )
#define IWMDMDevice3_GetFormatCapability(This,format,pFormatSupport) \
( (This)->lpVtbl -> GetFormatCapability(This,format,pFormatSupport) )
#define IWMDMDevice3_DeviceIoControl(This,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,pnOutBufferSize) \
( (This)->lpVtbl -> DeviceIoControl(This,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,pnOutBufferSize) )
#define IWMDMDevice3_FindStorage(This,findScope,pwszUniqueID,ppStorage) \
( (This)->lpVtbl -> FindStorage(This,findScope,pwszUniqueID,ppStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMDevice3_INTERFACE_DEFINED__ */
#ifndef __IWMDMDeviceSession_INTERFACE_DEFINED__
#define __IWMDMDeviceSession_INTERFACE_DEFINED__
/* interface IWMDMDeviceSession */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMDeviceSession;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("82af0a65-9d96-412c-83e5-3c43e4b06cc7")
IWMDMDeviceSession : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE BeginSession(
/* [in] */ WMDM_SESSION_TYPE type,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx) = 0;
virtual HRESULT STDMETHODCALLTYPE EndSession(
/* [in] */ WMDM_SESSION_TYPE type,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx) = 0;
};
#else /* C style interface */
typedef struct IWMDMDeviceSessionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMDeviceSession * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMDeviceSession * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMDeviceSession * This);
HRESULT ( STDMETHODCALLTYPE *BeginSession )(
IWMDMDeviceSession * This,
/* [in] */ WMDM_SESSION_TYPE type,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx);
HRESULT ( STDMETHODCALLTYPE *EndSession )(
IWMDMDeviceSession * This,
/* [in] */ WMDM_SESSION_TYPE type,
/* [unique][size_is][in] */ __RPC__in_ecount_full_opt(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx);
END_INTERFACE
} IWMDMDeviceSessionVtbl;
interface IWMDMDeviceSession
{
CONST_VTBL struct IWMDMDeviceSessionVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMDeviceSession_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMDeviceSession_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMDeviceSession_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMDeviceSession_BeginSession(This,type,pCtx,dwSizeCtx) \
( (This)->lpVtbl -> BeginSession(This,type,pCtx,dwSizeCtx) )
#define IWMDMDeviceSession_EndSession(This,type,pCtx,dwSizeCtx) \
( (This)->lpVtbl -> EndSession(This,type,pCtx,dwSizeCtx) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMDeviceSession_INTERFACE_DEFINED__ */
#ifndef __IWMDMEnumDevice_INTERFACE_DEFINED__
#define __IWMDMEnumDevice_INTERFACE_DEFINED__
/* interface IWMDMEnumDevice */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMEnumDevice;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A01-33ED-11d3-8470-00C04F79DBC0")
IWMDMEnumDevice : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IWMDMDevice **ppDevice,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice) = 0;
};
#else /* C style interface */
typedef struct IWMDMEnumDeviceVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMEnumDevice * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMEnumDevice * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMEnumDevice * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IWMDMEnumDevice * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IWMDMDevice **ppDevice,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IWMDMEnumDevice * This,
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IWMDMEnumDevice * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IWMDMEnumDevice * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumDevice **ppEnumDevice);
END_INTERFACE
} IWMDMEnumDeviceVtbl;
interface IWMDMEnumDevice
{
CONST_VTBL struct IWMDMEnumDeviceVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMEnumDevice_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMEnumDevice_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMEnumDevice_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMEnumDevice_Next(This,celt,ppDevice,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ppDevice,pceltFetched) )
#define IWMDMEnumDevice_Skip(This,celt,pceltFetched) \
( (This)->lpVtbl -> Skip(This,celt,pceltFetched) )
#define IWMDMEnumDevice_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define IWMDMEnumDevice_Clone(This,ppEnumDevice) \
( (This)->lpVtbl -> Clone(This,ppEnumDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMEnumDevice_INTERFACE_DEFINED__ */
#ifndef __IWMDMDeviceControl_INTERFACE_DEFINED__
#define __IWMDMDeviceControl_INTERFACE_DEFINED__
/* interface IWMDMDeviceControl */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMDeviceControl;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A04-33ED-11d3-8470-00C04F79DBC0")
IWMDMDeviceControl : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
/* [out] */ __RPC__out DWORD *pdwCapabilitiesMask) = 0;
virtual HRESULT STDMETHODCALLTYPE Play( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Record(
/* [in] */ __RPC__in _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Seek(
/* [in] */ UINT fuMode,
/* [in] */ int nOffset) = 0;
};
#else /* C style interface */
typedef struct IWMDMDeviceControlVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMDeviceControl * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMDeviceControl * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDMDeviceControl * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
IWMDMDeviceControl * This,
/* [out] */ __RPC__out DWORD *pdwCapabilitiesMask);
HRESULT ( STDMETHODCALLTYPE *Play )(
IWMDMDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Record )(
IWMDMDeviceControl * This,
/* [in] */ __RPC__in _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *Pause )(
IWMDMDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
IWMDMDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Stop )(
IWMDMDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Seek )(
IWMDMDeviceControl * This,
/* [in] */ UINT fuMode,
/* [in] */ int nOffset);
END_INTERFACE
} IWMDMDeviceControlVtbl;
interface IWMDMDeviceControl
{
CONST_VTBL struct IWMDMDeviceControlVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMDeviceControl_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMDeviceControl_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMDeviceControl_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMDeviceControl_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IWMDMDeviceControl_GetCapabilities(This,pdwCapabilitiesMask) \
( (This)->lpVtbl -> GetCapabilities(This,pdwCapabilitiesMask) )
#define IWMDMDeviceControl_Play(This) \
( (This)->lpVtbl -> Play(This) )
#define IWMDMDeviceControl_Record(This,pFormat) \
( (This)->lpVtbl -> Record(This,pFormat) )
#define IWMDMDeviceControl_Pause(This) \
( (This)->lpVtbl -> Pause(This) )
#define IWMDMDeviceControl_Resume(This) \
( (This)->lpVtbl -> Resume(This) )
#define IWMDMDeviceControl_Stop(This) \
( (This)->lpVtbl -> Stop(This) )
#define IWMDMDeviceControl_Seek(This,fuMode,nOffset) \
( (This)->lpVtbl -> Seek(This,fuMode,nOffset) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMDeviceControl_INTERFACE_DEFINED__ */
#ifndef __IWMDMEnumStorage_INTERFACE_DEFINED__
#define __IWMDMEnumStorage_INTERFACE_DEFINED__
/* interface IWMDMEnumStorage */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMEnumStorage;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A05-33ED-11d3-8470-00C04F79DBC0")
IWMDMEnumStorage : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IWMDMStorage **ppStorage,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage) = 0;
};
#else /* C style interface */
typedef struct IWMDMEnumStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMEnumStorage * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMEnumStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMEnumStorage * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IWMDMEnumStorage * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IWMDMStorage **ppStorage,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IWMDMEnumStorage * This,
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IWMDMEnumStorage * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IWMDMEnumStorage * This,
/* [out] */ __RPC__deref_out_opt IWMDMEnumStorage **ppEnumStorage);
END_INTERFACE
} IWMDMEnumStorageVtbl;
interface IWMDMEnumStorage
{
CONST_VTBL struct IWMDMEnumStorageVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMEnumStorage_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMEnumStorage_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMEnumStorage_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMEnumStorage_Next(This,celt,ppStorage,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ppStorage,pceltFetched) )
#define IWMDMEnumStorage_Skip(This,celt,pceltFetched) \
( (This)->lpVtbl -> Skip(This,celt,pceltFetched) )
#define IWMDMEnumStorage_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define IWMDMEnumStorage_Clone(This,ppEnumStorage) \
( (This)->lpVtbl -> Clone(This,ppEnumStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMEnumStorage_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorageControl_INTERFACE_DEFINED__
#define __IWMDMStorageControl_INTERFACE_DEFINED__
/* interface IWMDMStorageControl */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorageControl;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A08-33ED-11d3-8470-00C04F79DBC0")
IWMDMStorageControl : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Insert(
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppNewObject) = 0;
virtual HRESULT STDMETHODCALLTYPE Delete(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
virtual HRESULT STDMETHODCALLTYPE Rename(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
virtual HRESULT STDMETHODCALLTYPE Read(
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IWMDMOperation *pOperation) = 0;
virtual HRESULT STDMETHODCALLTYPE Move(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMStorage *pTargetObject,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorageControlVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorageControl * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorageControl * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorageControl * This);
HRESULT ( STDMETHODCALLTYPE *Insert )(
IWMDMStorageControl * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppNewObject);
HRESULT ( STDMETHODCALLTYPE *Delete )(
IWMDMStorageControl * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Rename )(
IWMDMStorageControl * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Read )(
IWMDMStorageControl * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IWMDMOperation *pOperation);
HRESULT ( STDMETHODCALLTYPE *Move )(
IWMDMStorageControl * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMStorage *pTargetObject,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
END_INTERFACE
} IWMDMStorageControlVtbl;
interface IWMDMStorageControl
{
CONST_VTBL struct IWMDMStorageControlVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorageControl_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorageControl_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorageControl_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorageControl_Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) \
( (This)->lpVtbl -> Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) )
#define IWMDMStorageControl_Delete(This,fuMode,pProgress) \
( (This)->lpVtbl -> Delete(This,fuMode,pProgress) )
#define IWMDMStorageControl_Rename(This,fuMode,pwszNewName,pProgress) \
( (This)->lpVtbl -> Rename(This,fuMode,pwszNewName,pProgress) )
#define IWMDMStorageControl_Read(This,fuMode,pwszFile,pProgress,pOperation) \
( (This)->lpVtbl -> Read(This,fuMode,pwszFile,pProgress,pOperation) )
#define IWMDMStorageControl_Move(This,fuMode,pTargetObject,pProgress) \
( (This)->lpVtbl -> Move(This,fuMode,pTargetObject,pProgress) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorageControl_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorageControl2_INTERFACE_DEFINED__
#define __IWMDMStorageControl2_INTERFACE_DEFINED__
/* interface IWMDMStorageControl2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorageControl2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("972C2E88-BD6C-4125-8E09-84F837E637B6")
IWMDMStorageControl2 : public IWMDMStorageControl
{
public:
virtual HRESULT STDMETHODCALLTYPE Insert2(
/* [in] */ UINT fuMode,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileSource,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileDest,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IWMDMStorage **ppNewObject) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorageControl2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorageControl2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorageControl2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorageControl2 * This);
HRESULT ( STDMETHODCALLTYPE *Insert )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppNewObject);
HRESULT ( STDMETHODCALLTYPE *Delete )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Rename )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Read )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IWMDMOperation *pOperation);
HRESULT ( STDMETHODCALLTYPE *Move )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMStorage *pTargetObject,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Insert2 )(
IWMDMStorageControl2 * This,
/* [in] */ UINT fuMode,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileSource,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileDest,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IWMDMStorage **ppNewObject);
END_INTERFACE
} IWMDMStorageControl2Vtbl;
interface IWMDMStorageControl2
{
CONST_VTBL struct IWMDMStorageControl2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorageControl2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorageControl2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorageControl2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorageControl2_Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) \
( (This)->lpVtbl -> Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) )
#define IWMDMStorageControl2_Delete(This,fuMode,pProgress) \
( (This)->lpVtbl -> Delete(This,fuMode,pProgress) )
#define IWMDMStorageControl2_Rename(This,fuMode,pwszNewName,pProgress) \
( (This)->lpVtbl -> Rename(This,fuMode,pwszNewName,pProgress) )
#define IWMDMStorageControl2_Read(This,fuMode,pwszFile,pProgress,pOperation) \
( (This)->lpVtbl -> Read(This,fuMode,pwszFile,pProgress,pOperation) )
#define IWMDMStorageControl2_Move(This,fuMode,pTargetObject,pProgress) \
( (This)->lpVtbl -> Move(This,fuMode,pTargetObject,pProgress) )
#define IWMDMStorageControl2_Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject) \
( (This)->lpVtbl -> Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorageControl2_INTERFACE_DEFINED__ */
#ifndef __IWMDMStorageControl3_INTERFACE_DEFINED__
#define __IWMDMStorageControl3_INTERFACE_DEFINED__
/* interface IWMDMStorageControl3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMStorageControl3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B3266365-D4F3-4696-8D53-BD27EC60993A")
IWMDMStorageControl3 : public IWMDMStorageControl2
{
public:
virtual HRESULT STDMETHODCALLTYPE Insert3(
/* [in] */ UINT fuMode,
/* [in] */ UINT fuType,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileSource,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileDest,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [unique][in] */ __RPC__in_opt IWMDMMetaData *pMetaData,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IWMDMStorage **ppNewObject) = 0;
};
#else /* C style interface */
typedef struct IWMDMStorageControl3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMStorageControl3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMStorageControl3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMStorageControl3 * This);
HRESULT ( STDMETHODCALLTYPE *Insert )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [out] */ __RPC__deref_out_opt IWMDMStorage **ppNewObject);
HRESULT ( STDMETHODCALLTYPE *Delete )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Rename )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Read )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [unique][in] */ __RPC__in_opt LPWSTR pwszFile,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IWMDMOperation *pOperation);
HRESULT ( STDMETHODCALLTYPE *Move )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMStorage *pTargetObject,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Insert2 )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileSource,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileDest,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IWMDMStorage **ppNewObject);
HRESULT ( STDMETHODCALLTYPE *Insert3 )(
IWMDMStorageControl3 * This,
/* [in] */ UINT fuMode,
/* [in] */ UINT fuType,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileSource,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszFileDest,
/* [unique][in] */ __RPC__in_opt IWMDMOperation *pOperation,
/* [unique][in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [unique][in] */ __RPC__in_opt IWMDMMetaData *pMetaData,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [unique][out][in] */ __RPC__deref_opt_inout_opt IWMDMStorage **ppNewObject);
END_INTERFACE
} IWMDMStorageControl3Vtbl;
interface IWMDMStorageControl3
{
CONST_VTBL struct IWMDMStorageControl3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMStorageControl3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMStorageControl3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMStorageControl3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMStorageControl3_Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) \
( (This)->lpVtbl -> Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) )
#define IWMDMStorageControl3_Delete(This,fuMode,pProgress) \
( (This)->lpVtbl -> Delete(This,fuMode,pProgress) )
#define IWMDMStorageControl3_Rename(This,fuMode,pwszNewName,pProgress) \
( (This)->lpVtbl -> Rename(This,fuMode,pwszNewName,pProgress) )
#define IWMDMStorageControl3_Read(This,fuMode,pwszFile,pProgress,pOperation) \
( (This)->lpVtbl -> Read(This,fuMode,pwszFile,pProgress,pOperation) )
#define IWMDMStorageControl3_Move(This,fuMode,pTargetObject,pProgress) \
( (This)->lpVtbl -> Move(This,fuMode,pTargetObject,pProgress) )
#define IWMDMStorageControl3_Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject) \
( (This)->lpVtbl -> Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject) )
#define IWMDMStorageControl3_Insert3(This,fuMode,fuType,pwszFileSource,pwszFileDest,pOperation,pProgress,pMetaData,pUnknown,ppNewObject) \
( (This)->lpVtbl -> Insert3(This,fuMode,fuType,pwszFileSource,pwszFileDest,pOperation,pProgress,pMetaData,pUnknown,ppNewObject) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMStorageControl3_INTERFACE_DEFINED__ */
#ifndef __IWMDMObjectInfo_INTERFACE_DEFINED__
#define __IWMDMObjectInfo_INTERFACE_DEFINED__
/* interface IWMDMObjectInfo */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMObjectInfo;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A09-33ED-11d3-8470-00C04F79DBC0")
IWMDMObjectInfo : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetPlayLength(
/* [out] */ __RPC__out DWORD *pdwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPlayLength(
/* [in] */ DWORD dwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPlayOffset(
/* [out] */ __RPC__out DWORD *pdwOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPlayOffset(
/* [in] */ DWORD dwOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalLength(
/* [out] */ __RPC__out DWORD *pdwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLastPlayPosition(
/* [out] */ __RPC__out DWORD *pdwLastPos) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLongestPlayPosition(
/* [out] */ __RPC__out DWORD *pdwLongestPos) = 0;
};
#else /* C style interface */
typedef struct IWMDMObjectInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMObjectInfo * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMObjectInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMObjectInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetPlayLength )(
IWMDMObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLength);
HRESULT ( STDMETHODCALLTYPE *SetPlayLength )(
IWMDMObjectInfo * This,
/* [in] */ DWORD dwLength);
HRESULT ( STDMETHODCALLTYPE *GetPlayOffset )(
IWMDMObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwOffset);
HRESULT ( STDMETHODCALLTYPE *SetPlayOffset )(
IWMDMObjectInfo * This,
/* [in] */ DWORD dwOffset);
HRESULT ( STDMETHODCALLTYPE *GetTotalLength )(
IWMDMObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLength);
HRESULT ( STDMETHODCALLTYPE *GetLastPlayPosition )(
IWMDMObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLastPos);
HRESULT ( STDMETHODCALLTYPE *GetLongestPlayPosition )(
IWMDMObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLongestPos);
END_INTERFACE
} IWMDMObjectInfoVtbl;
interface IWMDMObjectInfo
{
CONST_VTBL struct IWMDMObjectInfoVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMObjectInfo_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMObjectInfo_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMObjectInfo_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMObjectInfo_GetPlayLength(This,pdwLength) \
( (This)->lpVtbl -> GetPlayLength(This,pdwLength) )
#define IWMDMObjectInfo_SetPlayLength(This,dwLength) \
( (This)->lpVtbl -> SetPlayLength(This,dwLength) )
#define IWMDMObjectInfo_GetPlayOffset(This,pdwOffset) \
( (This)->lpVtbl -> GetPlayOffset(This,pdwOffset) )
#define IWMDMObjectInfo_SetPlayOffset(This,dwOffset) \
( (This)->lpVtbl -> SetPlayOffset(This,dwOffset) )
#define IWMDMObjectInfo_GetTotalLength(This,pdwLength) \
( (This)->lpVtbl -> GetTotalLength(This,pdwLength) )
#define IWMDMObjectInfo_GetLastPlayPosition(This,pdwLastPos) \
( (This)->lpVtbl -> GetLastPlayPosition(This,pdwLastPos) )
#define IWMDMObjectInfo_GetLongestPlayPosition(This,pdwLongestPos) \
( (This)->lpVtbl -> GetLongestPlayPosition(This,pdwLongestPos) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMObjectInfo_INTERFACE_DEFINED__ */
#ifndef __IWMDMRevoked_INTERFACE_DEFINED__
#define __IWMDMRevoked_INTERFACE_DEFINED__
/* interface IWMDMRevoked */
/* [ref][uuid][object] */
EXTERN_C const IID IID_IWMDMRevoked;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("EBECCEDB-88EE-4e55-B6A4-8D9F07D696AA")
IWMDMRevoked : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetRevocationURL(
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwBufferLen) LPWSTR *ppwszRevocationURL,
/* [out][in] */ __RPC__inout DWORD *pdwBufferLen,
/* [out] */ __RPC__out DWORD *pdwRevokedBitFlag) = 0;
};
#else /* C style interface */
typedef struct IWMDMRevokedVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMRevoked * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMRevoked * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMRevoked * This);
HRESULT ( STDMETHODCALLTYPE *GetRevocationURL )(
IWMDMRevoked * This,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwBufferLen) LPWSTR *ppwszRevocationURL,
/* [out][in] */ __RPC__inout DWORD *pdwBufferLen,
/* [out] */ __RPC__out DWORD *pdwRevokedBitFlag);
END_INTERFACE
} IWMDMRevokedVtbl;
interface IWMDMRevoked
{
CONST_VTBL struct IWMDMRevokedVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMRevoked_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMRevoked_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMRevoked_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMRevoked_GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen,pdwRevokedBitFlag) \
( (This)->lpVtbl -> GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen,pdwRevokedBitFlag) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMRevoked_INTERFACE_DEFINED__ */
#ifndef __IWMDMNotification_INTERFACE_DEFINED__
#define __IWMDMNotification_INTERFACE_DEFINED__
/* interface IWMDMNotification */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IWMDMNotification;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3F5E95C0-0F43-4ed4-93D2-C89A45D59B81")
IWMDMNotification : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE WMDMMessage(
/* [in] */ DWORD dwMessageType,
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName) = 0;
};
#else /* C style interface */
typedef struct IWMDMNotificationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDMNotification * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDMNotification * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDMNotification * This);
HRESULT ( STDMETHODCALLTYPE *WMDMMessage )(
IWMDMNotification * This,
/* [in] */ DWORD dwMessageType,
/* [string][in] */ __RPC__in LPCWSTR pwszCanonicalName);
END_INTERFACE
} IWMDMNotificationVtbl;
interface IWMDMNotification
{
CONST_VTBL struct IWMDMNotificationVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDMNotification_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDMNotification_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDMNotification_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDMNotification_WMDMMessage(This,dwMessageType,pwszCanonicalName) \
( (This)->lpVtbl -> WMDMMessage(This,dwMessageType,pwszCanonicalName) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDMNotification_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_mswmdm_0000_0028 */
/* [local] */
// WMDM constants for wellknown meta-data tags
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMFileName = L"WMDM/FileName";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMFormatCode = L"WMDM/FormatCode";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMLastModifiedDate = L"WMDM/LastModifiedDate";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMFileCreationDate = L"WMDM/FileCreationDate";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMFileSize = L"WMDM/FileSize";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMFileAttributes = L"WMDM/FileAttributes";
//Format code: WAVE Format
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszAudioWAVECodec = L"WMDM/AudioWAVECodec";
//Format code: FOURCC code
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszVideoFourCCCodec = L"WMDM/VideoFourCCCodec";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMTitle = L"WMDM/Title";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMAuthor = L"WMDM/Author";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMDescription = L"WMDM/Description";
//Type: BOOL, WMDM_TAG_DATATYPE: WMDM_TYPE_BOOL
static const WCHAR *g_wszWMDMIsProtected = L"WMDM/IsProtected";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMAlbumTitle = L"WMDM/AlbumTitle";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMAlbumArtist = L"WMDM/AlbumArtist";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMTrack = L"WMDM/Track";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMGenre = L"WMDM/Genre";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMTrackMood = L"WMDM/TrackMood";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAlbumCoverFormat = L"WMDM/AlbumCoverFormat";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAlbumCoverSize = L"WMDM/AlbumCoverSize";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAlbumCoverHeight = L"WMDM/AlbumCoverHeight";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAlbumCoverWidth = L"WMDM/AlbumCoverWidth";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAlbumCoverDuration = L"WMDM/AlbumCoverDuration";
//Type: BYTE*, WMDM_TAG_DATATYPE: WMDM_TYPE_BINARY
static const WCHAR *g_wszWMDMAlbumCoverData = L"WMDM/AlbumCoverData";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMYear = L"WMDM/Year";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMComposer = L"WMDM/Composer";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMCodec = L"WMDM/Codec";
static const WCHAR *g_wszWMDMDRMId = L"WMDM/DRMId";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMBitrate = L"WMDM/Bitrate";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMBitRateType = L"WMDM/BitRateType";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMSampleRate = L"WMDM/SampleRate";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMNumChannels = L"WMDM/NumChannels";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMBlockAlignment = L"WMDM/BlockAlignment";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMAudioBitDepth = L"WMDM/AudioBitDepth";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMTotalBitrate = L"WMDM/TotalBitrate";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMVideoBitrate = L"WMDM/VideoBitrate";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMFrameRate = L"WMDM/FrameRate";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMScanType = L"WMDM/ScanType";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMKeyFrameDistance = L"WMDM/KeyFrameDistance";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMBufferSize = L"WMDM/BufferSize";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMQualitySetting = L"WMDM/QualitySetting";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMEncodingProfile = L"WMDM/EncodingProfile";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMDuration = L"WMDM/Duration";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMAlbumArt = L"WMDM/AlbumArt";
//Type: BOOL, WMDM_TAG_DATATYPE: WMDM_TYPE_BOOL
static const WCHAR *g_wszWMDMBuyNow = L"WMDM/BuyNow";
//Type: BOOL, WMDM_TAG_DATATYPE: WMDM_TYPE_BOOL
static const WCHAR *g_wszWMDMNonConsumable = L"WMDM/NonConsumable";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMediaClassPrimaryID = L"WMDM/MediaClassPrimaryID";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMediaClassSecondaryID = L"WMDM/MediaClassSecondaryID";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMUserEffectiveRating = L"WMDM/UserEffectiveRating";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMUserRating = L"WMDM/UserRating";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMUserRatingOnDevice = L"WMDM/UserRatingOnDevice";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMPlayCount = L"WMDM/PlayCount";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMDevicePlayCount = L"WMDM/DevicePlayCount";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMAuthorDate = L"WMDM/AuthorDate";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMUserLastPlayTime = L"WMDM/UserLastPlayTime";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMSubTitle = L"WMDM/SubTitle";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMSubTitleDescription = L"WMDM/SubTitleDescription";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMediaCredits = L"WMDM/MediaCredits";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMediaStationName = L"WMDM/MediaStationName";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMediaOriginalChannel = L"WMDM/MediaOriginalChannel";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMMediaOriginalBroadcastDateTime = L"WMDM/MediaOriginalBroadcastDateTime";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMProviderCopyright = L"WMDM/ProviderCopyright";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMSyncID = L"WMDM/SyncID";
//Type: GUID, WMDM_TAG_DATATYPE: WMDM_TYPE_GUID
static const WCHAR *g_wszWMDMPersistentUniqueID = L"WMDM/PersistentUniqueID";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMWidth = L"WMDM/Width";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMHeight = L"WMDM/Height";
//Type: WMDMDATETIME, WMDM_TAG_DATATYPE: WMDM_TYPE_DATETIME
static const WCHAR *g_wszWMDMSyncTime = L"WMDM/SyncTime";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMParentalRating = L"WMDM/ParentalRating";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMetaGenre = L"WMDM/MetaGenre";
//Type: BOOL, WMDM_TAG_DATATYPE: WMDM_TYPE_BOOL
static const WCHAR *g_wszWMDMIsRepeat = L"WMDM/IsRepeat";
// Device properties
//PROPVARIANT vt = VT_BSTR | VT_ARRAY
static const WCHAR *g_wszWMDMSupportedDeviceProperties = L"WMDM/SupportedDeviceProperties";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMDeviceFriendlyName = L"WMDM/DeviceFriendlyName";
//PROPVARIANT vt = VT_UI4 | VT_ARRAY
static const WCHAR *g_wszWMDMFormatsSupported = L"WMDM/FormatsSupported";
//PROPVARIANT vt = VT_BOOL
static const WCHAR *g_wszWMDMFormatsSupportedAreOrdered = L"WMDM/FormatsSupportedAreOrdered";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMSyncRelationshipID = L"WMDM/SyncRelationshipID";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMDeviceModelName = L"WMDM/DeviceModelName";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMDeviceFirmwareVersion = L"WMDM/DeviceFirmwareVersion";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMDeviceVendorExtension = L"WMDM/DeviceVendorExtension";
//PROPVARIANT vt = VT_CLSID
static const WCHAR *g_wszWMDMDeviceProtocol = L"WMDM/DeviceProtocol";
//PROPVARIANT vt = VT_CLSID
static const WCHAR *g_wszWMDMDeviceServiceProviderVendor = L"WMDM/DeviceServiceProviderVendor";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMDeviceRevocationInfo = L"WMDM/DeviceRevocationInfo";
//PROPVARIANT vt = VT_BSTR
static const WCHAR *g_wszWMDMCollectionID = L"WMDM/CollectionID";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMOwner = L"WMDM/Owner";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMEditor = L"WMDM/Editor";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMWebmaster = L"WMDM/Webmaster";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMSourceURL = L"WMDM/SourceURL";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMDestinationURL = L"WMDM/DestinationURL";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMCategory = L"WMDM/Category";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMTimeBookmark = L"WMDM/TimeBookmark";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMObjectBookmark = L"WMDM/ObjectBookmark";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMByteBookmark = L"WMDM/ByteBookmark";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMDataOffset = L"WMDM/DataOffset";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMDataLength = L"WMDM/DataLength";
//Type: DWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_DWORD
static const WCHAR *g_wszWMDMDataUnits = L"WMDM/DataUnits";
//Type: QWORD, WMDM_TAG_DATATYPE: WMDM_TYPE_QWORD
static const WCHAR *g_wszWMDMTimeToLive = L"WMDM/TimeToLive";
//Type: LPCWSTR, WMDM_TAG_DATATYPE: WMDM_TYPE_STRING
static const WCHAR *g_wszWMDMMediaGuid = L"WMDM/MediaGuid";
//Type: BYTE*, WMDM_TAG_DATATYPE: WMDM_TYPE_BINARY
static const WCHAR *g_wszWPDPassthroughPropertyValues = L"WPD/PassthroughPropertyValues";
#define CCH_WMDM_PROPNAME(sz) (sizeof(sz)/sizeof(sz[0]))
union WMDMDetermineMaxPropStringLen {
WCHAR sz001[CCH_WMDM_PROPNAME(L"WMDM/DeviceFirmwareVersion")];
WCHAR sz002[CCH_WMDM_PROPNAME(L"WMDM/SupportedDeviceProperties")];
WCHAR sz003[CCH_WMDM_PROPNAME(L"WMDM/FileName")];
WCHAR sz004[CCH_WMDM_PROPNAME(L"WMDM/FormatCode")];
WCHAR sz005[CCH_WMDM_PROPNAME(L"WMDM/LastModifiedDate")];
WCHAR sz006[CCH_WMDM_PROPNAME(L"WMDM/FileSize")];
WCHAR sz007[CCH_WMDM_PROPNAME(L"WMDM/FileAttributes")];
WCHAR sz008[CCH_WMDM_PROPNAME(L"WMDM/AudioWAVECodec")];
WCHAR sz009[CCH_WMDM_PROPNAME(L"WMDM/VideoFourCCCodec")];
WCHAR sz010[CCH_WMDM_PROPNAME(L"WMDM/Title")];
WCHAR sz011[CCH_WMDM_PROPNAME(L"WMDM/Author")];
WCHAR sz012[CCH_WMDM_PROPNAME(L"WMDM/Description")];
WCHAR sz013[CCH_WMDM_PROPNAME(L"WMDM/IsProtected")];
WCHAR sz014[CCH_WMDM_PROPNAME(L"WMDM/AlbumTitle")];
WCHAR sz015[CCH_WMDM_PROPNAME(L"WMDM/AlbumArtist")];
WCHAR sz016[CCH_WMDM_PROPNAME(L"WMDM/Track")];
WCHAR sz017[CCH_WMDM_PROPNAME(L"WMDM/Genre")];
WCHAR sz018[CCH_WMDM_PROPNAME(L"WMDM/TrackMood")];
WCHAR sz019[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverFormat")];
WCHAR sz020[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverSize")];
WCHAR sz021[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverHeight")];
WCHAR sz022[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverWidth")];
WCHAR sz023[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverDuration")];
WCHAR sz024[CCH_WMDM_PROPNAME(L"WMDM/AlbumCoverData")];
WCHAR sz025[CCH_WMDM_PROPNAME(L"WMDM/Year")];
WCHAR sz026[CCH_WMDM_PROPNAME(L"WMDM/Composer")];
WCHAR sz027[CCH_WMDM_PROPNAME(L"WMDM/Codec")];
WCHAR sz028[CCH_WMDM_PROPNAME(L"WMDM/DRMId")];
WCHAR sz029[CCH_WMDM_PROPNAME(L"WMDM/Bitrate")];
WCHAR sz030[CCH_WMDM_PROPNAME(L"WMDM/BitRateType")];
WCHAR sz031[CCH_WMDM_PROPNAME(L"WMDM/SampleRate")];
WCHAR sz032[CCH_WMDM_PROPNAME(L"WMDM/NumChannels")];
WCHAR sz033[CCH_WMDM_PROPNAME(L"WMDM/BlockAlignment")];
WCHAR sz034[CCH_WMDM_PROPNAME(L"WMDM/AudioBitDepth")];
WCHAR sz035[CCH_WMDM_PROPNAME(L"WMDM/TotalBitrate")];
WCHAR sz036[CCH_WMDM_PROPNAME(L"WMDM/VideoBitrate")];
WCHAR sz037[CCH_WMDM_PROPNAME(L"WMDM/FrameRate")];
WCHAR sz041[CCH_WMDM_PROPNAME(L"WMDM/ScanType")];
WCHAR sz043[CCH_WMDM_PROPNAME(L"WMDM/KeyFrameDistance")];
WCHAR sz044[CCH_WMDM_PROPNAME(L"WMDM/BufferSize")];
WCHAR sz045[CCH_WMDM_PROPNAME(L"WMDM/QualitySetting")];
WCHAR sz046[CCH_WMDM_PROPNAME(L"WMDM/Duration")];
WCHAR sz047[CCH_WMDM_PROPNAME(L"WMDM/AlbumArt")];
WCHAR sz048[CCH_WMDM_PROPNAME(L"WMDM/BuyNow")];
WCHAR sz049[CCH_WMDM_PROPNAME(L"WMDM/MediaClassPrimaryID")];
WCHAR sz050[CCH_WMDM_PROPNAME(L"WMDM/MediaClassSecondayID")];
WCHAR sz051[CCH_WMDM_PROPNAME(L"WMDM/UserEffectiveRating")];
WCHAR sz052[CCH_WMDM_PROPNAME(L"WMDM/UserRating")];
WCHAR sz053[CCH_WMDM_PROPNAME(L"WMDM/UserRatingOnDevice")];
WCHAR sz054[CCH_WMDM_PROPNAME(L"WMDM/PlayCount")];
WCHAR sz055[CCH_WMDM_PROPNAME(L"WMDM/DevicePlayCount")];
WCHAR sz056[CCH_WMDM_PROPNAME(L"WMDM/AuthorDate")];
WCHAR sz057[CCH_WMDM_PROPNAME(L"WMDM/UserLastPlayTime")];
WCHAR sz058[CCH_WMDM_PROPNAME(L"WMDM/SubTitle")];
WCHAR sz059[CCH_WMDM_PROPNAME(L"WMDM/SubTitleDescription")];
WCHAR sz060[CCH_WMDM_PROPNAME(L"WMDM/MediaCredits")];
WCHAR sz061[CCH_WMDM_PROPNAME(L"WMDM/MediaStationName")];
WCHAR sz062[CCH_WMDM_PROPNAME(L"WMDM/MediaOriginalChannel")];
WCHAR sz063[CCH_WMDM_PROPNAME(L"WMDM/MediaOriginalBroadcastDateTime")];
WCHAR sz064[CCH_WMDM_PROPNAME(L"WMDM/ProviderCopyright")];
WCHAR sz065[CCH_WMDM_PROPNAME(L"WMDM/SyncID")];
WCHAR sz066[CCH_WMDM_PROPNAME(L"WMDM/PersistentUniqueID")];
WCHAR sz067[CCH_WMDM_PROPNAME(L"WMDM/Width")];
WCHAR sz068[CCH_WMDM_PROPNAME(L"WMDM/Height")];
WCHAR sz069[CCH_WMDM_PROPNAME(L"WMDM/SyncTime")];
WCHAR sz070[CCH_WMDM_PROPNAME(L"WMDM/ParentalRating")];
WCHAR sz071[CCH_WMDM_PROPNAME(L"WMDM/MetaGenre")];
WCHAR sz072[CCH_WMDM_PROPNAME(L"WMDM/IsRepeat")];
WCHAR sz073[CCH_WMDM_PROPNAME(L"WMDM/SupportedDeviceProperties")];
WCHAR sz074[CCH_WMDM_PROPNAME(L"WMDM/DeviceFriendlyName")];
WCHAR sz075[CCH_WMDM_PROPNAME(L"WMDM/FormatsSupported")];
WCHAR sz076[CCH_WMDM_PROPNAME(L"WMDM/SyncRelationshipID")];
WCHAR sz077[CCH_WMDM_PROPNAME(L"WMDM/DeviceModelName")];
WCHAR sz078[CCH_WMDM_PROPNAME(L"WMDM/DeviceFirmwareVersion")];
WCHAR sz079[CCH_WMDM_PROPNAME(L"WMDM/DeviceVendorExtension")];
WCHAR sz080[CCH_WMDM_PROPNAME(L"WMDM/DeviceProtocol")];
WCHAR sz081[CCH_WMDM_PROPNAME(L"WMDM/DeviceServiceProviderVendor")];
WCHAR sz082[CCH_WMDM_PROPNAME(L"WMDM/EncodingProfile")];
WCHAR sz083[CCH_WMDM_PROPNAME(L"WMDM/FormatsSupportedAreOrdered")];
WCHAR sz084[CCH_WMDM_PROPNAME(L"WMDM/DeviceRevocationInfo")];
WCHAR sz085[CCH_WMDM_PROPNAME(L"WMDM/CollectionID")];
WCHAR sz086[CCH_WMDM_PROPNAME(L"WPD/PassthroughPropertyValues")];
};
#define WMDM_MAXLEN_PROPERTYNAME (sizeof(WMDMDetermineMaxPropStringLen)/sizeof(WCHAR))
// Open Mode Flags
#define MDSP_READ 0x00000001
#define MDSP_WRITE 0x00000002
// Seek Flags
#define MDSP_SEEK_BOF 0x00000001
#define MDSP_SEEK_CUR 0x00000002
#define MDSP_SEEK_EOF 0x00000004
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0028_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0028_v0_0_s_ifspec;
#ifndef __IMDServiceProvider_INTERFACE_DEFINED__
#define __IMDServiceProvider_INTERFACE_DEFINED__
/* interface IMDServiceProvider */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDServiceProvider;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A10-33ED-11d3-8470-00C04F79DBC0")
IMDServiceProvider : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDeviceCount(
/* [out] */ __RPC__out DWORD *pdwCount) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumDevices(
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice) = 0;
};
#else /* C style interface */
typedef struct IMDServiceProviderVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDServiceProvider * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDServiceProvider * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDServiceProvider * This);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IMDServiceProvider * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IMDServiceProvider * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice);
END_INTERFACE
} IMDServiceProviderVtbl;
interface IMDServiceProvider
{
CONST_VTBL struct IMDServiceProviderVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDServiceProvider_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDServiceProvider_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDServiceProvider_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDServiceProvider_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IMDServiceProvider_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDServiceProvider_INTERFACE_DEFINED__ */
#ifndef __IMDServiceProvider2_INTERFACE_DEFINED__
#define __IMDServiceProvider2_INTERFACE_DEFINED__
/* interface IMDServiceProvider2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDServiceProvider2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B2FA24B7-CDA3-4694-9862-413AE1A34819")
IMDServiceProvider2 : public IMDServiceProvider
{
public:
virtual HRESULT STDMETHODCALLTYPE CreateDevice(
/* [string][in] */ __RPC__in LPCWSTR pwszDevicePath,
/* [out] */ __RPC__out DWORD *pdwCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwCount) IMDSPDevice ***pppDeviceArray) = 0;
};
#else /* C style interface */
typedef struct IMDServiceProvider2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDServiceProvider2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDServiceProvider2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDServiceProvider2 * This);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IMDServiceProvider2 * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IMDServiceProvider2 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
IMDServiceProvider2 * This,
/* [string][in] */ __RPC__in LPCWSTR pwszDevicePath,
/* [out] */ __RPC__out DWORD *pdwCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwCount) IMDSPDevice ***pppDeviceArray);
END_INTERFACE
} IMDServiceProvider2Vtbl;
interface IMDServiceProvider2
{
CONST_VTBL struct IMDServiceProvider2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDServiceProvider2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDServiceProvider2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDServiceProvider2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDServiceProvider2_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IMDServiceProvider2_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#define IMDServiceProvider2_CreateDevice(This,pwszDevicePath,pdwCount,pppDeviceArray) \
( (This)->lpVtbl -> CreateDevice(This,pwszDevicePath,pdwCount,pppDeviceArray) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDServiceProvider2_INTERFACE_DEFINED__ */
#ifndef __IMDServiceProvider3_INTERFACE_DEFINED__
#define __IMDServiceProvider3_INTERFACE_DEFINED__
/* interface IMDServiceProvider3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDServiceProvider3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4ed13ef3-a971-4d19-9f51-0e1826b2da57")
IMDServiceProvider3 : public IMDServiceProvider2
{
public:
virtual HRESULT STDMETHODCALLTYPE SetDeviceEnumPreference(
/* [in] */ DWORD dwEnumPref) = 0;
};
#else /* C style interface */
typedef struct IMDServiceProvider3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDServiceProvider3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDServiceProvider3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDServiceProvider3 * This);
HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
IMDServiceProvider3 * This,
/* [out] */ __RPC__out DWORD *pdwCount);
HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
IMDServiceProvider3 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice);
HRESULT ( STDMETHODCALLTYPE *CreateDevice )(
IMDServiceProvider3 * This,
/* [string][in] */ __RPC__in LPCWSTR pwszDevicePath,
/* [out] */ __RPC__out DWORD *pdwCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwCount) IMDSPDevice ***pppDeviceArray);
HRESULT ( STDMETHODCALLTYPE *SetDeviceEnumPreference )(
IMDServiceProvider3 * This,
/* [in] */ DWORD dwEnumPref);
END_INTERFACE
} IMDServiceProvider3Vtbl;
interface IMDServiceProvider3
{
CONST_VTBL struct IMDServiceProvider3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDServiceProvider3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDServiceProvider3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDServiceProvider3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDServiceProvider3_GetDeviceCount(This,pdwCount) \
( (This)->lpVtbl -> GetDeviceCount(This,pdwCount) )
#define IMDServiceProvider3_EnumDevices(This,ppEnumDevice) \
( (This)->lpVtbl -> EnumDevices(This,ppEnumDevice) )
#define IMDServiceProvider3_CreateDevice(This,pwszDevicePath,pdwCount,pppDeviceArray) \
( (This)->lpVtbl -> CreateDevice(This,pwszDevicePath,pdwCount,pppDeviceArray) )
#define IMDServiceProvider3_SetDeviceEnumPreference(This,dwEnumPref) \
( (This)->lpVtbl -> SetDeviceEnumPreference(This,dwEnumPref) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDServiceProvider3_INTERFACE_DEFINED__ */
#ifndef __IMDSPEnumDevice_INTERFACE_DEFINED__
#define __IMDSPEnumDevice_INTERFACE_DEFINED__
/* interface IMDSPEnumDevice */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPEnumDevice;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A11-33ED-11d3-8470-00C04F79DBC0")
IMDSPEnumDevice : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMDSPDevice **ppDevice,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice) = 0;
};
#else /* C style interface */
typedef struct IMDSPEnumDeviceVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPEnumDevice * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPEnumDevice * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPEnumDevice * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IMDSPEnumDevice * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMDSPDevice **ppDevice,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IMDSPEnumDevice * This,
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IMDSPEnumDevice * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IMDSPEnumDevice * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumDevice **ppEnumDevice);
END_INTERFACE
} IMDSPEnumDeviceVtbl;
interface IMDSPEnumDevice
{
CONST_VTBL struct IMDSPEnumDeviceVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPEnumDevice_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPEnumDevice_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPEnumDevice_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPEnumDevice_Next(This,celt,ppDevice,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ppDevice,pceltFetched) )
#define IMDSPEnumDevice_Skip(This,celt,pceltFetched) \
( (This)->lpVtbl -> Skip(This,celt,pceltFetched) )
#define IMDSPEnumDevice_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define IMDSPEnumDevice_Clone(This,ppEnumDevice) \
( (This)->lpVtbl -> Clone(This,ppEnumDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPEnumDevice_INTERFACE_DEFINED__ */
#ifndef __IMDSPDevice_INTERFACE_DEFINED__
#define __IMDSPDevice_INTERFACE_DEFINED__
/* interface IMDSPDevice */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPDevice;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A12-33ED-11d3-8470-00C04F79DBC0")
IMDSPDevice : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetName(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetManufacturer(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetVersion(
/* [out] */ __RPC__out DWORD *pdwVersion) = 0;
virtual HRESULT STDMETHODCALLTYPE GetType(
/* [out] */ __RPC__out DWORD *pdwType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPowerSource(
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDeviceIcon(
/* [out] */ __RPC__out ULONG *hIcon) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumStorage(
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatSupport(
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **pFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount) = 0;
virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand) = 0;
};
#else /* C style interface */
typedef struct IMDSPDeviceVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPDevice * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPDevice * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPDevice * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPDevice * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IMDSPDevice * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IMDSPDevice * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IMDSPDevice * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IMDSPDevice * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IMDSPDevice * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IMDSPDevice * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IMDSPDevice * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPDevice * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IMDSPDevice * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **pFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPDevice * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
END_INTERFACE
} IMDSPDeviceVtbl;
interface IMDSPDevice
{
CONST_VTBL struct IMDSPDeviceVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPDevice_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPDevice_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPDevice_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPDevice_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPDevice_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IMDSPDevice_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IMDSPDevice_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IMDSPDevice_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IMDSPDevice_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IMDSPDevice_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IMDSPDevice_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IMDSPDevice_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPDevice_GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IMDSPDevice_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPDevice_INTERFACE_DEFINED__ */
#ifndef __IMDSPDevice2_INTERFACE_DEFINED__
#define __IMDSPDevice2_INTERFACE_DEFINED__
/* interface IMDSPDevice2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPDevice2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("420D16AD-C97D-4e00-82AA-00E9F4335DDD")
IMDSPDevice2 : public IMDSPDevice
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStorage(
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatSupport2(
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSpecifyPropertyPages(
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars) = 0;
};
#else /* C style interface */
typedef struct IMDSPDevice2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPDevice2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPDevice2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPDevice2 * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPDevice2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IMDSPDevice2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IMDSPDevice2 * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPDevice2 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IMDSPDevice2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **pFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPDevice2 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IMDSPDevice2 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
IMDSPDevice2 * This,
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount);
HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
IMDSPDevice2 * This,
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
IMDSPDevice2 * This,
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars);
END_INTERFACE
} IMDSPDevice2Vtbl;
interface IMDSPDevice2
{
CONST_VTBL struct IMDSPDevice2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPDevice2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPDevice2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPDevice2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPDevice2_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPDevice2_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IMDSPDevice2_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IMDSPDevice2_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IMDSPDevice2_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IMDSPDevice2_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IMDSPDevice2_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IMDSPDevice2_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IMDSPDevice2_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPDevice2_GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IMDSPDevice2_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IMDSPDevice2_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IMDSPDevice2_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
( (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) )
#define IMDSPDevice2_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
( (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) )
#define IMDSPDevice2_GetCanonicalName(This,pwszPnPName,nMaxChars) \
( (This)->lpVtbl -> GetCanonicalName(This,pwszPnPName,nMaxChars) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPDevice2_INTERFACE_DEFINED__ */
#ifndef __IMDSPDevice3_INTERFACE_DEFINED__
#define __IMDSPDevice3_INTERFACE_DEFINED__
/* interface IMDSPDevice3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPDevice3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1a839845-fc55-487c-976f-ee38ac0e8c4e")
IMDSPDevice3 : public IMDSPDevice2
{
public:
virtual HRESULT STDMETHODCALLTYPE GetProperty(
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [out] */ __RPC__out PROPVARIANT *pValue) = 0;
virtual HRESULT STDMETHODCALLTYPE SetProperty(
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [in] */ __RPC__in const PROPVARIANT *pValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFormatCapability(
/* [in] */ WMDM_FORMATCODE format,
/* [out] */ __RPC__out WMDM_FORMAT_CAPABILITY *pFormatSupport) = 0;
virtual HRESULT STDMETHODCALLTYPE DeviceIoControl(
/* [in] */ DWORD dwIoControlCode,
/* [size_is][in] */ __RPC__in_ecount_full(nInBufferSize) BYTE *lpInBuffer,
/* [in] */ DWORD nInBufferSize,
/* [size_is][out] */ __RPC__out_ecount_full(*pnOutBufferSize) BYTE *lpOutBuffer,
/* [out][in] */ __RPC__inout LPDWORD pnOutBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE FindStorage(
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage) = 0;
};
#else /* C style interface */
typedef struct IMDSPDevice3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPDevice3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPDevice3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPDevice3 * This);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPDevice3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
IMDSPDevice3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetVersion )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwVersion);
HRESULT ( STDMETHODCALLTYPE *GetType )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwType);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out PWMDMID pSerialNumber,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwPowerSource,
/* [out] */ __RPC__out DWORD *pdwPercentRemaining);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
IMDSPDevice3 * This,
/* [out] */ __RPC__out ULONG *hIcon);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPDevice3 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
IMDSPDevice3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFormatCount) _WAVEFORMATEX **pFormatEx,
/* [out] */ __RPC__out UINT *pnFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnMimeTypeCount) LPWSTR **pppwszMimeType,
/* [out] */ __RPC__out UINT *pnMimeTypeCount);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPDevice3 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IMDSPDevice3 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
IMDSPDevice3 * This,
/* [in] */ DWORD dwFlags,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnAudioFormatCount) _WAVEFORMATEX **ppAudioFormatEx,
/* [ref][out] */ __RPC__out UINT *pnAudioFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnVideoFormatCount) _VIDEOINFOHEADER **ppVideoFormatEx,
/* [ref][out] */ __RPC__out UINT *pnVideoFormatCount,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnFileTypeCount) WMFILECAPABILITIES **ppFileType,
/* [ref][out] */ __RPC__out UINT *pnFileTypeCount);
HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
IMDSPDevice3 * This,
/* [ref][out] */ __RPC__deref_out_opt ISpecifyPropertyPages **ppSpecifyPropPages,
/* [size_is][size_is][ref][out] */ __RPC__deref_out_ecount_full_opt(*pcUnks) IUnknown ***pppUnknowns,
/* [ref][out] */ __RPC__out ULONG *pcUnks);
HRESULT ( STDMETHODCALLTYPE *GetCanonicalName )(
IMDSPDevice3 * This,
/* [size_is][out] */ __RPC__out_ecount_full(nMaxChars) LPWSTR pwszPnPName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetProperty )(
IMDSPDevice3 * This,
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [out] */ __RPC__out PROPVARIANT *pValue);
HRESULT ( STDMETHODCALLTYPE *SetProperty )(
IMDSPDevice3 * This,
/* [in] */ __RPC__in LPCWSTR pwszPropName,
/* [in] */ __RPC__in const PROPVARIANT *pValue);
HRESULT ( STDMETHODCALLTYPE *GetFormatCapability )(
IMDSPDevice3 * This,
/* [in] */ WMDM_FORMATCODE format,
/* [out] */ __RPC__out WMDM_FORMAT_CAPABILITY *pFormatSupport);
HRESULT ( STDMETHODCALLTYPE *DeviceIoControl )(
IMDSPDevice3 * This,
/* [in] */ DWORD dwIoControlCode,
/* [size_is][in] */ __RPC__in_ecount_full(nInBufferSize) BYTE *lpInBuffer,
/* [in] */ DWORD nInBufferSize,
/* [size_is][out] */ __RPC__out_ecount_full(*pnOutBufferSize) BYTE *lpOutBuffer,
/* [out][in] */ __RPC__inout LPDWORD pnOutBufferSize);
HRESULT ( STDMETHODCALLTYPE *FindStorage )(
IMDSPDevice3 * This,
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
END_INTERFACE
} IMDSPDevice3Vtbl;
interface IMDSPDevice3
{
CONST_VTBL struct IMDSPDevice3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPDevice3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPDevice3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPDevice3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPDevice3_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPDevice3_GetManufacturer(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars) )
#define IMDSPDevice3_GetVersion(This,pdwVersion) \
( (This)->lpVtbl -> GetVersion(This,pdwVersion) )
#define IMDSPDevice3_GetType(This,pdwType) \
( (This)->lpVtbl -> GetType(This,pdwType) )
#define IMDSPDevice3_GetSerialNumber(This,pSerialNumber,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac) )
#define IMDSPDevice3_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
( (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) )
#define IMDSPDevice3_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IMDSPDevice3_GetDeviceIcon(This,hIcon) \
( (This)->lpVtbl -> GetDeviceIcon(This,hIcon) )
#define IMDSPDevice3_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPDevice3_GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
( (This)->lpVtbl -> GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) )
#define IMDSPDevice3_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IMDSPDevice3_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IMDSPDevice3_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
( (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) )
#define IMDSPDevice3_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
( (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) )
#define IMDSPDevice3_GetCanonicalName(This,pwszPnPName,nMaxChars) \
( (This)->lpVtbl -> GetCanonicalName(This,pwszPnPName,nMaxChars) )
#define IMDSPDevice3_GetProperty(This,pwszPropName,pValue) \
( (This)->lpVtbl -> GetProperty(This,pwszPropName,pValue) )
#define IMDSPDevice3_SetProperty(This,pwszPropName,pValue) \
( (This)->lpVtbl -> SetProperty(This,pwszPropName,pValue) )
#define IMDSPDevice3_GetFormatCapability(This,format,pFormatSupport) \
( (This)->lpVtbl -> GetFormatCapability(This,format,pFormatSupport) )
#define IMDSPDevice3_DeviceIoControl(This,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,pnOutBufferSize) \
( (This)->lpVtbl -> DeviceIoControl(This,dwIoControlCode,lpInBuffer,nInBufferSize,lpOutBuffer,pnOutBufferSize) )
#define IMDSPDevice3_FindStorage(This,findScope,pwszUniqueID,ppStorage) \
( (This)->lpVtbl -> FindStorage(This,findScope,pwszUniqueID,ppStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPDevice3_INTERFACE_DEFINED__ */
#ifndef __IMDSPDeviceControl_INTERFACE_DEFINED__
#define __IMDSPDeviceControl_INTERFACE_DEFINED__
/* interface IMDSPDeviceControl */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPDeviceControl;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A14-33ED-11d3-8470-00C04F79DBC0")
IMDSPDeviceControl : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDCStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
/* [out] */ __RPC__out DWORD *pdwCapabilitiesMask) = 0;
virtual HRESULT STDMETHODCALLTYPE Play( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Record(
/* [in] */ __RPC__in _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Seek(
/* [in] */ UINT fuMode,
/* [in] */ int nOffset) = 0;
};
#else /* C style interface */
typedef struct IMDSPDeviceControlVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPDeviceControl * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPDeviceControl * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *GetDCStatus )(
IMDSPDeviceControl * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
IMDSPDeviceControl * This,
/* [out] */ __RPC__out DWORD *pdwCapabilitiesMask);
HRESULT ( STDMETHODCALLTYPE *Play )(
IMDSPDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Record )(
IMDSPDeviceControl * This,
/* [in] */ __RPC__in _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *Pause )(
IMDSPDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Resume )(
IMDSPDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Stop )(
IMDSPDeviceControl * This);
HRESULT ( STDMETHODCALLTYPE *Seek )(
IMDSPDeviceControl * This,
/* [in] */ UINT fuMode,
/* [in] */ int nOffset);
END_INTERFACE
} IMDSPDeviceControlVtbl;
interface IMDSPDeviceControl
{
CONST_VTBL struct IMDSPDeviceControlVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPDeviceControl_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPDeviceControl_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPDeviceControl_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPDeviceControl_GetDCStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetDCStatus(This,pdwStatus) )
#define IMDSPDeviceControl_GetCapabilities(This,pdwCapabilitiesMask) \
( (This)->lpVtbl -> GetCapabilities(This,pdwCapabilitiesMask) )
#define IMDSPDeviceControl_Play(This) \
( (This)->lpVtbl -> Play(This) )
#define IMDSPDeviceControl_Record(This,pFormat) \
( (This)->lpVtbl -> Record(This,pFormat) )
#define IMDSPDeviceControl_Pause(This) \
( (This)->lpVtbl -> Pause(This) )
#define IMDSPDeviceControl_Resume(This) \
( (This)->lpVtbl -> Resume(This) )
#define IMDSPDeviceControl_Stop(This) \
( (This)->lpVtbl -> Stop(This) )
#define IMDSPDeviceControl_Seek(This,fuMode,nOffset) \
( (This)->lpVtbl -> Seek(This,fuMode,nOffset) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPDeviceControl_INTERFACE_DEFINED__ */
#ifndef __IMDSPEnumStorage_INTERFACE_DEFINED__
#define __IMDSPEnumStorage_INTERFACE_DEFINED__
/* interface IMDSPEnumStorage */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPEnumStorage;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A15-33ED-11d3-8470-00C04F79DBC0")
IMDSPEnumStorage : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMDSPStorage **ppStorage,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage) = 0;
};
#else /* C style interface */
typedef struct IMDSPEnumStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPEnumStorage * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPEnumStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPEnumStorage * This);
HRESULT ( STDMETHODCALLTYPE *Next )(
IMDSPEnumStorage * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ __RPC__out_ecount_part(celt, *pceltFetched) IMDSPStorage **ppStorage,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Skip )(
IMDSPEnumStorage * This,
/* [in] */ ULONG celt,
/* [out] */ __RPC__out ULONG *pceltFetched);
HRESULT ( STDMETHODCALLTYPE *Reset )(
IMDSPEnumStorage * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
IMDSPEnumStorage * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
END_INTERFACE
} IMDSPEnumStorageVtbl;
interface IMDSPEnumStorage
{
CONST_VTBL struct IMDSPEnumStorageVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPEnumStorage_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPEnumStorage_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPEnumStorage_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPEnumStorage_Next(This,celt,ppStorage,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ppStorage,pceltFetched) )
#define IMDSPEnumStorage_Skip(This,celt,pceltFetched) \
( (This)->lpVtbl -> Skip(This,celt,pceltFetched) )
#define IMDSPEnumStorage_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define IMDSPEnumStorage_Clone(This,ppEnumStorage) \
( (This)->lpVtbl -> Clone(This,ppEnumStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPEnumStorage_INTERFACE_DEFINED__ */
#ifndef __IMDSPStorage_INTERFACE_DEFINED__
#define __IMDSPStorage_INTERFACE_DEFINED__
/* interface IMDSPStorage */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPStorage;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A16-33ED-11d3-8470-00C04F79DBC0")
IMDSPStorage : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SetAttributes(
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStorageGlobals(
/* [out] */ __RPC__deref_out_opt IMDSPStorageGlobals **ppStorageGlobals) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAttributes(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetName(
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDate(
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSize(
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRights(
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateStorage(
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumStorage(
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand) = 0;
};
#else /* C style interface */
typedef struct IMDSPStorageVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPStorage * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPStorage * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPStorage * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IMDSPStorage * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IMDSPStorage * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IMDSPStorage * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPStorage * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IMDSPStorage * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IMDSPStorage * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IMDSPStorage * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IMDSPStorage * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPStorage * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPStorage * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
END_INTERFACE
} IMDSPStorageVtbl;
interface IMDSPStorage
{
CONST_VTBL struct IMDSPStorageVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPStorage_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPStorage_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPStorage_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPStorage_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IMDSPStorage_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IMDSPStorage_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IMDSPStorage_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPStorage_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IMDSPStorage_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IMDSPStorage_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IMDSPStorage_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) )
#define IMDSPStorage_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPStorage_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPStorage_INTERFACE_DEFINED__ */
#ifndef __IMDSPStorage2_INTERFACE_DEFINED__
#define __IMDSPStorage2_INTERFACE_DEFINED__
/* interface IMDSPStorage2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPStorage2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("0A5E07A5-6454-4451-9C36-1C6AE7E2B1D6")
IMDSPStorage2 : public IMDSPStorage
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStorage(
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateStorage2(
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE SetAttributes2(
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAttributes2(
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat) = 0;
};
#else /* C style interface */
typedef struct IMDSPStorage2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPStorage2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPStorage2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPStorage2 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IMDSPStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IMDSPStorage2 * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IMDSPStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPStorage2 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IMDSPStorage2 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IMDSPStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IMDSPStorage2 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IMDSPStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPStorage2 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPStorage2 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IMDSPStorage2 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *CreateStorage2 )(
IMDSPStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IMDSPStorage2 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IMDSPStorage2 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
END_INTERFACE
} IMDSPStorage2Vtbl;
interface IMDSPStorage2
{
CONST_VTBL struct IMDSPStorage2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPStorage2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPStorage2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPStorage2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPStorage2_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IMDSPStorage2_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IMDSPStorage2_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IMDSPStorage2_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPStorage2_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IMDSPStorage2_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IMDSPStorage2_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IMDSPStorage2_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) )
#define IMDSPStorage2_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPStorage2_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IMDSPStorage2_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IMDSPStorage2_CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) )
#define IMDSPStorage2_SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) )
#define IMDSPStorage2_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPStorage2_INTERFACE_DEFINED__ */
#ifndef __IMDSPStorage3_INTERFACE_DEFINED__
#define __IMDSPStorage3_INTERFACE_DEFINED__
/* interface IMDSPStorage3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPStorage3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6C669867-97ED-4a67-9706-1C5529D2A414")
IMDSPStorage3 : public IMDSPStorage2
{
public:
virtual HRESULT STDMETHODCALLTYPE GetMetadata(
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE SetMetadata(
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata) = 0;
};
#else /* C style interface */
typedef struct IMDSPStorage3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPStorage3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPStorage3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPStorage3 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IMDSPStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IMDSPStorage3 * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IMDSPStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPStorage3 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IMDSPStorage3 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IMDSPStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IMDSPStorage3 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IMDSPStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPStorage3 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPStorage3 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IMDSPStorage3 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *CreateStorage2 )(
IMDSPStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IMDSPStorage3 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IMDSPStorage3 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetMetadata )(
IMDSPStorage3 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *SetMetadata )(
IMDSPStorage3 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
END_INTERFACE
} IMDSPStorage3Vtbl;
interface IMDSPStorage3
{
CONST_VTBL struct IMDSPStorage3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPStorage3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPStorage3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPStorage3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPStorage3_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IMDSPStorage3_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IMDSPStorage3_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IMDSPStorage3_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPStorage3_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IMDSPStorage3_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IMDSPStorage3_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IMDSPStorage3_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) )
#define IMDSPStorage3_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPStorage3_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IMDSPStorage3_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IMDSPStorage3_CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) )
#define IMDSPStorage3_SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) )
#define IMDSPStorage3_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#define IMDSPStorage3_GetMetadata(This,pMetadata) \
( (This)->lpVtbl -> GetMetadata(This,pMetadata) )
#define IMDSPStorage3_SetMetadata(This,pMetadata) \
( (This)->lpVtbl -> SetMetadata(This,pMetadata) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPStorage3_INTERFACE_DEFINED__ */
#ifndef __IMDSPStorage4_INTERFACE_DEFINED__
#define __IMDSPStorage4_INTERFACE_DEFINED__
/* interface IMDSPStorage4 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPStorage4;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3133b2c4-515c-481b-b1ce-39327ecb4f74")
IMDSPStorage4 : public IMDSPStorage3
{
public:
virtual HRESULT STDMETHODCALLTYPE SetReferences(
/* [in] */ DWORD dwRefs,
/* [size_is][unique][in] */ __RPC__in_ecount_full_opt(dwRefs) IMDSPStorage **ppISPStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetReferences(
/* [out] */ __RPC__out DWORD *pdwRefs,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwRefs) IMDSPStorage ***pppISPStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateStorageWithMetadata(
/* [in] */ DWORD dwAttributes,
/* [in] */ __RPC__in LPCWSTR pwszName,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSpecifiedMetadata(
/* [in] */ DWORD cProperties,
/* [size_is][in] */ __RPC__in_ecount_full(cProperties) LPCWSTR *ppwszPropNames,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata) = 0;
virtual HRESULT STDMETHODCALLTYPE FindStorage(
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetParent(
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage) = 0;
};
#else /* C style interface */
typedef struct IMDSPStorage4Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPStorage4 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPStorage4 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPStorage4 * This);
HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
IMDSPStorage4 * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorageGlobals **ppStorageGlobals);
HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
IMDSPStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pFormat);
HRESULT ( STDMETHODCALLTYPE *GetName )(
IMDSPStorage4 * This,
/* [size_is][string][out] */ __RPC__out_ecount_full_string(nMaxChars) LPWSTR pwszName,
/* [in] */ UINT nMaxChars);
HRESULT ( STDMETHODCALLTYPE *GetDate )(
IMDSPStorage4 * This,
/* [out] */ __RPC__out PWMDMDATETIME pDateTimeUTC);
HRESULT ( STDMETHODCALLTYPE *GetSize )(
IMDSPStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwSizeLow,
/* [out] */ __RPC__out DWORD *pdwSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
IMDSPStorage4 * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
IMDSPStorage4 * This,
/* [out] */ __RPC__deref_out_opt IMDSPEnumStorage **ppEnumStorage);
HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
IMDSPStorage4 * This,
/* [out][in] */ __RPC__inout OPAQUECOMMAND *pCommand);
HRESULT ( STDMETHODCALLTYPE *GetStorage )(
IMDSPStorage4 * This,
/* [string][in] */ __RPC__in LPCWSTR pszStorageName,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *CreateStorage2 )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat,
/* [in] */ __RPC__in LPWSTR pwszName,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ DWORD dwAttributesEx,
/* [unique][in] */ __RPC__in_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][in] */ __RPC__in_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
IMDSPStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwAttributes,
/* [out] */ __RPC__out DWORD *pdwAttributesEx,
/* [unique][out][in] */ __RPC__inout_opt _WAVEFORMATEX *pAudioFormat,
/* [unique][out][in] */ __RPC__inout_opt _VIDEOINFOHEADER *pVideoFormat);
HRESULT ( STDMETHODCALLTYPE *GetMetadata )(
IMDSPStorage4 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *SetMetadata )(
IMDSPStorage4 * This,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *SetReferences )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwRefs,
/* [size_is][unique][in] */ __RPC__in_ecount_full_opt(dwRefs) IMDSPStorage **ppISPStorage);
HRESULT ( STDMETHODCALLTYPE *GetReferences )(
IMDSPStorage4 * This,
/* [out] */ __RPC__out DWORD *pdwRefs,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwRefs) IMDSPStorage ***pppISPStorage);
HRESULT ( STDMETHODCALLTYPE *CreateStorageWithMetadata )(
IMDSPStorage4 * This,
/* [in] */ DWORD dwAttributes,
/* [in] */ __RPC__in LPCWSTR pwszName,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata,
/* [in] */ ULONGLONG qwFileSize,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewStorage);
HRESULT ( STDMETHODCALLTYPE *GetSpecifiedMetadata )(
IMDSPStorage4 * This,
/* [in] */ DWORD cProperties,
/* [size_is][in] */ __RPC__in_ecount_full(cProperties) LPCWSTR *ppwszPropNames,
/* [in] */ __RPC__in_opt IWMDMMetaData *pMetadata);
HRESULT ( STDMETHODCALLTYPE *FindStorage )(
IMDSPStorage4 * This,
/* [in] */ WMDM_FIND_SCOPE findScope,
/* [in] */ __RPC__in LPCWSTR pwszUniqueID,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
HRESULT ( STDMETHODCALLTYPE *GetParent )(
IMDSPStorage4 * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppStorage);
END_INTERFACE
} IMDSPStorage4Vtbl;
interface IMDSPStorage4
{
CONST_VTBL struct IMDSPStorage4Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPStorage4_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPStorage4_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPStorage4_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPStorage4_SetAttributes(This,dwAttributes,pFormat) \
( (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat) )
#define IMDSPStorage4_GetStorageGlobals(This,ppStorageGlobals) \
( (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals) )
#define IMDSPStorage4_GetAttributes(This,pdwAttributes,pFormat) \
( (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat) )
#define IMDSPStorage4_GetName(This,pwszName,nMaxChars) \
( (This)->lpVtbl -> GetName(This,pwszName,nMaxChars) )
#define IMDSPStorage4_GetDate(This,pDateTimeUTC) \
( (This)->lpVtbl -> GetDate(This,pDateTimeUTC) )
#define IMDSPStorage4_GetSize(This,pdwSizeLow,pdwSizeHigh) \
( (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh) )
#define IMDSPStorage4_GetRights(This,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac) )
#define IMDSPStorage4_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) )
#define IMDSPStorage4_EnumStorage(This,ppEnumStorage) \
( (This)->lpVtbl -> EnumStorage(This,ppEnumStorage) )
#define IMDSPStorage4_SendOpaqueCommand(This,pCommand) \
( (This)->lpVtbl -> SendOpaqueCommand(This,pCommand) )
#define IMDSPStorage4_GetStorage(This,pszStorageName,ppStorage) \
( (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage) )
#define IMDSPStorage4_CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) \
( (This)->lpVtbl -> CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) )
#define IMDSPStorage4_SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) )
#define IMDSPStorage4_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
( (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) )
#define IMDSPStorage4_GetMetadata(This,pMetadata) \
( (This)->lpVtbl -> GetMetadata(This,pMetadata) )
#define IMDSPStorage4_SetMetadata(This,pMetadata) \
( (This)->lpVtbl -> SetMetadata(This,pMetadata) )
#define IMDSPStorage4_SetReferences(This,dwRefs,ppISPStorage) \
( (This)->lpVtbl -> SetReferences(This,dwRefs,ppISPStorage) )
#define IMDSPStorage4_GetReferences(This,pdwRefs,pppISPStorage) \
( (This)->lpVtbl -> GetReferences(This,pdwRefs,pppISPStorage) )
#define IMDSPStorage4_CreateStorageWithMetadata(This,dwAttributes,pwszName,pMetadata,qwFileSize,ppNewStorage) \
( (This)->lpVtbl -> CreateStorageWithMetadata(This,dwAttributes,pwszName,pMetadata,qwFileSize,ppNewStorage) )
#define IMDSPStorage4_GetSpecifiedMetadata(This,cProperties,ppwszPropNames,pMetadata) \
( (This)->lpVtbl -> GetSpecifiedMetadata(This,cProperties,ppwszPropNames,pMetadata) )
#define IMDSPStorage4_FindStorage(This,findScope,pwszUniqueID,ppStorage) \
( (This)->lpVtbl -> FindStorage(This,findScope,pwszUniqueID,ppStorage) )
#define IMDSPStorage4_GetParent(This,ppStorage) \
( (This)->lpVtbl -> GetParent(This,ppStorage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPStorage4_INTERFACE_DEFINED__ */
#ifndef __IMDSPStorageGlobals_INTERFACE_DEFINED__
#define __IMDSPStorageGlobals_INTERFACE_DEFINED__
/* interface IMDSPStorageGlobals */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPStorageGlobals;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A17-33ED-11d3-8470-00C04F79DBC0")
IMDSPStorageGlobals : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
/* [out] */ __RPC__out DWORD *pdwCapabilities) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
/* [out] */ __RPC__out PWMDMID pSerialNum,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalSize(
/* [out] */ __RPC__out DWORD *pdwTotalSizeLow,
/* [out] */ __RPC__out DWORD *pdwTotalSizeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalFree(
/* [out] */ __RPC__out DWORD *pdwFreeLow,
/* [out] */ __RPC__out DWORD *pdwFreeHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalBad(
/* [out] */ __RPC__out DWORD *pdwBadLow,
/* [out] */ __RPC__out DWORD *pdwBadHigh) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ __RPC__out DWORD *pdwStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDevice(
/* [out] */ __RPC__deref_out_opt IMDSPDevice **ppDevice) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRootStorage(
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppRoot) = 0;
};
#else /* C style interface */
typedef struct IMDSPStorageGlobalsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPStorageGlobals * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPStorageGlobals * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPStorageGlobals * This);
HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwCapabilities);
HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out PWMDMID pSerialNum,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetTotalSize )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwTotalSizeLow,
/* [out] */ __RPC__out DWORD *pdwTotalSizeHigh);
HRESULT ( STDMETHODCALLTYPE *GetTotalFree )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwFreeLow,
/* [out] */ __RPC__out DWORD *pdwFreeHigh);
HRESULT ( STDMETHODCALLTYPE *GetTotalBad )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwBadLow,
/* [out] */ __RPC__out DWORD *pdwBadHigh);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__out DWORD *pdwStatus);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
IMDSPStorageGlobals * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__deref_out_opt IMDSPDevice **ppDevice);
HRESULT ( STDMETHODCALLTYPE *GetRootStorage )(
IMDSPStorageGlobals * This,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppRoot);
END_INTERFACE
} IMDSPStorageGlobalsVtbl;
interface IMDSPStorageGlobals
{
CONST_VTBL struct IMDSPStorageGlobalsVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPStorageGlobals_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPStorageGlobals_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPStorageGlobals_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPStorageGlobals_GetCapabilities(This,pdwCapabilities) \
( (This)->lpVtbl -> GetCapabilities(This,pdwCapabilities) )
#define IMDSPStorageGlobals_GetSerialNumber(This,pSerialNum,abMac) \
( (This)->lpVtbl -> GetSerialNumber(This,pSerialNum,abMac) )
#define IMDSPStorageGlobals_GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) \
( (This)->lpVtbl -> GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) )
#define IMDSPStorageGlobals_GetTotalFree(This,pdwFreeLow,pdwFreeHigh) \
( (This)->lpVtbl -> GetTotalFree(This,pdwFreeLow,pdwFreeHigh) )
#define IMDSPStorageGlobals_GetTotalBad(This,pdwBadLow,pdwBadHigh) \
( (This)->lpVtbl -> GetTotalBad(This,pdwBadLow,pdwBadHigh) )
#define IMDSPStorageGlobals_GetStatus(This,pdwStatus) \
( (This)->lpVtbl -> GetStatus(This,pdwStatus) )
#define IMDSPStorageGlobals_Initialize(This,fuMode,pProgress) \
( (This)->lpVtbl -> Initialize(This,fuMode,pProgress) )
#define IMDSPStorageGlobals_GetDevice(This,ppDevice) \
( (This)->lpVtbl -> GetDevice(This,ppDevice) )
#define IMDSPStorageGlobals_GetRootStorage(This,ppRoot) \
( (This)->lpVtbl -> GetRootStorage(This,ppRoot) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPStorageGlobals_INTERFACE_DEFINED__ */
#ifndef __IMDSPObjectInfo_INTERFACE_DEFINED__
#define __IMDSPObjectInfo_INTERFACE_DEFINED__
/* interface IMDSPObjectInfo */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPObjectInfo;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A19-33ED-11d3-8470-00C04F79DBC0")
IMDSPObjectInfo : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetPlayLength(
/* [out] */ __RPC__out DWORD *pdwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPlayLength(
/* [in] */ DWORD dwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPlayOffset(
/* [out] */ __RPC__out DWORD *pdwOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPlayOffset(
/* [in] */ DWORD dwOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTotalLength(
/* [out] */ __RPC__out DWORD *pdwLength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLastPlayPosition(
/* [out] */ __RPC__out DWORD *pdwLastPos) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLongestPlayPosition(
/* [out] */ __RPC__out DWORD *pdwLongestPos) = 0;
};
#else /* C style interface */
typedef struct IMDSPObjectInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPObjectInfo * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPObjectInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPObjectInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetPlayLength )(
IMDSPObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLength);
HRESULT ( STDMETHODCALLTYPE *SetPlayLength )(
IMDSPObjectInfo * This,
/* [in] */ DWORD dwLength);
HRESULT ( STDMETHODCALLTYPE *GetPlayOffset )(
IMDSPObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwOffset);
HRESULT ( STDMETHODCALLTYPE *SetPlayOffset )(
IMDSPObjectInfo * This,
/* [in] */ DWORD dwOffset);
HRESULT ( STDMETHODCALLTYPE *GetTotalLength )(
IMDSPObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLength);
HRESULT ( STDMETHODCALLTYPE *GetLastPlayPosition )(
IMDSPObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLastPos);
HRESULT ( STDMETHODCALLTYPE *GetLongestPlayPosition )(
IMDSPObjectInfo * This,
/* [out] */ __RPC__out DWORD *pdwLongestPos);
END_INTERFACE
} IMDSPObjectInfoVtbl;
interface IMDSPObjectInfo
{
CONST_VTBL struct IMDSPObjectInfoVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPObjectInfo_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPObjectInfo_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPObjectInfo_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPObjectInfo_GetPlayLength(This,pdwLength) \
( (This)->lpVtbl -> GetPlayLength(This,pdwLength) )
#define IMDSPObjectInfo_SetPlayLength(This,dwLength) \
( (This)->lpVtbl -> SetPlayLength(This,dwLength) )
#define IMDSPObjectInfo_GetPlayOffset(This,pdwOffset) \
( (This)->lpVtbl -> GetPlayOffset(This,pdwOffset) )
#define IMDSPObjectInfo_SetPlayOffset(This,dwOffset) \
( (This)->lpVtbl -> SetPlayOffset(This,dwOffset) )
#define IMDSPObjectInfo_GetTotalLength(This,pdwLength) \
( (This)->lpVtbl -> GetTotalLength(This,pdwLength) )
#define IMDSPObjectInfo_GetLastPlayPosition(This,pdwLastPos) \
( (This)->lpVtbl -> GetLastPlayPosition(This,pdwLastPos) )
#define IMDSPObjectInfo_GetLongestPlayPosition(This,pdwLongestPos) \
( (This)->lpVtbl -> GetLongestPlayPosition(This,pdwLongestPos) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPObjectInfo_INTERFACE_DEFINED__ */
#ifndef __IMDSPObject_INTERFACE_DEFINED__
#define __IMDSPObject_INTERFACE_DEFINED__
/* interface IMDSPObject */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPObject;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A18-33ED-11d3-8470-00C04F79DBC0")
IMDSPObject : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Open(
/* [in] */ UINT fuMode) = 0;
virtual HRESULT STDMETHODCALLTYPE Read(
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE Write(
/* [size_is][in] */ __RPC__in_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE Delete(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
virtual HRESULT STDMETHODCALLTYPE Seek(
/* [in] */ UINT fuFlags,
/* [in] */ DWORD dwOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE Rename(
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress) = 0;
virtual HRESULT STDMETHODCALLTYPE Move(
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IMDSPStorage *pTarget) = 0;
virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
};
#else /* C style interface */
typedef struct IMDSPObjectVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPObject * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPObject * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPObject * This);
HRESULT ( STDMETHODCALLTYPE *Open )(
IMDSPObject * This,
/* [in] */ UINT fuMode);
HRESULT ( STDMETHODCALLTYPE *Read )(
IMDSPObject * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *Write )(
IMDSPObject * This,
/* [size_is][in] */ __RPC__in_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *Delete )(
IMDSPObject * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Seek )(
IMDSPObject * This,
/* [in] */ UINT fuFlags,
/* [in] */ DWORD dwOffset);
HRESULT ( STDMETHODCALLTYPE *Rename )(
IMDSPObject * This,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Move )(
IMDSPObject * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IMDSPStorage *pTarget);
HRESULT ( STDMETHODCALLTYPE *Close )(
IMDSPObject * This);
END_INTERFACE
} IMDSPObjectVtbl;
interface IMDSPObject
{
CONST_VTBL struct IMDSPObjectVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPObject_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPObject_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPObject_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPObject_Open(This,fuMode) \
( (This)->lpVtbl -> Open(This,fuMode) )
#define IMDSPObject_Read(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> Read(This,pData,pdwSize,abMac) )
#define IMDSPObject_Write(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> Write(This,pData,pdwSize,abMac) )
#define IMDSPObject_Delete(This,fuMode,pProgress) \
( (This)->lpVtbl -> Delete(This,fuMode,pProgress) )
#define IMDSPObject_Seek(This,fuFlags,dwOffset) \
( (This)->lpVtbl -> Seek(This,fuFlags,dwOffset) )
#define IMDSPObject_Rename(This,pwszNewName,pProgress) \
( (This)->lpVtbl -> Rename(This,pwszNewName,pProgress) )
#define IMDSPObject_Move(This,fuMode,pProgress,pTarget) \
( (This)->lpVtbl -> Move(This,fuMode,pProgress,pTarget) )
#define IMDSPObject_Close(This) \
( (This)->lpVtbl -> Close(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPObject_INTERFACE_DEFINED__ */
#ifndef __IMDSPObject2_INTERFACE_DEFINED__
#define __IMDSPObject2_INTERFACE_DEFINED__
/* interface IMDSPObject2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPObject2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3f34cd3e-5907-4341-9af9-97f4187c3aa5")
IMDSPObject2 : public IMDSPObject
{
public:
virtual HRESULT STDMETHODCALLTYPE ReadOnClearChannel(
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize) = 0;
virtual HRESULT STDMETHODCALLTYPE WriteOnClearChannel(
/* [size_is][in] */ __RPC__in_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize) = 0;
};
#else /* C style interface */
typedef struct IMDSPObject2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPObject2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPObject2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPObject2 * This);
HRESULT ( STDMETHODCALLTYPE *Open )(
IMDSPObject2 * This,
/* [in] */ UINT fuMode);
HRESULT ( STDMETHODCALLTYPE *Read )(
IMDSPObject2 * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *Write )(
IMDSPObject2 * This,
/* [size_is][in] */ __RPC__in_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *Delete )(
IMDSPObject2 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Seek )(
IMDSPObject2 * This,
/* [in] */ UINT fuFlags,
/* [in] */ DWORD dwOffset);
HRESULT ( STDMETHODCALLTYPE *Rename )(
IMDSPObject2 * This,
/* [in] */ __RPC__in LPWSTR pwszNewName,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress);
HRESULT ( STDMETHODCALLTYPE *Move )(
IMDSPObject2 * This,
/* [in] */ UINT fuMode,
/* [in] */ __RPC__in_opt IWMDMProgress *pProgress,
/* [in] */ __RPC__in_opt IMDSPStorage *pTarget);
HRESULT ( STDMETHODCALLTYPE *Close )(
IMDSPObject2 * This);
HRESULT ( STDMETHODCALLTYPE *ReadOnClearChannel )(
IMDSPObject2 * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize);
HRESULT ( STDMETHODCALLTYPE *WriteOnClearChannel )(
IMDSPObject2 * This,
/* [size_is][in] */ __RPC__in_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize);
END_INTERFACE
} IMDSPObject2Vtbl;
interface IMDSPObject2
{
CONST_VTBL struct IMDSPObject2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPObject2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPObject2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPObject2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPObject2_Open(This,fuMode) \
( (This)->lpVtbl -> Open(This,fuMode) )
#define IMDSPObject2_Read(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> Read(This,pData,pdwSize,abMac) )
#define IMDSPObject2_Write(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> Write(This,pData,pdwSize,abMac) )
#define IMDSPObject2_Delete(This,fuMode,pProgress) \
( (This)->lpVtbl -> Delete(This,fuMode,pProgress) )
#define IMDSPObject2_Seek(This,fuFlags,dwOffset) \
( (This)->lpVtbl -> Seek(This,fuFlags,dwOffset) )
#define IMDSPObject2_Rename(This,pwszNewName,pProgress) \
( (This)->lpVtbl -> Rename(This,pwszNewName,pProgress) )
#define IMDSPObject2_Move(This,fuMode,pProgress,pTarget) \
( (This)->lpVtbl -> Move(This,fuMode,pProgress,pTarget) )
#define IMDSPObject2_Close(This) \
( (This)->lpVtbl -> Close(This) )
#define IMDSPObject2_ReadOnClearChannel(This,pData,pdwSize) \
( (This)->lpVtbl -> ReadOnClearChannel(This,pData,pdwSize) )
#define IMDSPObject2_WriteOnClearChannel(This,pData,pdwSize) \
( (This)->lpVtbl -> WriteOnClearChannel(This,pData,pdwSize) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPObject2_INTERFACE_DEFINED__ */
#ifndef __IMDSPDirectTransfer_INTERFACE_DEFINED__
#define __IMDSPDirectTransfer_INTERFACE_DEFINED__
/* interface IMDSPDirectTransfer */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPDirectTransfer;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c2fe57a8-9304-478c-9ee4-47e397b912d7")
IMDSPDirectTransfer : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE TransferToDevice(
/* [string][unique][in] */ __RPC__in_opt LPCWSTR pwszSourceFilePath,
/* [in] */ __RPC__in_opt IWMDMOperation *pSourceOperation,
/* [in] */ UINT fuFlags,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszDestinationName,
/* [in] */ __RPC__in_opt IWMDMMetaData *pSourceMetaData,
/* [in] */ __RPC__in_opt IWMDMProgress *pTransferProgress,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewObject) = 0;
};
#else /* C style interface */
typedef struct IMDSPDirectTransferVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPDirectTransfer * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPDirectTransfer * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPDirectTransfer * This);
HRESULT ( STDMETHODCALLTYPE *TransferToDevice )(
IMDSPDirectTransfer * This,
/* [string][unique][in] */ __RPC__in_opt LPCWSTR pwszSourceFilePath,
/* [in] */ __RPC__in_opt IWMDMOperation *pSourceOperation,
/* [in] */ UINT fuFlags,
/* [string][unique][in] */ __RPC__in_opt LPWSTR pwszDestinationName,
/* [in] */ __RPC__in_opt IWMDMMetaData *pSourceMetaData,
/* [in] */ __RPC__in_opt IWMDMProgress *pTransferProgress,
/* [out] */ __RPC__deref_out_opt IMDSPStorage **ppNewObject);
END_INTERFACE
} IMDSPDirectTransferVtbl;
interface IMDSPDirectTransfer
{
CONST_VTBL struct IMDSPDirectTransferVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPDirectTransfer_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPDirectTransfer_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPDirectTransfer_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPDirectTransfer_TransferToDevice(This,pwszSourceFilePath,pSourceOperation,fuFlags,pwszDestinationName,pSourceMetaData,pTransferProgress,ppNewObject) \
( (This)->lpVtbl -> TransferToDevice(This,pwszSourceFilePath,pSourceOperation,fuFlags,pwszDestinationName,pSourceMetaData,pTransferProgress,ppNewObject) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPDirectTransfer_INTERFACE_DEFINED__ */
#ifndef __IMDSPRevoked_INTERFACE_DEFINED__
#define __IMDSPRevoked_INTERFACE_DEFINED__
/* interface IMDSPRevoked */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMDSPRevoked;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("A4E8F2D4-3F31-464d-B53D-4FC335998184")
IMDSPRevoked : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetRevocationURL(
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwBufferLen) LPWSTR *ppwszRevocationURL,
/* [out][in] */ __RPC__inout DWORD *pdwBufferLen) = 0;
};
#else /* C style interface */
typedef struct IMDSPRevokedVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMDSPRevoked * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMDSPRevoked * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMDSPRevoked * This);
HRESULT ( STDMETHODCALLTYPE *GetRevocationURL )(
IMDSPRevoked * This,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwBufferLen) LPWSTR *ppwszRevocationURL,
/* [out][in] */ __RPC__inout DWORD *pdwBufferLen);
END_INTERFACE
} IMDSPRevokedVtbl;
interface IMDSPRevoked
{
CONST_VTBL struct IMDSPRevokedVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMDSPRevoked_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMDSPRevoked_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMDSPRevoked_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMDSPRevoked_GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen) \
( (This)->lpVtbl -> GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMDSPRevoked_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_mswmdm_0000_0047 */
/* [local] */
// SCP Data Flags
#define WMDM_SCP_EXAMINE_EXTENSION 0x00000001L
#define WMDM_SCP_EXAMINE_DATA 0x00000002L
#define WMDM_SCP_DECIDE_DATA 0x00000008L
#define WMDM_SCP_PROTECTED_OUTPUT 0x00000010L
#define WMDM_SCP_UNPROTECTED_OUTPUT 0x00000020L
#define WMDM_SCP_RIGHTS_DATA 0x00000040L
// SCP Transfer Flags
#define WMDM_SCP_TRANSFER_OBJECTDATA 0x00000020L
#define WMDM_SCP_NO_MORE_CHANGES 0x00000040L
// SCP DRMINFO Flags
#define WMDM_SCP_DRMINFO_NOT_DRMPROTECTED 0x00000000L
#define WMDM_SCP_DRMINFO_V1HEADER 0x00000001L
#define WMDM_SCP_DRMINFO_V2HEADER 0x00000002L
#ifndef _DEFINE_SCP_EVENTID
#define _DEFINE_SCP_EVENTID
// {86248CC9-4A59-43e2-9146-48A7F3F4140C}
// this event ID is used when SCP is acquiring secure clock from server
DEFINE_GUID(SCP_EVENTID_ACQSECURECLOCK,
0x86248cc9, 0x4a59, 0x43e2, 0x91, 0x46, 0x48, 0xa7, 0xf3, 0xf4, 0x14, 0xc);
//
// {87A507C7-B469-4386-B976-D5D1CE538A6F}
DEFINE_GUID(SCP_EVENTID_NEEDTOINDIV,
0x87a507c7, 0xb469, 0x4386, 0xb9, 0x76, 0xd5, 0xd1, 0xce, 0x53, 0x8a, 0x6f);
// this event ID is used to notify the player the version DRM header found in the content
// {213DD287-41D2-432b-9E3F-3B4F7B3581DD}
DEFINE_GUID(SCP_EVENTID_DRMINFO,
0x213dd287, 0x41d2, 0x432b, 0x9e, 0x3f, 0x3b, 0x4f, 0x7b, 0x35, 0x81, 0xdd);
// this parameter ID is used when notifying SCP_EVENTID_DRMINFO message
// {41D0155D-7CC7-4217-ADA9-005074624DA4}
DEFINE_GUID(SCP_PARAMID_DRMVERSION,
0x41d0155d, 0x7cc7, 0x4217, 0xad, 0xa9, 0x00, 0x50, 0x74, 0x62, 0x4d, 0xa4);
#endif
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0047_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0047_v0_0_s_ifspec;
#ifndef __ISCPSecureAuthenticate_INTERFACE_DEFINED__
#define __ISCPSecureAuthenticate_INTERFACE_DEFINED__
/* interface ISCPSecureAuthenticate */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureAuthenticate;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A0F-33ED-11d3-8470-00C04F79DBC0")
ISCPSecureAuthenticate : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSecureQuery(
/* [out] */ __RPC__deref_out_opt ISCPSecureQuery **ppSecureQuery) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureAuthenticateVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureAuthenticate * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureAuthenticate * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureAuthenticate * This);
HRESULT ( STDMETHODCALLTYPE *GetSecureQuery )(
ISCPSecureAuthenticate * This,
/* [out] */ __RPC__deref_out_opt ISCPSecureQuery **ppSecureQuery);
END_INTERFACE
} ISCPSecureAuthenticateVtbl;
interface ISCPSecureAuthenticate
{
CONST_VTBL struct ISCPSecureAuthenticateVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureAuthenticate_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureAuthenticate_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureAuthenticate_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureAuthenticate_GetSecureQuery(This,ppSecureQuery) \
( (This)->lpVtbl -> GetSecureQuery(This,ppSecureQuery) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureAuthenticate_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureAuthenticate2_INTERFACE_DEFINED__
#define __ISCPSecureAuthenticate2_INTERFACE_DEFINED__
/* interface ISCPSecureAuthenticate2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureAuthenticate2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B580CFAE-1672-47e2-ACAA-44BBECBCAE5B")
ISCPSecureAuthenticate2 : public ISCPSecureAuthenticate
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSCPSession(
/* [out] */ __RPC__deref_out_opt ISCPSession **ppSCPSession) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureAuthenticate2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureAuthenticate2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureAuthenticate2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureAuthenticate2 * This);
HRESULT ( STDMETHODCALLTYPE *GetSecureQuery )(
ISCPSecureAuthenticate2 * This,
/* [out] */ __RPC__deref_out_opt ISCPSecureQuery **ppSecureQuery);
HRESULT ( STDMETHODCALLTYPE *GetSCPSession )(
ISCPSecureAuthenticate2 * This,
/* [out] */ __RPC__deref_out_opt ISCPSession **ppSCPSession);
END_INTERFACE
} ISCPSecureAuthenticate2Vtbl;
interface ISCPSecureAuthenticate2
{
CONST_VTBL struct ISCPSecureAuthenticate2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureAuthenticate2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureAuthenticate2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureAuthenticate2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureAuthenticate2_GetSecureQuery(This,ppSecureQuery) \
( (This)->lpVtbl -> GetSecureQuery(This,ppSecureQuery) )
#define ISCPSecureAuthenticate2_GetSCPSession(This,ppSCPSession) \
( (This)->lpVtbl -> GetSCPSession(This,ppSCPSession) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureAuthenticate2_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureQuery_INTERFACE_DEFINED__
#define __ISCPSecureQuery_INTERFACE_DEFINED__
/* interface ISCPSecureQuery */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureQuery;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A0D-33ED-11d3-8470-00C04F79DBC0")
ISCPSecureQuery : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetDataDemands(
/* [out] */ __RPC__out UINT *pfuFlags,
/* [out] */ __RPC__out DWORD *pdwMinRightsData,
/* [out] */ __RPC__out DWORD *pdwMinExamineData,
/* [out] */ __RPC__out DWORD *pdwMinDecideData,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE ExamineData(
/* [in] */ UINT fuFlags,
/* [unique][string][in] */ __RPC__in_opt LPWSTR pwszExtension,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE MakeDecision(
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRights(
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureQueryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureQuery * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureQuery * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureQuery * This);
HRESULT ( STDMETHODCALLTYPE *GetDataDemands )(
ISCPSecureQuery * This,
/* [out] */ __RPC__out UINT *pfuFlags,
/* [out] */ __RPC__out DWORD *pdwMinRightsData,
/* [out] */ __RPC__out DWORD *pdwMinExamineData,
/* [out] */ __RPC__out DWORD *pdwMinDecideData,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ExamineData )(
ISCPSecureQuery * This,
/* [in] */ UINT fuFlags,
/* [unique][string][in] */ __RPC__in_opt LPWSTR pwszExtension,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *MakeDecision )(
ISCPSecureQuery * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
ISCPSecureQuery * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
END_INTERFACE
} ISCPSecureQueryVtbl;
interface ISCPSecureQuery
{
CONST_VTBL struct ISCPSecureQueryVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureQuery_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureQuery_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureQuery_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureQuery_GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) \
( (This)->lpVtbl -> GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) )
#define ISCPSecureQuery_ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) \
( (This)->lpVtbl -> ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) )
#define ISCPSecureQuery_MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) \
( (This)->lpVtbl -> MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) )
#define ISCPSecureQuery_GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureQuery_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureQuery2_INTERFACE_DEFINED__
#define __ISCPSecureQuery2_INTERFACE_DEFINED__
/* interface ISCPSecureQuery2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureQuery2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("EBE17E25-4FD7-4632-AF46-6D93D4FCC72E")
ISCPSecureQuery2 : public ISCPSecureQuery
{
public:
virtual HRESULT STDMETHODCALLTYPE MakeDecision2(
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertAppLen) BYTE *pAppCertApp,
/* [in] */ DWORD dwAppCertAppLen,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertSPLen) BYTE *pAppCertSP,
/* [in] */ DWORD dwAppCertSPLen,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwRevocationURLLen) LPWSTR *pszRevocationURL,
/* [ref][out][in] */ __RPC__inout DWORD *pdwRevocationURLLen,
/* [out] */ __RPC__out DWORD *pdwRevocationBitFlag,
/* [unique][out][in] */ __RPC__inout_opt ULONGLONG *pqwFileSize,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureQuery2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureQuery2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureQuery2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureQuery2 * This);
HRESULT ( STDMETHODCALLTYPE *GetDataDemands )(
ISCPSecureQuery2 * This,
/* [out] */ __RPC__out UINT *pfuFlags,
/* [out] */ __RPC__out DWORD *pdwMinRightsData,
/* [out] */ __RPC__out DWORD *pdwMinExamineData,
/* [out] */ __RPC__out DWORD *pdwMinDecideData,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ExamineData )(
ISCPSecureQuery2 * This,
/* [in] */ UINT fuFlags,
/* [unique][string][in] */ __RPC__in_opt LPWSTR pwszExtension,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *MakeDecision )(
ISCPSecureQuery2 * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
ISCPSecureQuery2 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *MakeDecision2 )(
ISCPSecureQuery2 * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertAppLen) BYTE *pAppCertApp,
/* [in] */ DWORD dwAppCertAppLen,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertSPLen) BYTE *pAppCertSP,
/* [in] */ DWORD dwAppCertSPLen,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwRevocationURLLen) LPWSTR *pszRevocationURL,
/* [ref][out][in] */ __RPC__inout DWORD *pdwRevocationURLLen,
/* [out] */ __RPC__out DWORD *pdwRevocationBitFlag,
/* [unique][out][in] */ __RPC__inout_opt ULONGLONG *pqwFileSize,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
END_INTERFACE
} ISCPSecureQuery2Vtbl;
interface ISCPSecureQuery2
{
CONST_VTBL struct ISCPSecureQuery2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureQuery2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureQuery2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureQuery2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureQuery2_GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) \
( (This)->lpVtbl -> GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) )
#define ISCPSecureQuery2_ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) \
( (This)->lpVtbl -> ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) )
#define ISCPSecureQuery2_MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) \
( (This)->lpVtbl -> MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) )
#define ISCPSecureQuery2_GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) )
#define ISCPSecureQuery2_MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac) \
( (This)->lpVtbl -> MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureQuery2_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureExchange_INTERFACE_DEFINED__
#define __ISCPSecureExchange_INTERFACE_DEFINED__
/* interface ISCPSecureExchange */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureExchange;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("1DCB3A0E-33ED-11d3-8470-00C04F79DBC0")
ISCPSecureExchange : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE TransferContainerData(
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE ObjectData(
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
virtual HRESULT STDMETHODCALLTYPE TransferComplete( void) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureExchangeVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureExchange * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureExchange * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureExchange * This);
HRESULT ( STDMETHODCALLTYPE *TransferContainerData )(
ISCPSecureExchange * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ObjectData )(
ISCPSecureExchange * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *TransferComplete )(
ISCPSecureExchange * This);
END_INTERFACE
} ISCPSecureExchangeVtbl;
interface ISCPSecureExchange
{
CONST_VTBL struct ISCPSecureExchangeVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureExchange_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureExchange_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureExchange_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureExchange_TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) \
( (This)->lpVtbl -> TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) )
#define ISCPSecureExchange_ObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> ObjectData(This,pData,pdwSize,abMac) )
#define ISCPSecureExchange_TransferComplete(This) \
( (This)->lpVtbl -> TransferComplete(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureExchange_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureExchange2_INTERFACE_DEFINED__
#define __ISCPSecureExchange2_INTERFACE_DEFINED__
/* interface ISCPSecureExchange2 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureExchange2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6C62FC7B-2690-483F-9D44-0A20CB35577C")
ISCPSecureExchange2 : public ISCPSecureExchange
{
public:
virtual HRESULT STDMETHODCALLTYPE TransferContainerData2(
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureExchange2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureExchange2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureExchange2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureExchange2 * This);
HRESULT ( STDMETHODCALLTYPE *TransferContainerData )(
ISCPSecureExchange2 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ObjectData )(
ISCPSecureExchange2 * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *TransferComplete )(
ISCPSecureExchange2 * This);
HRESULT ( STDMETHODCALLTYPE *TransferContainerData2 )(
ISCPSecureExchange2 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
END_INTERFACE
} ISCPSecureExchange2Vtbl;
interface ISCPSecureExchange2
{
CONST_VTBL struct ISCPSecureExchange2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureExchange2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureExchange2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureExchange2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureExchange2_TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) \
( (This)->lpVtbl -> TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) )
#define ISCPSecureExchange2_ObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> ObjectData(This,pData,pdwSize,abMac) )
#define ISCPSecureExchange2_TransferComplete(This) \
( (This)->lpVtbl -> TransferComplete(This) )
#define ISCPSecureExchange2_TransferContainerData2(This,pData,dwSize,pProgressCallback,pfuReadyFlags,abMac) \
( (This)->lpVtbl -> TransferContainerData2(This,pData,dwSize,pProgressCallback,pfuReadyFlags,abMac) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureExchange2_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureExchange3_INTERFACE_DEFINED__
#define __ISCPSecureExchange3_INTERFACE_DEFINED__
/* interface ISCPSecureExchange3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureExchange3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ab4e77e4-8908-4b17-bd2a-b1dbe6dd69e1")
ISCPSecureExchange3 : public ISCPSecureExchange2
{
public:
virtual HRESULT STDMETHODCALLTYPE TransferContainerDataOnClearChannel(
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [out] */ __RPC__out UINT *pfuReadyFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectDataOnClearChannel(
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize) = 0;
virtual HRESULT STDMETHODCALLTYPE TransferCompleteForDevice(
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureExchange3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureExchange3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureExchange3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureExchange3 * This);
HRESULT ( STDMETHODCALLTYPE *TransferContainerData )(
ISCPSecureExchange3 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ObjectData )(
ISCPSecureExchange3 * This,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *TransferComplete )(
ISCPSecureExchange3 * This);
HRESULT ( STDMETHODCALLTYPE *TransferContainerData2 )(
ISCPSecureExchange3 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [out] */ __RPC__out UINT *pfuReadyFlags,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *TransferContainerDataOnClearChannel )(
ISCPSecureExchange3 * This,
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [out] */ __RPC__out UINT *pfuReadyFlags);
HRESULT ( STDMETHODCALLTYPE *GetObjectDataOnClearChannel )(
ISCPSecureExchange3 * This,
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice,
/* [size_is][out] */ __RPC__out_ecount_full(*pdwSize) BYTE *pData,
/* [out][in] */ __RPC__inout DWORD *pdwSize);
HRESULT ( STDMETHODCALLTYPE *TransferCompleteForDevice )(
ISCPSecureExchange3 * This,
/* [in] */ __RPC__in_opt IMDSPDevice *pDevice);
END_INTERFACE
} ISCPSecureExchange3Vtbl;
interface ISCPSecureExchange3
{
CONST_VTBL struct ISCPSecureExchange3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureExchange3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureExchange3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureExchange3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureExchange3_TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) \
( (This)->lpVtbl -> TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) )
#define ISCPSecureExchange3_ObjectData(This,pData,pdwSize,abMac) \
( (This)->lpVtbl -> ObjectData(This,pData,pdwSize,abMac) )
#define ISCPSecureExchange3_TransferComplete(This) \
( (This)->lpVtbl -> TransferComplete(This) )
#define ISCPSecureExchange3_TransferContainerData2(This,pData,dwSize,pProgressCallback,pfuReadyFlags,abMac) \
( (This)->lpVtbl -> TransferContainerData2(This,pData,dwSize,pProgressCallback,pfuReadyFlags,abMac) )
#define ISCPSecureExchange3_TransferContainerDataOnClearChannel(This,pDevice,pData,dwSize,pProgressCallback,pfuReadyFlags) \
( (This)->lpVtbl -> TransferContainerDataOnClearChannel(This,pDevice,pData,dwSize,pProgressCallback,pfuReadyFlags) )
#define ISCPSecureExchange3_GetObjectDataOnClearChannel(This,pDevice,pData,pdwSize) \
( (This)->lpVtbl -> GetObjectDataOnClearChannel(This,pDevice,pData,pdwSize) )
#define ISCPSecureExchange3_TransferCompleteForDevice(This,pDevice) \
( (This)->lpVtbl -> TransferCompleteForDevice(This,pDevice) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureExchange3_INTERFACE_DEFINED__ */
#ifndef __ISCPSession_INTERFACE_DEFINED__
#define __ISCPSession_INTERFACE_DEFINED__
/* interface ISCPSession */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSession;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("88a3e6ed-eee4-4619-bbb3-fd4fb62715d1")
ISCPSession : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE BeginSession(
/* [in] */ __RPC__in_opt IMDSPDevice *pIDevice,
/* [size_is][in] */ __RPC__in_ecount_full(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx) = 0;
virtual HRESULT STDMETHODCALLTYPE EndSession(
/* [size_is][in] */ __RPC__in_ecount_full(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSecureQuery(
/* [out] */ __RPC__deref_out_opt ISCPSecureQuery **ppSecureQuery) = 0;
};
#else /* C style interface */
typedef struct ISCPSessionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSession * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSession * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSession * This);
HRESULT ( STDMETHODCALLTYPE *BeginSession )(
ISCPSession * This,
/* [in] */ __RPC__in_opt IMDSPDevice *pIDevice,
/* [size_is][in] */ __RPC__in_ecount_full(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx);
HRESULT ( STDMETHODCALLTYPE *EndSession )(
ISCPSession * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSizeCtx) BYTE *pCtx,
/* [in] */ DWORD dwSizeCtx);
HRESULT ( STDMETHODCALLTYPE *GetSecureQuery )(
ISCPSession * This,
/* [out] */ __RPC__deref_out_opt ISCPSecureQuery **ppSecureQuery);
END_INTERFACE
} ISCPSessionVtbl;
interface ISCPSession
{
CONST_VTBL struct ISCPSessionVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSession_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSession_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSession_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSession_BeginSession(This,pIDevice,pCtx,dwSizeCtx) \
( (This)->lpVtbl -> BeginSession(This,pIDevice,pCtx,dwSizeCtx) )
#define ISCPSession_EndSession(This,pCtx,dwSizeCtx) \
( (This)->lpVtbl -> EndSession(This,pCtx,dwSizeCtx) )
#define ISCPSession_GetSecureQuery(This,ppSecureQuery) \
( (This)->lpVtbl -> GetSecureQuery(This,ppSecureQuery) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSession_INTERFACE_DEFINED__ */
#ifndef __ISCPSecureQuery3_INTERFACE_DEFINED__
#define __ISCPSecureQuery3_INTERFACE_DEFINED__
/* interface ISCPSecureQuery3 */
/* [unique][uuid][object] */
EXTERN_C const IID IID_ISCPSecureQuery3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B7EDD1A2-4DAB-484b-B3C5-AD39B8B4C0B1")
ISCPSecureQuery3 : public ISCPSecureQuery2
{
public:
virtual HRESULT STDMETHODCALLTYPE GetRightsOnClearChannel(
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount) = 0;
virtual HRESULT STDMETHODCALLTYPE MakeDecisionOnClearChannel(
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertAppLen) BYTE *pAppCertApp,
/* [in] */ DWORD dwAppCertAppLen,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertSPLen) BYTE *pAppCertSP,
/* [in] */ DWORD dwAppCertSPLen,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwRevocationURLLen) LPWSTR *pszRevocationURL,
/* [ref][out][in] */ __RPC__inout DWORD *pdwRevocationURLLen,
/* [out] */ __RPC__out DWORD *pdwRevocationBitFlag,
/* [unique][out][in] */ __RPC__inout_opt ULONGLONG *pqwFileSize,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange) = 0;
};
#else /* C style interface */
typedef struct ISCPSecureQuery3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ISCPSecureQuery3 * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ISCPSecureQuery3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ISCPSecureQuery3 * This);
HRESULT ( STDMETHODCALLTYPE *GetDataDemands )(
ISCPSecureQuery3 * This,
/* [out] */ __RPC__out UINT *pfuFlags,
/* [out] */ __RPC__out DWORD *pdwMinRightsData,
/* [out] */ __RPC__out DWORD *pdwMinExamineData,
/* [out] */ __RPC__out DWORD *pdwMinDecideData,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *ExamineData )(
ISCPSecureQuery3 * This,
/* [in] */ UINT fuFlags,
/* [unique][string][in] */ __RPC__in_opt LPWSTR pwszExtension,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *MakeDecision )(
ISCPSecureQuery3 * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetRights )(
ISCPSecureQuery3 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *MakeDecision2 )(
ISCPSecureQuery3 * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertAppLen) BYTE *pAppCertApp,
/* [in] */ DWORD dwAppCertAppLen,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertSPLen) BYTE *pAppCertSP,
/* [in] */ DWORD dwAppCertSPLen,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwRevocationURLLen) LPWSTR *pszRevocationURL,
/* [ref][out][in] */ __RPC__inout DWORD *pdwRevocationURLLen,
/* [out] */ __RPC__out DWORD *pdwRevocationBitFlag,
/* [unique][out][in] */ __RPC__inout_opt ULONGLONG *pqwFileSize,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange,
/* [out][in] */ __RPC__inout_ecount_full(WMDM_MAC_LENGTH) BYTE abMac[ 8 ]);
HRESULT ( STDMETHODCALLTYPE *GetRightsOnClearChannel )(
ISCPSecureQuery3 * This,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStgGlobals,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pnRightsCount) PWMDMRIGHTS *ppRights,
/* [out] */ __RPC__out UINT *pnRightsCount);
HRESULT ( STDMETHODCALLTYPE *MakeDecisionOnClearChannel )(
ISCPSecureQuery3 * This,
/* [in] */ UINT fuFlags,
/* [size_is][in] */ __RPC__in_ecount_full(dwSize) BYTE *pData,
/* [in] */ DWORD dwSize,
/* [in] */ DWORD dwAppSec,
/* [size_is][in] */ __RPC__in_ecount_full(dwSessionKeyLen) BYTE *pbSPSessionKey,
/* [in] */ DWORD dwSessionKeyLen,
/* [in] */ __RPC__in_opt IMDSPStorageGlobals *pStorageGlobals,
/* [in] */ __RPC__in_opt IWMDMProgress3 *pProgressCallback,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertAppLen) BYTE *pAppCertApp,
/* [in] */ DWORD dwAppCertAppLen,
/* [size_is][in] */ __RPC__in_ecount_full(dwAppCertSPLen) BYTE *pAppCertSP,
/* [in] */ DWORD dwAppCertSPLen,
/* [size_is][size_is][string][out][in] */ __RPC__deref_inout_ecount_full_opt_string(*pdwRevocationURLLen) LPWSTR *pszRevocationURL,
/* [ref][out][in] */ __RPC__inout DWORD *pdwRevocationURLLen,
/* [out] */ __RPC__out DWORD *pdwRevocationBitFlag,
/* [unique][out][in] */ __RPC__inout_opt ULONGLONG *pqwFileSize,
/* [in] */ __RPC__in_opt IUnknown *pUnknown,
/* [out] */ __RPC__deref_out_opt ISCPSecureExchange **ppExchange);
END_INTERFACE
} ISCPSecureQuery3Vtbl;
interface ISCPSecureQuery3
{
CONST_VTBL struct ISCPSecureQuery3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ISCPSecureQuery3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ISCPSecureQuery3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ISCPSecureQuery3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ISCPSecureQuery3_GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) \
( (This)->lpVtbl -> GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) )
#define ISCPSecureQuery3_ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) \
( (This)->lpVtbl -> ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) )
#define ISCPSecureQuery3_MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) \
( (This)->lpVtbl -> MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) )
#define ISCPSecureQuery3_GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) \
( (This)->lpVtbl -> GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) )
#define ISCPSecureQuery3_MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac) \
( (This)->lpVtbl -> MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac) )
#define ISCPSecureQuery3_GetRightsOnClearChannel(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,pProgressCallback,ppRights,pnRightsCount) \
( (This)->lpVtbl -> GetRightsOnClearChannel(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,pProgressCallback,ppRights,pnRightsCount) )
#define ISCPSecureQuery3_MakeDecisionOnClearChannel(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pProgressCallback,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange) \
( (This)->lpVtbl -> MakeDecisionOnClearChannel(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pProgressCallback,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ISCPSecureQuery3_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_mswmdm_0000_0056 */
/* [local] */
#define SAC_MAC_LEN 8
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0056_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0056_v0_0_s_ifspec;
#ifndef __IComponentAuthenticate_INTERFACE_DEFINED__
#define __IComponentAuthenticate_INTERFACE_DEFINED__
/* interface IComponentAuthenticate */
/* [unique][uuid][object] */
EXTERN_C const IID IID_IComponentAuthenticate;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("A9889C00-6D2B-11d3-8496-00C04F79DBC0")
IComponentAuthenticate : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SACAuth(
/* [in] */ DWORD dwProtocolID,
/* [in] */ DWORD dwPass,
/* [size_is][in] */ __RPC__in_ecount_full(dwDataInLen) BYTE *pbDataIn,
/* [in] */ DWORD dwDataInLen,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwDataOutLen) BYTE **ppbDataOut,
/* [out] */ __RPC__out DWORD *pdwDataOutLen) = 0;
virtual HRESULT STDMETHODCALLTYPE SACGetProtocols(
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwProtocolCount) DWORD **ppdwProtocols,
/* [out] */ __RPC__out DWORD *pdwProtocolCount) = 0;
};
#else /* C style interface */
typedef struct IComponentAuthenticateVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IComponentAuthenticate * This,
/* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IComponentAuthenticate * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IComponentAuthenticate * This);
HRESULT ( STDMETHODCALLTYPE *SACAuth )(
IComponentAuthenticate * This,
/* [in] */ DWORD dwProtocolID,
/* [in] */ DWORD dwPass,
/* [size_is][in] */ __RPC__in_ecount_full(dwDataInLen) BYTE *pbDataIn,
/* [in] */ DWORD dwDataInLen,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwDataOutLen) BYTE **ppbDataOut,
/* [out] */ __RPC__out DWORD *pdwDataOutLen);
HRESULT ( STDMETHODCALLTYPE *SACGetProtocols )(
IComponentAuthenticate * This,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pdwProtocolCount) DWORD **ppdwProtocols,
/* [out] */ __RPC__out DWORD *pdwProtocolCount);
END_INTERFACE
} IComponentAuthenticateVtbl;
interface IComponentAuthenticate
{
CONST_VTBL struct IComponentAuthenticateVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IComponentAuthenticate_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IComponentAuthenticate_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IComponentAuthenticate_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IComponentAuthenticate_SACAuth(This,dwProtocolID,dwPass,pbDataIn,dwDataInLen,ppbDataOut,pdwDataOutLen) \
( (This)->lpVtbl -> SACAuth(This,dwProtocolID,dwPass,pbDataIn,dwDataInLen,ppbDataOut,pdwDataOutLen) )
#define IComponentAuthenticate_SACGetProtocols(This,ppdwProtocols,pdwProtocolCount) \
( (This)->lpVtbl -> SACGetProtocols(This,ppdwProtocols,pdwProtocolCount) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IComponentAuthenticate_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_mswmdm_0000_0057 */
/* [local] */
const GUID EVENT_WMDM_CONTENT_TRANSFER = { 0x339C9BF4, 0xBCFE, 0x4ED8, { 0x94, 0xDF, 0xEA, 0xF8, 0xC2, 0x6A, 0xB6, 0x1B } };
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0057_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_0057_v0_0_s_ifspec;
#ifndef __MSWMDMLib_LIBRARY_DEFINED__
#define __MSWMDMLib_LIBRARY_DEFINED__
/* library MSWMDMLib */
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_MSWMDMLib;
EXTERN_C const CLSID CLSID_MediaDevMgrClassFactory;
#ifdef __cplusplus
class DECLSPEC_UUID("50040C1D-BDBF-4924-B873-F14D6C5BFD66")
MediaDevMgrClassFactory;
#endif
EXTERN_C const CLSID CLSID_MediaDevMgr;
#ifdef __cplusplus
class DECLSPEC_UUID("25BAAD81-3560-11D3-8471-00C04F79DBC0")
MediaDevMgr;
#endif
EXTERN_C const CLSID CLSID_WMDMDevice;
#ifdef __cplusplus
class DECLSPEC_UUID("807B3CDF-357A-11d3-8471-00C04F79DBC0")
WMDMDevice;
#endif
EXTERN_C const CLSID CLSID_WMDMStorage;
#ifdef __cplusplus
class DECLSPEC_UUID("807B3CE0-357A-11d3-8471-00C04F79DBC0")
WMDMStorage;
#endif
EXTERN_C const CLSID CLSID_WMDMStorageGlobal;
#ifdef __cplusplus
class DECLSPEC_UUID("807B3CE1-357A-11d3-8471-00C04F79DBC0")
WMDMStorageGlobal;
#endif
EXTERN_C const CLSID CLSID_WMDMDeviceEnum;
#ifdef __cplusplus
class DECLSPEC_UUID("430E35AF-3971-11D3-8474-00C04F79DBC0")
WMDMDeviceEnum;
#endif
EXTERN_C const CLSID CLSID_WMDMStorageEnum;
#ifdef __cplusplus
class DECLSPEC_UUID("EB401A3B-3AF7-11d3-8474-00C04F79DBC0")
WMDMStorageEnum;
#endif
#endif /* __MSWMDMLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
unsigned long __RPC_USER LPSAFEARRAY_UserSize( unsigned long *, unsigned long , LPSAFEARRAY * );
unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal( unsigned long *, unsigned char *, LPSAFEARRAY * );
unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * );
void __RPC_USER LPSAFEARRAY_UserFree( unsigned long *, LPSAFEARRAY * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif