mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
293 lines
9.3 KiB
293 lines
9.3 KiB
//
|
|
// Microsoft Windows Media Technologies
|
|
// Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved.
|
|
//
|
|
|
|
cpp_quote("// Open Mode Flags")
|
|
cpp_quote("#define MDSP_READ 0x00000001")
|
|
cpp_quote("#define MDSP_WRITE 0x00000002")
|
|
|
|
cpp_quote("// Seek Flags")
|
|
cpp_quote("#define MDSP_SEEK_BOF 0x00000001")
|
|
cpp_quote("#define MDSP_SEEK_CUR 0x00000002")
|
|
cpp_quote("#define MDSP_SEEK_EOF 0x00000004")
|
|
|
|
|
|
interface IMDSPDevice;
|
|
interface IMDSPDevice2;
|
|
interface IMDSPStorage;
|
|
interface IMDSPStorage2;
|
|
interface IMDSPObjectInfo;
|
|
interface IMDSPStorageGlobals;
|
|
interface IMDSPEnumDevice;
|
|
interface IMDSPEnumStorage;
|
|
interface IMDSPRevoked;
|
|
|
|
// IMDServiceProvider
|
|
[
|
|
object,
|
|
uuid(1DCB3A10-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDServiceProvider : IUnknown
|
|
{
|
|
HRESULT GetDeviceCount([out] DWORD *pdwCount);
|
|
HRESULT EnumDevices([out] IMDSPEnumDevice **ppEnumDevice);
|
|
};
|
|
|
|
// IMDServiceProvider2
|
|
[
|
|
object,
|
|
uuid(B2FA24B7-CDA3-4694-9862-413AE1A34819),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDServiceProvider2 : IMDServiceProvider
|
|
{
|
|
HRESULT GetDeviceFromPnPName( [in, string] LPCWSTR pwszPnPName,
|
|
[out] IMDSPDevice** ppDevice );
|
|
};
|
|
|
|
|
|
// IMDSPEnumDevice
|
|
[
|
|
object,
|
|
uuid(1DCB3A11-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPEnumDevice : IUnknown
|
|
{
|
|
HRESULT Next([in]ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)] IMDSPDevice **ppDevice,
|
|
[out] ULONG *pceltFetched);
|
|
HRESULT Skip([in] ULONG celt, [out] ULONG *pceltFetched);
|
|
HRESULT Reset();
|
|
HRESULT Clone([out] IMDSPEnumDevice **ppEnumDevice);
|
|
};
|
|
|
|
// IMDSPDevice
|
|
[
|
|
object,
|
|
uuid(1DCB3A12-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPDevice : IUnknown
|
|
{
|
|
HRESULT GetName([out,string,size_is(nMaxChars)] LPWSTR pwszName,
|
|
[in] UINT nMaxChars);
|
|
HRESULT GetManufacturer([out,string,size_is(nMaxChars)] LPWSTR pwszName,
|
|
[in] UINT nMaxChars);
|
|
HRESULT GetVersion([out] DWORD *pdwVersion);
|
|
HRESULT GetType([out] DWORD *pdwType);
|
|
HRESULT GetSerialNumber([out] PWMDMID pSerialNumber,
|
|
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
|
|
HRESULT GetPowerSource([out] DWORD *pdwPowerSource,
|
|
[out] DWORD *pdwPercentRemaining);
|
|
HRESULT GetStatus([out] DWORD *pdwStatus);
|
|
HRESULT GetDeviceIcon([out] ULONG *hIcon);
|
|
HRESULT EnumStorage([out] IMDSPEnumStorage **ppEnumStorage);
|
|
HRESULT GetFormatSupport([out, size_is( , *pnFormatCount)] _WAVEFORMATEX **pFormatEx,
|
|
[out] UINT *pnFormatCount,
|
|
[out, size_is( , *pnMimeTypeCount)] LPWSTR **pppwszMimeType,
|
|
[out] UINT *pnMimeTypeCount);
|
|
HRESULT SendOpaqueCommand([in,out] OPAQUECOMMAND *pCommand);
|
|
};
|
|
|
|
// IWMDMDevice2
|
|
[
|
|
object,
|
|
uuid(420D16AD-C97D-4e00-82AA-00E9F4335DDD),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPDevice2 : IMDSPDevice
|
|
{
|
|
HRESULT GetStorage([in, string] LPCWSTR pszStorageName, [out] IMDSPStorage** ppStorage );
|
|
|
|
HRESULT GetFormatSupport2(
|
|
[in] DWORD dwFlags,
|
|
[out, size_is( , *pnAudioFormatCount)] _WAVEFORMATEX** ppAudioFormatEx,
|
|
[out, ref] UINT *pnAudioFormatCount,
|
|
[out, size_is( , *pnVideoFormatCount)] _VIDEOINFOHEADER** ppVideoFormatEx,
|
|
[out, ref] UINT *pnVideoFormatCount,
|
|
[out, size_is( , *pnFileTypeCount)] WMFILECAPABILITIES** ppFileType,
|
|
[out, ref] UINT *pnFileTypeCount);
|
|
|
|
HRESULT GetSpecifyPropertyPages([out, ref] ISpecifyPropertyPages** ppSpecifyPropPages,
|
|
[out, ref, size_is(,*pcUnks)] IUnknown*** pppUnknowns,
|
|
[out, ref] ULONG *pcUnks );
|
|
|
|
HRESULT GetPnPName([out, size_is(nMaxChars)] LPWSTR pwszPnPName,
|
|
[in] UINT nMaxChars );
|
|
|
|
};
|
|
|
|
|
|
// IMDSPDeviceControl
|
|
[
|
|
object,
|
|
uuid(1DCB3A14-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPDeviceControl : IUnknown
|
|
{
|
|
HRESULT GetDCStatus([out] DWORD *pdwStatus);
|
|
HRESULT GetCapabilities([out] DWORD *pdwCapabilitiesMask);
|
|
HRESULT Play();
|
|
HRESULT Record([in] _WAVEFORMATEX *pFormat);
|
|
HRESULT Pause();
|
|
HRESULT Resume();
|
|
HRESULT Stop();
|
|
HRESULT Seek([in] UINT fuMode, [in] int nOffset);
|
|
};
|
|
|
|
// IMDSPEnumStorage
|
|
[
|
|
object,
|
|
uuid(1DCB3A15-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPEnumStorage : IUnknown
|
|
{
|
|
HRESULT Next([in]ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)] IMDSPStorage **ppStorage,
|
|
[out] ULONG *pceltFetched);
|
|
HRESULT Skip([in] ULONG celt, [out] ULONG *pceltFetched);
|
|
HRESULT Reset();
|
|
HRESULT Clone([out] IMDSPEnumStorage **ppEnumStorage);
|
|
};
|
|
|
|
// IMDSPStorage
|
|
[
|
|
object,
|
|
uuid(1DCB3A16-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPStorage : IUnknown
|
|
{
|
|
HRESULT SetAttributes([in] DWORD dwAttributes,
|
|
[in] _WAVEFORMATEX *pFormat);
|
|
HRESULT GetStorageGlobals([out]IMDSPStorageGlobals **ppStorageGlobals);
|
|
HRESULT GetAttributes([out] DWORD *pdwAttributes,
|
|
[out] _WAVEFORMATEX *pFormat);
|
|
HRESULT GetName([out,string, size_is(nMaxChars)] LPWSTR pwszName,
|
|
[in] UINT nMaxChars);
|
|
HRESULT GetDate([out] PWMDMDATETIME pDateTimeUTC);
|
|
HRESULT GetSize([out] DWORD *pdwSizeLow,
|
|
[out] DWORD *pdwSizeHigh);
|
|
HRESULT GetRights([out, size_is(,*pnRightsCount)] PWMDMRIGHTS *ppRights,
|
|
[out] UINT *pnRightsCount,
|
|
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
|
|
HRESULT CreateStorage([in] DWORD dwAttributes,
|
|
[in, unique] _WAVEFORMATEX *pFormat,
|
|
[in] LPWSTR pwszName,
|
|
[out] IMDSPStorage **ppNewStorage);
|
|
HRESULT EnumStorage([out] IMDSPEnumStorage **ppEnumStorage);
|
|
HRESULT SendOpaqueCommand([in,out] OPAQUECOMMAND *pCommand);
|
|
};
|
|
|
|
// IMDSPStorage2
|
|
[
|
|
object,
|
|
uuid(0A5E07A5-6454-4451-9C36-1C6AE7E2B1D6),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPStorage2 : IMDSPStorage
|
|
{
|
|
HRESULT GetStorage([in, string] LPCWSTR pszStorageName, [out] IMDSPStorage** ppStorage );
|
|
|
|
HRESULT CreateStorage2([in] DWORD dwAttributes,
|
|
[in] DWORD dwAttributesEx,
|
|
[in, unique] _WAVEFORMATEX *pAudioFormat,
|
|
[in, unique] _VIDEOINFOHEADER *pVideoFormat,
|
|
[in] LPWSTR pwszName,
|
|
[in] ULONGLONG qwFileSize,
|
|
[out] IMDSPStorage **ppNewStorage);
|
|
|
|
|
|
HRESULT SetAttributes2( [in] DWORD dwAttributes,
|
|
[in] DWORD dwAttributesEx,
|
|
[in] _WAVEFORMATEX *pAudioFormat,
|
|
[in] _VIDEOINFOHEADER* pVideoFormat );
|
|
HRESULT GetAttributes2( [out] DWORD *pdwAttributes,
|
|
[out] DWORD *pdwAttributesEx,
|
|
[out] _WAVEFORMATEX *pAudioFormat,
|
|
[out] _VIDEOINFOHEADER* pVideoFormat );
|
|
}
|
|
|
|
|
|
// IMDSPStorageGlobals
|
|
[
|
|
object,
|
|
uuid(1DCB3A17-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPStorageGlobals : IUnknown
|
|
{
|
|
HRESULT GetCapabilities([out] DWORD *pdwCapabilities);
|
|
HRESULT GetSerialNumber([out] PWMDMID pSerialNum,
|
|
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
|
|
HRESULT GetTotalSize([out] DWORD *pdwTotalSizeLow,
|
|
[out] DWORD *pdwTotalSizeHigh);
|
|
HRESULT GetTotalFree([out] DWORD *pdwFreeLow,
|
|
[out] DWORD *pdwFreeHigh);
|
|
HRESULT GetTotalBad([out] DWORD *pdwBadLow,
|
|
[out] DWORD *pdwBadHigh);
|
|
HRESULT GetStatus([out] DWORD *pdwStatus);
|
|
HRESULT Initialize([in] UINT fuMode,
|
|
[in] IWMDMProgress *pProgress);
|
|
HRESULT GetDevice([out] IMDSPDevice **ppDevice);
|
|
HRESULT GetRootStorage([out] IMDSPStorage **ppRoot);
|
|
};
|
|
|
|
// IMDSPObjectInfo
|
|
[
|
|
object,
|
|
uuid(1DCB3A19-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPObjectInfo : IUnknown
|
|
{
|
|
HRESULT GetPlayLength([out] DWORD *pdwLength);
|
|
HRESULT SetPlayLength([in] DWORD dwLength);
|
|
HRESULT GetPlayOffset([out] DWORD *pdwOffset);
|
|
HRESULT SetPlayOffset([in] DWORD dwOffset);
|
|
HRESULT GetTotalLength([out] DWORD *pdwLength);
|
|
HRESULT GetLastPlayPosition([out] DWORD *pdwLastPos);
|
|
HRESULT GetLongestPlayPosition([out] DWORD *pdwLongestPos);
|
|
};
|
|
|
|
// IMDSPObject
|
|
[
|
|
object,
|
|
uuid(1DCB3A18-33ED-11d3-8470-00C04F79DBC0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPObject : IUnknown
|
|
{
|
|
HRESULT Open([in] UINT fuMode);
|
|
HRESULT Read([out,size_is(*pdwSize)] BYTE *pData,
|
|
[in,out] DWORD *pdwSize,
|
|
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
|
|
HRESULT Write([in, size_is(*pdwSize)] BYTE *pData,
|
|
[in,out] DWORD *pdwSize,
|
|
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
|
|
HRESULT Delete([in] UINT fuMode, [in] IWMDMProgress *pProgress);
|
|
HRESULT Seek([in] UINT fuFlags,
|
|
[in] DWORD dwOffset);
|
|
HRESULT Rename([in] LPWSTR pwszNewName, [in] IWMDMProgress *pProgress);
|
|
HRESULT Move([in] UINT fuMode,
|
|
[in] IWMDMProgress *pProgress,
|
|
[in] IMDSPStorage *pTarget);
|
|
HRESULT Close();
|
|
};
|
|
|
|
// IMDSPRevoked
|
|
[
|
|
object,
|
|
uuid(A4E8F2D4-3F31-464d-B53D-4FC335998184),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMDSPRevoked : IUnknown
|
|
{
|
|
HRESULT GetRevocationURL( [in, out, string, size_is(, *pdwBufferLen)] LPWSTR* ppwszRevocationURL,
|
|
[in, out] DWORD* pdwBufferLen );
|
|
};
|