/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0498 */
/* Compiler settings for wmx.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __wmx_h__
#define __wmx_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IWMXListItem_FWD_DEFINED__
#define __IWMXListItem_FWD_DEFINED__
typedef interface IWMXListItem IWMXListItem;
#endif 	/* __IWMXListItem_FWD_DEFINED__ */


#ifndef __IWMXList_FWD_DEFINED__
#define __IWMXList_FWD_DEFINED__
typedef interface IWMXList IWMXList;
#endif 	/* __IWMXList_FWD_DEFINED__ */


#ifndef __IWMXEditor_FWD_DEFINED__
#define __IWMXEditor_FWD_DEFINED__
typedef interface IWMXEditor IWMXEditor;
#endif 	/* __IWMXEditor_FWD_DEFINED__ */


#ifndef __WMXEditor_FWD_DEFINED__
#define __WMXEditor_FWD_DEFINED__

#ifdef __cplusplus
typedef class WMXEditor WMXEditor;
#else
typedef struct WMXEditor WMXEditor;
#endif /* __cplusplus */

#endif 	/* __WMXEditor_FWD_DEFINED__ */


/* header files for imported files */
#include "unknwn.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_wmx_0000_0000 */
/* [local] */ 

typedef 
enum _WMX_LIST_TYPE
    {	WMX_LIST_TYPE_NONE	= 0,
	WMX_LIST_TYPE_ASX	= ( WMX_LIST_TYPE_NONE + 1 ) ,
	WMX_LIST_TYPE_M3U	= ( WMX_LIST_TYPE_ASX + 1 ) 
    } 	WMX_LIST_TYPE;



extern RPC_IF_HANDLE __MIDL_itf_wmx_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wmx_0000_0000_v0_0_s_ifspec;

#ifndef __IWMXListItem_INTERFACE_DEFINED__
#define __IWMXListItem_INTERFACE_DEFINED__

/* interface IWMXListItem */
/* [helpstring][uuid][object] */ 


EXTERN_C const IID IID_IWMXListItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CD5FA8F1-A7CF-4938-B22D-A29C46046BCC")
    IWMXListItem : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( 
            __RPC__in ULONG *pulCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAttributeName( 
            ULONG ulIndex,
            __RPC__deref_in_opt BSTR *pbstrAttributeName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAttribute( 
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__deref_in_opt BSTR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAttribute( 
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddAttribute( 
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAttribute( 
            __RPC__in const WCHAR *pkwszAttributeName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMXListItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMXListItem * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMXListItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMXListItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
            IWMXListItem * This,
            __RPC__in ULONG *pulCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttributeName )( 
            IWMXListItem * This,
            ULONG ulIndex,
            __RPC__deref_in_opt BSTR *pbstrAttributeName);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            IWMXListItem * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__deref_in_opt BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            IWMXListItem * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            IWMXListItem * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAttribute )( 
            IWMXListItem * This,
            __RPC__in const WCHAR *pkwszAttributeName);
        
        END_INTERFACE
    } IWMXListItemVtbl;

    interface IWMXListItem
    {
        CONST_VTBL struct IWMXListItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMXListItem_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMXListItem_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMXListItem_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMXListItem_GetAttributeCount(This,pulCount)	\
    ( (This)->lpVtbl -> GetAttributeCount(This,pulCount) ) 

#define IWMXListItem_GetAttributeName(This,ulIndex,pbstrAttributeName)	\
    ( (This)->lpVtbl -> GetAttributeName(This,ulIndex,pbstrAttributeName) ) 

#define IWMXListItem_GetAttribute(This,pkwszAttributeName,pbstrValue)	\
    ( (This)->lpVtbl -> GetAttribute(This,pkwszAttributeName,pbstrValue) ) 

#define IWMXListItem_SetAttribute(This,pkwszAttributeName,pkwszValue)	\
    ( (This)->lpVtbl -> SetAttribute(This,pkwszAttributeName,pkwszValue) ) 

#define IWMXListItem_AddAttribute(This,pkwszAttributeName,pkwszValue)	\
    ( (This)->lpVtbl -> AddAttribute(This,pkwszAttributeName,pkwszValue) ) 

#define IWMXListItem_RemoveAttribute(This,pkwszAttributeName)	\
    ( (This)->lpVtbl -> RemoveAttribute(This,pkwszAttributeName) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMXListItem_INTERFACE_DEFINED__ */


#ifndef __IWMXList_INTERFACE_DEFINED__
#define __IWMXList_INTERFACE_DEFINED__

/* interface IWMXList */
/* [helpstring][uuid][object] */ 


EXTERN_C const IID IID_IWMXList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BB6B9C0D-D1A4-4b24-B44C-D5FA0581B1C8")
    IWMXList : public IWMXListItem
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetItemCount( 
            __RPC__in ULONG *pulCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItem( 
            ULONG ulIndex,
            __RPC__deref_in_opt IWMXListItem **ppiItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetItem( 
            ULONG ulIndex,
            __RPC__in_opt IWMXListItem *piItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateItem( 
            __RPC__deref_in_opt IWMXListItem **ppiItem,
            __RPC__in const WCHAR *pkwszType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AppendItem( 
            __RPC__in_opt IWMXListItem *piItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InsertItem( 
            __RPC__in_opt IWMXListItem *piItem,
            ULONG ulIndex) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveItem( 
            ULONG ulIndex) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Save( 
            __RPC__in const WCHAR *pkwszFilename) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsUrlList( 
            __RPC__in VARIANT_BOOL *pfUrlList) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMXListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMXList * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMXList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMXList * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
            IWMXList * This,
            __RPC__in ULONG *pulCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttributeName )( 
            IWMXList * This,
            ULONG ulIndex,
            __RPC__deref_in_opt BSTR *pbstrAttributeName);
        
        HRESULT ( STDMETHODCALLTYPE *GetAttribute )( 
            IWMXList * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__deref_in_opt BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
            IWMXList * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
            IWMXList * This,
            __RPC__in const WCHAR *pkwszAttributeName,
            __RPC__in const WCHAR *pkwszValue);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAttribute )( 
            IWMXList * This,
            __RPC__in const WCHAR *pkwszAttributeName);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemCount )( 
            IWMXList * This,
            __RPC__in ULONG *pulCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetItem )( 
            IWMXList * This,
            ULONG ulIndex,
            __RPC__deref_in_opt IWMXListItem **ppiItem);
        
        HRESULT ( STDMETHODCALLTYPE *SetItem )( 
            IWMXList * This,
            ULONG ulIndex,
            __RPC__in_opt IWMXListItem *piItem);
        
        HRESULT ( STDMETHODCALLTYPE *CreateItem )( 
            IWMXList * This,
            __RPC__deref_in_opt IWMXListItem **ppiItem,
            __RPC__in const WCHAR *pkwszType);
        
        HRESULT ( STDMETHODCALLTYPE *AppendItem )( 
            IWMXList * This,
            __RPC__in_opt IWMXListItem *piItem);
        
        HRESULT ( STDMETHODCALLTYPE *InsertItem )( 
            IWMXList * This,
            __RPC__in_opt IWMXListItem *piItem,
            ULONG ulIndex);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveItem )( 
            IWMXList * This,
            ULONG ulIndex);
        
        HRESULT ( STDMETHODCALLTYPE *Save )( 
            IWMXList * This,
            __RPC__in const WCHAR *pkwszFilename);
        
        HRESULT ( STDMETHODCALLTYPE *IsUrlList )( 
            IWMXList * This,
            __RPC__in VARIANT_BOOL *pfUrlList);
        
        END_INTERFACE
    } IWMXListVtbl;

    interface IWMXList
    {
        CONST_VTBL struct IWMXListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMXList_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMXList_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMXList_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMXList_GetAttributeCount(This,pulCount)	\
    ( (This)->lpVtbl -> GetAttributeCount(This,pulCount) ) 

#define IWMXList_GetAttributeName(This,ulIndex,pbstrAttributeName)	\
    ( (This)->lpVtbl -> GetAttributeName(This,ulIndex,pbstrAttributeName) ) 

#define IWMXList_GetAttribute(This,pkwszAttributeName,pbstrValue)	\
    ( (This)->lpVtbl -> GetAttribute(This,pkwszAttributeName,pbstrValue) ) 

#define IWMXList_SetAttribute(This,pkwszAttributeName,pkwszValue)	\
    ( (This)->lpVtbl -> SetAttribute(This,pkwszAttributeName,pkwszValue) ) 

#define IWMXList_AddAttribute(This,pkwszAttributeName,pkwszValue)	\
    ( (This)->lpVtbl -> AddAttribute(This,pkwszAttributeName,pkwszValue) ) 

#define IWMXList_RemoveAttribute(This,pkwszAttributeName)	\
    ( (This)->lpVtbl -> RemoveAttribute(This,pkwszAttributeName) ) 


#define IWMXList_GetItemCount(This,pulCount)	\
    ( (This)->lpVtbl -> GetItemCount(This,pulCount) ) 

#define IWMXList_GetItem(This,ulIndex,ppiItem)	\
    ( (This)->lpVtbl -> GetItem(This,ulIndex,ppiItem) ) 

#define IWMXList_SetItem(This,ulIndex,piItem)	\
    ( (This)->lpVtbl -> SetItem(This,ulIndex,piItem) ) 

#define IWMXList_CreateItem(This,ppiItem,pkwszType)	\
    ( (This)->lpVtbl -> CreateItem(This,ppiItem,pkwszType) ) 

#define IWMXList_AppendItem(This,piItem)	\
    ( (This)->lpVtbl -> AppendItem(This,piItem) ) 

#define IWMXList_InsertItem(This,piItem,ulIndex)	\
    ( (This)->lpVtbl -> InsertItem(This,piItem,ulIndex) ) 

#define IWMXList_RemoveItem(This,ulIndex)	\
    ( (This)->lpVtbl -> RemoveItem(This,ulIndex) ) 

#define IWMXList_Save(This,pkwszFilename)	\
    ( (This)->lpVtbl -> Save(This,pkwszFilename) ) 

#define IWMXList_IsUrlList(This,pfUrlList)	\
    ( (This)->lpVtbl -> IsUrlList(This,pfUrlList) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMXList_INTERFACE_DEFINED__ */


#ifndef __IWMXEditor_INTERFACE_DEFINED__
#define __IWMXEditor_INTERFACE_DEFINED__

/* interface IWMXEditor */
/* [helpstring][uuid][object] */ 


EXTERN_C const IID IID_IWMXEditor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7DB514DE-3577-466c-8F98-F4E30716D3FC")
    IWMXEditor : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ValidateURL( 
            __RPC__in const WCHAR *pkwszFilename) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ValidateData( 
            __RPC__in const WCHAR *pkwszSourceFilename,
            __RPC__in BYTE *pbData,
            __RPC__in DWORD *pcbData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenFromFile( 
            __RPC__in const WCHAR *pkwszFilename,
            __RPC__deref_in_opt IWMXList **ppiList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenFromMemory( 
            __RPC__in const WCHAR *pkwszSourceFilename,
            __RPC__in BYTE *pbData,
            ULONG cbData,
            __RPC__deref_in_opt IWMXList **ppiList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateList( 
            __RPC__deref_in_opt IWMXList **ppiList,
            WMX_LIST_TYPE ListType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMXEditorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMXEditor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMXEditor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMXEditor * This);
        
        HRESULT ( STDMETHODCALLTYPE *ValidateURL )( 
            IWMXEditor * This,
            __RPC__in const WCHAR *pkwszFilename);
        
        HRESULT ( STDMETHODCALLTYPE *ValidateData )( 
            IWMXEditor * This,
            __RPC__in const WCHAR *pkwszSourceFilename,
            __RPC__in BYTE *pbData,
            __RPC__in DWORD *pcbData);
        
        HRESULT ( STDMETHODCALLTYPE *OpenFromFile )( 
            IWMXEditor * This,
            __RPC__in const WCHAR *pkwszFilename,
            __RPC__deref_in_opt IWMXList **ppiList);
        
        HRESULT ( STDMETHODCALLTYPE *OpenFromMemory )( 
            IWMXEditor * This,
            __RPC__in const WCHAR *pkwszSourceFilename,
            __RPC__in BYTE *pbData,
            ULONG cbData,
            __RPC__deref_in_opt IWMXList **ppiList);
        
        HRESULT ( STDMETHODCALLTYPE *CreateList )( 
            IWMXEditor * This,
            __RPC__deref_in_opt IWMXList **ppiList,
            WMX_LIST_TYPE ListType);
        
        END_INTERFACE
    } IWMXEditorVtbl;

    interface IWMXEditor
    {
        CONST_VTBL struct IWMXEditorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMXEditor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMXEditor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMXEditor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMXEditor_ValidateURL(This,pkwszFilename)	\
    ( (This)->lpVtbl -> ValidateURL(This,pkwszFilename) ) 

#define IWMXEditor_ValidateData(This,pkwszSourceFilename,pbData,pcbData)	\
    ( (This)->lpVtbl -> ValidateData(This,pkwszSourceFilename,pbData,pcbData) ) 

#define IWMXEditor_OpenFromFile(This,pkwszFilename,ppiList)	\
    ( (This)->lpVtbl -> OpenFromFile(This,pkwszFilename,ppiList) ) 

#define IWMXEditor_OpenFromMemory(This,pkwszSourceFilename,pbData,cbData,ppiList)	\
    ( (This)->lpVtbl -> OpenFromMemory(This,pkwszSourceFilename,pbData,cbData,ppiList) ) 

#define IWMXEditor_CreateList(This,ppiList,ListType)	\
    ( (This)->lpVtbl -> CreateList(This,ppiList,ListType) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMXEditor_INTERFACE_DEFINED__ */



#ifndef __WMXEdit_LIBRARY_DEFINED__
#define __WMXEdit_LIBRARY_DEFINED__

/* library WMXEdit */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_WMXEdit;

EXTERN_C const CLSID CLSID_WMXEditor;

#ifdef __cplusplus

class DECLSPEC_UUID("09B8983B-3FAE-4504-90CC-598BFDB8A62B")
WMXEditor;
#endif
#endif /* __WMXEdit_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif