[Home]
[Up]





Developers should be using the ActiveX Specs documented in the MOS 2.8 protocolThe ActiveX spec located there was developed to be also applicable for MOS 2.6, so MOS 2.6 users should also use the ActiveX specification contained in the MOS 2.8 spec.  This page is meant to be used for reference, and examples. 

Update on Suggested Interfaces for Media Object Server ActiveX
(5/11/1999)

Developers at the NAB conference on the MOS Protocol reviewed the original draft of Standards for ActiveX Media Controls.  As a result, the following changes to the IDispatch interface elements were recommended and are being considered (further comments and reactions welcome):

 

·         All properties, methods, and events would now have a "MOS" prefix.

 

·         A general purpose MOSRequestNCS event sent to the NCS hosting the ActiveX control should permit further interaction between the control and the NCS.  For example the control could request that the NCS provide a collection of all MOS objects currently referenced on screen, or that the NCS insert a reference to the current MOS object (if applicable).

 

·         Have the NCS register a custom MOSCtrlData format for OLE DragDrop operations in order to permit ActiveX controls to easily recognize the data format and respond accordingly.    If OLE Drag and Drop support is desired in the ActiveX control, the ActiveX control would implement OLE Drag and Drop Interfaces IDropSource, IDropTarget, IDataObject, and IEnumFORMATETC.   For further information on implementing Drag/Drop see the following:

 

http://msdn.microsoft.com/library/books/techlang/inole/d1/S120B.HTM

http://msdn.microsoft.com/library/sdkdoc/shellcc/shell/DragDrop.htm

http://www.itlibrary.com/reference/library/0789710307/ch09.htm

http://www.itlibrary.com/reference/library/0789710307/ch07.htm

 

With these suggestions in mind, the following Properties, Methods, and Events are currently proposed for inclusion in a base interface for such controls:

 PROPERTIES

MOSItemData

MOSVersion

MOSTimeCode

MOSTimeBase

MOSTimeUnit

 EVENTS

MOSRequestNCS

 

Here is a Sample IDL listing which offers greater detail:

 
import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"
 
       typedef enum ncsrequestcodes
       {
              NCSGetMOSObjects = 1,
NCSInsertMOSObject = 2,
 
       }NCSREQUESTCODES;
 
                [
                                object,
                                uuid(E865EEE9-FD49-11D2-8841-0080C760B396),
                                dual,
                                helpstring("IMOSCtrl Interface"),
                                pointer_default(unique)
                ]
                interface IMOSCtrl : IDispatch
                {
                                [propget, id(1), helpstring("property MOSItemData")] HRESULT MOSItemData([out, retval] BSTR *pVal);
                                [propput, id(1), helpstring("property MOSItemData")] HRESULT MOSItemData([in] BSTR newVal);
                                [propget, id(2), helpstring("property MOSTimeBase")] HRESULT MOSTimeBase([out, retval] long *pVal);
                                [propput, id(2), helpstring("property MOSTimeBase")] HRESULT MOSTimeBase([in] long newVal);
                                [propget, id(3), helpstring("property MOSTimeCode")] HRESULT MOSTimeCode([out, retval] long *pVal);
                                [propput, id(3), helpstring("property MOSTimeCode")] HRESULT MOSTimeCode([in] long newVal);
                                [propget, id(4), helpstring("property MOSTimeUnit")] HRESULT MOSTimeUnit([out, retval] BSTR *pVal);
                                [propput, id(4), helpstring("property MOSTimeUnit")] HRESULT MOSTimeUnit([in] BSTR newVal);
                };
 [
                uuid(E865EEDD-FD49-11D2-8841-0080C760B396),
                version(1.0),
                helpstring("ATLMOSCtrl 1.0 Type Library")
]
library ATLMOSCTRLLib
{
                importlib("stdole32.tlb");
                importlib("stdole2.tlb");
 
                [
                                uuid(E865EEEB-FD49-11D2-8841-0080C760B396),
                                helpstring("_IMOSCtrlEvents Interface")
                ]
                dispinterface _IMOSCtrlEvents
                {
                                properties:
                                methods:
                                [id(1), helpstring("method MOSRequestNCS")] void MOSRequestNCS([in] long ActionCode, [in, out] VARIANT *Data);
                };
 
                [
                                uuid(E865EEEA-FD49-11D2-8841-0080C760B396),
                                helpstring("MOSCtrl Class")
                ]
                coclass MOSCtrl
                {
                                [default] interface IMOSCtrl;
                                [default, source] dispinterface _IMOSCtrlEvents;
                };
};
 

The current ActiveX Specs can be found in the MOS 2.8.3 protocol document.

###

More discussion on this topic can be found on the MOS Web Discussion Board.

You can send mail directly to Rob Tuch, the author of this document.

 

The MOS Project        Last Updated   3/22/07            Web Discussion Board