//***************************************************************************** 
// 
// Microsoft Windows Media 
// Copyright (C) Microsoft Corporation. All rights reserved. 
//
// FileName:            datacontainerversion.idl
//
// Abstract:
//
//*****************************************************************************

cpp_quote("//*****************************************************************************") 
cpp_quote("//") 
cpp_quote("// Microsoft Windows Media") 
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.") 
cpp_quote("//")
cpp_quote("// Automatically generated by Midl from datacontainerversion.idl" )
cpp_quote("//")
cpp_quote("// DO NOT EDIT THIS FILE.")
cpp_quote("//")
cpp_quote("//*****************************************************************************") 

cpp_quote("#if _MSC_VER > 1000")
cpp_quote("#pragma once")
cpp_quote("#endif // _MSC_VER > 1000")

import "objidl.idl";

cpp_quote( "EXTERN_GUID( IID_IWMSDataContainerVersion, 0x3AE75C14,0x2B3A,0x11d2,0x9E,0xF7,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )




//////////////////////////////////////////////////////////////////////////////
//
//                         DATA CONTAINER PROPERTIES
//
// This is used for detecting matches in the stream cache.
//////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
typedef [public] enum WMS_DATA_CONTAINER_VERSION_CACHE_FLAGS
{
    WMS_DATA_CONTAINER_VERSION_ALLOW_PROXY_CACHING      = 0x01,
    WMS_DATA_CONTAINER_VERSION_ALLOW_PLAYER_CACHING     = 0x02,
    WMS_DATA_CONTAINER_VERSION_ALLOW_STREAM_SPLITTING   = 0x04
} WMS_DATA_CONTAINER_VERSION_CACHE_FLAGS;

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
[
    object,
    pointer_default(unique),
    uuid(3AE75C14-2B3A-11d2-9EF7-006097D2D7CF),
    version(9.0),
    helpstring("Provides methods for retrieving content version information.")
]
interface IWMSDataContainerVersion : IUnknown
{
    [helpstring("Retrieves the time at which the content was last modified.")] HRESULT 
    GetLastModifiedTime( [out] DATE *pdateLastModifiedTime );
    [helpstring("Specifies the time at which the content was last modified.")] HRESULT 
    SetLastModifiedTime( [in] DATE dateLastModifiedTime );

    [helpstring("Retrieves the content expiration date.")] HRESULT 
    GetExpirationTime( [out] DATE *pdateExpirationTime );
    [helpstring("Specifies the content expiration date.")] HRESULT 
    SetExpirationTime( [in] DATE dateExpirationTime );

    [helpstring("Retrieves flags that indicate whether content can be cached, proxied, or split.")] HRESULT 
    GetCacheFlags( [out] long *plFlags );
    [helpstring("Specifies flags that indicate whether content can be cached, proxied, or split.")] HRESULT 
    SetCacheFlags( [in] long lFlags );

    [helpstring("Retrieves the size of the content in bytes.")] HRESULT 
    GetContentSize( [out] long *plContentSizeLow, [out] long *plContentSizeHigh );
    [helpstring("Specifies the size of the content in bytes.")] HRESULT 
    SetContentSize( [in] long lContentSizeLow, [in] long lContentSizeHigh );

    [helpstring("Retrieves the number of entity tags.")] HRESULT 
    GetEntityTagCount( [out] long *plNumEntityTags );
    [helpstring("Retrieves an entity tag, given an index number.")] HRESULT 
    GetEntityTag( [in] long lTagNum, [out] BSTR *pszEntityTag );
    [helpstring("Specifies an entity tag.")] HRESULT 
    SetEntityTag( [in] BSTR szEntityTag );

    [helpstring("Compares two IWMSDataContainerVersion objects to determine whether they are equal.")] HRESULT 
    Compare( [in] IWMSDataContainerVersion *pVersion,
                     [out] VARIANT_BOOL *pvfEqual );
};





