// Copyright (C) Microsoft Corporation, 1998
//
// IDs for HTML+TIME
//
// Just follow the template when adding either DISPIDs or new interfaces.
//

#ifndef __TIMEDISPID_H__
#define __TIMEDISPID_H__

// Base offset:

//
// need to reposition our IDs low for Trident
//

#define DISPID_BASE                                             0x00000000

// Interface offsets:
#define TIMEELEMENT_OFFSET                                      0x0100
#define TIMEBODYELEMENT_OFFSET                                  0x0200
#define TIMEDAELEMENT_OFFSET                                    0x0300
#define TIMEMEDIAELEMENT_OFFSET                                 0x0400
#define TIMEFACTORY_OFFSET                                      0x0500
#define TIMECOLLECTION_OFFSET                                   0x0600
#define TIMECOLLECTION_RESERVED_OFFSET                          0x0700
#define TIMEMEDIAPLAYER_OFFSET                                  0x0800
#define TIMEMEDIAPLAYEREVENTS_OFFSET                            0x0900

#define DISPID_TIME_MIN                                         0x0001
#define DISPID_TIME_MAX                                         0x270F

// Interface bases:
#define DISPID_TIMEELEMENT_BASE                                 (DISPID_BASE + TIMEELEMENT_OFFSET)
#define DISPID_TIMEBODYELEMENT_BASE                             (DISPID_BASE + TIMEBODYELEMENT_OFFSET)
#define DISPID_TIMEDAELEMENT_BASE                               (DISPID_BASE + TIMEDAELEMENT_OFFSET)
#define DISPID_TIMEMEDIAELEMENT_BASE                            (DISPID_BASE + TIMEMEDIAELEMENT_OFFSET)
#define DISPID_TIMEFACTORY_BASE                                 (DISPID_BASE + TIMEFACTORY_OFFSET)
#define DISPID_TIMECOLLECTION_BASE                              (DISPID_BASE + TIMECOLLECTION_OFFSET)
#define DISPID_TIMECOLLECTION_RESERVED_BASE                     (DISPID_BASE + TIMECOLLECTION_RESERVED_OFFSET)
#define DISPID_TIMEMEDIAPLAYER_BASE                             (DISPID_BASE + TIMEMEDIAPLAYER_OFFSET)
#define DISPID_TIMEMEDIAPLAYEREVENTS_BASE                       (DISPID_BASE + TIMEMEDIAPLAYEREVENTS_OFFSET)

// Collection Reserve (for expando's and ordinal's)
#define DISPID_COLLECTION_RESERVED_MIN                          DISPID_TIMECOLLECTION_RESERVED_BASE
#define DISPID_COLLECTION_RESERVED_MAX                          0x0000007FF

// ITIMEElement DISPIDs:
#define DISPID_TIMEELEMENT_BEGIN                                (DISPID_TIMEELEMENT_BASE + 0x01)
#define DISPID_TIMEELEMENT_BEGINWITH                            (DISPID_TIMEELEMENT_BASE + 0x02)
#define DISPID_TIMEELEMENT_BEGINAFTER                           (DISPID_TIMEELEMENT_BASE + 0x03)
#define DISPID_TIMEELEMENT_BEGINEVENT                           (DISPID_TIMEELEMENT_BASE + 0x04)
#define DISPID_TIMEELEMENT_DUR                                  (DISPID_TIMEELEMENT_BASE + 0x05)
#define DISPID_TIMEELEMENT_END                                  (DISPID_TIMEELEMENT_BASE + 0x06)
#define DISPID_TIMEELEMENT_ENDWITH                              (DISPID_TIMEELEMENT_BASE + 0x07)
#define DISPID_TIMEELEMENT_ENDEVENT                             (DISPID_TIMEELEMENT_BASE + 0x08)
#define DISPID_TIMEELEMENT_ENDSYNC                              (DISPID_TIMEELEMENT_BASE + 0x09)
#define DISPID_TIMEELEMENT_REPEAT                               (DISPID_TIMEELEMENT_BASE + 0x0a)
#define DISPID_TIMEELEMENT_REPEATDUR                            (DISPID_TIMEELEMENT_BASE + 0x0b)
#define DISPID_TIMEELEMENT_TIMEACTION                           (DISPID_TIMEELEMENT_BASE + 0x0c)
#define DISPID_TIMEELEMENT_BEGINELEMENT                         (DISPID_TIMEELEMENT_BASE + 0x0d)
#define DISPID_TIMEELEMENT_ENDELEMENT                           (DISPID_TIMEELEMENT_BASE + 0x0e)
#define DISPID_TIMEELEMENT_PAUSE                                (DISPID_TIMEELEMENT_BASE + 0x0f)
#define DISPID_TIMEELEMENT_RESUME                               (DISPID_TIMEELEMENT_BASE + 0x10)
#define DISPID_TIMEELEMENT_CUE                                  (DISPID_TIMEELEMENT_BASE + 0x11)
#define DISPID_TIMEELEMENT_TIMELINE                             (DISPID_TIMEELEMENT_BASE + 0x12)
#define DISPID_TIMEELEMENT_CURRTIME                             (DISPID_TIMEELEMENT_BASE + 0x13)
#define DISPID_TIMEELEMENT_LOCALTIME                            (DISPID_TIMEELEMENT_BASE + 0x14)
#define DISPID_TIMEELEMENT_CURRSTATE                            (DISPID_TIMEELEMENT_BASE + 0x15)
#define DISPID_TIMEELEMENT_SYNCBEHAVIOR                         (DISPID_TIMEELEMENT_BASE + 0x16)
#define DISPID_TIMEELEMENT_SYNCTOLERANCE                        (DISPID_TIMEELEMENT_BASE + 0x17)
#define DISPID_TIMEELEMENT_PARENTTIMEELEMENT                    (DISPID_TIMEELEMENT_BASE + 0x19)
#define DISPID_TIMEELEMENT_ALLTIMEELEMENTS                      (DISPID_TIMEELEMENT_BASE + 0x1a)
#define DISPID_TIMEELEMENT_CHILDRENTIMEELEMENTS                 (DISPID_TIMEELEMENT_BASE + 0x1b)
#define DISPID_TIMEELEMENT_ALLTIMEINTERFACES                    (DISPID_TIMEELEMENT_BASE + 0x1c)
#define DISPID_TIMEELEMENT_CHILDRENTIMEINTERFACES               (DISPID_TIMEELEMENT_BASE + 0x1d)
#define DISPID_TIMEELEMENT_ACCELERATE                           (DISPID_TIMEELEMENT_BASE + 0x1e)
#define DISPID_TIMEELEMENT_DECELERATE                           (DISPID_TIMEELEMENT_BASE + 0x1f)
#define DISPID_TIMEELEMENT_AUTOREVERSE                          (DISPID_TIMEELEMENT_BASE + 0x20)
#define DISPID_TIMEELEMENT_EVENTRESTART                         (DISPID_TIMEELEMENT_BASE + 0x21)
#define DISPID_TIMEELEMENT_ENDHOLD                              (DISPID_TIMEELEMENT_BASE + 0x22)
#define DISPID_TIMEELEMENT_TIMELINEBEHAVIOR                     (DISPID_TIMEELEMENT_BASE + 0x23)
#define DISPID_TIMEELEMENT_PROGRESSBEHAVIOR                     (DISPID_TIMEELEMENT_BASE + 0x24)
#define DISPID_TIMEELEMENT_ONOFFBEHAVIOR                        (DISPID_TIMEELEMENT_BASE + 0x25)

// ITIMEBodyElement DISPIDs:
#define DISPID_TIMEBODYELEMENT_TIMESTARTRULE                    (DISPID_TIMEBODYELEMENT_BASE + 0x01)
#define DISPID_TIMEBODYELEMENT_ADDTIMEDAELEMENT                 (DISPID_TIMEBODYELEMENT_BASE + 0x02)
#define DISPID_TIMEBODYELEMENT_REMOVETIMEDAELEMENT              (DISPID_TIMEBODYELEMENT_BASE + 0x03)

// ITIMEDAElement DISPIDs:
#define DISPID_TIMEDAELEMENT_IMAGE                              (DISPID_TIMEDAELEMENT_BASE + 0x01)
#define DISPID_TIMEDAELEMENT_SOUND                              (DISPID_TIMEDAELEMENT_BASE + 0x02)
#define DISPID_TIMEDAELEMENT_RENDERMODE                         (DISPID_TIMEDAELEMENT_BASE + 0x03)
#define DISPID_TIMEDAELEMENT_ADDDABEHAVIOR                      (DISPID_TIMEDAELEMENT_BASE + 0x04)
#define DISPID_TIMEDAELEMENT_REMOVEDABEHAVIOR                   (DISPID_TIMEDAELEMENT_BASE + 0x05)
#define DISPID_TIMEDAELEMENT_STATICS                            (DISPID_TIMEDAELEMENT_BASE + 0x06)
#define DISPID_TIMEDAELEMENT_RENDEROBJECT                       (DISPID_TIMEDAELEMENT_BASE + 0x07)

// ITIMEMediaElement DISPIDs:
#define DISPID_TIMEMEDIAELEMENT_SRC                             (DISPID_TIMEMEDIAELEMENT_BASE + 0x01)
#define DISPID_TIMEMEDIAELEMENT_IMG                             (DISPID_TIMEMEDIAELEMENT_BASE + 0x02)
#define DISPID_TIMEMEDIAELEMENT_PLAYER                          (DISPID_TIMEMEDIAELEMENT_BASE + 0x03)
#define DISPID_TIMEMEDIAELEMENT_SRCTYPE                         (DISPID_TIMEMEDIAELEMENT_BASE + 0x04)
#define DISPID_TIMEMEDIAELEMENT_PLAYEROBJECT                    (DISPID_TIMEMEDIAELEMENT_BASE + 0x05)
#define DISPID_TIMEMEDIAELEMENT_CLOCKSOURCE                     (DISPID_TIMEMEDIAELEMENT_BASE + 0x06)
#define DISPID_TIMEMEDIAELEMENT_CLIPBEGIN                       (DISPID_TIMEMEDIAELEMENT_BASE + 0x07)
#define DISPID_TIMEMEDIAELEMENT_CLIPEND                         (DISPID_TIMEMEDIAELEMENT_BASE + 0x08)

// ITIMEFactory DISPIDs:
#define DISPID_TIMEFACTORY_CREATETIMEELEMENT                    (DISPID_TIMEFACTORY_BASE + 0x01)
#define DISPID_TIMEFACTORY_CREATETIMEELEMENTBODY                (DISPID_TIMEFACTORY_BASE + 0x02)
#define DISPID_TIMEFACTORY_CREATETIMEDAELEMENT                  (DISPID_TIMEFACTORY_BASE + 0x03)
#define DISPID_TIMEFACTORY_CREATETIMEMEDIAELEMENT               (DISPID_TIMEFACTORY_BASE + 0x04)

//
// ITIMEElementCollection
//
#define DISPID_TIMEELEMENTCOLLECTION_LENGTH                     (DISPID_TIMECOLLECTION_BASE + 0x01)
#define DISPID_TIMEELEMENTCOLLECTION__NEWENUM                   (DISPID_NEWENUM)
#define DISPID_TIMEELEMENTCOLLECTION_ITEM                       (DISPID_VALUE)
#define DISPID_TIMEELEMENTCOLLECTION_TAGS                       (DISPID_TIMECOLLECTION_BASE + 0x02)

//
// ITIMEMediaPlayer
//
#define DISPID_TIMEMEDIAPLAYER_CLIPBEGIN                        (DISPID_TIMEMEDIAPLAYER_BASE + 0x01)
#define DISPID_TIMEMEDIAPLAYER_CLIPEND                          (DISPID_TIMEMEDIAPLAYER_BASE + 0x02)
#define DISPID_TIMEMEDIAPLAYER_BEGIN                            (DISPID_TIMEMEDIAPLAYER_BASE + 0x03)
#define DISPID_TIMEMEDIAPLAYER_END                              (DISPID_TIMEMEDIAPLAYER_BASE + 0x04)
#define DISPID_TIMEMEDIAPLAYER_RESUME                           (DISPID_TIMEMEDIAPLAYER_BASE + 0x05)
#define DISPID_TIMEMEDIAPLAYER_PAUSE                            (DISPID_TIMEMEDIAPLAYER_BASE + 0x06)
#define DISPID_TIMEMEDIAPLAYER_TICK                             (DISPID_TIMEMEDIAPLAYER_BASE + 0x07)
#define DISPID_TIMEMEDIAPLAYER_CURRENTTIME                      (DISPID_TIMEMEDIAPLAYER_BASE + 0x08)
#define DISPID_TIMEMEDIAPLAYER_SRC                              (DISPID_TIMEMEDIAPLAYER_BASE + 0x09)
#define DISPID_TIMEMEDIAPLAYER_INIT                             (DISPID_TIMEMEDIAPLAYER_BASE + 0x0A)
#define DISPID_TIMEMEDIAPLAYER_REPEAT                           (DISPID_TIMEMEDIAPLAYER_BASE + 0x0B)
#define DISPID_TIMEMEDIAPLAYER_CUE                              (DISPID_TIMEMEDIAPLAYER_BASE + 0x0C)

//
// ITIMEMediaPlayer
//
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONBEGIN                    (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x01)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONEND                      (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x02)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONRESUME                   (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x03)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONPAUSE                    (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x04)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONMEDIAREADY               (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x05)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONMEDIASLIP                (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x06)
#define DISPID_TIMEMEDIAPLAYEREVENTS_ONMEDIALOADFAILED          (DISPID_TIMEMEDIAPLAYEREVENTS_BASE + 0x07)
#define DISPID_TIMEMEDIAPLAYEREVENTS_READYSTATECHANGE           (DISPID_READYSTATECHANGE)

#endif  //__TIMEDISPID_H__




