/*** Autogenerated by WIDL 2.14 from ../../wine-staging/include/wmp.idl - Do not edit ***/

#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include <rpc.h>
#include <rpcndr.h>

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __wmp_h__
#define __wmp_h__

/* Forward declarations */

#ifndef __IWMPPlaylist_FWD_DEFINED__
#define __IWMPPlaylist_FWD_DEFINED__
typedef interface IWMPPlaylist IWMPPlaylist;
#ifdef __cplusplus
interface IWMPPlaylist;
#endif /* __cplusplus */
#endif

#ifndef __IWMPMedia_FWD_DEFINED__
#define __IWMPMedia_FWD_DEFINED__
typedef interface IWMPMedia IWMPMedia;
#ifdef __cplusplus
interface IWMPMedia;
#endif /* __cplusplus */
#endif

#ifndef __IWMPControls_FWD_DEFINED__
#define __IWMPControls_FWD_DEFINED__
typedef interface IWMPControls IWMPControls;
#ifdef __cplusplus
interface IWMPControls;
#endif /* __cplusplus */
#endif

#ifndef __IWMPSettings_FWD_DEFINED__
#define __IWMPSettings_FWD_DEFINED__
typedef interface IWMPSettings IWMPSettings;
#ifdef __cplusplus
interface IWMPSettings;
#endif /* __cplusplus */
#endif

#ifndef __IWMPStringCollection_FWD_DEFINED__
#define __IWMPStringCollection_FWD_DEFINED__
typedef interface IWMPStringCollection IWMPStringCollection;
#ifdef __cplusplus
interface IWMPStringCollection;
#endif /* __cplusplus */
#endif

#ifndef __IWMPMediaCollection_FWD_DEFINED__
#define __IWMPMediaCollection_FWD_DEFINED__
typedef interface IWMPMediaCollection IWMPMediaCollection;
#ifdef __cplusplus
interface IWMPMediaCollection;
#endif /* __cplusplus */
#endif

#ifndef __IWMPPlaylistArray_FWD_DEFINED__
#define __IWMPPlaylistArray_FWD_DEFINED__
typedef interface IWMPPlaylistArray IWMPPlaylistArray;
#ifdef __cplusplus
interface IWMPPlaylistArray;
#endif /* __cplusplus */
#endif

#ifndef __IWMPPlaylistCollection_FWD_DEFINED__
#define __IWMPPlaylistCollection_FWD_DEFINED__
typedef interface IWMPPlaylistCollection IWMPPlaylistCollection;
#ifdef __cplusplus
interface IWMPPlaylistCollection;
#endif /* __cplusplus */
#endif

#ifndef __IWMPNetwork_FWD_DEFINED__
#define __IWMPNetwork_FWD_DEFINED__
typedef interface IWMPNetwork IWMPNetwork;
#ifdef __cplusplus
interface IWMPNetwork;
#endif /* __cplusplus */
#endif

#ifndef __IWMPCdrom_FWD_DEFINED__
#define __IWMPCdrom_FWD_DEFINED__
typedef interface IWMPCdrom IWMPCdrom;
#ifdef __cplusplus
interface IWMPCdrom;
#endif /* __cplusplus */
#endif

#ifndef __IWMPCdromCollection_FWD_DEFINED__
#define __IWMPCdromCollection_FWD_DEFINED__
typedef interface IWMPCdromCollection IWMPCdromCollection;
#ifdef __cplusplus
interface IWMPCdromCollection;
#endif /* __cplusplus */
#endif

#ifndef __IWMPDVD_FWD_DEFINED__
#define __IWMPDVD_FWD_DEFINED__
typedef interface IWMPDVD IWMPDVD;
#ifdef __cplusplus
interface IWMPDVD;
#endif /* __cplusplus */
#endif

#ifndef __IWMPClosedCaption_FWD_DEFINED__
#define __IWMPClosedCaption_FWD_DEFINED__
typedef interface IWMPClosedCaption IWMPClosedCaption;
#ifdef __cplusplus
interface IWMPClosedCaption;
#endif /* __cplusplus */
#endif

#ifndef __IWMPErrorItem_FWD_DEFINED__
#define __IWMPErrorItem_FWD_DEFINED__
typedef interface IWMPErrorItem IWMPErrorItem;
#ifdef __cplusplus
interface IWMPErrorItem;
#endif /* __cplusplus */
#endif

#ifndef __IWMPError_FWD_DEFINED__
#define __IWMPError_FWD_DEFINED__
typedef interface IWMPError IWMPError;
#ifdef __cplusplus
interface IWMPError;
#endif /* __cplusplus */
#endif

#ifndef __IWMPPlayerApplication_FWD_DEFINED__
#define __IWMPPlayerApplication_FWD_DEFINED__
typedef interface IWMPPlayerApplication IWMPPlayerApplication;
#ifdef __cplusplus
interface IWMPPlayerApplication;
#endif /* __cplusplus */
#endif

#ifndef __IWMPCore_FWD_DEFINED__
#define __IWMPCore_FWD_DEFINED__
typedef interface IWMPCore IWMPCore;
#ifdef __cplusplus
interface IWMPCore;
#endif /* __cplusplus */
#endif

#ifndef __IWMPCore2_FWD_DEFINED__
#define __IWMPCore2_FWD_DEFINED__
typedef interface IWMPCore2 IWMPCore2;
#ifdef __cplusplus
interface IWMPCore2;
#endif /* __cplusplus */
#endif

#ifndef __IWMPCore3_FWD_DEFINED__
#define __IWMPCore3_FWD_DEFINED__
typedef interface IWMPCore3 IWMPCore3;
#ifdef __cplusplus
interface IWMPCore3;
#endif /* __cplusplus */
#endif

#ifndef __IWMPPlayer4_FWD_DEFINED__
#define __IWMPPlayer4_FWD_DEFINED__
typedef interface IWMPPlayer4 IWMPPlayer4;
#ifdef __cplusplus
interface IWMPPlayer4;
#endif /* __cplusplus */
#endif

#ifndef ___WMPOCXEvents_FWD_DEFINED__
#define ___WMPOCXEvents_FWD_DEFINED__
typedef interface _WMPOCXEvents _WMPOCXEvents;
#ifdef __cplusplus
interface _WMPOCXEvents;
#endif /* __cplusplus */
#endif

#ifndef __WindowsMediaPlayer_FWD_DEFINED__
#define __WindowsMediaPlayer_FWD_DEFINED__
#ifdef __cplusplus
typedef class WindowsMediaPlayer WindowsMediaPlayer;
#else
typedef struct WindowsMediaPlayer WindowsMediaPlayer;
#endif /* defined __cplusplus */
#endif /* defined __WindowsMediaPlayer_FWD_DEFINED__ */

/* Headers for imported files */

#include <oaidl.h>
#include <ocidl.h>

#ifdef __cplusplus
extern "C" {
#endif


DEFINE_GUID(LIBID_WMPLib, 0x6bf52a50, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);

typedef enum __WIDL_wmp_generated_name_00000011 {
    wmposUndefined = 0,
    wmposPlaylistChanging = 1,
    wmposPlaylistLocating = 2,
    wmposPlaylistConnecting = 3,
    wmposPlaylistLoading = 4,
    wmposPlaylistOpening = 5,
    wmposPlaylistOpenNoMedia = 6,
    wmposPlaylistChanged = 7,
    wmposMediaChanging = 8,
    wmposMediaLocating = 9,
    wmposMediaConnecting = 10,
    wmposMediaLoading = 11,
    wmposMediaOpening = 12,
    wmposMediaOpen = 13,
    wmposBeginCodecAcquisition = 14,
    wmposEndCodecAcquisition = 15,
    wmposBeginLicenseAcquisition = 16,
    wmposEndLicenseAcquisition = 17,
    wmposBeginIndividualization = 18,
    wmposEndIndividualization = 19,
    wmposMediaWaiting = 20,
    wmposOpeningUnknownURL = 21
} WMPOpenState;
typedef enum __WIDL_wmp_generated_name_00000012 {
    wmppsUndefined = 0,
    wmppsStopped = 1,
    wmppsPaused = 2,
    wmppsPlaying = 3,
    wmppsScanForward = 4,
    wmppsScanReverse = 5,
    wmppsBuffering = 6,
    wmppsWaiting = 7,
    wmppsMediaEnded = 8,
    wmppsTransitioning = 9,
    wmppsReady = 10,
    wmppsReconnecting = 11,
    wmppsLast = 12
} WMPPlayState;
#ifndef __IWMPMedia_FWD_DEFINED__
#define __IWMPMedia_FWD_DEFINED__
typedef interface IWMPMedia IWMPMedia;
#ifdef __cplusplus
interface IWMPMedia;
#endif /* __cplusplus */
#endif

/*****************************************************************************
 * IWMPPlaylist interface
 */
#ifndef __IWMPPlaylist_INTERFACE_DEFINED__
#define __IWMPPlaylist_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPPlaylist, 0xd5f0f4f1, 0x130c, 0x11d3, 0xb1,0x4e, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d5f0f4f1-130c-11d3-b14e-00c04f79faa6")
IWMPPlaylist : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_count(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_name(
        BSTR pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributeCount(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributeName(
        LONG lIndex,
        BSTR *pbstrAttributeName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Item(
        LONG lIndex,
        IWMPMedia **ppIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
        BSTR bstrName,
        BSTR *pbstrVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE setItemInfo(
        BSTR bstrName,
        BSTR bstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isIdentical(
        IWMPPlaylist *pIWMPPlaylist,
        VARIANT_BOOL *pvbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE clear(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE insertItem(
        LONG lIndex,
        IWMPMedia *pIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE appendItem(
        IWMPMedia *pIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeItem(
        IWMPMedia *pIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE moveItem(
        LONG lIndexOld,
        LONG lIndexNew) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPPlaylist, 0xd5f0f4f1, 0x130c, 0x11d3, 0xb1,0x4e, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
#endif
#else
typedef struct IWMPPlaylistVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPPlaylist *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPPlaylist *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPPlaylist *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPPlaylist *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPPlaylist *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPPlaylist *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPPlaylist *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPPlaylist methods ***/
    HRESULT (STDMETHODCALLTYPE *get_count)(
        IWMPPlaylist *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *get_name)(
        IWMPPlaylist *This,
        BSTR *pbstrName);

    HRESULT (STDMETHODCALLTYPE *put_name)(
        IWMPPlaylist *This,
        BSTR pbstrName);

    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
        IWMPPlaylist *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *get_attributeName)(
        IWMPPlaylist *This,
        LONG lIndex,
        BSTR *pbstrAttributeName);

    HRESULT (STDMETHODCALLTYPE *get_Item)(
        IWMPPlaylist *This,
        LONG lIndex,
        IWMPMedia **ppIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
        IWMPPlaylist *This,
        BSTR bstrName,
        BSTR *pbstrVal);

    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
        IWMPPlaylist *This,
        BSTR bstrName,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
        IWMPPlaylist *This,
        IWMPPlaylist *pIWMPPlaylist,
        VARIANT_BOOL *pvbool);

    HRESULT (STDMETHODCALLTYPE *clear)(
        IWMPPlaylist *This);

    HRESULT (STDMETHODCALLTYPE *insertItem)(
        IWMPPlaylist *This,
        LONG lIndex,
        IWMPMedia *pIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *appendItem)(
        IWMPPlaylist *This,
        IWMPMedia *pIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *removeItem)(
        IWMPPlaylist *This,
        IWMPMedia *pIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *moveItem)(
        IWMPPlaylist *This,
        LONG lIndexOld,
        LONG lIndexNew);

    END_INTERFACE
} IWMPPlaylistVtbl;

interface IWMPPlaylist {
    CONST_VTBL IWMPPlaylistVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPPlaylist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPPlaylist_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPPlaylist_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPPlaylist_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPPlaylist_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPPlaylist_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPPlaylist_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPPlaylist methods ***/
#define IWMPPlaylist_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
#define IWMPPlaylist_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
#define IWMPPlaylist_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
#define IWMPPlaylist_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
#define IWMPPlaylist_get_attributeName(This,lIndex,pbstrAttributeName) (This)->lpVtbl->get_attributeName(This,lIndex,pbstrAttributeName)
#define IWMPPlaylist_get_Item(This,lIndex,ppIWMPMedia) (This)->lpVtbl->get_Item(This,lIndex,ppIWMPMedia)
#define IWMPPlaylist_getItemInfo(This,bstrName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrName,pbstrVal)
#define IWMPPlaylist_setItemInfo(This,bstrName,bstrValue) (This)->lpVtbl->setItemInfo(This,bstrName,bstrValue)
#define IWMPPlaylist_get_isIdentical(This,pIWMPPlaylist,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPPlaylist,pvbool)
#define IWMPPlaylist_clear(This) (This)->lpVtbl->clear(This)
#define IWMPPlaylist_insertItem(This,lIndex,pIWMPMedia) (This)->lpVtbl->insertItem(This,lIndex,pIWMPMedia)
#define IWMPPlaylist_appendItem(This,pIWMPMedia) (This)->lpVtbl->appendItem(This,pIWMPMedia)
#define IWMPPlaylist_removeItem(This,pIWMPMedia) (This)->lpVtbl->removeItem(This,pIWMPMedia)
#define IWMPPlaylist_moveItem(This,lIndexOld,lIndexNew) (This)->lpVtbl->moveItem(This,lIndexOld,lIndexNew)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPPlaylist_QueryInterface(IWMPPlaylist* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPPlaylist_AddRef(IWMPPlaylist* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPPlaylist_Release(IWMPPlaylist* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPPlaylist_GetTypeInfoCount(IWMPPlaylist* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPPlaylist_GetTypeInfo(IWMPPlaylist* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPPlaylist_GetIDsOfNames(IWMPPlaylist* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPPlaylist_Invoke(IWMPPlaylist* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPPlaylist methods ***/
static FORCEINLINE HRESULT IWMPPlaylist_get_count(IWMPPlaylist* This,LONG *plCount) {
    return This->lpVtbl->get_count(This,plCount);
}
static FORCEINLINE HRESULT IWMPPlaylist_get_name(IWMPPlaylist* This,BSTR *pbstrName) {
    return This->lpVtbl->get_name(This,pbstrName);
}
static FORCEINLINE HRESULT IWMPPlaylist_put_name(IWMPPlaylist* This,BSTR pbstrName) {
    return This->lpVtbl->put_name(This,pbstrName);
}
static FORCEINLINE HRESULT IWMPPlaylist_get_attributeCount(IWMPPlaylist* This,LONG *plCount) {
    return This->lpVtbl->get_attributeCount(This,plCount);
}
static FORCEINLINE HRESULT IWMPPlaylist_get_attributeName(IWMPPlaylist* This,LONG lIndex,BSTR *pbstrAttributeName) {
    return This->lpVtbl->get_attributeName(This,lIndex,pbstrAttributeName);
}
static FORCEINLINE HRESULT IWMPPlaylist_get_Item(IWMPPlaylist* This,LONG lIndex,IWMPMedia **ppIWMPMedia) {
    return This->lpVtbl->get_Item(This,lIndex,ppIWMPMedia);
}
static FORCEINLINE HRESULT IWMPPlaylist_getItemInfo(IWMPPlaylist* This,BSTR bstrName,BSTR *pbstrVal) {
    return This->lpVtbl->getItemInfo(This,bstrName,pbstrVal);
}
static FORCEINLINE HRESULT IWMPPlaylist_setItemInfo(IWMPPlaylist* This,BSTR bstrName,BSTR bstrValue) {
    return This->lpVtbl->setItemInfo(This,bstrName,bstrValue);
}
static FORCEINLINE HRESULT IWMPPlaylist_get_isIdentical(IWMPPlaylist* This,IWMPPlaylist *pIWMPPlaylist,VARIANT_BOOL *pvbool) {
    return This->lpVtbl->get_isIdentical(This,pIWMPPlaylist,pvbool);
}
static FORCEINLINE HRESULT IWMPPlaylist_clear(IWMPPlaylist* This) {
    return This->lpVtbl->clear(This);
}
static FORCEINLINE HRESULT IWMPPlaylist_insertItem(IWMPPlaylist* This,LONG lIndex,IWMPMedia *pIWMPMedia) {
    return This->lpVtbl->insertItem(This,lIndex,pIWMPMedia);
}
static FORCEINLINE HRESULT IWMPPlaylist_appendItem(IWMPPlaylist* This,IWMPMedia *pIWMPMedia) {
    return This->lpVtbl->appendItem(This,pIWMPMedia);
}
static FORCEINLINE HRESULT IWMPPlaylist_removeItem(IWMPPlaylist* This,IWMPMedia *pIWMPMedia) {
    return This->lpVtbl->removeItem(This,pIWMPMedia);
}
static FORCEINLINE HRESULT IWMPPlaylist_moveItem(IWMPPlaylist* This,LONG lIndexOld,LONG lIndexNew) {
    return This->lpVtbl->moveItem(This,lIndexOld,lIndexNew);
}
#endif
#endif

#endif


#endif  /* __IWMPPlaylist_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPMedia interface
 */
#ifndef __IWMPMedia_INTERFACE_DEFINED__
#define __IWMPMedia_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPMedia, 0x94d55e95, 0x3fac, 0x11d3, 0xb1,0x55, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("94d55e95-3fac-11d3-b155-00c04f79faa6")
IWMPMedia : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_isIdentical(
        IWMPMedia *pIWMPMedia,
        VARIANT_BOOL *pvbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_sourceURL(
        BSTR *pbstrSourceURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_name(
        BSTR pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_imageSourceWidth(
        LONG *pWidth) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_imageSourceHeight(
        LONG *pHeight) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_markerCount(
        LONG *pMarkerCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE getMarkerTime(
        LONG MarkerNum,
        double *pMarkerTime) = 0;

    virtual HRESULT STDMETHODCALLTYPE getMarkerName(
        LONG MarkerNum,
        BSTR *pbstrMarkerName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_duration(
        double *pDuration) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_durationString(
        BSTR *pbstrDuration) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributeCount(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttributeName(
        LONG lIndex,
        BSTR *pbstrItemName) = 0;

    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
        BSTR bstrItemName,
        BSTR *pbstrVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE setItemInfo(
        BSTR bstrItemName,
        BSTR bstrVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE getItemInfoByAtom(
        LONG lAtom,
        BSTR *pbstrVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE isMemberOf(
        IWMPPlaylist *pPlaylist,
        VARIANT_BOOL *pvarfIsMemberOf) = 0;

    virtual HRESULT STDMETHODCALLTYPE isReadOnlyItem(
        BSTR bstrItemName,
        VARIANT_BOOL *pvarfIsReadOnly) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPMedia, 0x94d55e95, 0x3fac, 0x11d3, 0xb1,0x55, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
#endif
#else
typedef struct IWMPMediaVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPMedia *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPMedia *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPMedia *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPMedia *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPMedia *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPMedia *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPMedia *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPMedia methods ***/
    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
        IWMPMedia *This,
        IWMPMedia *pIWMPMedia,
        VARIANT_BOOL *pvbool);

    HRESULT (STDMETHODCALLTYPE *get_sourceURL)(
        IWMPMedia *This,
        BSTR *pbstrSourceURL);

    HRESULT (STDMETHODCALLTYPE *get_name)(
        IWMPMedia *This,
        BSTR *pbstrName);

    HRESULT (STDMETHODCALLTYPE *put_name)(
        IWMPMedia *This,
        BSTR pbstrName);

    HRESULT (STDMETHODCALLTYPE *get_imageSourceWidth)(
        IWMPMedia *This,
        LONG *pWidth);

    HRESULT (STDMETHODCALLTYPE *get_imageSourceHeight)(
        IWMPMedia *This,
        LONG *pHeight);

    HRESULT (STDMETHODCALLTYPE *get_markerCount)(
        IWMPMedia *This,
        LONG *pMarkerCount);

    HRESULT (STDMETHODCALLTYPE *getMarkerTime)(
        IWMPMedia *This,
        LONG MarkerNum,
        double *pMarkerTime);

    HRESULT (STDMETHODCALLTYPE *getMarkerName)(
        IWMPMedia *This,
        LONG MarkerNum,
        BSTR *pbstrMarkerName);

    HRESULT (STDMETHODCALLTYPE *get_duration)(
        IWMPMedia *This,
        double *pDuration);

    HRESULT (STDMETHODCALLTYPE *get_durationString)(
        IWMPMedia *This,
        BSTR *pbstrDuration);

    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
        IWMPMedia *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *getAttributeName)(
        IWMPMedia *This,
        LONG lIndex,
        BSTR *pbstrItemName);

    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
        IWMPMedia *This,
        BSTR bstrItemName,
        BSTR *pbstrVal);

    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
        IWMPMedia *This,
        BSTR bstrItemName,
        BSTR bstrVal);

    HRESULT (STDMETHODCALLTYPE *getItemInfoByAtom)(
        IWMPMedia *This,
        LONG lAtom,
        BSTR *pbstrVal);

    HRESULT (STDMETHODCALLTYPE *isMemberOf)(
        IWMPMedia *This,
        IWMPPlaylist *pPlaylist,
        VARIANT_BOOL *pvarfIsMemberOf);

    HRESULT (STDMETHODCALLTYPE *isReadOnlyItem)(
        IWMPMedia *This,
        BSTR bstrItemName,
        VARIANT_BOOL *pvarfIsReadOnly);

    END_INTERFACE
} IWMPMediaVtbl;

interface IWMPMedia {
    CONST_VTBL IWMPMediaVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPMedia_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPMedia_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPMedia_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPMedia_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPMedia_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPMedia methods ***/
#define IWMPMedia_get_isIdentical(This,pIWMPMedia,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool)
#define IWMPMedia_get_sourceURL(This,pbstrSourceURL) (This)->lpVtbl->get_sourceURL(This,pbstrSourceURL)
#define IWMPMedia_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
#define IWMPMedia_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
#define IWMPMedia_get_imageSourceWidth(This,pWidth) (This)->lpVtbl->get_imageSourceWidth(This,pWidth)
#define IWMPMedia_get_imageSourceHeight(This,pHeight) (This)->lpVtbl->get_imageSourceHeight(This,pHeight)
#define IWMPMedia_get_markerCount(This,pMarkerCount) (This)->lpVtbl->get_markerCount(This,pMarkerCount)
#define IWMPMedia_getMarkerTime(This,MarkerNum,pMarkerTime) (This)->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime)
#define IWMPMedia_getMarkerName(This,MarkerNum,pbstrMarkerName) (This)->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName)
#define IWMPMedia_get_duration(This,pDuration) (This)->lpVtbl->get_duration(This,pDuration)
#define IWMPMedia_get_durationString(This,pbstrDuration) (This)->lpVtbl->get_durationString(This,pbstrDuration)
#define IWMPMedia_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
#define IWMPMedia_getAttributeName(This,lIndex,pbstrItemName) (This)->lpVtbl->getAttributeName(This,lIndex,pbstrItemName)
#define IWMPMedia_getItemInfo(This,bstrItemName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal)
#define IWMPMedia_setItemInfo(This,bstrItemName,bstrVal) (This)->lpVtbl->setItemInfo(This,bstrItemName,bstrVal)
#define IWMPMedia_getItemInfoByAtom(This,lAtom,pbstrVal) (This)->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal)
#define IWMPMedia_isMemberOf(This,pPlaylist,pvarfIsMemberOf) (This)->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf)
#define IWMPMedia_isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly) (This)->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPMedia_QueryInterface(IWMPMedia* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPMedia_AddRef(IWMPMedia* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPMedia_Release(IWMPMedia* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPMedia_GetTypeInfoCount(IWMPMedia* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPMedia_GetTypeInfo(IWMPMedia* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPMedia_GetIDsOfNames(IWMPMedia* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPMedia_Invoke(IWMPMedia* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPMedia methods ***/
static FORCEINLINE HRESULT IWMPMedia_get_isIdentical(IWMPMedia* This,IWMPMedia *pIWMPMedia,VARIANT_BOOL *pvbool) {
    return This->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool);
}
static FORCEINLINE HRESULT IWMPMedia_get_sourceURL(IWMPMedia* This,BSTR *pbstrSourceURL) {
    return This->lpVtbl->get_sourceURL(This,pbstrSourceURL);
}
static FORCEINLINE HRESULT IWMPMedia_get_name(IWMPMedia* This,BSTR *pbstrName) {
    return This->lpVtbl->get_name(This,pbstrName);
}
static FORCEINLINE HRESULT IWMPMedia_put_name(IWMPMedia* This,BSTR pbstrName) {
    return This->lpVtbl->put_name(This,pbstrName);
}
static FORCEINLINE HRESULT IWMPMedia_get_imageSourceWidth(IWMPMedia* This,LONG *pWidth) {
    return This->lpVtbl->get_imageSourceWidth(This,pWidth);
}
static FORCEINLINE HRESULT IWMPMedia_get_imageSourceHeight(IWMPMedia* This,LONG *pHeight) {
    return This->lpVtbl->get_imageSourceHeight(This,pHeight);
}
static FORCEINLINE HRESULT IWMPMedia_get_markerCount(IWMPMedia* This,LONG *pMarkerCount) {
    return This->lpVtbl->get_markerCount(This,pMarkerCount);
}
static FORCEINLINE HRESULT IWMPMedia_getMarkerTime(IWMPMedia* This,LONG MarkerNum,double *pMarkerTime) {
    return This->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime);
}
static FORCEINLINE HRESULT IWMPMedia_getMarkerName(IWMPMedia* This,LONG MarkerNum,BSTR *pbstrMarkerName) {
    return This->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName);
}
static FORCEINLINE HRESULT IWMPMedia_get_duration(IWMPMedia* This,double *pDuration) {
    return This->lpVtbl->get_duration(This,pDuration);
}
static FORCEINLINE HRESULT IWMPMedia_get_durationString(IWMPMedia* This,BSTR *pbstrDuration) {
    return This->lpVtbl->get_durationString(This,pbstrDuration);
}
static FORCEINLINE HRESULT IWMPMedia_get_attributeCount(IWMPMedia* This,LONG *plCount) {
    return This->lpVtbl->get_attributeCount(This,plCount);
}
static FORCEINLINE HRESULT IWMPMedia_getAttributeName(IWMPMedia* This,LONG lIndex,BSTR *pbstrItemName) {
    return This->lpVtbl->getAttributeName(This,lIndex,pbstrItemName);
}
static FORCEINLINE HRESULT IWMPMedia_getItemInfo(IWMPMedia* This,BSTR bstrItemName,BSTR *pbstrVal) {
    return This->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal);
}
static FORCEINLINE HRESULT IWMPMedia_setItemInfo(IWMPMedia* This,BSTR bstrItemName,BSTR bstrVal) {
    return This->lpVtbl->setItemInfo(This,bstrItemName,bstrVal);
}
static FORCEINLINE HRESULT IWMPMedia_getItemInfoByAtom(IWMPMedia* This,LONG lAtom,BSTR *pbstrVal) {
    return This->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal);
}
static FORCEINLINE HRESULT IWMPMedia_isMemberOf(IWMPMedia* This,IWMPPlaylist *pPlaylist,VARIANT_BOOL *pvarfIsMemberOf) {
    return This->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf);
}
static FORCEINLINE HRESULT IWMPMedia_isReadOnlyItem(IWMPMedia* This,BSTR bstrItemName,VARIANT_BOOL *pvarfIsReadOnly) {
    return This->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly);
}
#endif
#endif

#endif


#endif  /* __IWMPMedia_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPControls interface
 */
#ifndef __IWMPControls_INTERFACE_DEFINED__
#define __IWMPControls_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPControls, 0x74c09e02, 0xf828, 0x11d2, 0xa7,0x4b, 0x00,0xa0,0xc9,0x05,0xf3,0x6e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("74c09e02-f828-11d2-a74b-00a0c905f36e")
IWMPControls : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable) = 0;

    virtual HRESULT STDMETHODCALLTYPE play(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE stop(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pause(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE fastForward(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE fastReverse(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_currentPosition(
        double *pdCurrentPosition) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_currentPosition(
        double pdCurrentPosition) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_currentPositionString(
        BSTR *pbstrCurrentPosition) = 0;

    virtual HRESULT STDMETHODCALLTYPE next(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE previous(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE currentItem(
        IWMPMedia **ppIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_currentItem(
        IWMPMedia *ppIWMPMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_currentMarker(
        LONG *plMarker) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_currentMarker(
        LONG plMarker) = 0;

    virtual HRESULT STDMETHODCALLTYPE playItem(
        IWMPMedia *pIWMPMedia) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPControls, 0x74c09e02, 0xf828, 0x11d2, 0xa7,0x4b, 0x00,0xa0,0xc9,0x05,0xf3,0x6e)
#endif
#else
typedef struct IWMPControlsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPControls *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPControls *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPControls *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPControls *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPControls *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPControls *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPControls *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPControls methods ***/
    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
        IWMPControls *This,
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable);

    HRESULT (STDMETHODCALLTYPE *play)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *stop)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *pause)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *fastForward)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *fastReverse)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *get_currentPosition)(
        IWMPControls *This,
        double *pdCurrentPosition);

    HRESULT (STDMETHODCALLTYPE *put_currentPosition)(
        IWMPControls *This,
        double pdCurrentPosition);

    HRESULT (STDMETHODCALLTYPE *get_currentPositionString)(
        IWMPControls *This,
        BSTR *pbstrCurrentPosition);

    HRESULT (STDMETHODCALLTYPE *next)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *previous)(
        IWMPControls *This);

    HRESULT (STDMETHODCALLTYPE *currentItem)(
        IWMPControls *This,
        IWMPMedia **ppIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *put_currentItem)(
        IWMPControls *This,
        IWMPMedia *ppIWMPMedia);

    HRESULT (STDMETHODCALLTYPE *get_currentMarker)(
        IWMPControls *This,
        LONG *plMarker);

    HRESULT (STDMETHODCALLTYPE *put_currentMarker)(
        IWMPControls *This,
        LONG plMarker);

    HRESULT (STDMETHODCALLTYPE *playItem)(
        IWMPControls *This,
        IWMPMedia *pIWMPMedia);

    END_INTERFACE
} IWMPControlsVtbl;

interface IWMPControls {
    CONST_VTBL IWMPControlsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPControls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPControls_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPControls_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPControls_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPControls_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPControls_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPControls_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPControls methods ***/
#define IWMPControls_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
#define IWMPControls_play(This) (This)->lpVtbl->play(This)
#define IWMPControls_stop(This) (This)->lpVtbl->stop(This)
#define IWMPControls_pause(This) (This)->lpVtbl->pause(This)
#define IWMPControls_fastForward(This) (This)->lpVtbl->fastForward(This)
#define IWMPControls_fastReverse(This) (This)->lpVtbl->fastReverse(This)
#define IWMPControls_get_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->get_currentPosition(This,pdCurrentPosition)
#define IWMPControls_put_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->put_currentPosition(This,pdCurrentPosition)
#define IWMPControls_get_currentPositionString(This,pbstrCurrentPosition) (This)->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition)
#define IWMPControls_next(This) (This)->lpVtbl->next(This)
#define IWMPControls_previous(This) (This)->lpVtbl->previous(This)
#define IWMPControls_currentItem(This,ppIWMPMedia) (This)->lpVtbl->currentItem(This,ppIWMPMedia)
#define IWMPControls_put_currentItem(This,ppIWMPMedia) (This)->lpVtbl->put_currentItem(This,ppIWMPMedia)
#define IWMPControls_get_currentMarker(This,plMarker) (This)->lpVtbl->get_currentMarker(This,plMarker)
#define IWMPControls_put_currentMarker(This,plMarker) (This)->lpVtbl->put_currentMarker(This,plMarker)
#define IWMPControls_playItem(This,pIWMPMedia) (This)->lpVtbl->playItem(This,pIWMPMedia)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPControls_QueryInterface(IWMPControls* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPControls_AddRef(IWMPControls* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPControls_Release(IWMPControls* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPControls_GetTypeInfoCount(IWMPControls* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPControls_GetTypeInfo(IWMPControls* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPControls_GetIDsOfNames(IWMPControls* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPControls_Invoke(IWMPControls* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPControls methods ***/
static FORCEINLINE HRESULT IWMPControls_get_isAvailable(IWMPControls* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
}
static FORCEINLINE HRESULT IWMPControls_play(IWMPControls* This) {
    return This->lpVtbl->play(This);
}
static FORCEINLINE HRESULT IWMPControls_stop(IWMPControls* This) {
    return This->lpVtbl->stop(This);
}
static FORCEINLINE HRESULT IWMPControls_pause(IWMPControls* This) {
    return This->lpVtbl->pause(This);
}
static FORCEINLINE HRESULT IWMPControls_fastForward(IWMPControls* This) {
    return This->lpVtbl->fastForward(This);
}
static FORCEINLINE HRESULT IWMPControls_fastReverse(IWMPControls* This) {
    return This->lpVtbl->fastReverse(This);
}
static FORCEINLINE HRESULT IWMPControls_get_currentPosition(IWMPControls* This,double *pdCurrentPosition) {
    return This->lpVtbl->get_currentPosition(This,pdCurrentPosition);
}
static FORCEINLINE HRESULT IWMPControls_put_currentPosition(IWMPControls* This,double pdCurrentPosition) {
    return This->lpVtbl->put_currentPosition(This,pdCurrentPosition);
}
static FORCEINLINE HRESULT IWMPControls_get_currentPositionString(IWMPControls* This,BSTR *pbstrCurrentPosition) {
    return This->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition);
}
static FORCEINLINE HRESULT IWMPControls_next(IWMPControls* This) {
    return This->lpVtbl->next(This);
}
static FORCEINLINE HRESULT IWMPControls_previous(IWMPControls* This) {
    return This->lpVtbl->previous(This);
}
static FORCEINLINE HRESULT IWMPControls_currentItem(IWMPControls* This,IWMPMedia **ppIWMPMedia) {
    return This->lpVtbl->currentItem(This,ppIWMPMedia);
}
static FORCEINLINE HRESULT IWMPControls_put_currentItem(IWMPControls* This,IWMPMedia *ppIWMPMedia) {
    return This->lpVtbl->put_currentItem(This,ppIWMPMedia);
}
static FORCEINLINE HRESULT IWMPControls_get_currentMarker(IWMPControls* This,LONG *plMarker) {
    return This->lpVtbl->get_currentMarker(This,plMarker);
}
static FORCEINLINE HRESULT IWMPControls_put_currentMarker(IWMPControls* This,LONG plMarker) {
    return This->lpVtbl->put_currentMarker(This,plMarker);
}
static FORCEINLINE HRESULT IWMPControls_playItem(IWMPControls* This,IWMPMedia *pIWMPMedia) {
    return This->lpVtbl->playItem(This,pIWMPMedia);
}
#endif
#endif

#endif


#endif  /* __IWMPControls_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPSettings interface
 */
#ifndef __IWMPSettings_INTERFACE_DEFINED__
#define __IWMPSettings_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPSettings, 0x9104d1ab, 0x80c9, 0x4fed, 0xab,0xf0, 0x2e,0x64,0x17,0xa6,0xdf,0x14);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9104d1ab-80c9-4fed-abf0-2e6417a6df14")
IWMPSettings : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_autoStart(
        VARIANT_BOOL *pfAutoStart) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_autoStart(
        VARIANT_BOOL pfAutoStart) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_baseURL(
        BSTR *pbstrBaseURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_baseURL(
        BSTR pbstrBaseURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_defaultFrame(
        BSTR *pbstrDefaultFrame) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_defaultFrame(
        BSTR pbstrDefaultFrame) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_invokeURLs(
        VARIANT_BOOL *pfInvokeURLs) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_invokeURLs(
        VARIANT_BOOL pfInvokeURLs) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_mute(
        VARIANT_BOOL *pfMute) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_mute(
        VARIANT_BOOL pfMute) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playCount(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_playCount(
        LONG plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_rate(
        double *pdRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_rate(
        double pdRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_balance(
        LONG *plBalance) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_balance(
        LONG plBalance) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_volume(
        LONG *plVolume) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_volume(
        LONG plVolume) = 0;

    virtual HRESULT STDMETHODCALLTYPE getMode(
        BSTR bstrMode,
        VARIANT_BOOL *pvarfMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE setMode(
        BSTR bstrMode,
        VARIANT_BOOL varfMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_enableErrorDialogs(
        VARIANT_BOOL *pfEnableErrorDialogs) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_enableErrorDialogs(
        VARIANT_BOOL pfEnableErrorDialogs) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPSettings, 0x9104d1ab, 0x80c9, 0x4fed, 0xab,0xf0, 0x2e,0x64,0x17,0xa6,0xdf,0x14)
#endif
#else
typedef struct IWMPSettingsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPSettings *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPSettings *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPSettings *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPSettings *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPSettings *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPSettings *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPSettings *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPSettings methods ***/
    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
        IWMPSettings *This,
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable);

    HRESULT (STDMETHODCALLTYPE *get_autoStart)(
        IWMPSettings *This,
        VARIANT_BOOL *pfAutoStart);

    HRESULT (STDMETHODCALLTYPE *put_autoStart)(
        IWMPSettings *This,
        VARIANT_BOOL pfAutoStart);

    HRESULT (STDMETHODCALLTYPE *get_baseURL)(
        IWMPSettings *This,
        BSTR *pbstrBaseURL);

    HRESULT (STDMETHODCALLTYPE *put_baseURL)(
        IWMPSettings *This,
        BSTR pbstrBaseURL);

    HRESULT (STDMETHODCALLTYPE *get_defaultFrame)(
        IWMPSettings *This,
        BSTR *pbstrDefaultFrame);

    HRESULT (STDMETHODCALLTYPE *put_defaultFrame)(
        IWMPSettings *This,
        BSTR pbstrDefaultFrame);

    HRESULT (STDMETHODCALLTYPE *get_invokeURLs)(
        IWMPSettings *This,
        VARIANT_BOOL *pfInvokeURLs);

    HRESULT (STDMETHODCALLTYPE *put_invokeURLs)(
        IWMPSettings *This,
        VARIANT_BOOL pfInvokeURLs);

    HRESULT (STDMETHODCALLTYPE *get_mute)(
        IWMPSettings *This,
        VARIANT_BOOL *pfMute);

    HRESULT (STDMETHODCALLTYPE *put_mute)(
        IWMPSettings *This,
        VARIANT_BOOL pfMute);

    HRESULT (STDMETHODCALLTYPE *get_playCount)(
        IWMPSettings *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *put_playCount)(
        IWMPSettings *This,
        LONG plCount);

    HRESULT (STDMETHODCALLTYPE *get_rate)(
        IWMPSettings *This,
        double *pdRate);

    HRESULT (STDMETHODCALLTYPE *put_rate)(
        IWMPSettings *This,
        double pdRate);

    HRESULT (STDMETHODCALLTYPE *get_balance)(
        IWMPSettings *This,
        LONG *plBalance);

    HRESULT (STDMETHODCALLTYPE *put_balance)(
        IWMPSettings *This,
        LONG plBalance);

    HRESULT (STDMETHODCALLTYPE *get_volume)(
        IWMPSettings *This,
        LONG *plVolume);

    HRESULT (STDMETHODCALLTYPE *put_volume)(
        IWMPSettings *This,
        LONG plVolume);

    HRESULT (STDMETHODCALLTYPE *getMode)(
        IWMPSettings *This,
        BSTR bstrMode,
        VARIANT_BOOL *pvarfMode);

    HRESULT (STDMETHODCALLTYPE *setMode)(
        IWMPSettings *This,
        BSTR bstrMode,
        VARIANT_BOOL varfMode);

    HRESULT (STDMETHODCALLTYPE *get_enableErrorDialogs)(
        IWMPSettings *This,
        VARIANT_BOOL *pfEnableErrorDialogs);

    HRESULT (STDMETHODCALLTYPE *put_enableErrorDialogs)(
        IWMPSettings *This,
        VARIANT_BOOL pfEnableErrorDialogs);

    END_INTERFACE
} IWMPSettingsVtbl;

interface IWMPSettings {
    CONST_VTBL IWMPSettingsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPSettings_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPSettings methods ***/
#define IWMPSettings_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
#define IWMPSettings_get_autoStart(This,pfAutoStart) (This)->lpVtbl->get_autoStart(This,pfAutoStart)
#define IWMPSettings_put_autoStart(This,pfAutoStart) (This)->lpVtbl->put_autoStart(This,pfAutoStart)
#define IWMPSettings_get_baseURL(This,pbstrBaseURL) (This)->lpVtbl->get_baseURL(This,pbstrBaseURL)
#define IWMPSettings_put_baseURL(This,pbstrBaseURL) (This)->lpVtbl->put_baseURL(This,pbstrBaseURL)
#define IWMPSettings_get_defaultFrame(This,pbstrDefaultFrame) (This)->lpVtbl->get_defaultFrame(This,pbstrDefaultFrame)
#define IWMPSettings_put_defaultFrame(This,pbstrDefaultFrame) (This)->lpVtbl->put_defaultFrame(This,pbstrDefaultFrame)
#define IWMPSettings_get_invokeURLs(This,pfInvokeURLs) (This)->lpVtbl->get_invokeURLs(This,pfInvokeURLs)
#define IWMPSettings_put_invokeURLs(This,pfInvokeURLs) (This)->lpVtbl->put_invokeURLs(This,pfInvokeURLs)
#define IWMPSettings_get_mute(This,pfMute) (This)->lpVtbl->get_mute(This,pfMute)
#define IWMPSettings_put_mute(This,pfMute) (This)->lpVtbl->put_mute(This,pfMute)
#define IWMPSettings_get_playCount(This,plCount) (This)->lpVtbl->get_playCount(This,plCount)
#define IWMPSettings_put_playCount(This,plCount) (This)->lpVtbl->put_playCount(This,plCount)
#define IWMPSettings_get_rate(This,pdRate) (This)->lpVtbl->get_rate(This,pdRate)
#define IWMPSettings_put_rate(This,pdRate) (This)->lpVtbl->put_rate(This,pdRate)
#define IWMPSettings_get_balance(This,plBalance) (This)->lpVtbl->get_balance(This,plBalance)
#define IWMPSettings_put_balance(This,plBalance) (This)->lpVtbl->put_balance(This,plBalance)
#define IWMPSettings_get_volume(This,plVolume) (This)->lpVtbl->get_volume(This,plVolume)
#define IWMPSettings_put_volume(This,plVolume) (This)->lpVtbl->put_volume(This,plVolume)
#define IWMPSettings_getMode(This,bstrMode,pvarfMode) (This)->lpVtbl->getMode(This,bstrMode,pvarfMode)
#define IWMPSettings_setMode(This,bstrMode,varfMode) (This)->lpVtbl->setMode(This,bstrMode,varfMode)
#define IWMPSettings_get_enableErrorDialogs(This,pfEnableErrorDialogs) (This)->lpVtbl->get_enableErrorDialogs(This,pfEnableErrorDialogs)
#define IWMPSettings_put_enableErrorDialogs(This,pfEnableErrorDialogs) (This)->lpVtbl->put_enableErrorDialogs(This,pfEnableErrorDialogs)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPSettings_QueryInterface(IWMPSettings* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPSettings_AddRef(IWMPSettings* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPSettings_Release(IWMPSettings* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPSettings_GetTypeInfoCount(IWMPSettings* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPSettings_GetTypeInfo(IWMPSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPSettings_GetIDsOfNames(IWMPSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPSettings_Invoke(IWMPSettings* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPSettings methods ***/
static FORCEINLINE HRESULT IWMPSettings_get_isAvailable(IWMPSettings* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
}
static FORCEINLINE HRESULT IWMPSettings_get_autoStart(IWMPSettings* This,VARIANT_BOOL *pfAutoStart) {
    return This->lpVtbl->get_autoStart(This,pfAutoStart);
}
static FORCEINLINE HRESULT IWMPSettings_put_autoStart(IWMPSettings* This,VARIANT_BOOL pfAutoStart) {
    return This->lpVtbl->put_autoStart(This,pfAutoStart);
}
static FORCEINLINE HRESULT IWMPSettings_get_baseURL(IWMPSettings* This,BSTR *pbstrBaseURL) {
    return This->lpVtbl->get_baseURL(This,pbstrBaseURL);
}
static FORCEINLINE HRESULT IWMPSettings_put_baseURL(IWMPSettings* This,BSTR pbstrBaseURL) {
    return This->lpVtbl->put_baseURL(This,pbstrBaseURL);
}
static FORCEINLINE HRESULT IWMPSettings_get_defaultFrame(IWMPSettings* This,BSTR *pbstrDefaultFrame) {
    return This->lpVtbl->get_defaultFrame(This,pbstrDefaultFrame);
}
static FORCEINLINE HRESULT IWMPSettings_put_defaultFrame(IWMPSettings* This,BSTR pbstrDefaultFrame) {
    return This->lpVtbl->put_defaultFrame(This,pbstrDefaultFrame);
}
static FORCEINLINE HRESULT IWMPSettings_get_invokeURLs(IWMPSettings* This,VARIANT_BOOL *pfInvokeURLs) {
    return This->lpVtbl->get_invokeURLs(This,pfInvokeURLs);
}
static FORCEINLINE HRESULT IWMPSettings_put_invokeURLs(IWMPSettings* This,VARIANT_BOOL pfInvokeURLs) {
    return This->lpVtbl->put_invokeURLs(This,pfInvokeURLs);
}
static FORCEINLINE HRESULT IWMPSettings_get_mute(IWMPSettings* This,VARIANT_BOOL *pfMute) {
    return This->lpVtbl->get_mute(This,pfMute);
}
static FORCEINLINE HRESULT IWMPSettings_put_mute(IWMPSettings* This,VARIANT_BOOL pfMute) {
    return This->lpVtbl->put_mute(This,pfMute);
}
static FORCEINLINE HRESULT IWMPSettings_get_playCount(IWMPSettings* This,LONG *plCount) {
    return This->lpVtbl->get_playCount(This,plCount);
}
static FORCEINLINE HRESULT IWMPSettings_put_playCount(IWMPSettings* This,LONG plCount) {
    return This->lpVtbl->put_playCount(This,plCount);
}
static FORCEINLINE HRESULT IWMPSettings_get_rate(IWMPSettings* This,double *pdRate) {
    return This->lpVtbl->get_rate(This,pdRate);
}
static FORCEINLINE HRESULT IWMPSettings_put_rate(IWMPSettings* This,double pdRate) {
    return This->lpVtbl->put_rate(This,pdRate);
}
static FORCEINLINE HRESULT IWMPSettings_get_balance(IWMPSettings* This,LONG *plBalance) {
    return This->lpVtbl->get_balance(This,plBalance);
}
static FORCEINLINE HRESULT IWMPSettings_put_balance(IWMPSettings* This,LONG plBalance) {
    return This->lpVtbl->put_balance(This,plBalance);
}
static FORCEINLINE HRESULT IWMPSettings_get_volume(IWMPSettings* This,LONG *plVolume) {
    return This->lpVtbl->get_volume(This,plVolume);
}
static FORCEINLINE HRESULT IWMPSettings_put_volume(IWMPSettings* This,LONG plVolume) {
    return This->lpVtbl->put_volume(This,plVolume);
}
static FORCEINLINE HRESULT IWMPSettings_getMode(IWMPSettings* This,BSTR bstrMode,VARIANT_BOOL *pvarfMode) {
    return This->lpVtbl->getMode(This,bstrMode,pvarfMode);
}
static FORCEINLINE HRESULT IWMPSettings_setMode(IWMPSettings* This,BSTR bstrMode,VARIANT_BOOL varfMode) {
    return This->lpVtbl->setMode(This,bstrMode,varfMode);
}
static FORCEINLINE HRESULT IWMPSettings_get_enableErrorDialogs(IWMPSettings* This,VARIANT_BOOL *pfEnableErrorDialogs) {
    return This->lpVtbl->get_enableErrorDialogs(This,pfEnableErrorDialogs);
}
static FORCEINLINE HRESULT IWMPSettings_put_enableErrorDialogs(IWMPSettings* This,VARIANT_BOOL pfEnableErrorDialogs) {
    return This->lpVtbl->put_enableErrorDialogs(This,pfEnableErrorDialogs);
}
#endif
#endif

#endif


#endif  /* __IWMPSettings_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPStringCollection interface
 */
#ifndef __IWMPStringCollection_INTERFACE_DEFINED__
#define __IWMPStringCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPStringCollection, 0x4a976298, 0x8c0d, 0x11d3, 0xb3,0x89, 0x00,0xc0,0x4f,0x68,0x57,0x4b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4a976298-8c0d-11d3-b389-00c04f68574b")
IWMPStringCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_count(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        LONG lIndex,
        BSTR *pbstrString) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPStringCollection, 0x4a976298, 0x8c0d, 0x11d3, 0xb3,0x89, 0x00,0xc0,0x4f,0x68,0x57,0x4b)
#endif
#else
typedef struct IWMPStringCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPStringCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPStringCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPStringCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPStringCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPStringCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPStringCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPStringCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPStringCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_count)(
        IWMPStringCollection *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *Item)(
        IWMPStringCollection *This,
        LONG lIndex,
        BSTR *pbstrString);

    END_INTERFACE
} IWMPStringCollectionVtbl;

interface IWMPStringCollection {
    CONST_VTBL IWMPStringCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPStringCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPStringCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPStringCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPStringCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPStringCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPStringCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPStringCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPStringCollection methods ***/
#define IWMPStringCollection_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
#define IWMPStringCollection_Item(This,lIndex,pbstrString) (This)->lpVtbl->Item(This,lIndex,pbstrString)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPStringCollection_QueryInterface(IWMPStringCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPStringCollection_AddRef(IWMPStringCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPStringCollection_Release(IWMPStringCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPStringCollection_GetTypeInfoCount(IWMPStringCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPStringCollection_GetTypeInfo(IWMPStringCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPStringCollection_GetIDsOfNames(IWMPStringCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPStringCollection_Invoke(IWMPStringCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPStringCollection methods ***/
static FORCEINLINE HRESULT IWMPStringCollection_get_count(IWMPStringCollection* This,LONG *plCount) {
    return This->lpVtbl->get_count(This,plCount);
}
static FORCEINLINE HRESULT IWMPStringCollection_Item(IWMPStringCollection* This,LONG lIndex,BSTR *pbstrString) {
    return This->lpVtbl->Item(This,lIndex,pbstrString);
}
#endif
#endif

#endif


#endif  /* __IWMPStringCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPMediaCollection interface
 */
#ifndef __IWMPMediaCollection_INTERFACE_DEFINED__
#define __IWMPMediaCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPMediaCollection, 0x8363bc22, 0xb4b4, 0x4b19, 0x98,0x9d, 0x1c,0xd7,0x65,0x74,0x9d,0xd1);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8363bc22-b4b4-4b19-989d-1cd765749dd1")
IWMPMediaCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE add(
        BSTR bstrURL,
        IWMPMedia **ppItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAll(
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByName(
        BSTR bstrName,
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByGenre(
        BSTR bstrGenre,
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByAuthor(
        BSTR bstrAuthor,
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByAlbum(
        BSTR bstrAlbum,
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByAttribute(
        BSTR bstrAttribute,
        BSTR bstrValue,
        IWMPPlaylist **ppMediaItems) = 0;

    virtual HRESULT STDMETHODCALLTYPE remove(
        IWMPMedia *pItem,
        VARIANT_BOOL varfDeleteFile) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttributeStringCollection(
        BSTR bstrAttribute,
        BSTR bstrMediaType,
        IWMPStringCollection **ppStringCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE getMediaAtom(
        BSTR bstrItemName,
        LONG *plAtom) = 0;

    virtual HRESULT STDMETHODCALLTYPE setDeleted(
        IWMPMedia *pItem,
        VARIANT_BOOL varfIsDeleted) = 0;

    virtual HRESULT STDMETHODCALLTYPE isDeleted(
        IWMPMedia *pItem,
        VARIANT_BOOL *pvarfIsDeleted) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPMediaCollection, 0x8363bc22, 0xb4b4, 0x4b19, 0x98,0x9d, 0x1c,0xd7,0x65,0x74,0x9d,0xd1)
#endif
#else
typedef struct IWMPMediaCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPMediaCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPMediaCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPMediaCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPMediaCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPMediaCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPMediaCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPMediaCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPMediaCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *add)(
        IWMPMediaCollection *This,
        BSTR bstrURL,
        IWMPMedia **ppItem);

    HRESULT (STDMETHODCALLTYPE *getAll)(
        IWMPMediaCollection *This,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *getByName)(
        IWMPMediaCollection *This,
        BSTR bstrName,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *getByGenre)(
        IWMPMediaCollection *This,
        BSTR bstrGenre,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *getByAuthor)(
        IWMPMediaCollection *This,
        BSTR bstrAuthor,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *getByAlbum)(
        IWMPMediaCollection *This,
        BSTR bstrAlbum,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *getByAttribute)(
        IWMPMediaCollection *This,
        BSTR bstrAttribute,
        BSTR bstrValue,
        IWMPPlaylist **ppMediaItems);

    HRESULT (STDMETHODCALLTYPE *remove)(
        IWMPMediaCollection *This,
        IWMPMedia *pItem,
        VARIANT_BOOL varfDeleteFile);

    HRESULT (STDMETHODCALLTYPE *getAttributeStringCollection)(
        IWMPMediaCollection *This,
        BSTR bstrAttribute,
        BSTR bstrMediaType,
        IWMPStringCollection **ppStringCollection);

    HRESULT (STDMETHODCALLTYPE *getMediaAtom)(
        IWMPMediaCollection *This,
        BSTR bstrItemName,
        LONG *plAtom);

    HRESULT (STDMETHODCALLTYPE *setDeleted)(
        IWMPMediaCollection *This,
        IWMPMedia *pItem,
        VARIANT_BOOL varfIsDeleted);

    HRESULT (STDMETHODCALLTYPE *isDeleted)(
        IWMPMediaCollection *This,
        IWMPMedia *pItem,
        VARIANT_BOOL *pvarfIsDeleted);

    END_INTERFACE
} IWMPMediaCollectionVtbl;

interface IWMPMediaCollection {
    CONST_VTBL IWMPMediaCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPMediaCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPMediaCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPMediaCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPMediaCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPMediaCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPMediaCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPMediaCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPMediaCollection methods ***/
#define IWMPMediaCollection_add(This,bstrURL,ppItem) (This)->lpVtbl->add(This,bstrURL,ppItem)
#define IWMPMediaCollection_getAll(This,ppMediaItems) (This)->lpVtbl->getAll(This,ppMediaItems)
#define IWMPMediaCollection_getByName(This,bstrName,ppMediaItems) (This)->lpVtbl->getByName(This,bstrName,ppMediaItems)
#define IWMPMediaCollection_getByGenre(This,bstrGenre,ppMediaItems) (This)->lpVtbl->getByGenre(This,bstrGenre,ppMediaItems)
#define IWMPMediaCollection_getByAuthor(This,bstrAuthor,ppMediaItems) (This)->lpVtbl->getByAuthor(This,bstrAuthor,ppMediaItems)
#define IWMPMediaCollection_getByAlbum(This,bstrAlbum,ppMediaItems) (This)->lpVtbl->getByAlbum(This,bstrAlbum,ppMediaItems)
#define IWMPMediaCollection_getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems) (This)->lpVtbl->getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems)
#define IWMPMediaCollection_remove(This,pItem,varfDeleteFile) (This)->lpVtbl->remove(This,pItem,varfDeleteFile)
#define IWMPMediaCollection_getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection) (This)->lpVtbl->getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection)
#define IWMPMediaCollection_getMediaAtom(This,bstrItemName,plAtom) (This)->lpVtbl->getMediaAtom(This,bstrItemName,plAtom)
#define IWMPMediaCollection_setDeleted(This,pItem,varfIsDeleted) (This)->lpVtbl->setDeleted(This,pItem,varfIsDeleted)
#define IWMPMediaCollection_isDeleted(This,pItem,pvarfIsDeleted) (This)->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPMediaCollection_QueryInterface(IWMPMediaCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPMediaCollection_AddRef(IWMPMediaCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPMediaCollection_Release(IWMPMediaCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPMediaCollection_GetTypeInfoCount(IWMPMediaCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPMediaCollection_GetTypeInfo(IWMPMediaCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPMediaCollection_GetIDsOfNames(IWMPMediaCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPMediaCollection_Invoke(IWMPMediaCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPMediaCollection methods ***/
static FORCEINLINE HRESULT IWMPMediaCollection_add(IWMPMediaCollection* This,BSTR bstrURL,IWMPMedia **ppItem) {
    return This->lpVtbl->add(This,bstrURL,ppItem);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getAll(IWMPMediaCollection* This,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getAll(This,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getByName(IWMPMediaCollection* This,BSTR bstrName,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getByName(This,bstrName,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getByGenre(IWMPMediaCollection* This,BSTR bstrGenre,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getByGenre(This,bstrGenre,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getByAuthor(IWMPMediaCollection* This,BSTR bstrAuthor,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getByAuthor(This,bstrAuthor,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getByAlbum(IWMPMediaCollection* This,BSTR bstrAlbum,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getByAlbum(This,bstrAlbum,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getByAttribute(IWMPMediaCollection* This,BSTR bstrAttribute,BSTR bstrValue,IWMPPlaylist **ppMediaItems) {
    return This->lpVtbl->getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems);
}
static FORCEINLINE HRESULT IWMPMediaCollection_remove(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL varfDeleteFile) {
    return This->lpVtbl->remove(This,pItem,varfDeleteFile);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getAttributeStringCollection(IWMPMediaCollection* This,BSTR bstrAttribute,BSTR bstrMediaType,IWMPStringCollection **ppStringCollection) {
    return This->lpVtbl->getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection);
}
static FORCEINLINE HRESULT IWMPMediaCollection_getMediaAtom(IWMPMediaCollection* This,BSTR bstrItemName,LONG *plAtom) {
    return This->lpVtbl->getMediaAtom(This,bstrItemName,plAtom);
}
static FORCEINLINE HRESULT IWMPMediaCollection_setDeleted(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL varfIsDeleted) {
    return This->lpVtbl->setDeleted(This,pItem,varfIsDeleted);
}
static FORCEINLINE HRESULT IWMPMediaCollection_isDeleted(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL *pvarfIsDeleted) {
    return This->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted);
}
#endif
#endif

#endif


#endif  /* __IWMPMediaCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPPlaylistArray interface
 */
#ifndef __IWMPPlaylistArray_INTERFACE_DEFINED__
#define __IWMPPlaylistArray_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPPlaylistArray, 0x679409c0, 0x99f7, 0x11d3, 0x9f,0xb7, 0x00,0x10,0x5a,0xa6,0x20,0xbb);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("679409c0-99f7-11d3-9fb7-00105aa620bb")
IWMPPlaylistArray : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_count(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        LONG lIndex,
        IWMPPlaylist **ppItem) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPPlaylistArray, 0x679409c0, 0x99f7, 0x11d3, 0x9f,0xb7, 0x00,0x10,0x5a,0xa6,0x20,0xbb)
#endif
#else
typedef struct IWMPPlaylistArrayVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPPlaylistArray *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPPlaylistArray *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPPlaylistArray *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPPlaylistArray *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPPlaylistArray *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPPlaylistArray *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPPlaylistArray *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPPlaylistArray methods ***/
    HRESULT (STDMETHODCALLTYPE *get_count)(
        IWMPPlaylistArray *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *Item)(
        IWMPPlaylistArray *This,
        LONG lIndex,
        IWMPPlaylist **ppItem);

    END_INTERFACE
} IWMPPlaylistArrayVtbl;

interface IWMPPlaylistArray {
    CONST_VTBL IWMPPlaylistArrayVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPPlaylistArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPPlaylistArray_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPPlaylistArray_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPPlaylistArray_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPPlaylistArray_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPPlaylistArray_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPPlaylistArray_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPPlaylistArray methods ***/
#define IWMPPlaylistArray_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
#define IWMPPlaylistArray_Item(This,lIndex,ppItem) (This)->lpVtbl->Item(This,lIndex,ppItem)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPPlaylistArray_QueryInterface(IWMPPlaylistArray* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPPlaylistArray_AddRef(IWMPPlaylistArray* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPPlaylistArray_Release(IWMPPlaylistArray* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPPlaylistArray_GetTypeInfoCount(IWMPPlaylistArray* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPPlaylistArray_GetTypeInfo(IWMPPlaylistArray* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPPlaylistArray_GetIDsOfNames(IWMPPlaylistArray* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPPlaylistArray_Invoke(IWMPPlaylistArray* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPPlaylistArray methods ***/
static FORCEINLINE HRESULT IWMPPlaylistArray_get_count(IWMPPlaylistArray* This,LONG *plCount) {
    return This->lpVtbl->get_count(This,plCount);
}
static FORCEINLINE HRESULT IWMPPlaylistArray_Item(IWMPPlaylistArray* This,LONG lIndex,IWMPPlaylist **ppItem) {
    return This->lpVtbl->Item(This,lIndex,ppItem);
}
#endif
#endif

#endif


#endif  /* __IWMPPlaylistArray_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPPlaylistCollection interface
 */
#ifndef __IWMPPlaylistCollection_INTERFACE_DEFINED__
#define __IWMPPlaylistCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPPlaylistCollection, 0x10a13217, 0x23a7, 0x439b, 0xb1,0xc0, 0xd8,0x47,0xc7,0x9b,0x77,0x74);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("10a13217-23a7-439b-b1c0-d847c79b7774")
IWMPPlaylistCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE newPlaylist(
        BSTR bstrName,
        IWMPPlaylist **ppItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAll(
        IWMPPlaylistArray **ppPlaylistArray) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByName(
        BSTR bstrName,
        IWMPPlaylistArray **ppPlaylistArray) = 0;

    virtual HRESULT STDMETHODCALLTYPE remove(
        IWMPPlaylist *pItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE setDeleted(
        IWMPPlaylist *pItem,
        VARIANT_BOOL varfIsDeleted) = 0;

    virtual HRESULT STDMETHODCALLTYPE isDeleted(
        IWMPPlaylist *pItem,
        VARIANT_BOOL *pvarfIsDeleted) = 0;

    virtual HRESULT STDMETHODCALLTYPE importPlaylist(
        IWMPPlaylist *pItem,
        IWMPPlaylist **ppImportedItem) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPPlaylistCollection, 0x10a13217, 0x23a7, 0x439b, 0xb1,0xc0, 0xd8,0x47,0xc7,0x9b,0x77,0x74)
#endif
#else
typedef struct IWMPPlaylistCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPPlaylistCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPPlaylistCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPPlaylistCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPPlaylistCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPPlaylistCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPPlaylistCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPPlaylistCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPPlaylistCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
        IWMPPlaylistCollection *This,
        BSTR bstrName,
        IWMPPlaylist **ppItem);

    HRESULT (STDMETHODCALLTYPE *getAll)(
        IWMPPlaylistCollection *This,
        IWMPPlaylistArray **ppPlaylistArray);

    HRESULT (STDMETHODCALLTYPE *getByName)(
        IWMPPlaylistCollection *This,
        BSTR bstrName,
        IWMPPlaylistArray **ppPlaylistArray);

    HRESULT (STDMETHODCALLTYPE *remove)(
        IWMPPlaylistCollection *This,
        IWMPPlaylist *pItem);

    HRESULT (STDMETHODCALLTYPE *setDeleted)(
        IWMPPlaylistCollection *This,
        IWMPPlaylist *pItem,
        VARIANT_BOOL varfIsDeleted);

    HRESULT (STDMETHODCALLTYPE *isDeleted)(
        IWMPPlaylistCollection *This,
        IWMPPlaylist *pItem,
        VARIANT_BOOL *pvarfIsDeleted);

    HRESULT (STDMETHODCALLTYPE *importPlaylist)(
        IWMPPlaylistCollection *This,
        IWMPPlaylist *pItem,
        IWMPPlaylist **ppImportedItem);

    END_INTERFACE
} IWMPPlaylistCollectionVtbl;

interface IWMPPlaylistCollection {
    CONST_VTBL IWMPPlaylistCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPPlaylistCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPPlaylistCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPPlaylistCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPPlaylistCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPPlaylistCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPPlaylistCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPPlaylistCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPPlaylistCollection methods ***/
#define IWMPPlaylistCollection_newPlaylist(This,bstrName,ppItem) (This)->lpVtbl->newPlaylist(This,bstrName,ppItem)
#define IWMPPlaylistCollection_getAll(This,ppPlaylistArray) (This)->lpVtbl->getAll(This,ppPlaylistArray)
#define IWMPPlaylistCollection_getByName(This,bstrName,ppPlaylistArray) (This)->lpVtbl->getByName(This,bstrName,ppPlaylistArray)
#define IWMPPlaylistCollection_remove(This,pItem) (This)->lpVtbl->remove(This,pItem)
#define IWMPPlaylistCollection_setDeleted(This,pItem,varfIsDeleted) (This)->lpVtbl->setDeleted(This,pItem,varfIsDeleted)
#define IWMPPlaylistCollection_isDeleted(This,pItem,pvarfIsDeleted) (This)->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted)
#define IWMPPlaylistCollection_importPlaylist(This,pItem,ppImportedItem) (This)->lpVtbl->importPlaylist(This,pItem,ppImportedItem)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPPlaylistCollection_QueryInterface(IWMPPlaylistCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPPlaylistCollection_AddRef(IWMPPlaylistCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPPlaylistCollection_Release(IWMPPlaylistCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPPlaylistCollection_GetTypeInfoCount(IWMPPlaylistCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_GetTypeInfo(IWMPPlaylistCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_GetIDsOfNames(IWMPPlaylistCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_Invoke(IWMPPlaylistCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPPlaylistCollection methods ***/
static FORCEINLINE HRESULT IWMPPlaylistCollection_newPlaylist(IWMPPlaylistCollection* This,BSTR bstrName,IWMPPlaylist **ppItem) {
    return This->lpVtbl->newPlaylist(This,bstrName,ppItem);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_getAll(IWMPPlaylistCollection* This,IWMPPlaylistArray **ppPlaylistArray) {
    return This->lpVtbl->getAll(This,ppPlaylistArray);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_getByName(IWMPPlaylistCollection* This,BSTR bstrName,IWMPPlaylistArray **ppPlaylistArray) {
    return This->lpVtbl->getByName(This,bstrName,ppPlaylistArray);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_remove(IWMPPlaylistCollection* This,IWMPPlaylist *pItem) {
    return This->lpVtbl->remove(This,pItem);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_setDeleted(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,VARIANT_BOOL varfIsDeleted) {
    return This->lpVtbl->setDeleted(This,pItem,varfIsDeleted);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_isDeleted(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,VARIANT_BOOL *pvarfIsDeleted) {
    return This->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted);
}
static FORCEINLINE HRESULT IWMPPlaylistCollection_importPlaylist(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,IWMPPlaylist **ppImportedItem) {
    return This->lpVtbl->importPlaylist(This,pItem,ppImportedItem);
}
#endif
#endif

#endif


#endif  /* __IWMPPlaylistCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPNetwork interface
 */
#ifndef __IWMPNetwork_INTERFACE_DEFINED__
#define __IWMPNetwork_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPNetwork, 0xec21b779, 0xedef, 0x462d, 0xbb,0xa4, 0xad,0x9d,0xde,0x2b,0x29,0xa7);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ec21b779-edef-462d-bba4-ad9dde2b29a7")
IWMPNetwork : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_bandWidth(
        LONG *plBandwidth) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_recoveredPackets(
        LONG *plRecoveredPackets) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_sourceProtocol(
        BSTR *pbstrSourceProtocol) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_receivedPackets(
        LONG *plReceivedPackets) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_lostPackets(
        LONG *plLostPackets) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_receptionQuality(
        LONG *plReceptionQuality) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_bufferingCount(
        LONG *plBufferingCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_bufferingProgress(
        LONG *plBufferingProgress) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_bufferingTime(
        LONG *plBufferingTime) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_bufferingTime(
        LONG plBufferingTime) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_frameRate(
        LONG *plFrameRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxBitRate(
        LONG *plBitRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_bitRate(
        LONG *plBitRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProxySettings(
        BSTR bstrProtocol,
        LONG *plProxySetting) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxySettings(
        BSTR bstrProtocol,
        LONG lProxySetting) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProxyName(
        BSTR bstrProtocol,
        BSTR *pbstrProxyName) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxyName(
        BSTR bstrProtocol,
        BSTR bstrProxyName) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProxyPort(
        BSTR bstrProtocol,
        LONG *lProxyPort) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxyPort(
        BSTR bstrProtocol,
        LONG lProxyPort) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProxyExceptionList(
        BSTR bstrProtocol,
        BSTR *pbstrExceptionList) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxyExceptionList(
        BSTR bstrProtocol,
        BSTR pbstrExceptionList) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProxyBypassForLocal(
        BSTR bstrProtocol,
        VARIANT_BOOL *pfBypassForLocal) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxyBypassForLocal(
        BSTR bstrProtocol,
        VARIANT_BOOL fBypassForLocal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxBandwidth(
        LONG *lMaxBandwidth) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_maxBandwidth(
        LONG lMaxBandwidth) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_downloadProgress(
        LONG *plDownloadProgress) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_encodedFrameRate(
        LONG *plFrameRate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_framesSkipped(
        LONG *plFrames) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPNetwork, 0xec21b779, 0xedef, 0x462d, 0xbb,0xa4, 0xad,0x9d,0xde,0x2b,0x29,0xa7)
#endif
#else
typedef struct IWMPNetworkVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPNetwork *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPNetwork *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPNetwork *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPNetwork *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPNetwork *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPNetwork *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPNetwork *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPNetwork methods ***/
    HRESULT (STDMETHODCALLTYPE *get_bandWidth)(
        IWMPNetwork *This,
        LONG *plBandwidth);

    HRESULT (STDMETHODCALLTYPE *get_recoveredPackets)(
        IWMPNetwork *This,
        LONG *plRecoveredPackets);

    HRESULT (STDMETHODCALLTYPE *get_sourceProtocol)(
        IWMPNetwork *This,
        BSTR *pbstrSourceProtocol);

    HRESULT (STDMETHODCALLTYPE *get_receivedPackets)(
        IWMPNetwork *This,
        LONG *plReceivedPackets);

    HRESULT (STDMETHODCALLTYPE *get_lostPackets)(
        IWMPNetwork *This,
        LONG *plLostPackets);

    HRESULT (STDMETHODCALLTYPE *get_receptionQuality)(
        IWMPNetwork *This,
        LONG *plReceptionQuality);

    HRESULT (STDMETHODCALLTYPE *get_bufferingCount)(
        IWMPNetwork *This,
        LONG *plBufferingCount);

    HRESULT (STDMETHODCALLTYPE *get_bufferingProgress)(
        IWMPNetwork *This,
        LONG *plBufferingProgress);

    HRESULT (STDMETHODCALLTYPE *get_bufferingTime)(
        IWMPNetwork *This,
        LONG *plBufferingTime);

    HRESULT (STDMETHODCALLTYPE *put_bufferingTime)(
        IWMPNetwork *This,
        LONG plBufferingTime);

    HRESULT (STDMETHODCALLTYPE *get_frameRate)(
        IWMPNetwork *This,
        LONG *plFrameRate);

    HRESULT (STDMETHODCALLTYPE *get_maxBitRate)(
        IWMPNetwork *This,
        LONG *plBitRate);

    HRESULT (STDMETHODCALLTYPE *get_bitRate)(
        IWMPNetwork *This,
        LONG *plBitRate);

    HRESULT (STDMETHODCALLTYPE *getProxySettings)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        LONG *plProxySetting);

    HRESULT (STDMETHODCALLTYPE *setProxySettings)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        LONG lProxySetting);

    HRESULT (STDMETHODCALLTYPE *getProxyName)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        BSTR *pbstrProxyName);

    HRESULT (STDMETHODCALLTYPE *setProxyName)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        BSTR bstrProxyName);

    HRESULT (STDMETHODCALLTYPE *getProxyPort)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        LONG *lProxyPort);

    HRESULT (STDMETHODCALLTYPE *setProxyPort)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        LONG lProxyPort);

    HRESULT (STDMETHODCALLTYPE *getProxyExceptionList)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        BSTR *pbstrExceptionList);

    HRESULT (STDMETHODCALLTYPE *setProxyExceptionList)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        BSTR pbstrExceptionList);

    HRESULT (STDMETHODCALLTYPE *getProxyBypassForLocal)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        VARIANT_BOOL *pfBypassForLocal);

    HRESULT (STDMETHODCALLTYPE *setProxyBypassForLocal)(
        IWMPNetwork *This,
        BSTR bstrProtocol,
        VARIANT_BOOL fBypassForLocal);

    HRESULT (STDMETHODCALLTYPE *get_maxBandwidth)(
        IWMPNetwork *This,
        LONG *lMaxBandwidth);

    HRESULT (STDMETHODCALLTYPE *put_maxBandwidth)(
        IWMPNetwork *This,
        LONG lMaxBandwidth);

    HRESULT (STDMETHODCALLTYPE *get_downloadProgress)(
        IWMPNetwork *This,
        LONG *plDownloadProgress);

    HRESULT (STDMETHODCALLTYPE *get_encodedFrameRate)(
        IWMPNetwork *This,
        LONG *plFrameRate);

    HRESULT (STDMETHODCALLTYPE *get_framesSkipped)(
        IWMPNetwork *This,
        LONG *plFrames);

    END_INTERFACE
} IWMPNetworkVtbl;

interface IWMPNetwork {
    CONST_VTBL IWMPNetworkVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPNetwork_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPNetwork_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPNetwork_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPNetwork_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPNetwork_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPNetwork_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPNetwork_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPNetwork methods ***/
#define IWMPNetwork_get_bandWidth(This,plBandwidth) (This)->lpVtbl->get_bandWidth(This,plBandwidth)
#define IWMPNetwork_get_recoveredPackets(This,plRecoveredPackets) (This)->lpVtbl->get_recoveredPackets(This,plRecoveredPackets)
#define IWMPNetwork_get_sourceProtocol(This,pbstrSourceProtocol) (This)->lpVtbl->get_sourceProtocol(This,pbstrSourceProtocol)
#define IWMPNetwork_get_receivedPackets(This,plReceivedPackets) (This)->lpVtbl->get_receivedPackets(This,plReceivedPackets)
#define IWMPNetwork_get_lostPackets(This,plLostPackets) (This)->lpVtbl->get_lostPackets(This,plLostPackets)
#define IWMPNetwork_get_receptionQuality(This,plReceptionQuality) (This)->lpVtbl->get_receptionQuality(This,plReceptionQuality)
#define IWMPNetwork_get_bufferingCount(This,plBufferingCount) (This)->lpVtbl->get_bufferingCount(This,plBufferingCount)
#define IWMPNetwork_get_bufferingProgress(This,plBufferingProgress) (This)->lpVtbl->get_bufferingProgress(This,plBufferingProgress)
#define IWMPNetwork_get_bufferingTime(This,plBufferingTime) (This)->lpVtbl->get_bufferingTime(This,plBufferingTime)
#define IWMPNetwork_put_bufferingTime(This,plBufferingTime) (This)->lpVtbl->put_bufferingTime(This,plBufferingTime)
#define IWMPNetwork_get_frameRate(This,plFrameRate) (This)->lpVtbl->get_frameRate(This,plFrameRate)
#define IWMPNetwork_get_maxBitRate(This,plBitRate) (This)->lpVtbl->get_maxBitRate(This,plBitRate)
#define IWMPNetwork_get_bitRate(This,plBitRate) (This)->lpVtbl->get_bitRate(This,plBitRate)
#define IWMPNetwork_getProxySettings(This,bstrProtocol,plProxySetting) (This)->lpVtbl->getProxySettings(This,bstrProtocol,plProxySetting)
#define IWMPNetwork_setProxySettings(This,bstrProtocol,lProxySetting) (This)->lpVtbl->setProxySettings(This,bstrProtocol,lProxySetting)
#define IWMPNetwork_getProxyName(This,bstrProtocol,pbstrProxyName) (This)->lpVtbl->getProxyName(This,bstrProtocol,pbstrProxyName)
#define IWMPNetwork_setProxyName(This,bstrProtocol,bstrProxyName) (This)->lpVtbl->setProxyName(This,bstrProtocol,bstrProxyName)
#define IWMPNetwork_getProxyPort(This,bstrProtocol,lProxyPort) (This)->lpVtbl->getProxyPort(This,bstrProtocol,lProxyPort)
#define IWMPNetwork_setProxyPort(This,bstrProtocol,lProxyPort) (This)->lpVtbl->setProxyPort(This,bstrProtocol,lProxyPort)
#define IWMPNetwork_getProxyExceptionList(This,bstrProtocol,pbstrExceptionList) (This)->lpVtbl->getProxyExceptionList(This,bstrProtocol,pbstrExceptionList)
#define IWMPNetwork_setProxyExceptionList(This,bstrProtocol,pbstrExceptionList) (This)->lpVtbl->setProxyExceptionList(This,bstrProtocol,pbstrExceptionList)
#define IWMPNetwork_getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal) (This)->lpVtbl->getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal)
#define IWMPNetwork_setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal) (This)->lpVtbl->setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal)
#define IWMPNetwork_get_maxBandwidth(This,lMaxBandwidth) (This)->lpVtbl->get_maxBandwidth(This,lMaxBandwidth)
#define IWMPNetwork_put_maxBandwidth(This,lMaxBandwidth) (This)->lpVtbl->put_maxBandwidth(This,lMaxBandwidth)
#define IWMPNetwork_get_downloadProgress(This,plDownloadProgress) (This)->lpVtbl->get_downloadProgress(This,plDownloadProgress)
#define IWMPNetwork_get_encodedFrameRate(This,plFrameRate) (This)->lpVtbl->get_encodedFrameRate(This,plFrameRate)
#define IWMPNetwork_get_framesSkipped(This,plFrames) (This)->lpVtbl->get_framesSkipped(This,plFrames)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPNetwork_QueryInterface(IWMPNetwork* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPNetwork_AddRef(IWMPNetwork* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPNetwork_Release(IWMPNetwork* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPNetwork_GetTypeInfoCount(IWMPNetwork* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPNetwork_GetTypeInfo(IWMPNetwork* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPNetwork_GetIDsOfNames(IWMPNetwork* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPNetwork_Invoke(IWMPNetwork* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPNetwork methods ***/
static FORCEINLINE HRESULT IWMPNetwork_get_bandWidth(IWMPNetwork* This,LONG *plBandwidth) {
    return This->lpVtbl->get_bandWidth(This,plBandwidth);
}
static FORCEINLINE HRESULT IWMPNetwork_get_recoveredPackets(IWMPNetwork* This,LONG *plRecoveredPackets) {
    return This->lpVtbl->get_recoveredPackets(This,plRecoveredPackets);
}
static FORCEINLINE HRESULT IWMPNetwork_get_sourceProtocol(IWMPNetwork* This,BSTR *pbstrSourceProtocol) {
    return This->lpVtbl->get_sourceProtocol(This,pbstrSourceProtocol);
}
static FORCEINLINE HRESULT IWMPNetwork_get_receivedPackets(IWMPNetwork* This,LONG *plReceivedPackets) {
    return This->lpVtbl->get_receivedPackets(This,plReceivedPackets);
}
static FORCEINLINE HRESULT IWMPNetwork_get_lostPackets(IWMPNetwork* This,LONG *plLostPackets) {
    return This->lpVtbl->get_lostPackets(This,plLostPackets);
}
static FORCEINLINE HRESULT IWMPNetwork_get_receptionQuality(IWMPNetwork* This,LONG *plReceptionQuality) {
    return This->lpVtbl->get_receptionQuality(This,plReceptionQuality);
}
static FORCEINLINE HRESULT IWMPNetwork_get_bufferingCount(IWMPNetwork* This,LONG *plBufferingCount) {
    return This->lpVtbl->get_bufferingCount(This,plBufferingCount);
}
static FORCEINLINE HRESULT IWMPNetwork_get_bufferingProgress(IWMPNetwork* This,LONG *plBufferingProgress) {
    return This->lpVtbl->get_bufferingProgress(This,plBufferingProgress);
}
static FORCEINLINE HRESULT IWMPNetwork_get_bufferingTime(IWMPNetwork* This,LONG *plBufferingTime) {
    return This->lpVtbl->get_bufferingTime(This,plBufferingTime);
}
static FORCEINLINE HRESULT IWMPNetwork_put_bufferingTime(IWMPNetwork* This,LONG plBufferingTime) {
    return This->lpVtbl->put_bufferingTime(This,plBufferingTime);
}
static FORCEINLINE HRESULT IWMPNetwork_get_frameRate(IWMPNetwork* This,LONG *plFrameRate) {
    return This->lpVtbl->get_frameRate(This,plFrameRate);
}
static FORCEINLINE HRESULT IWMPNetwork_get_maxBitRate(IWMPNetwork* This,LONG *plBitRate) {
    return This->lpVtbl->get_maxBitRate(This,plBitRate);
}
static FORCEINLINE HRESULT IWMPNetwork_get_bitRate(IWMPNetwork* This,LONG *plBitRate) {
    return This->lpVtbl->get_bitRate(This,plBitRate);
}
static FORCEINLINE HRESULT IWMPNetwork_getProxySettings(IWMPNetwork* This,BSTR bstrProtocol,LONG *plProxySetting) {
    return This->lpVtbl->getProxySettings(This,bstrProtocol,plProxySetting);
}
static FORCEINLINE HRESULT IWMPNetwork_setProxySettings(IWMPNetwork* This,BSTR bstrProtocol,LONG lProxySetting) {
    return This->lpVtbl->setProxySettings(This,bstrProtocol,lProxySetting);
}
static FORCEINLINE HRESULT IWMPNetwork_getProxyName(IWMPNetwork* This,BSTR bstrProtocol,BSTR *pbstrProxyName) {
    return This->lpVtbl->getProxyName(This,bstrProtocol,pbstrProxyName);
}
static FORCEINLINE HRESULT IWMPNetwork_setProxyName(IWMPNetwork* This,BSTR bstrProtocol,BSTR bstrProxyName) {
    return This->lpVtbl->setProxyName(This,bstrProtocol,bstrProxyName);
}
static FORCEINLINE HRESULT IWMPNetwork_getProxyPort(IWMPNetwork* This,BSTR bstrProtocol,LONG *lProxyPort) {
    return This->lpVtbl->getProxyPort(This,bstrProtocol,lProxyPort);
}
static FORCEINLINE HRESULT IWMPNetwork_setProxyPort(IWMPNetwork* This,BSTR bstrProtocol,LONG lProxyPort) {
    return This->lpVtbl->setProxyPort(This,bstrProtocol,lProxyPort);
}
static FORCEINLINE HRESULT IWMPNetwork_getProxyExceptionList(IWMPNetwork* This,BSTR bstrProtocol,BSTR *pbstrExceptionList) {
    return This->lpVtbl->getProxyExceptionList(This,bstrProtocol,pbstrExceptionList);
}
static FORCEINLINE HRESULT IWMPNetwork_setProxyExceptionList(IWMPNetwork* This,BSTR bstrProtocol,BSTR pbstrExceptionList) {
    return This->lpVtbl->setProxyExceptionList(This,bstrProtocol,pbstrExceptionList);
}
static FORCEINLINE HRESULT IWMPNetwork_getProxyBypassForLocal(IWMPNetwork* This,BSTR bstrProtocol,VARIANT_BOOL *pfBypassForLocal) {
    return This->lpVtbl->getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal);
}
static FORCEINLINE HRESULT IWMPNetwork_setProxyBypassForLocal(IWMPNetwork* This,BSTR bstrProtocol,VARIANT_BOOL fBypassForLocal) {
    return This->lpVtbl->setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal);
}
static FORCEINLINE HRESULT IWMPNetwork_get_maxBandwidth(IWMPNetwork* This,LONG *lMaxBandwidth) {
    return This->lpVtbl->get_maxBandwidth(This,lMaxBandwidth);
}
static FORCEINLINE HRESULT IWMPNetwork_put_maxBandwidth(IWMPNetwork* This,LONG lMaxBandwidth) {
    return This->lpVtbl->put_maxBandwidth(This,lMaxBandwidth);
}
static FORCEINLINE HRESULT IWMPNetwork_get_downloadProgress(IWMPNetwork* This,LONG *plDownloadProgress) {
    return This->lpVtbl->get_downloadProgress(This,plDownloadProgress);
}
static FORCEINLINE HRESULT IWMPNetwork_get_encodedFrameRate(IWMPNetwork* This,LONG *plFrameRate) {
    return This->lpVtbl->get_encodedFrameRate(This,plFrameRate);
}
static FORCEINLINE HRESULT IWMPNetwork_get_framesSkipped(IWMPNetwork* This,LONG *plFrames) {
    return This->lpVtbl->get_framesSkipped(This,plFrames);
}
#endif
#endif

#endif


#endif  /* __IWMPNetwork_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPCdrom interface
 */
#ifndef __IWMPCdrom_INTERFACE_DEFINED__
#define __IWMPCdrom_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPCdrom, 0xcfab6e98, 0x8730, 0x11d3, 0xb3,0x88, 0x00,0xc0,0x4f,0x68,0x57,0x4b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("cfab6e98-8730-11d3-b388-00c04f68574b")
IWMPCdrom : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_driveSpecifier(
        BSTR *pbstrDrive) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Playlist(
        IWMPPlaylist **ppPlaylist) = 0;

    virtual HRESULT STDMETHODCALLTYPE eject(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPCdrom, 0xcfab6e98, 0x8730, 0x11d3, 0xb3,0x88, 0x00,0xc0,0x4f,0x68,0x57,0x4b)
#endif
#else
typedef struct IWMPCdromVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPCdrom *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPCdrom *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPCdrom *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPCdrom *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPCdrom *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPCdrom *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPCdrom *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCdrom methods ***/
    HRESULT (STDMETHODCALLTYPE *get_driveSpecifier)(
        IWMPCdrom *This,
        BSTR *pbstrDrive);

    HRESULT (STDMETHODCALLTYPE *get_Playlist)(
        IWMPCdrom *This,
        IWMPPlaylist **ppPlaylist);

    HRESULT (STDMETHODCALLTYPE *eject)(
        IWMPCdrom *This);

    END_INTERFACE
} IWMPCdromVtbl;

interface IWMPCdrom {
    CONST_VTBL IWMPCdromVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPCdrom_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPCdrom_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPCdrom_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPCdrom_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPCdrom_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPCdrom_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPCdrom_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCdrom methods ***/
#define IWMPCdrom_get_driveSpecifier(This,pbstrDrive) (This)->lpVtbl->get_driveSpecifier(This,pbstrDrive)
#define IWMPCdrom_get_Playlist(This,ppPlaylist) (This)->lpVtbl->get_Playlist(This,ppPlaylist)
#define IWMPCdrom_eject(This) (This)->lpVtbl->eject(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPCdrom_QueryInterface(IWMPCdrom* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPCdrom_AddRef(IWMPCdrom* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPCdrom_Release(IWMPCdrom* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPCdrom_GetTypeInfoCount(IWMPCdrom* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPCdrom_GetTypeInfo(IWMPCdrom* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPCdrom_GetIDsOfNames(IWMPCdrom* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPCdrom_Invoke(IWMPCdrom* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCdrom methods ***/
static FORCEINLINE HRESULT IWMPCdrom_get_driveSpecifier(IWMPCdrom* This,BSTR *pbstrDrive) {
    return This->lpVtbl->get_driveSpecifier(This,pbstrDrive);
}
static FORCEINLINE HRESULT IWMPCdrom_get_Playlist(IWMPCdrom* This,IWMPPlaylist **ppPlaylist) {
    return This->lpVtbl->get_Playlist(This,ppPlaylist);
}
static FORCEINLINE HRESULT IWMPCdrom_eject(IWMPCdrom* This) {
    return This->lpVtbl->eject(This);
}
#endif
#endif

#endif


#endif  /* __IWMPCdrom_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPCdromCollection interface
 */
#ifndef __IWMPCdromCollection_INTERFACE_DEFINED__
#define __IWMPCdromCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPCdromCollection, 0xee4c8fe2, 0x34b2, 0x11d3, 0xa3,0xbf, 0x00,0x60,0x97,0xc9,0xb3,0x44);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ee4c8fe2-34b2-11d3-a3bf-006097c9b344")
IWMPCdromCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_count(
        LONG *plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        LONG lIndex,
        IWMPCdrom **ppItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE getByDriveSpecifier(
        BSTR bstrDriveSpecifier,
        IWMPCdrom **ppCdrom) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPCdromCollection, 0xee4c8fe2, 0x34b2, 0x11d3, 0xa3,0xbf, 0x00,0x60,0x97,0xc9,0xb3,0x44)
#endif
#else
typedef struct IWMPCdromCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPCdromCollection *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPCdromCollection *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPCdromCollection *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPCdromCollection *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPCdromCollection *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPCdromCollection *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPCdromCollection *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCdromCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_count)(
        IWMPCdromCollection *This,
        LONG *plCount);

    HRESULT (STDMETHODCALLTYPE *Item)(
        IWMPCdromCollection *This,
        LONG lIndex,
        IWMPCdrom **ppItem);

    HRESULT (STDMETHODCALLTYPE *getByDriveSpecifier)(
        IWMPCdromCollection *This,
        BSTR bstrDriveSpecifier,
        IWMPCdrom **ppCdrom);

    END_INTERFACE
} IWMPCdromCollectionVtbl;

interface IWMPCdromCollection {
    CONST_VTBL IWMPCdromCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPCdromCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPCdromCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPCdromCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPCdromCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPCdromCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPCdromCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPCdromCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCdromCollection methods ***/
#define IWMPCdromCollection_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
#define IWMPCdromCollection_Item(This,lIndex,ppItem) (This)->lpVtbl->Item(This,lIndex,ppItem)
#define IWMPCdromCollection_getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom) (This)->lpVtbl->getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPCdromCollection_QueryInterface(IWMPCdromCollection* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPCdromCollection_AddRef(IWMPCdromCollection* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPCdromCollection_Release(IWMPCdromCollection* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPCdromCollection_GetTypeInfoCount(IWMPCdromCollection* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPCdromCollection_GetTypeInfo(IWMPCdromCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPCdromCollection_GetIDsOfNames(IWMPCdromCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPCdromCollection_Invoke(IWMPCdromCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCdromCollection methods ***/
static FORCEINLINE HRESULT IWMPCdromCollection_get_count(IWMPCdromCollection* This,LONG *plCount) {
    return This->lpVtbl->get_count(This,plCount);
}
static FORCEINLINE HRESULT IWMPCdromCollection_Item(IWMPCdromCollection* This,LONG lIndex,IWMPCdrom **ppItem) {
    return This->lpVtbl->Item(This,lIndex,ppItem);
}
static FORCEINLINE HRESULT IWMPCdromCollection_getByDriveSpecifier(IWMPCdromCollection* This,BSTR bstrDriveSpecifier,IWMPCdrom **ppCdrom) {
    return This->lpVtbl->getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom);
}
#endif
#endif

#endif


#endif  /* __IWMPCdromCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPDVD interface
 */
#ifndef __IWMPDVD_INTERFACE_DEFINED__
#define __IWMPDVD_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPDVD, 0x8da61686, 0x4668, 0x4a5c, 0xae,0x5d, 0x80,0x31,0x93,0x29,0x3d,0xbe);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8da61686-4668-4a5c-ae5d-803193293dbe")
IWMPDVD : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_domain(
        BSTR *strDomain) = 0;

    virtual HRESULT STDMETHODCALLTYPE topMenu(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE titleMenu(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE back(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE resume(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPDVD, 0x8da61686, 0x4668, 0x4a5c, 0xae,0x5d, 0x80,0x31,0x93,0x29,0x3d,0xbe)
#endif
#else
typedef struct IWMPDVDVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPDVD *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPDVD *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPDVD *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPDVD *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPDVD *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPDVD *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPDVD *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPDVD methods ***/
    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
        IWMPDVD *This,
        BSTR bstrItem,
        VARIANT_BOOL *pIsAvailable);

    HRESULT (STDMETHODCALLTYPE *get_domain)(
        IWMPDVD *This,
        BSTR *strDomain);

    HRESULT (STDMETHODCALLTYPE *topMenu)(
        IWMPDVD *This);

    HRESULT (STDMETHODCALLTYPE *titleMenu)(
        IWMPDVD *This);

    HRESULT (STDMETHODCALLTYPE *back)(
        IWMPDVD *This);

    HRESULT (STDMETHODCALLTYPE *resume)(
        IWMPDVD *This);

    END_INTERFACE
} IWMPDVDVtbl;

interface IWMPDVD {
    CONST_VTBL IWMPDVDVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPDVD_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPDVD_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPDVD_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPDVD_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPDVD_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPDVD_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPDVD_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPDVD methods ***/
#define IWMPDVD_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
#define IWMPDVD_get_domain(This,strDomain) (This)->lpVtbl->get_domain(This,strDomain)
#define IWMPDVD_topMenu(This) (This)->lpVtbl->topMenu(This)
#define IWMPDVD_titleMenu(This) (This)->lpVtbl->titleMenu(This)
#define IWMPDVD_back(This) (This)->lpVtbl->back(This)
#define IWMPDVD_resume(This) (This)->lpVtbl->resume(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPDVD_QueryInterface(IWMPDVD* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPDVD_AddRef(IWMPDVD* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPDVD_Release(IWMPDVD* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPDVD_GetTypeInfoCount(IWMPDVD* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPDVD_GetTypeInfo(IWMPDVD* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPDVD_GetIDsOfNames(IWMPDVD* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPDVD_Invoke(IWMPDVD* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPDVD methods ***/
static FORCEINLINE HRESULT IWMPDVD_get_isAvailable(IWMPDVD* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
}
static FORCEINLINE HRESULT IWMPDVD_get_domain(IWMPDVD* This,BSTR *strDomain) {
    return This->lpVtbl->get_domain(This,strDomain);
}
static FORCEINLINE HRESULT IWMPDVD_topMenu(IWMPDVD* This) {
    return This->lpVtbl->topMenu(This);
}
static FORCEINLINE HRESULT IWMPDVD_titleMenu(IWMPDVD* This) {
    return This->lpVtbl->titleMenu(This);
}
static FORCEINLINE HRESULT IWMPDVD_back(IWMPDVD* This) {
    return This->lpVtbl->back(This);
}
static FORCEINLINE HRESULT IWMPDVD_resume(IWMPDVD* This) {
    return This->lpVtbl->resume(This);
}
#endif
#endif

#endif


#endif  /* __IWMPDVD_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPClosedCaption interface
 */
#ifndef __IWMPClosedCaption_INTERFACE_DEFINED__
#define __IWMPClosedCaption_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPClosedCaption, 0x4f2df574, 0xc588, 0x11d3, 0x9e,0xd0, 0x00,0xc0,0x4f,0xb6,0xe9,0x37);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4f2df574-c588-11d3-9ed0-00c04fb6e937")
IWMPClosedCaption : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_SAMIStyle(
        BSTR *pbstrSAMIStyle) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_SAMIStyle(
        BSTR pbstrSAMIStyle) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SAMILang(
        BSTR *pbstrSAMILang) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_SAMILang(
        BSTR pbstrSAMILang) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SAMIFileName(
        BSTR *pbstrSAMIFileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_SAMIFileName(
        BSTR pbstrSAMIFileName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_captioningId(
        BSTR *pbstrCaptioningID) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_captioningId(
        BSTR pbstrCaptioningID) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPClosedCaption, 0x4f2df574, 0xc588, 0x11d3, 0x9e,0xd0, 0x00,0xc0,0x4f,0xb6,0xe9,0x37)
#endif
#else
typedef struct IWMPClosedCaptionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPClosedCaption *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPClosedCaption *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPClosedCaption *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPClosedCaption *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPClosedCaption *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPClosedCaption *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPClosedCaption *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPClosedCaption methods ***/
    HRESULT (STDMETHODCALLTYPE *get_SAMIStyle)(
        IWMPClosedCaption *This,
        BSTR *pbstrSAMIStyle);

    HRESULT (STDMETHODCALLTYPE *put_SAMIStyle)(
        IWMPClosedCaption *This,
        BSTR pbstrSAMIStyle);

    HRESULT (STDMETHODCALLTYPE *get_SAMILang)(
        IWMPClosedCaption *This,
        BSTR *pbstrSAMILang);

    HRESULT (STDMETHODCALLTYPE *put_SAMILang)(
        IWMPClosedCaption *This,
        BSTR pbstrSAMILang);

    HRESULT (STDMETHODCALLTYPE *get_SAMIFileName)(
        IWMPClosedCaption *This,
        BSTR *pbstrSAMIFileName);

    HRESULT (STDMETHODCALLTYPE *put_SAMIFileName)(
        IWMPClosedCaption *This,
        BSTR pbstrSAMIFileName);

    HRESULT (STDMETHODCALLTYPE *get_captioningId)(
        IWMPClosedCaption *This,
        BSTR *pbstrCaptioningID);

    HRESULT (STDMETHODCALLTYPE *put_captioningId)(
        IWMPClosedCaption *This,
        BSTR pbstrCaptioningID);

    END_INTERFACE
} IWMPClosedCaptionVtbl;

interface IWMPClosedCaption {
    CONST_VTBL IWMPClosedCaptionVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPClosedCaption_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPClosedCaption_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPClosedCaption_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPClosedCaption_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPClosedCaption_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPClosedCaption_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPClosedCaption_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPClosedCaption methods ***/
#define IWMPClosedCaption_get_SAMIStyle(This,pbstrSAMIStyle) (This)->lpVtbl->get_SAMIStyle(This,pbstrSAMIStyle)
#define IWMPClosedCaption_put_SAMIStyle(This,pbstrSAMIStyle) (This)->lpVtbl->put_SAMIStyle(This,pbstrSAMIStyle)
#define IWMPClosedCaption_get_SAMILang(This,pbstrSAMILang) (This)->lpVtbl->get_SAMILang(This,pbstrSAMILang)
#define IWMPClosedCaption_put_SAMILang(This,pbstrSAMILang) (This)->lpVtbl->put_SAMILang(This,pbstrSAMILang)
#define IWMPClosedCaption_get_SAMIFileName(This,pbstrSAMIFileName) (This)->lpVtbl->get_SAMIFileName(This,pbstrSAMIFileName)
#define IWMPClosedCaption_put_SAMIFileName(This,pbstrSAMIFileName) (This)->lpVtbl->put_SAMIFileName(This,pbstrSAMIFileName)
#define IWMPClosedCaption_get_captioningId(This,pbstrCaptioningID) (This)->lpVtbl->get_captioningId(This,pbstrCaptioningID)
#define IWMPClosedCaption_put_captioningId(This,pbstrCaptioningID) (This)->lpVtbl->put_captioningId(This,pbstrCaptioningID)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPClosedCaption_QueryInterface(IWMPClosedCaption* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPClosedCaption_AddRef(IWMPClosedCaption* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPClosedCaption_Release(IWMPClosedCaption* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPClosedCaption_GetTypeInfoCount(IWMPClosedCaption* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPClosedCaption_GetTypeInfo(IWMPClosedCaption* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPClosedCaption_GetIDsOfNames(IWMPClosedCaption* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPClosedCaption_Invoke(IWMPClosedCaption* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPClosedCaption methods ***/
static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMIStyle(IWMPClosedCaption* This,BSTR *pbstrSAMIStyle) {
    return This->lpVtbl->get_SAMIStyle(This,pbstrSAMIStyle);
}
static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMIStyle(IWMPClosedCaption* This,BSTR pbstrSAMIStyle) {
    return This->lpVtbl->put_SAMIStyle(This,pbstrSAMIStyle);
}
static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMILang(IWMPClosedCaption* This,BSTR *pbstrSAMILang) {
    return This->lpVtbl->get_SAMILang(This,pbstrSAMILang);
}
static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMILang(IWMPClosedCaption* This,BSTR pbstrSAMILang) {
    return This->lpVtbl->put_SAMILang(This,pbstrSAMILang);
}
static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMIFileName(IWMPClosedCaption* This,BSTR *pbstrSAMIFileName) {
    return This->lpVtbl->get_SAMIFileName(This,pbstrSAMIFileName);
}
static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMIFileName(IWMPClosedCaption* This,BSTR pbstrSAMIFileName) {
    return This->lpVtbl->put_SAMIFileName(This,pbstrSAMIFileName);
}
static FORCEINLINE HRESULT IWMPClosedCaption_get_captioningId(IWMPClosedCaption* This,BSTR *pbstrCaptioningID) {
    return This->lpVtbl->get_captioningId(This,pbstrCaptioningID);
}
static FORCEINLINE HRESULT IWMPClosedCaption_put_captioningId(IWMPClosedCaption* This,BSTR pbstrCaptioningID) {
    return This->lpVtbl->put_captioningId(This,pbstrCaptioningID);
}
#endif
#endif

#endif


#endif  /* __IWMPClosedCaption_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPErrorItem interface
 */
#ifndef __IWMPErrorItem_INTERFACE_DEFINED__
#define __IWMPErrorItem_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPErrorItem, 0x3614c646, 0x3b3b, 0x4de7, 0xa8,0x1e, 0x93,0x0e,0x3f,0x21,0x27,0xb3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3614c646-3b3b-4de7-a81e-930e3f2127b3")
IWMPErrorItem : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_errorCode(
        LONG *phr) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorDescription(
        BSTR *pbstrDescription) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorContext(
        VARIANT *pvarContext) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_remedy(
        LONG *plRemedy) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_customUrl(
        BSTR *pbstrCustomUrl) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPErrorItem, 0x3614c646, 0x3b3b, 0x4de7, 0xa8,0x1e, 0x93,0x0e,0x3f,0x21,0x27,0xb3)
#endif
#else
typedef struct IWMPErrorItemVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPErrorItem *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPErrorItem *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPErrorItem *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPErrorItem *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPErrorItem *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPErrorItem *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPErrorItem *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPErrorItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_errorCode)(
        IWMPErrorItem *This,
        LONG *phr);

    HRESULT (STDMETHODCALLTYPE *get_errorDescription)(
        IWMPErrorItem *This,
        BSTR *pbstrDescription);

    HRESULT (STDMETHODCALLTYPE *get_errorContext)(
        IWMPErrorItem *This,
        VARIANT *pvarContext);

    HRESULT (STDMETHODCALLTYPE *get_remedy)(
        IWMPErrorItem *This,
        LONG *plRemedy);

    HRESULT (STDMETHODCALLTYPE *get_customUrl)(
        IWMPErrorItem *This,
        BSTR *pbstrCustomUrl);

    END_INTERFACE
} IWMPErrorItemVtbl;

interface IWMPErrorItem {
    CONST_VTBL IWMPErrorItemVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPErrorItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPErrorItem_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPErrorItem_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPErrorItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPErrorItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPErrorItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPErrorItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPErrorItem methods ***/
#define IWMPErrorItem_get_errorCode(This,phr) (This)->lpVtbl->get_errorCode(This,phr)
#define IWMPErrorItem_get_errorDescription(This,pbstrDescription) (This)->lpVtbl->get_errorDescription(This,pbstrDescription)
#define IWMPErrorItem_get_errorContext(This,pvarContext) (This)->lpVtbl->get_errorContext(This,pvarContext)
#define IWMPErrorItem_get_remedy(This,plRemedy) (This)->lpVtbl->get_remedy(This,plRemedy)
#define IWMPErrorItem_get_customUrl(This,pbstrCustomUrl) (This)->lpVtbl->get_customUrl(This,pbstrCustomUrl)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPErrorItem_QueryInterface(IWMPErrorItem* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPErrorItem_AddRef(IWMPErrorItem* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPErrorItem_Release(IWMPErrorItem* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPErrorItem_GetTypeInfoCount(IWMPErrorItem* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPErrorItem_GetTypeInfo(IWMPErrorItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPErrorItem_GetIDsOfNames(IWMPErrorItem* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPErrorItem_Invoke(IWMPErrorItem* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPErrorItem methods ***/
static FORCEINLINE HRESULT IWMPErrorItem_get_errorCode(IWMPErrorItem* This,LONG *phr) {
    return This->lpVtbl->get_errorCode(This,phr);
}
static FORCEINLINE HRESULT IWMPErrorItem_get_errorDescription(IWMPErrorItem* This,BSTR *pbstrDescription) {
    return This->lpVtbl->get_errorDescription(This,pbstrDescription);
}
static FORCEINLINE HRESULT IWMPErrorItem_get_errorContext(IWMPErrorItem* This,VARIANT *pvarContext) {
    return This->lpVtbl->get_errorContext(This,pvarContext);
}
static FORCEINLINE HRESULT IWMPErrorItem_get_remedy(IWMPErrorItem* This,LONG *plRemedy) {
    return This->lpVtbl->get_remedy(This,plRemedy);
}
static FORCEINLINE HRESULT IWMPErrorItem_get_customUrl(IWMPErrorItem* This,BSTR *pbstrCustomUrl) {
    return This->lpVtbl->get_customUrl(This,pbstrCustomUrl);
}
#endif
#endif

#endif


#endif  /* __IWMPErrorItem_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPError interface
 */
#ifndef __IWMPError_INTERFACE_DEFINED__
#define __IWMPError_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPError, 0xa12dcf7d, 0x14ab, 0x4c1b, 0xa8,0xcd, 0x63,0x90,0x9f,0x06,0x02,0x5b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("a12dcf7d-14ab-4c1b-a8cd-63909f06025b")
IWMPError : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE clearErrorQueue(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorCount(
        LONG *plNumErrors) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Item(
        LONG dwIndex,
        IWMPErrorItem **ppErrorItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE webHelp(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPError, 0xa12dcf7d, 0x14ab, 0x4c1b, 0xa8,0xcd, 0x63,0x90,0x9f,0x06,0x02,0x5b)
#endif
#else
typedef struct IWMPErrorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPError *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPError *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPError *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPError *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPError *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPError *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPError *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPError methods ***/
    HRESULT (STDMETHODCALLTYPE *clearErrorQueue)(
        IWMPError *This);

    HRESULT (STDMETHODCALLTYPE *get_errorCount)(
        IWMPError *This,
        LONG *plNumErrors);

    HRESULT (STDMETHODCALLTYPE *get_Item)(
        IWMPError *This,
        LONG dwIndex,
        IWMPErrorItem **ppErrorItem);

    HRESULT (STDMETHODCALLTYPE *webHelp)(
        IWMPError *This);

    END_INTERFACE
} IWMPErrorVtbl;

interface IWMPError {
    CONST_VTBL IWMPErrorVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPError_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPError_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPError methods ***/
#define IWMPError_clearErrorQueue(This) (This)->lpVtbl->clearErrorQueue(This)
#define IWMPError_get_errorCount(This,plNumErrors) (This)->lpVtbl->get_errorCount(This,plNumErrors)
#define IWMPError_get_Item(This,dwIndex,ppErrorItem) (This)->lpVtbl->get_Item(This,dwIndex,ppErrorItem)
#define IWMPError_webHelp(This) (This)->lpVtbl->webHelp(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPError_QueryInterface(IWMPError* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPError_AddRef(IWMPError* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPError_Release(IWMPError* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPError_GetTypeInfoCount(IWMPError* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPError_GetTypeInfo(IWMPError* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPError_GetIDsOfNames(IWMPError* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPError_Invoke(IWMPError* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPError methods ***/
static FORCEINLINE HRESULT IWMPError_clearErrorQueue(IWMPError* This) {
    return This->lpVtbl->clearErrorQueue(This);
}
static FORCEINLINE HRESULT IWMPError_get_errorCount(IWMPError* This,LONG *plNumErrors) {
    return This->lpVtbl->get_errorCount(This,plNumErrors);
}
static FORCEINLINE HRESULT IWMPError_get_Item(IWMPError* This,LONG dwIndex,IWMPErrorItem **ppErrorItem) {
    return This->lpVtbl->get_Item(This,dwIndex,ppErrorItem);
}
static FORCEINLINE HRESULT IWMPError_webHelp(IWMPError* This) {
    return This->lpVtbl->webHelp(This);
}
#endif
#endif

#endif


#endif  /* __IWMPError_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPPlayerApplication interface
 */
#ifndef __IWMPPlayerApplication_INTERFACE_DEFINED__
#define __IWMPPlayerApplication_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPPlayerApplication, 0x40897764, 0xceab, 0x47be, 0xad,0x4a, 0x8e,0x28,0x53,0x7f,0x9b,0xbf);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("40897764-ceab-47be-ad4a-8e28537f9bbf")
IWMPPlayerApplication : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE switchToPlayerApplication(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE switchToControl(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playerDocked(
        VARIANT_BOOL *pbPlayerDocked) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_hasDisplay(
        VARIANT_BOOL *pbHasDisplay) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPPlayerApplication, 0x40897764, 0xceab, 0x47be, 0xad,0x4a, 0x8e,0x28,0x53,0x7f,0x9b,0xbf)
#endif
#else
typedef struct IWMPPlayerApplicationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPPlayerApplication *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPPlayerApplication *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPPlayerApplication *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPPlayerApplication *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPPlayerApplication *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPPlayerApplication *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPPlayerApplication *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPPlayerApplication methods ***/
    HRESULT (STDMETHODCALLTYPE *switchToPlayerApplication)(
        IWMPPlayerApplication *This);

    HRESULT (STDMETHODCALLTYPE *switchToControl)(
        IWMPPlayerApplication *This);

    HRESULT (STDMETHODCALLTYPE *get_playerDocked)(
        IWMPPlayerApplication *This,
        VARIANT_BOOL *pbPlayerDocked);

    HRESULT (STDMETHODCALLTYPE *get_hasDisplay)(
        IWMPPlayerApplication *This,
        VARIANT_BOOL *pbHasDisplay);

    END_INTERFACE
} IWMPPlayerApplicationVtbl;

interface IWMPPlayerApplication {
    CONST_VTBL IWMPPlayerApplicationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPPlayerApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPPlayerApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPPlayerApplication_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPPlayerApplication_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPPlayerApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPPlayerApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPPlayerApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPPlayerApplication methods ***/
#define IWMPPlayerApplication_switchToPlayerApplication(This) (This)->lpVtbl->switchToPlayerApplication(This)
#define IWMPPlayerApplication_switchToControl(This) (This)->lpVtbl->switchToControl(This)
#define IWMPPlayerApplication_get_playerDocked(This,pbPlayerDocked) (This)->lpVtbl->get_playerDocked(This,pbPlayerDocked)
#define IWMPPlayerApplication_get_hasDisplay(This,pbHasDisplay) (This)->lpVtbl->get_hasDisplay(This,pbHasDisplay)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPPlayerApplication_QueryInterface(IWMPPlayerApplication* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPPlayerApplication_AddRef(IWMPPlayerApplication* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPPlayerApplication_Release(IWMPPlayerApplication* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPPlayerApplication_GetTypeInfoCount(IWMPPlayerApplication* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_GetTypeInfo(IWMPPlayerApplication* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_GetIDsOfNames(IWMPPlayerApplication* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_Invoke(IWMPPlayerApplication* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPPlayerApplication methods ***/
static FORCEINLINE HRESULT IWMPPlayerApplication_switchToPlayerApplication(IWMPPlayerApplication* This) {
    return This->lpVtbl->switchToPlayerApplication(This);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_switchToControl(IWMPPlayerApplication* This) {
    return This->lpVtbl->switchToControl(This);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_get_playerDocked(IWMPPlayerApplication* This,VARIANT_BOOL *pbPlayerDocked) {
    return This->lpVtbl->get_playerDocked(This,pbPlayerDocked);
}
static FORCEINLINE HRESULT IWMPPlayerApplication_get_hasDisplay(IWMPPlayerApplication* This,VARIANT_BOOL *pbHasDisplay) {
    return This->lpVtbl->get_hasDisplay(This,pbHasDisplay);
}
#endif
#endif

#endif


#endif  /* __IWMPPlayerApplication_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPCore interface
 */
#ifndef __IWMPCore_INTERFACE_DEFINED__
#define __IWMPCore_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPCore, 0xd84cca99, 0xcce2, 0x11d2, 0x9e,0xcc, 0x00,0x00,0xf8,0x08,0x59,0x81);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d84cca99-cce2-11d2-9ecc-0000f8085981")
IWMPCore : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE close(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_URL(
        BSTR *pbstrURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_URL(
        BSTR pbstrURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_openState(
        WMPOpenState *pwmpos) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playState(
        WMPPlayState *pwmpps) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_controls(
        IWMPControls **ppControl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_settings(
        IWMPSettings **ppSettings) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_currentMedia(
        IWMPMedia **ppMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_currentMedia(
        IWMPMedia *ppMedia) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_mediaCollection(
        IWMPMediaCollection **ppMediaCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playlistCollection(
        IWMPPlaylistCollection **ppPlaylistCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_versionInfo(
        BSTR *pbstrVersionInfo) = 0;

    virtual HRESULT STDMETHODCALLTYPE launchURL(
        BSTR bstrURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_network(
        IWMPNetwork **ppQNI) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_currentPlaylist(
        IWMPPlaylist **ppPL) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_currentPlaylist(
        IWMPPlaylist *ppPL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_cdromCollection(
        IWMPCdromCollection **ppCdromCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_closedCaption(
        IWMPClosedCaption **ppClosedCaption) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isOnline(
        VARIANT_BOOL *pfOnline) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Error(
        IWMPError **ppError) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_status(
        BSTR *pbstrStatus) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPCore, 0xd84cca99, 0xcce2, 0x11d2, 0x9e,0xcc, 0x00,0x00,0xf8,0x08,0x59,0x81)
#endif
#else
typedef struct IWMPCoreVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPCore *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPCore *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPCore *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPCore *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPCore *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPCore *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPCore *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCore methods ***/
    HRESULT (STDMETHODCALLTYPE *close)(
        IWMPCore *This);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IWMPCore *This,
        BSTR *pbstrURL);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IWMPCore *This,
        BSTR pbstrURL);

    HRESULT (STDMETHODCALLTYPE *get_openState)(
        IWMPCore *This,
        WMPOpenState *pwmpos);

    HRESULT (STDMETHODCALLTYPE *get_playState)(
        IWMPCore *This,
        WMPPlayState *pwmpps);

    HRESULT (STDMETHODCALLTYPE *get_controls)(
        IWMPCore *This,
        IWMPControls **ppControl);

    HRESULT (STDMETHODCALLTYPE *get_settings)(
        IWMPCore *This,
        IWMPSettings **ppSettings);

    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
        IWMPCore *This,
        IWMPMedia **ppMedia);

    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
        IWMPCore *This,
        IWMPMedia *ppMedia);

    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
        IWMPCore *This,
        IWMPMediaCollection **ppMediaCollection);

    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
        IWMPCore *This,
        IWMPPlaylistCollection **ppPlaylistCollection);

    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
        IWMPCore *This,
        BSTR *pbstrVersionInfo);

    HRESULT (STDMETHODCALLTYPE *launchURL)(
        IWMPCore *This,
        BSTR bstrURL);

    HRESULT (STDMETHODCALLTYPE *get_network)(
        IWMPCore *This,
        IWMPNetwork **ppQNI);

    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
        IWMPCore *This,
        IWMPPlaylist **ppPL);

    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
        IWMPCore *This,
        IWMPPlaylist *ppPL);

    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
        IWMPCore *This,
        IWMPCdromCollection **ppCdromCollection);

    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
        IWMPCore *This,
        IWMPClosedCaption **ppClosedCaption);

    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
        IWMPCore *This,
        VARIANT_BOOL *pfOnline);

    HRESULT (STDMETHODCALLTYPE *get_Error)(
        IWMPCore *This,
        IWMPError **ppError);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IWMPCore *This,
        BSTR *pbstrStatus);

    END_INTERFACE
} IWMPCoreVtbl;

interface IWMPCore {
    CONST_VTBL IWMPCoreVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPCore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPCore_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPCore_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPCore_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPCore_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPCore_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPCore_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCore methods ***/
#define IWMPCore_close(This) (This)->lpVtbl->close(This)
#define IWMPCore_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
#define IWMPCore_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
#define IWMPCore_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
#define IWMPCore_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
#define IWMPCore_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
#define IWMPCore_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
#define IWMPCore_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
#define IWMPCore_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
#define IWMPCore_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
#define IWMPCore_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
#define IWMPCore_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
#define IWMPCore_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
#define IWMPCore_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
#define IWMPCore_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
#define IWMPCore_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
#define IWMPCore_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
#define IWMPCore_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
#define IWMPCore_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
#define IWMPCore_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
#define IWMPCore_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPCore_QueryInterface(IWMPCore* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPCore_AddRef(IWMPCore* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPCore_Release(IWMPCore* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPCore_GetTypeInfoCount(IWMPCore* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPCore_GetTypeInfo(IWMPCore* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPCore_GetIDsOfNames(IWMPCore* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPCore_Invoke(IWMPCore* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCore methods ***/
static FORCEINLINE HRESULT IWMPCore_close(IWMPCore* This) {
    return This->lpVtbl->close(This);
}
static FORCEINLINE HRESULT IWMPCore_get_URL(IWMPCore* This,BSTR *pbstrURL) {
    return This->lpVtbl->get_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore_put_URL(IWMPCore* This,BSTR pbstrURL) {
    return This->lpVtbl->put_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore_get_openState(IWMPCore* This,WMPOpenState *pwmpos) {
    return This->lpVtbl->get_openState(This,pwmpos);
}
static FORCEINLINE HRESULT IWMPCore_get_playState(IWMPCore* This,WMPPlayState *pwmpps) {
    return This->lpVtbl->get_playState(This,pwmpps);
}
static FORCEINLINE HRESULT IWMPCore_get_controls(IWMPCore* This,IWMPControls **ppControl) {
    return This->lpVtbl->get_controls(This,ppControl);
}
static FORCEINLINE HRESULT IWMPCore_get_settings(IWMPCore* This,IWMPSettings **ppSettings) {
    return This->lpVtbl->get_settings(This,ppSettings);
}
static FORCEINLINE HRESULT IWMPCore_get_currentMedia(IWMPCore* This,IWMPMedia **ppMedia) {
    return This->lpVtbl->get_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore_put_currentMedia(IWMPCore* This,IWMPMedia *ppMedia) {
    return This->lpVtbl->put_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore_get_mediaCollection(IWMPCore* This,IWMPMediaCollection **ppMediaCollection) {
    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
}
static FORCEINLINE HRESULT IWMPCore_get_playlistCollection(IWMPCore* This,IWMPPlaylistCollection **ppPlaylistCollection) {
    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
}
static FORCEINLINE HRESULT IWMPCore_get_versionInfo(IWMPCore* This,BSTR *pbstrVersionInfo) {
    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
}
static FORCEINLINE HRESULT IWMPCore_launchURL(IWMPCore* This,BSTR bstrURL) {
    return This->lpVtbl->launchURL(This,bstrURL);
}
static FORCEINLINE HRESULT IWMPCore_get_network(IWMPCore* This,IWMPNetwork **ppQNI) {
    return This->lpVtbl->get_network(This,ppQNI);
}
static FORCEINLINE HRESULT IWMPCore_get_currentPlaylist(IWMPCore* This,IWMPPlaylist **ppPL) {
    return This->lpVtbl->get_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore_put_currentPlaylist(IWMPCore* This,IWMPPlaylist *ppPL) {
    return This->lpVtbl->put_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore_get_cdromCollection(IWMPCore* This,IWMPCdromCollection **ppCdromCollection) {
    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
}
static FORCEINLINE HRESULT IWMPCore_get_closedCaption(IWMPCore* This,IWMPClosedCaption **ppClosedCaption) {
    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
}
static FORCEINLINE HRESULT IWMPCore_get_isOnline(IWMPCore* This,VARIANT_BOOL *pfOnline) {
    return This->lpVtbl->get_isOnline(This,pfOnline);
}
static FORCEINLINE HRESULT IWMPCore_get_Error(IWMPCore* This,IWMPError **ppError) {
    return This->lpVtbl->get_Error(This,ppError);
}
static FORCEINLINE HRESULT IWMPCore_get_status(IWMPCore* This,BSTR *pbstrStatus) {
    return This->lpVtbl->get_status(This,pbstrStatus);
}
#endif
#endif

#endif


#endif  /* __IWMPCore_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPCore2 interface
 */
#ifndef __IWMPCore2_INTERFACE_DEFINED__
#define __IWMPCore2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPCore2, 0xbc17e5b7, 0x7561, 0x4c18, 0xbb,0x90, 0x17,0xd4,0x85,0x77,0x56,0x59);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("bc17e5b7-7561-4c18-bb90-17d485775659")
IWMPCore2 : public IWMPCore
{
    virtual HRESULT STDMETHODCALLTYPE get_dvd(
        IWMPDVD **ppDVD) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPCore2, 0xbc17e5b7, 0x7561, 0x4c18, 0xbb,0x90, 0x17,0xd4,0x85,0x77,0x56,0x59)
#endif
#else
typedef struct IWMPCore2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPCore2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPCore2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPCore2 *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPCore2 *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPCore2 *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPCore2 *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPCore2 *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCore methods ***/
    HRESULT (STDMETHODCALLTYPE *close)(
        IWMPCore2 *This);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IWMPCore2 *This,
        BSTR *pbstrURL);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IWMPCore2 *This,
        BSTR pbstrURL);

    HRESULT (STDMETHODCALLTYPE *get_openState)(
        IWMPCore2 *This,
        WMPOpenState *pwmpos);

    HRESULT (STDMETHODCALLTYPE *get_playState)(
        IWMPCore2 *This,
        WMPPlayState *pwmpps);

    HRESULT (STDMETHODCALLTYPE *get_controls)(
        IWMPCore2 *This,
        IWMPControls **ppControl);

    HRESULT (STDMETHODCALLTYPE *get_settings)(
        IWMPCore2 *This,
        IWMPSettings **ppSettings);

    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
        IWMPCore2 *This,
        IWMPMedia **ppMedia);

    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
        IWMPCore2 *This,
        IWMPMedia *ppMedia);

    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
        IWMPCore2 *This,
        IWMPMediaCollection **ppMediaCollection);

    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
        IWMPCore2 *This,
        IWMPPlaylistCollection **ppPlaylistCollection);

    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
        IWMPCore2 *This,
        BSTR *pbstrVersionInfo);

    HRESULT (STDMETHODCALLTYPE *launchURL)(
        IWMPCore2 *This,
        BSTR bstrURL);

    HRESULT (STDMETHODCALLTYPE *get_network)(
        IWMPCore2 *This,
        IWMPNetwork **ppQNI);

    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
        IWMPCore2 *This,
        IWMPPlaylist **ppPL);

    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
        IWMPCore2 *This,
        IWMPPlaylist *ppPL);

    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
        IWMPCore2 *This,
        IWMPCdromCollection **ppCdromCollection);

    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
        IWMPCore2 *This,
        IWMPClosedCaption **ppClosedCaption);

    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
        IWMPCore2 *This,
        VARIANT_BOOL *pfOnline);

    HRESULT (STDMETHODCALLTYPE *get_Error)(
        IWMPCore2 *This,
        IWMPError **ppError);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IWMPCore2 *This,
        BSTR *pbstrStatus);

    /*** IWMPCore2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_dvd)(
        IWMPCore2 *This,
        IWMPDVD **ppDVD);

    END_INTERFACE
} IWMPCore2Vtbl;

interface IWMPCore2 {
    CONST_VTBL IWMPCore2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPCore2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPCore2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPCore2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPCore2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPCore2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPCore2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPCore2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCore methods ***/
#define IWMPCore2_close(This) (This)->lpVtbl->close(This)
#define IWMPCore2_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
#define IWMPCore2_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
#define IWMPCore2_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
#define IWMPCore2_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
#define IWMPCore2_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
#define IWMPCore2_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
#define IWMPCore2_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
#define IWMPCore2_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
#define IWMPCore2_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
#define IWMPCore2_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
#define IWMPCore2_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
#define IWMPCore2_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
#define IWMPCore2_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
#define IWMPCore2_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
#define IWMPCore2_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
#define IWMPCore2_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
#define IWMPCore2_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
#define IWMPCore2_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
#define IWMPCore2_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
#define IWMPCore2_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
/*** IWMPCore2 methods ***/
#define IWMPCore2_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPCore2_QueryInterface(IWMPCore2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPCore2_AddRef(IWMPCore2* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPCore2_Release(IWMPCore2* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPCore2_GetTypeInfoCount(IWMPCore2* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPCore2_GetTypeInfo(IWMPCore2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPCore2_GetIDsOfNames(IWMPCore2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPCore2_Invoke(IWMPCore2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCore methods ***/
static FORCEINLINE HRESULT IWMPCore2_close(IWMPCore2* This) {
    return This->lpVtbl->close(This);
}
static FORCEINLINE HRESULT IWMPCore2_get_URL(IWMPCore2* This,BSTR *pbstrURL) {
    return This->lpVtbl->get_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore2_put_URL(IWMPCore2* This,BSTR pbstrURL) {
    return This->lpVtbl->put_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore2_get_openState(IWMPCore2* This,WMPOpenState *pwmpos) {
    return This->lpVtbl->get_openState(This,pwmpos);
}
static FORCEINLINE HRESULT IWMPCore2_get_playState(IWMPCore2* This,WMPPlayState *pwmpps) {
    return This->lpVtbl->get_playState(This,pwmpps);
}
static FORCEINLINE HRESULT IWMPCore2_get_controls(IWMPCore2* This,IWMPControls **ppControl) {
    return This->lpVtbl->get_controls(This,ppControl);
}
static FORCEINLINE HRESULT IWMPCore2_get_settings(IWMPCore2* This,IWMPSettings **ppSettings) {
    return This->lpVtbl->get_settings(This,ppSettings);
}
static FORCEINLINE HRESULT IWMPCore2_get_currentMedia(IWMPCore2* This,IWMPMedia **ppMedia) {
    return This->lpVtbl->get_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore2_put_currentMedia(IWMPCore2* This,IWMPMedia *ppMedia) {
    return This->lpVtbl->put_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore2_get_mediaCollection(IWMPCore2* This,IWMPMediaCollection **ppMediaCollection) {
    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
}
static FORCEINLINE HRESULT IWMPCore2_get_playlistCollection(IWMPCore2* This,IWMPPlaylistCollection **ppPlaylistCollection) {
    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
}
static FORCEINLINE HRESULT IWMPCore2_get_versionInfo(IWMPCore2* This,BSTR *pbstrVersionInfo) {
    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
}
static FORCEINLINE HRESULT IWMPCore2_launchURL(IWMPCore2* This,BSTR bstrURL) {
    return This->lpVtbl->launchURL(This,bstrURL);
}
static FORCEINLINE HRESULT IWMPCore2_get_network(IWMPCore2* This,IWMPNetwork **ppQNI) {
    return This->lpVtbl->get_network(This,ppQNI);
}
static FORCEINLINE HRESULT IWMPCore2_get_currentPlaylist(IWMPCore2* This,IWMPPlaylist **ppPL) {
    return This->lpVtbl->get_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore2_put_currentPlaylist(IWMPCore2* This,IWMPPlaylist *ppPL) {
    return This->lpVtbl->put_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore2_get_cdromCollection(IWMPCore2* This,IWMPCdromCollection **ppCdromCollection) {
    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
}
static FORCEINLINE HRESULT IWMPCore2_get_closedCaption(IWMPCore2* This,IWMPClosedCaption **ppClosedCaption) {
    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
}
static FORCEINLINE HRESULT IWMPCore2_get_isOnline(IWMPCore2* This,VARIANT_BOOL *pfOnline) {
    return This->lpVtbl->get_isOnline(This,pfOnline);
}
static FORCEINLINE HRESULT IWMPCore2_get_Error(IWMPCore2* This,IWMPError **ppError) {
    return This->lpVtbl->get_Error(This,ppError);
}
static FORCEINLINE HRESULT IWMPCore2_get_status(IWMPCore2* This,BSTR *pbstrStatus) {
    return This->lpVtbl->get_status(This,pbstrStatus);
}
/*** IWMPCore2 methods ***/
static FORCEINLINE HRESULT IWMPCore2_get_dvd(IWMPCore2* This,IWMPDVD **ppDVD) {
    return This->lpVtbl->get_dvd(This,ppDVD);
}
#endif
#endif

#endif


#endif  /* __IWMPCore2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPCore3 interface
 */
#ifndef __IWMPCore3_INTERFACE_DEFINED__
#define __IWMPCore3_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPCore3, 0x7587c667, 0x628f, 0x499f, 0x88,0xe7, 0x6a,0x6f,0x4e,0x88,0x84,0x64);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7587c667-628f-499f-88e7-6a6f4e888464")
IWMPCore3 : public IWMPCore2
{
    virtual HRESULT STDMETHODCALLTYPE newPlaylist(
        BSTR bstrName,
        BSTR bstrURL,
        IWMPPlaylist **ppPlaylist) = 0;

    virtual HRESULT STDMETHODCALLTYPE newMedia(
        BSTR bstrURL,
        IWMPMedia **ppMedia) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPCore3, 0x7587c667, 0x628f, 0x499f, 0x88,0xe7, 0x6a,0x6f,0x4e,0x88,0x84,0x64)
#endif
#else
typedef struct IWMPCore3Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPCore3 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPCore3 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPCore3 *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPCore3 *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPCore3 *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPCore3 *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPCore3 *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCore methods ***/
    HRESULT (STDMETHODCALLTYPE *close)(
        IWMPCore3 *This);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IWMPCore3 *This,
        BSTR *pbstrURL);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IWMPCore3 *This,
        BSTR pbstrURL);

    HRESULT (STDMETHODCALLTYPE *get_openState)(
        IWMPCore3 *This,
        WMPOpenState *pwmpos);

    HRESULT (STDMETHODCALLTYPE *get_playState)(
        IWMPCore3 *This,
        WMPPlayState *pwmpps);

    HRESULT (STDMETHODCALLTYPE *get_controls)(
        IWMPCore3 *This,
        IWMPControls **ppControl);

    HRESULT (STDMETHODCALLTYPE *get_settings)(
        IWMPCore3 *This,
        IWMPSettings **ppSettings);

    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
        IWMPCore3 *This,
        IWMPMedia **ppMedia);

    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
        IWMPCore3 *This,
        IWMPMedia *ppMedia);

    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
        IWMPCore3 *This,
        IWMPMediaCollection **ppMediaCollection);

    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
        IWMPCore3 *This,
        IWMPPlaylistCollection **ppPlaylistCollection);

    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
        IWMPCore3 *This,
        BSTR *pbstrVersionInfo);

    HRESULT (STDMETHODCALLTYPE *launchURL)(
        IWMPCore3 *This,
        BSTR bstrURL);

    HRESULT (STDMETHODCALLTYPE *get_network)(
        IWMPCore3 *This,
        IWMPNetwork **ppQNI);

    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
        IWMPCore3 *This,
        IWMPPlaylist **ppPL);

    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
        IWMPCore3 *This,
        IWMPPlaylist *ppPL);

    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
        IWMPCore3 *This,
        IWMPCdromCollection **ppCdromCollection);

    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
        IWMPCore3 *This,
        IWMPClosedCaption **ppClosedCaption);

    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
        IWMPCore3 *This,
        VARIANT_BOOL *pfOnline);

    HRESULT (STDMETHODCALLTYPE *get_Error)(
        IWMPCore3 *This,
        IWMPError **ppError);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IWMPCore3 *This,
        BSTR *pbstrStatus);

    /*** IWMPCore2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_dvd)(
        IWMPCore3 *This,
        IWMPDVD **ppDVD);

    /*** IWMPCore3 methods ***/
    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
        IWMPCore3 *This,
        BSTR bstrName,
        BSTR bstrURL,
        IWMPPlaylist **ppPlaylist);

    HRESULT (STDMETHODCALLTYPE *newMedia)(
        IWMPCore3 *This,
        BSTR bstrURL,
        IWMPMedia **ppMedia);

    END_INTERFACE
} IWMPCore3Vtbl;

interface IWMPCore3 {
    CONST_VTBL IWMPCore3Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPCore3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPCore3_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPCore3_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPCore3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPCore3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPCore3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPCore3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCore methods ***/
#define IWMPCore3_close(This) (This)->lpVtbl->close(This)
#define IWMPCore3_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
#define IWMPCore3_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
#define IWMPCore3_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
#define IWMPCore3_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
#define IWMPCore3_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
#define IWMPCore3_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
#define IWMPCore3_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
#define IWMPCore3_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
#define IWMPCore3_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
#define IWMPCore3_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
#define IWMPCore3_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
#define IWMPCore3_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
#define IWMPCore3_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
#define IWMPCore3_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
#define IWMPCore3_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
#define IWMPCore3_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
#define IWMPCore3_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
#define IWMPCore3_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
#define IWMPCore3_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
#define IWMPCore3_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
/*** IWMPCore2 methods ***/
#define IWMPCore3_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
/*** IWMPCore3 methods ***/
#define IWMPCore3_newPlaylist(This,bstrName,bstrURL,ppPlaylist) (This)->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist)
#define IWMPCore3_newMedia(This,bstrURL,ppMedia) (This)->lpVtbl->newMedia(This,bstrURL,ppMedia)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPCore3_QueryInterface(IWMPCore3* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPCore3_AddRef(IWMPCore3* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPCore3_Release(IWMPCore3* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPCore3_GetTypeInfoCount(IWMPCore3* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPCore3_GetTypeInfo(IWMPCore3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPCore3_GetIDsOfNames(IWMPCore3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPCore3_Invoke(IWMPCore3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCore methods ***/
static FORCEINLINE HRESULT IWMPCore3_close(IWMPCore3* This) {
    return This->lpVtbl->close(This);
}
static FORCEINLINE HRESULT IWMPCore3_get_URL(IWMPCore3* This,BSTR *pbstrURL) {
    return This->lpVtbl->get_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore3_put_URL(IWMPCore3* This,BSTR pbstrURL) {
    return This->lpVtbl->put_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPCore3_get_openState(IWMPCore3* This,WMPOpenState *pwmpos) {
    return This->lpVtbl->get_openState(This,pwmpos);
}
static FORCEINLINE HRESULT IWMPCore3_get_playState(IWMPCore3* This,WMPPlayState *pwmpps) {
    return This->lpVtbl->get_playState(This,pwmpps);
}
static FORCEINLINE HRESULT IWMPCore3_get_controls(IWMPCore3* This,IWMPControls **ppControl) {
    return This->lpVtbl->get_controls(This,ppControl);
}
static FORCEINLINE HRESULT IWMPCore3_get_settings(IWMPCore3* This,IWMPSettings **ppSettings) {
    return This->lpVtbl->get_settings(This,ppSettings);
}
static FORCEINLINE HRESULT IWMPCore3_get_currentMedia(IWMPCore3* This,IWMPMedia **ppMedia) {
    return This->lpVtbl->get_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore3_put_currentMedia(IWMPCore3* This,IWMPMedia *ppMedia) {
    return This->lpVtbl->put_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPCore3_get_mediaCollection(IWMPCore3* This,IWMPMediaCollection **ppMediaCollection) {
    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
}
static FORCEINLINE HRESULT IWMPCore3_get_playlistCollection(IWMPCore3* This,IWMPPlaylistCollection **ppPlaylistCollection) {
    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
}
static FORCEINLINE HRESULT IWMPCore3_get_versionInfo(IWMPCore3* This,BSTR *pbstrVersionInfo) {
    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
}
static FORCEINLINE HRESULT IWMPCore3_launchURL(IWMPCore3* This,BSTR bstrURL) {
    return This->lpVtbl->launchURL(This,bstrURL);
}
static FORCEINLINE HRESULT IWMPCore3_get_network(IWMPCore3* This,IWMPNetwork **ppQNI) {
    return This->lpVtbl->get_network(This,ppQNI);
}
static FORCEINLINE HRESULT IWMPCore3_get_currentPlaylist(IWMPCore3* This,IWMPPlaylist **ppPL) {
    return This->lpVtbl->get_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore3_put_currentPlaylist(IWMPCore3* This,IWMPPlaylist *ppPL) {
    return This->lpVtbl->put_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPCore3_get_cdromCollection(IWMPCore3* This,IWMPCdromCollection **ppCdromCollection) {
    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
}
static FORCEINLINE HRESULT IWMPCore3_get_closedCaption(IWMPCore3* This,IWMPClosedCaption **ppClosedCaption) {
    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
}
static FORCEINLINE HRESULT IWMPCore3_get_isOnline(IWMPCore3* This,VARIANT_BOOL *pfOnline) {
    return This->lpVtbl->get_isOnline(This,pfOnline);
}
static FORCEINLINE HRESULT IWMPCore3_get_Error(IWMPCore3* This,IWMPError **ppError) {
    return This->lpVtbl->get_Error(This,ppError);
}
static FORCEINLINE HRESULT IWMPCore3_get_status(IWMPCore3* This,BSTR *pbstrStatus) {
    return This->lpVtbl->get_status(This,pbstrStatus);
}
/*** IWMPCore2 methods ***/
static FORCEINLINE HRESULT IWMPCore3_get_dvd(IWMPCore3* This,IWMPDVD **ppDVD) {
    return This->lpVtbl->get_dvd(This,ppDVD);
}
/*** IWMPCore3 methods ***/
static FORCEINLINE HRESULT IWMPCore3_newPlaylist(IWMPCore3* This,BSTR bstrName,BSTR bstrURL,IWMPPlaylist **ppPlaylist) {
    return This->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist);
}
static FORCEINLINE HRESULT IWMPCore3_newMedia(IWMPCore3* This,BSTR bstrURL,IWMPMedia **ppMedia) {
    return This->lpVtbl->newMedia(This,bstrURL,ppMedia);
}
#endif
#endif

#endif


#endif  /* __IWMPCore3_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IWMPPlayer4 interface
 */
#ifndef __IWMPPlayer4_INTERFACE_DEFINED__
#define __IWMPPlayer4_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWMPPlayer4, 0x6c497d62, 0x8919, 0x413c, 0x82,0xdb, 0xe9,0x35,0xfb,0x3e,0xc5,0x84);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6c497d62-8919-413c-82db-e935fb3ec584")
IWMPPlayer4 : public IWMPCore3
{
    virtual HRESULT STDMETHODCALLTYPE get_enabled(
        VARIANT_BOOL *pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_enabled(
        VARIANT_BOOL pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fullScreen(
        VARIANT_BOOL *pbFullScreen) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_fullScreen(
        VARIANT_BOOL pbFullScreen) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_enableContextMenu(
        VARIANT_BOOL *pbEnableContextMenu) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_enableContextMenu(
        VARIANT_BOOL pbEnableContextMenu) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_uiMode(
        BSTR pbstrMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_uiMode(
        BSTR *pbstrMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_stretchToFit(
        VARIANT_BOOL *pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_stretchToFit(
        VARIANT_BOOL pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_windowlessVideo(
        VARIANT_BOOL *pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_windowlessVideo(
        VARIANT_BOOL pbEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isRemote(
        VARIANT_BOOL *pvarfIsRemote) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playerApplication(
        IWMPPlayerApplication **ppIWMPPlayerApplication) = 0;

    virtual HRESULT STDMETHODCALLTYPE openPlayer(
        BSTR bstrURL) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IWMPPlayer4, 0x6c497d62, 0x8919, 0x413c, 0x82,0xdb, 0xe9,0x35,0xfb,0x3e,0xc5,0x84)
#endif
#else
typedef struct IWMPPlayer4Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWMPPlayer4 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWMPPlayer4 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWMPPlayer4 *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWMPPlayer4 *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWMPPlayer4 *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWMPPlayer4 *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWMPPlayer4 *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IWMPCore methods ***/
    HRESULT (STDMETHODCALLTYPE *close)(
        IWMPPlayer4 *This);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IWMPPlayer4 *This,
        BSTR *pbstrURL);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IWMPPlayer4 *This,
        BSTR pbstrURL);

    HRESULT (STDMETHODCALLTYPE *get_openState)(
        IWMPPlayer4 *This,
        WMPOpenState *pwmpos);

    HRESULT (STDMETHODCALLTYPE *get_playState)(
        IWMPPlayer4 *This,
        WMPPlayState *pwmpps);

    HRESULT (STDMETHODCALLTYPE *get_controls)(
        IWMPPlayer4 *This,
        IWMPControls **ppControl);

    HRESULT (STDMETHODCALLTYPE *get_settings)(
        IWMPPlayer4 *This,
        IWMPSettings **ppSettings);

    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
        IWMPPlayer4 *This,
        IWMPMedia **ppMedia);

    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
        IWMPPlayer4 *This,
        IWMPMedia *ppMedia);

    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
        IWMPPlayer4 *This,
        IWMPMediaCollection **ppMediaCollection);

    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
        IWMPPlayer4 *This,
        IWMPPlaylistCollection **ppPlaylistCollection);

    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
        IWMPPlayer4 *This,
        BSTR *pbstrVersionInfo);

    HRESULT (STDMETHODCALLTYPE *launchURL)(
        IWMPPlayer4 *This,
        BSTR bstrURL);

    HRESULT (STDMETHODCALLTYPE *get_network)(
        IWMPPlayer4 *This,
        IWMPNetwork **ppQNI);

    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
        IWMPPlayer4 *This,
        IWMPPlaylist **ppPL);

    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
        IWMPPlayer4 *This,
        IWMPPlaylist *ppPL);

    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
        IWMPPlayer4 *This,
        IWMPCdromCollection **ppCdromCollection);

    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
        IWMPPlayer4 *This,
        IWMPClosedCaption **ppClosedCaption);

    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pfOnline);

    HRESULT (STDMETHODCALLTYPE *get_Error)(
        IWMPPlayer4 *This,
        IWMPError **ppError);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IWMPPlayer4 *This,
        BSTR *pbstrStatus);

    /*** IWMPCore2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_dvd)(
        IWMPPlayer4 *This,
        IWMPDVD **ppDVD);

    /*** IWMPCore3 methods ***/
    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
        IWMPPlayer4 *This,
        BSTR bstrName,
        BSTR bstrURL,
        IWMPPlaylist **ppPlaylist);

    HRESULT (STDMETHODCALLTYPE *newMedia)(
        IWMPPlayer4 *This,
        BSTR bstrURL,
        IWMPMedia **ppMedia);

    /*** IWMPPlayer4 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_enabled)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pbEnabled);

    HRESULT (STDMETHODCALLTYPE *put_enabled)(
        IWMPPlayer4 *This,
        VARIANT_BOOL pbEnabled);

    HRESULT (STDMETHODCALLTYPE *get_fullScreen)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pbFullScreen);

    HRESULT (STDMETHODCALLTYPE *put_fullScreen)(
        IWMPPlayer4 *This,
        VARIANT_BOOL pbFullScreen);

    HRESULT (STDMETHODCALLTYPE *get_enableContextMenu)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pbEnableContextMenu);

    HRESULT (STDMETHODCALLTYPE *put_enableContextMenu)(
        IWMPPlayer4 *This,
        VARIANT_BOOL pbEnableContextMenu);

    HRESULT (STDMETHODCALLTYPE *put_uiMode)(
        IWMPPlayer4 *This,
        BSTR pbstrMode);

    HRESULT (STDMETHODCALLTYPE *get_uiMode)(
        IWMPPlayer4 *This,
        BSTR *pbstrMode);

    HRESULT (STDMETHODCALLTYPE *get_stretchToFit)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pbEnabled);

    HRESULT (STDMETHODCALLTYPE *put_stretchToFit)(
        IWMPPlayer4 *This,
        VARIANT_BOOL pbEnabled);

    HRESULT (STDMETHODCALLTYPE *get_windowlessVideo)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pbEnabled);

    HRESULT (STDMETHODCALLTYPE *put_windowlessVideo)(
        IWMPPlayer4 *This,
        VARIANT_BOOL pbEnabled);

    HRESULT (STDMETHODCALLTYPE *get_isRemote)(
        IWMPPlayer4 *This,
        VARIANT_BOOL *pvarfIsRemote);

    HRESULT (STDMETHODCALLTYPE *get_playerApplication)(
        IWMPPlayer4 *This,
        IWMPPlayerApplication **ppIWMPPlayerApplication);

    HRESULT (STDMETHODCALLTYPE *openPlayer)(
        IWMPPlayer4 *This,
        BSTR bstrURL);

    END_INTERFACE
} IWMPPlayer4Vtbl;

interface IWMPPlayer4 {
    CONST_VTBL IWMPPlayer4Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IWMPPlayer4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWMPPlayer4_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWMPPlayer4_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWMPPlayer4_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWMPPlayer4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWMPPlayer4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWMPPlayer4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWMPCore methods ***/
#define IWMPPlayer4_close(This) (This)->lpVtbl->close(This)
#define IWMPPlayer4_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
#define IWMPPlayer4_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
#define IWMPPlayer4_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
#define IWMPPlayer4_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
#define IWMPPlayer4_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
#define IWMPPlayer4_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
#define IWMPPlayer4_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
#define IWMPPlayer4_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
#define IWMPPlayer4_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
#define IWMPPlayer4_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
#define IWMPPlayer4_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
#define IWMPPlayer4_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
#define IWMPPlayer4_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
#define IWMPPlayer4_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
#define IWMPPlayer4_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
#define IWMPPlayer4_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
#define IWMPPlayer4_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
#define IWMPPlayer4_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
#define IWMPPlayer4_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
#define IWMPPlayer4_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
/*** IWMPCore2 methods ***/
#define IWMPPlayer4_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
/*** IWMPCore3 methods ***/
#define IWMPPlayer4_newPlaylist(This,bstrName,bstrURL,ppPlaylist) (This)->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist)
#define IWMPPlayer4_newMedia(This,bstrURL,ppMedia) (This)->lpVtbl->newMedia(This,bstrURL,ppMedia)
/*** IWMPPlayer4 methods ***/
#define IWMPPlayer4_get_enabled(This,pbEnabled) (This)->lpVtbl->get_enabled(This,pbEnabled)
#define IWMPPlayer4_put_enabled(This,pbEnabled) (This)->lpVtbl->put_enabled(This,pbEnabled)
#define IWMPPlayer4_get_fullScreen(This,pbFullScreen) (This)->lpVtbl->get_fullScreen(This,pbFullScreen)
#define IWMPPlayer4_put_fullScreen(This,pbFullScreen) (This)->lpVtbl->put_fullScreen(This,pbFullScreen)
#define IWMPPlayer4_get_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu)
#define IWMPPlayer4_put_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu)
#define IWMPPlayer4_put_uiMode(This,pbstrMode) (This)->lpVtbl->put_uiMode(This,pbstrMode)
#define IWMPPlayer4_get_uiMode(This,pbstrMode) (This)->lpVtbl->get_uiMode(This,pbstrMode)
#define IWMPPlayer4_get_stretchToFit(This,pbEnabled) (This)->lpVtbl->get_stretchToFit(This,pbEnabled)
#define IWMPPlayer4_put_stretchToFit(This,pbEnabled) (This)->lpVtbl->put_stretchToFit(This,pbEnabled)
#define IWMPPlayer4_get_windowlessVideo(This,pbEnabled) (This)->lpVtbl->get_windowlessVideo(This,pbEnabled)
#define IWMPPlayer4_put_windowlessVideo(This,pbEnabled) (This)->lpVtbl->put_windowlessVideo(This,pbEnabled)
#define IWMPPlayer4_get_isRemote(This,pvarfIsRemote) (This)->lpVtbl->get_isRemote(This,pvarfIsRemote)
#define IWMPPlayer4_get_playerApplication(This,ppIWMPPlayerApplication) (This)->lpVtbl->get_playerApplication(This,ppIWMPPlayerApplication)
#define IWMPPlayer4_openPlayer(This,bstrURL) (This)->lpVtbl->openPlayer(This,bstrURL)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_QueryInterface(IWMPPlayer4* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IWMPPlayer4_AddRef(IWMPPlayer4* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IWMPPlayer4_Release(IWMPPlayer4* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_GetTypeInfoCount(IWMPPlayer4* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT IWMPPlayer4_GetTypeInfo(IWMPPlayer4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT IWMPPlayer4_GetIDsOfNames(IWMPPlayer4* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT IWMPPlayer4_Invoke(IWMPPlayer4* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
/*** IWMPCore methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_close(IWMPPlayer4* This) {
    return This->lpVtbl->close(This);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_URL(IWMPPlayer4* This,BSTR *pbstrURL) {
    return This->lpVtbl->get_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_URL(IWMPPlayer4* This,BSTR pbstrURL) {
    return This->lpVtbl->put_URL(This,pbstrURL);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_openState(IWMPPlayer4* This,WMPOpenState *pwmpos) {
    return This->lpVtbl->get_openState(This,pwmpos);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_playState(IWMPPlayer4* This,WMPPlayState *pwmpps) {
    return This->lpVtbl->get_playState(This,pwmpps);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_controls(IWMPPlayer4* This,IWMPControls **ppControl) {
    return This->lpVtbl->get_controls(This,ppControl);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_settings(IWMPPlayer4* This,IWMPSettings **ppSettings) {
    return This->lpVtbl->get_settings(This,ppSettings);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_currentMedia(IWMPPlayer4* This,IWMPMedia **ppMedia) {
    return This->lpVtbl->get_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_currentMedia(IWMPPlayer4* This,IWMPMedia *ppMedia) {
    return This->lpVtbl->put_currentMedia(This,ppMedia);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_mediaCollection(IWMPPlayer4* This,IWMPMediaCollection **ppMediaCollection) {
    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_playlistCollection(IWMPPlayer4* This,IWMPPlaylistCollection **ppPlaylistCollection) {
    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_versionInfo(IWMPPlayer4* This,BSTR *pbstrVersionInfo) {
    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
}
static FORCEINLINE HRESULT IWMPPlayer4_launchURL(IWMPPlayer4* This,BSTR bstrURL) {
    return This->lpVtbl->launchURL(This,bstrURL);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_network(IWMPPlayer4* This,IWMPNetwork **ppQNI) {
    return This->lpVtbl->get_network(This,ppQNI);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_currentPlaylist(IWMPPlayer4* This,IWMPPlaylist **ppPL) {
    return This->lpVtbl->get_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_currentPlaylist(IWMPPlayer4* This,IWMPPlaylist *ppPL) {
    return This->lpVtbl->put_currentPlaylist(This,ppPL);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_cdromCollection(IWMPPlayer4* This,IWMPCdromCollection **ppCdromCollection) {
    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_closedCaption(IWMPPlayer4* This,IWMPClosedCaption **ppClosedCaption) {
    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_isOnline(IWMPPlayer4* This,VARIANT_BOOL *pfOnline) {
    return This->lpVtbl->get_isOnline(This,pfOnline);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_Error(IWMPPlayer4* This,IWMPError **ppError) {
    return This->lpVtbl->get_Error(This,ppError);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_status(IWMPPlayer4* This,BSTR *pbstrStatus) {
    return This->lpVtbl->get_status(This,pbstrStatus);
}
/*** IWMPCore2 methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_get_dvd(IWMPPlayer4* This,IWMPDVD **ppDVD) {
    return This->lpVtbl->get_dvd(This,ppDVD);
}
/*** IWMPCore3 methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_newPlaylist(IWMPPlayer4* This,BSTR bstrName,BSTR bstrURL,IWMPPlaylist **ppPlaylist) {
    return This->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist);
}
static FORCEINLINE HRESULT IWMPPlayer4_newMedia(IWMPPlayer4* This,BSTR bstrURL,IWMPMedia **ppMedia) {
    return This->lpVtbl->newMedia(This,bstrURL,ppMedia);
}
/*** IWMPPlayer4 methods ***/
static FORCEINLINE HRESULT IWMPPlayer4_get_enabled(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
    return This->lpVtbl->get_enabled(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_enabled(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
    return This->lpVtbl->put_enabled(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_fullScreen(IWMPPlayer4* This,VARIANT_BOOL *pbFullScreen) {
    return This->lpVtbl->get_fullScreen(This,pbFullScreen);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_fullScreen(IWMPPlayer4* This,VARIANT_BOOL pbFullScreen) {
    return This->lpVtbl->put_fullScreen(This,pbFullScreen);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_enableContextMenu(IWMPPlayer4* This,VARIANT_BOOL *pbEnableContextMenu) {
    return This->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_enableContextMenu(IWMPPlayer4* This,VARIANT_BOOL pbEnableContextMenu) {
    return This->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_uiMode(IWMPPlayer4* This,BSTR pbstrMode) {
    return This->lpVtbl->put_uiMode(This,pbstrMode);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_uiMode(IWMPPlayer4* This,BSTR *pbstrMode) {
    return This->lpVtbl->get_uiMode(This,pbstrMode);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_stretchToFit(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
    return This->lpVtbl->get_stretchToFit(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_stretchToFit(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
    return This->lpVtbl->put_stretchToFit(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_windowlessVideo(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
    return This->lpVtbl->get_windowlessVideo(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_put_windowlessVideo(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
    return This->lpVtbl->put_windowlessVideo(This,pbEnabled);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_isRemote(IWMPPlayer4* This,VARIANT_BOOL *pvarfIsRemote) {
    return This->lpVtbl->get_isRemote(This,pvarfIsRemote);
}
static FORCEINLINE HRESULT IWMPPlayer4_get_playerApplication(IWMPPlayer4* This,IWMPPlayerApplication **ppIWMPPlayerApplication) {
    return This->lpVtbl->get_playerApplication(This,ppIWMPPlayerApplication);
}
static FORCEINLINE HRESULT IWMPPlayer4_openPlayer(IWMPPlayer4* This,BSTR bstrURL) {
    return This->lpVtbl->openPlayer(This,bstrURL);
}
#endif
#endif

#endif


#endif  /* __IWMPPlayer4_INTERFACE_DEFINED__ */

/*****************************************************************************
 * _WMPOCXEvents interface
 */
#ifndef ___WMPOCXEvents_INTERFACE_DEFINED__
#define ___WMPOCXEvents_INTERFACE_DEFINED__

DEFINE_GUID(IID__WMPOCXEvents, 0x6bf52a51, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6bf52a51-394a-11d3-b153-00c04f79faa6")
_WMPOCXEvents : public IDispatch
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(_WMPOCXEvents, 0x6bf52a51, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
#endif
#else
typedef struct _WMPOCXEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        _WMPOCXEvents *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        _WMPOCXEvents *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        _WMPOCXEvents *This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        _WMPOCXEvents *This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        _WMPOCXEvents *This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        _WMPOCXEvents *This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        _WMPOCXEvents *This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    END_INTERFACE
} _WMPOCXEventsVtbl;

interface _WMPOCXEvents {
    CONST_VTBL _WMPOCXEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define _WMPOCXEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define _WMPOCXEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define _WMPOCXEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define _WMPOCXEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define _WMPOCXEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define _WMPOCXEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define _WMPOCXEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT _WMPOCXEvents_QueryInterface(_WMPOCXEvents* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG _WMPOCXEvents_AddRef(_WMPOCXEvents* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG _WMPOCXEvents_Release(_WMPOCXEvents* This) {
    return This->lpVtbl->Release(This);
}
/*** IDispatch methods ***/
static FORCEINLINE HRESULT _WMPOCXEvents_GetTypeInfoCount(_WMPOCXEvents* This,UINT *pctinfo) {
    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
}
static FORCEINLINE HRESULT _WMPOCXEvents_GetTypeInfo(_WMPOCXEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
}
static FORCEINLINE HRESULT _WMPOCXEvents_GetIDsOfNames(_WMPOCXEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
}
static FORCEINLINE HRESULT _WMPOCXEvents_Invoke(_WMPOCXEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
#endif
#endif

#endif


#endif  /* ___WMPOCXEvents_INTERFACE_DEFINED__ */

/*****************************************************************************
 * WindowsMediaPlayer coclass
 */

DEFINE_GUID(CLSID_WindowsMediaPlayer, 0x6bf52a52, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);

#ifdef __cplusplus
class DECLSPEC_UUID("6bf52a52-394a-11d3-b153-00c04f79faa6") WindowsMediaPlayer;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(WindowsMediaPlayer, 0x6bf52a52, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
#endif
#endif

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __wmp_h__ */
